앞서 알아본 블록체인의 블록은 블록체인 1.0(작업 증명 알고리즘을 사용한 블록체인 기술)에서의 블록이었다.
이번에는 블록체인 2.0(스마트 컨트렉트 기능이 추가된 블록체인 기술)의 블록에 대해서 알아본다.
블록체인 1.0을 기반으로 한 비트코인과 블록체인 2.0을 기반으로 한 이더리움의 블록을 통해 살펴본다.
비트코인의 블록은 헤더와 바디로 나누어 볼 수 있다.
이더리움도 비트코인의 블록 구조와 크게 다르진 않지만 블록의 헤더부분에 stack trace와 바디부분에 uncle list값이 추가되어 있다.
stack trace : 프로그램 실행 중 특정한 시점에서의 스택 프레임에 대한 리포트
uncle list : 비트코인의 이전블록을 이더리움에서는 parent 블록이라고 말하기 때문에 생긴 용어. stale 블록을 unlce 블록이라고 칭함
stale 블록 : 정상적인 블록이지만 블록 경쟁에서 밀려 최종적으로 블록체인에 연결이 되지 못한 블록
이더리움의 코드(GO)를 보면 아래와 같이 블록과 블록헤더가 struct로 선언되어 있다.
Root, TxHash, ReceiptHash는 머클트리의 각 노드를 해시한 최종 루트해시값에 해당하고 나머지 값들은 각각 하나의 상수로 볼 수 있다.
제네시스 블록은 블록의 첫번째에 위치하는 최조 블록을 말하며 블록번호 0번에 해당되고 어떤 트랜잭션도 포함되지 않는다.