(이미지 출처 : https://story.pxd.co.kr/1632)
Blockchain이란 Block + chain, 문자 그대로 블록이 체인처럼 연결되어 있는 것을 의미한다.
그렇다면 이 블록들은 어떤 구조로 되어있을까?
크게 두가지로 나눌수 있다.
조금 더 자세하게 살펴보면
이런 구조로 되어있다. (Genesis Block이란 블록체인에서 가장 첫번쨰 블록이며 0번째 블록)
블록 해쉬는 블록을 구분하는 식별자 같은 역할이다. 모든 블록은 이전 해쉬값과 이 해쉬값으로 서로 연결되어 있다. 해쉬값은 블록 헤더에 있는 6가지 값을 input값으로 해쉬 함수에 넣어서 나온 결과값이다. 만약 블록의 자료 변경을 시도하면 해쉬값이 바뀌면서 기존 체인이 끊어지면서 새로운 블록이 된다.
블록 헤더에는 크게 총 6가지 정보가 들어있다.
소프트웨어 버젼
연결되어 있는 이전 블록의 해쉬값이다.
블록 내 포함되어 있는 모든 거래의 정보를 담고있다. 정확히는 거래 정보의 거래 해쉬를 2진 트리 형태로 구성할 때, 트리 루트에 위치하는 해쉬값. 간단하게 거래정보를 input으로 만든 해쉬가 Merkle Hash라고 이해하면 편하다.
블록의 생성시간.
해당 체인의 난이도를 표현하는 값이나 타겟값.
채굴 과정에서 계속하여 변화되는 값이다.
마지막 두개 Bits & Difficulty 와 Nonce를 이해하기 위해선 채굴에 관해서 이해할 필요가 있다.
출처 : 박민서(중앙대 일반대학원 스마트시티학과 greedycatty@gmail.com)