합의 규칙 (Consensus Rules)

중급블록체인수정일

합의 규칙(Consensus Rules)은 노드들이 다른 노드들과 합의를 유지하기 위해 따르는 블록 검증 규칙입니다. 각 블록체인은 자체 규칙을 가지고 있으며, 아주 작은 차이도 다른 당사자 간의 논쟁을 유발하고 결국 네트워크를 분할(포킹)하려는 시도로 이어질 수 있습니다. 합의 규칙에 맞지 않는 블록이나 트랜잭션은 채굴자가 얼마나 많은 작업을 들였든 각 노드가 스스로 거부합니다.

합의 규칙은 무엇을 정할까요?

합의 규칙은 어떤 블록과 트랜잭션이 유효한지를 정하는 공통 기준입니다. 비트코인을 예로 들면 다음과 같은 규칙이 있습니다.

  • 블록 크기: 블록의 무게(weight)는 400만 단위를 넘을 수 없습니다.
  • 발행량: 채굴자가 받는 블록 보상은 21만 블록마다 절반으로 줄며, 정해진 보상과 수수료 합계보다 많이 가져가면 블록 전체가 무효입니다. 이 규칙 때문에 총발행량이 약 2,100만 BTC로 제한됩니다.
  • 서명과 스크립트: 트랜잭션이 쓰는 각 출력은 올바른 서명 등 잠금 스크립트의 조건을 충족해야 합니다.
  • 이중 지출 금지: 이미 사용한 출력을 다시 쓰는 트랜잭션은 무효입니다.
  • 작업 증명: 블록 헤더의 해시가 현재 난이도 목표값보다 작아야 하며, 난이도는 2016블록마다 조정됩니다.

노드가 서로 메시지를 주고받는 방식(P2P 프로토콜)이나 어떤 트랜잭션을 멤풀에 받아 전달할지 정하는 정책(최소 수수료 등)은 노드마다 달라도 되므로 합의 규칙에 속하지 않습니다.

합의 규칙이 왜 중요할까요?

여러 회계 담당자가 하나의 장부를 함께 관리한다고 상상해 보세요. 어떤 기록이 유효한지에 대한 규칙이 같아야 모두가 같은 장부를 유지할 수 있습니다. 일부 노드가 다른 규칙을 따르면 같은 블록을 두고 어떤 노드는 받아들이고 어떤 노드는 거부하게 되어 블록체인이 둘로 갈라질 수 있습니다.

  • 보안: 모든 노드가 규칙을 독립적으로 검증하므로, 해시 파워가 많은 채굴자라도 규칙에 어긋나는 블록(예: 보상을 더 가져가는 블록)을 강요할 수 없습니다.
  • 투명성: 규칙은 공개된 소프트웨어 코드로 존재해 누구나 확인할 수 있습니다.
  • 탈중앙화: 규칙을 노드 각자가 집행하므로 단일 주체가 네트워크를 제어하지 않습니다.

규칙이 변경될 때: 소프트 포크와 하드 포크

새로운 기능을 넣거나 문제를 해결하기 위해 합의 규칙을 바꾸는 것을 포크라고 합니다. 포크의 종류는 참여자가 얼마나 동의했는지가 아니라 새 규칙과 기존 규칙의 호환성으로 구분합니다.

  • 소프트 포크: 규칙을 더 엄격하게 바꾸는 변경입니다. 새 규칙을 따르는 블록은 기존 규칙에서도 유효하므로, 업그레이드하지 않은 노드도 새 블록을 계속 받아들입니다. 해시 파워 과반이 새 규칙을 집행하면 체인은 하나로 유지됩니다. 비트코인의 세그윗(SegWit, 2017)과 탭루트(Taproot, 2021)가 예입니다.
  • 하드 포크: 이전에는 무효였던 블록을 유효로 인정하도록 규칙을 완화하거나 확장하는 변경입니다. 업그레이드하지 않은 노드는 새 규칙의 블록을 거부하므로, 모든 노드가 업그레이드하지 않으면 체인이 둘로 나뉩니다. 블록 크기 한도를 늘린 비트코인 캐시(2017)가 비트코인에서 분리된 것이 실제 사례입니다.

규칙 이견의 대가

  • 체인 분할: 합의 규칙에 대한 분쟁은 서로 다른 가치를 가진 두 개의 별도 블록체인으로 이어질 수 있습니다.
  • 불확실성: 분할 과정에서는 어느 체인이 살아남을지, 트랜잭션이 양쪽에서 재사용(리플레이)되지 않는지 등 불확실성이 커집니다.
  • 커뮤니티 분열: 이견은 개발자와 이용자 커뮤니티를 갈라 협업과 개발을 어렵게 할 수 있습니다.

본질적으로 합의 규칙은 블록체인의 분산된 세계에서 질서와 신뢰를 유지합니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.