최적 블록체인 (Best Block Chain)
최적 블록체인(best block chain)은 비트코인 같은 작업 증명(PoW) 블록체인에서 풀 노드가 메인 체인으로 받아들이는 체인, 즉 유효한 블록으로 이루어진 체인 가운데 누적 작업량이 가장 커서 다시 만들기가 가장 어려운 체인을 말합니다. 가장 우수한 블록체인 프로젝트를 뜻하는 말이 아니라 노드의 체인 선택 규칙에 관한 프로토콜 용어입니다.
자세히 알아보기
비트코인 개발자 문서의 용어집은 다시 만들기가 가장 어려운 체인이 최적 블록체인이라고 정의합니다. 여기서 어려움은 블록 개수가 아니라 각 블록에 들어간 작업 증명의 양을 모두 더한 누적 작업량(chainwork)으로 따집니다. 따라서 블록 수가 더 많은 체인이라도 난이도가 낮은 블록으로 이루어져 있으면 최적 체인이 되지 못할 수 있습니다. 또 규칙에 어긋나는 블록이 하나라도 들어 있는 체인은 작업량과 관계없이 후보에서 빠집니다.
두 채굴자가 거의 동시에 같은 높이의 블록을 찾으면 체인이 잠시 갈라집니다(포크). 이때 노드는 보통 먼저 받은 블록을 따릅니다. 이후 한쪽에 다음 블록이 이어지면 그쪽의 누적 작업량이 커지고, 정직한 노드는 모두 그 체인을 따르게 됩니다. 다른 쪽 블록은 정상적으로 채굴되었지만 최적 체인에 포함되지 않은 스테일 블록(stale block)이 되며, 오펀 블록이라고 부르기도 합니다.
노드가 지금까지 따르던 체인의 끝부분을 버리고 더 무거운 체인으로 옮겨 가는 것을 재구성(reorganization, reorg)이라고 합니다. 이때 버려진 블록에만 들어 있던 거래는 확인이 취소되어 다시 처리를 기다리거나, 새 체인에 충돌하는 거래가 있으면 무효가 됩니다. 블록이 위에 많이 쌓일수록 이런 일이 일어나기 어려워집니다.
블록체인·암호화폐에서는
거래소와 지갑이 입금을 반영하기 전에 일정 수의 확인(confirmation)을 기다리는 것은, 거래가 들어간 블록이 최적 체인에서 밀려날 가능성을 줄이기 위해서입니다. 비트코인 프로토콜이 채굴 보상(코인베이스) 출력을 최소 100블록 동안 쓰지 못하게 하는 것도 포크 뒤 해당 블록이 스테일 블록이 될 경우에 대비한 장치입니다. 51% 공격은 공격자가 정직한 체인보다 누적 작업량이 큰 체인을 따로 만들어 공개함으로써 노드들이 따르는 최적 체인을 바꾸려는 시도입니다.
쉽게 말하면
여러 사람이 같은 장부를 나눠 쓰다가 내용이 갈라졌을 때, 가장 많은 노력이 들어가 다시 쓰기 가장 어려운 장부를 정본으로 삼자는 약속과 같습니다. 장부의 쪽수가 많다는 것만으로는 부족하고, 들어간 노력의 총량이 기준이 됩니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.