티스토리 뷰
이전 글에서는 블록체인의 “작업증명”에 대하여 설명하였다.
이번 글에서는 블록체인의 연결과정, 즉 작업증명을 마치고 생성된 블록이 다른 블록과 어떻게 연결되고 블록체인을 형성하는지에 대한 설명을 하겠다.
블록이 하나만 있다면 블록자체의 크기의 한계 때문에 계속 사용하기가 어려울 것이다. 따라서 블록체인에서는 블록을 여러 개 연결하여 이러한 문제를 해결하였다. 새로운 거래 기록은 이전 블록이 아닌 주기적인 단위로 (비트코인의 경우 10분 정도) 새로 생성되는 블록에 포함된다. 그렇다면 이렇게 지속적을 생성되는 블록들은 어떻게 연결되는지 살펴보자.
위의 그림에서처럼 99번 블록 뒤에 100번 블록이 연결되는 것을 예로 들겠다.
앞서 각 블록은 블록내용과 난스로 나누어진다고 설명했다. 100번 블록은 99번 블록의 해시 값을 100번 블록의 블록내용에 포함시킴으로써 99번 블록과 연결성을 갖게 된다. 100번 블록을 만드는 과정에서는 99번 블록의 해시 값과 새로운 거래기록을 포함하여 난스를 찾게 된다. 반드시 99번 블록의 해시 값을 가지고 있어야만 100번 블록의 난스를 찾을 수가 있는 것이다. 이렇게 여러 개의 블록이 연결되었다고 생각해보면, 100번 블록의 난스 값을 찾기 위해서는 99번 블록의 해시 값이 포함되어 있어야 하는 것이고, 99번 블록의 난스 값을 찾기 위해서는 98번 블록의 해시 값이 포함되어 있어야 하는 것이다. 이런 방식으로 보면 최초 블록의 해시 값까지 전부 블록체인으로 연결된 것이다.
해시 값을 다음 블록에 포함해 줌으로써 나머지 거래기록을 전부 넘겨주지 않아도 모든 거래기록이 하나의 장부로 연결되는 것이다. 즉, 블록 전체를 해시한 값을 사용하지 않고 블록헤더만 해시를 한다고 해도 내용 및 연결성에는 지장이 없는 것이다. 왜냐하면 해시 값은 아주 작은 변화에도 민감하게 반응하고 다른 값을 갖게 되는데 블록헤더의 머클루트에 블록자체의 기록이 이미 해시가 되어 있기 때문에 블록헤더의 해시 값만 사용한다고 해도 모든 블록 내용을 포함하는 것이라고 보면 된다.
블록이 생성되어 연결되는 데 있어서 조금 더 자세히 살펴보자. 블록들이 연결되어 블록체인이 형성되는 단계인 작업증명 과정은 일종의 노드들 간의 경쟁이라고 생각할 수 있다. 자신이 작업증명을 빨리 마치고 다른 노드에 새로운 블록을 전파하여 가장 처음으로 블록 생성을 한 것으로 판명되는 노드에 채굴 보상금을 주기 때문이다. 그러면 여기서 의문점이 생길 것이다. 여러 노드에서 동시에 블록이 채굴되어 전파되면 어떤 일이 벌어질까? 채굴 보상금을 나눠가지는 것일까? 하나의 거래 장부만 존재한다고 했는데, 여러 거래 장부가 돌아다니는 것일까?
이러한 질문에 대한 답변은 블록 체인의 “긴 블록체인 선호 정책”을 살펴 보면 알 수 있다. 동시에 블록이 채굴 되어 전파 되는 경우에 블록체인에서는 일단 아무런 조치도 취하지 않는다. 새로운 블록이 생성되고 계속해서 새 블록이 쌓이도록 둔다. 각 노드는 채굴 보상금을 위해 행동하기 때문에 결국에는 가장 긴 블록을 선택하여 채굴을 할 것이다. 이렇게 지속되다 보면 자연스럽게 가장 긴 블록이 나오게 될 것이다. 예를 들어 설명해보면, A와 B 두 개로 블록체인이 나눠져서 전파되고 있다고 가정하자. 처음에는 A를 선택하는 노드가 있을 것이고 B를 선택하는 노드도 있을 것이다. 각 노드들은 새롭게 블록을 생성하여 다른 노드에 전파하려고 할 것이다. 이때 A를 선택했던 노드가 새로운 블록 C를 쌓고 다른 노드로 전파 했다고 하자. 그러면 이제 다른 노드 들은 A에 새로운 블록 C까지 쌓인 블록체인에 새로운 블록 D를 생성하려고 할 것이다. 이때 B를 선택했던 노드 입장에서 생각하면 이미 한발 늦게 된 것이다. 다른 노드들과 새로운 경쟁을 하기 위해서는 기존에 B는 버리고 A에 새로운 블록 C까지 쌓인 블록체인을 선택하고 채굴을 진행하게 되는 것이다. 그렇다고 여기서 B에 있던 거래 기록이 사라지는 것은 아니다. 거래 기록은 남아서 다음 블록이 생성될 때 다시 포함된다.
이렇게 각 노드 들은 자신이 이익을 최대로 얻을 수 있도록 행동하기 때문에 “긴 블록체인 선호 정책”에 따르는 것이다. 블록체인에 대한 얘기를 듣다 보면 과반수 이상의 지지를 받으면 블록체인이 변경된다는 말을 들어본 사람도 있을 것이다. 이 내용을 보면 긴 블록 체인 선호 정책에 따라서 더 많은 노드의 지지를 받은 블록체인이 남게 되는 것이므로 유사한 의미라고 생각할 수 있다. 과반수 이상의 노드가 선택한 블록은 계속 유지되는 것이기 때문이다. 이러한 방식으로 생성된 블록들이 연결되어 하나의 블록체인이 되는 것이다. 이번 글에서는 블록체인의 연결과정에 대하여 설명하였다. 다음 글에서는 비트코인 거래에 관련된 내용을 살펴보겠다.
2018/01/28 - [과학 트렌트] - 블록체인 기술 알아보기 (거래)
'과학 트렌트' 카테고리의 다른 글
블록체인 기술 알아보기 (비대칭 키 암호화) (0) | 2018.01.29 |
---|---|
블록체인 기술 알아보기 (거래) (0) | 2018.01.28 |
블록체인 기술 알아보기 (작업증명) (0) | 2018.01.24 |
블록체인 기술 알아보기 (해시함수) (0) | 2018.01.17 |
블록체인? 비트코인? 무엇인가 (0) | 2018.01.13 |