본문으로 건너뛰기

최장 체인 규칙

장부가 두 갈래로 갈라질 때​

전 세계의 채굴자들이 각자 만든 후보 블록으로 같은 작업증명 조건에 도전하다 보면 아주 가끔 두 채굴자가 거의 동시에 답을 찾을 수 있습니다. 그러면 다음 장부 페이지가 두 개가 되고, 네트워크는 잠시 서로 다른 장부를 들게 됩니다.

새 페이지 소식이 전 세계에 도착하는 데는 시간이 걸립니다. 한 지역에서 만들어진 페이지가 지구 반대편에 전달되는 몇 초 사이에 다른 곳에서 또 다른 페이지가 나올 수 있습니다. 중앙 본점이나 심판이 없다면 어느 페이지를 기준으로 다음 기록을 이어 갈지 정하는 규칙이 필요합니다.

비트코인은 이런 갈림이 생겼을 때 유효한 체인 가운데 누적 작업량이 가장 큰 체인을 기준으로 삼습니다. 이를 흔히 최장 체인 규칙이라고 부릅니다. 여기서 ‘최장’은 단순히 블록 수가 가장 많은 체인을 뜻하지 않습니다.

두 갈래 벽돌길​

벽돌을 한 장씩 이어 붙여 길을 놓는다고 생각해 보겠습니다. 여기서는 모든 벽돌이 같은 난도로 만들어졌다고 가정합니다. 마을 사람들은 가장 멀리까지 이어진 길을 진짜 길로 사용합니다.

어느 날 길 끝이 두 방향으로 나뉘어 왼쪽에도 벽돌 한 장, 오른쪽에도 벽돌 한 장이 놓입니다. 일꾼들은 각자 먼저 전달받은 쪽을 이어서 작업할 수 있습니다. 얼마 지나지 않아 한쪽에는 벽돌이 두 장, 다른 쪽에는 한 장만 놓일 수 있습니다.

그러면 일꾼들은 더 멀리 뻗은 쪽으로 옮겨 갑니다. 한 장에서 멈춘 쪽에 놓였던 벽돌은 주된 길에서 빠집니다. 이 과정에는 별도의 회의나 투표가 필요하지 않습니다. 모두가 같은 잣대를 사용하기 때문에 갈림이 정리됩니다.

가장 긴 체인은 누적 작업량이 큰 체인입니다​

‘가장 긴 체인’이라는 말은 블록 수만 세는 방식이 아닙니다. 블록마다 채굴 난도가 다를 수 있으므로, 체인에 쌓인 누적 작업량을 기준으로 합니다.

누적 작업량은 채굴자가 실제로 시도한 해시 횟수를 직접 세는 값이 아닙니다. 블록의 목푯값과 난이도에서 계산되는 각 블록의 기대 작업량을 합산한 값입니다. 같은 수의 블록이 쌓였더라도 더 어려운 문제를 풀어 만든 블록들이 포함된 체인이 더 큰 누적 작업량을 담을 수 있습니다. 따라서 비트코인에서 기준으로 삼을 체인을 고를 때는 단순한 페이지 장수가 아니라 누적 작업량을 봅니다. 비트코인 개발자 문서도 체인 선택을 누적 작업량과 유효성에 따라 설명합니다.

이 규칙은 유효한 체인들 사이에서만 적용됩니다. 없는 비트코인을 만들어 넣거나 서명이 틀린 거래를 담은 블록은 다른 참가자들이 받아들이지 않습니다. 규칙을 어긴 체인은 작업량을 비교하기 전에 탈락합니다.

갈림은 어떻게 정리될까요?​

두 채굴자가 거의 동시에 블록을 찾으면, 다른 채굴자들은 각자 먼저 전달받은 유효한 블록 위에 다음 블록을 만들기 시작할 수 있습니다. 다음 블록이 한쪽 체인 위에 먼저 쌓이면 그쪽의 누적 작업량이 커집니다.

네트워크의 참가자들은 더 많은 작업이 쌓인 유효한 체인을 기준으로 삼고, 다른 쪽에서 작업하던 채굴자들도 그 체인으로 옮겨 갑니다. 이처럼 잠시 생긴 갈림은 관리자가 직접 정리하지 않아도 시간이 지나면서 하나의 주된 체인으로 수렴합니다.

승부에서 밀려난 체인에 포함된 거래가 모두 사라지는 것은 아닙니다. 그 체인에 실려 있던 거래 중 유효한 거래는 대기 중인 거래로 돌아가 다음 블록에 다시 포함될 수 있습니다. 달라지는 것은 그 블록이 채택된 체인에 속하는지 여부이며, 그에 따라 거래의 확인 상태도 바뀝니다.

확인이 쌓일수록 확실해지는 이유​

갓 블록에 들어간 거래는 아직 완전히 굳은 상태가 아닙니다. 다른 갈림이 생기면 그 블록이 주된 체인에서 밀려날 가능성이 남아 있기 때문입니다.

그 위에 다음 블록이 쌓이면 거래를 되돌리려는 쪽은 그 이후의 작업까지 다시 따라잡아야 합니다. 블록이 더 많이 쌓일수록 필요한 작업량과 비용이 커집니다. 그래서 거래소 등에서는 거래가 여러 차례 확인될 때까지 기다리기도 하며, 흔히 여섯 번의 확인을 기다리는 관행이 알려져 있습니다.

다만 이 구조에서 완전한 확정이 어느 한 순간에 발생하는 것은 아닙니다. 백서의 분석에서는 정직한 측이 공격자보다 계산 능력에서 우위에 있다는 조건에서, 확인이 쌓일수록 공격자가 따라잡을 가능성이 낮아집니다.

사람 수를 세는 투표가 아닙니다​

최장 체인 규칙은 참가자 수를 세는 다수결이 아닙니다. 사람 수를 기준으로 하면 계정을 많이 만드는 방식으로 결과를 왜곡할 수 있습니다.

여기서 비교하는 것은 블록별 기대 작업량을 합산한 누적 작업량입니다. 따라서 체인을 뒤집으려는 쪽은 실제 채굴 장비와 전기를 사용해 더 큰 누적 작업량을 가진 유효한 체인을 만들어야 합니다. 이것이 작업증명과 최장 체인 규칙이 연결되는 지점입니다.

정리​

최장 체인 규칙은 다음과 같이 정리할 수 있습니다.

  • 네트워크 지연으로 장부가 잠시 여러 갈래로 나뉠 수 있습니다.
  • 참가자들은 규칙에 맞는 유효한 체인만 비교합니다.
  • ‘최장’은 단순한 블록 수가 아니라 블록별 기대 작업량을 합산한 누적 작업량이 가장 큰 체인을 뜻합니다.
  • 더 많은 작업이 쌓인 체인을 기준으로 삼으면 잠시 생긴 갈림이 하나로 정리됩니다.
  • 밀려난 체인의 유효한 거래는 대기 상태로 돌아가 다시 포함될 수 있습니다.
  • 시간이 지나 블록이 더 쌓일수록 거래를 뒤집는 비용이 커집니다.

관련 개념은 작업증명, 고아 블록, 이중 지불에서 함께 확인할 수 있습니다.

링크 복사하기X에 공유페이스북에 공유쓰레드에 공유