카테고리 없음

블록체인의 구조

zero_stone 2021. 8. 24. 16:56

참고:https://steemit.com/kr/@yahweh87/3

 

#3- 블록체인 기술 및 블록에 관한 정의 — Steemit

안녕하세요. 어미새입니다. 저번 포스팅에서는 해시함수에 대해 알아봤습니다. 저번시간 내용을 간략하게 정리해보면 아래와 같습니다. 해시함수 해시함수는 임이의 길이를 갖는 메시지를 입

steemit.com

 

1.블록이란?

- 거래내역 즉 트렌잭션 뭉탱이와 이외의 값들로 구성돼있다.

- 블록체인의 가장 작은 단위이다.

 

2.블록의 구성요소

블록은 크게 블록헤시,head,body로 구성된다. 

 

 

3.블록헤시

해당 블록의 이름이라고 생각하면된다.

블록헤시를 구하는 과정을 정말 간단하게 설명하면

-> 

블록의 header 내용들을 순서대로 이어 붙혀 하나의 값으로 만든다.그 후 SHA-256해시 함수의 입력으로 하여 얻은 결과가 블록헤시이다.

*블록해시를 생성하려면, 일정한 조건을 만족해야 한다!(nonce 부분에서 추가 설명)

 

4.Header

위에서 header의 내용은 블록해더를 만드는 내용들이라했다.

하나씩 살펴보면

 

 

1)버전(version): 블록 헤더를 만든 프로그램의 버전 정보를 말한다

2)이전 블록 해시(previousblockhash): 블록이 생성되어 체인에 연결될 때 직전에 연결된 블록의 블록해시 값

 

3)타임(time): 블록이 생성된 시간

 

4)난이도 목표(target): 블록해시를 생성하기 위해서는 target보다 작은 hash값을 찾아야만 블록해시로 인정된다.

  즉 target 값이 1에 가까워질 수록 블록해시를 생성하는데 오랜시간 걸린다. 

 

 

5)머클루트(merkle root): 

블록체인 검증기술, 머클트리, 머클루트 - 모두의 블록체인 #7 (tistory.com)

이곳을 참고

 

 

*여기 까지의 header의 구성요소들은 블록 생성과 동시에 정해진 값들이다.

 

 

 

 

6)nonce:

블록해시 부분에서 "블록을 대표하는 해시값인 블록해시를 생성하려면, 일정한 조건을 만족해야 한다."라는 말중

조건target 보다 작은 해시값을 채택해야하는 것이다.

 

예) 목표값이 10이라면  10> sha256( block header값들)을 만족하는 해시값을 블록해시로 채택한다.

해당 조건을 만족하는 해시값(블록해시)을 구하다는 말은 조건을 만족시키는  nonce 값을 찾는다는 말과 같다.

*header의 구성요소들 중 nonce를 제외한 모든 요소들은 블록해시 생성전에 미리 정해져있다.

그럼으로 블록해시 조건을 만족하기 위해서는 nonce값을 변경하면서 조건에 맞는 블록해시를 구해야한다.*

 

 

 

 

5.채굴

 채굴은 target 존건을 만족하는 nonce를 구하는 작업을 말한다.

 채굴에 성공한 채굴자는 이 블록을 블록체인내에 있는 모든 노드들에게 전파시킨다!

 전파 받은 노드들은 이 블록의 유효성 검사를 실시한다.

 유효성 검사는 다음 포스팅에...