01

중앙 서버 없이 장부를 맞추는 방법

은행은 중앙 서버에 장부를 두고 거래를 기록합니다. 블록체인에는 그런 중앙 관리자가 없고, 전 세계 수많은 컴퓨터가 같은 장부를 나눠 가지고 있습니다. 이 컴퓨터들이 ‘어떤 거래가 어떤 순서로 일어났는가’에 동의하는 방법이 합의 메커니즘입니다.

이 글은 합의가 왜 필요한지, 대표적인 합의 방식들이 블록을 만들고 검증하는 방법, 거래가 되돌릴 수 없게 확정되는 기준을 정리합니다. 가상의 네트워크 비교로 장애와 공격 상황에서 각 방식이 어떻게 반응하는지 설명하고, 프로토콜 문서를 읽는 순서도 다룹니다.

02

합의가 해결하는 문제

Ethereum.org의 합의 메커니즘 설명은 합의를 분산된 노드들이 네트워크의 상태에 동의하도록 만드는 프로토콜, 인센티브, 아이디어의 전체 묶음으로 설명합니다. 합의가 없으면 같은 코인을 두 번 쓰는 이중지불이나, 서로 다른 장부가 동시에 존재하는 문제가 생깁니다.

어려운 점은 참여자 가운데 일부가 고장 나거나 일부러 거짓말을 해도 나머지가 올바른 장부에 동의할 수 있어야 한다는 것입니다. 각 합의 방식은 ‘참여자의 몇 %까지 정직하지 않아도 버틸 수 있는가’라는 가정 위에 설계됩니다.

03

검증자와 블록 제안

작업증명(비트코인)에서는 채굴자가 계산 경쟁을 통해 블록을 만들 권리를 얻고, 가장 많은 작업이 쌓인 체인을 정본으로 봅니다. Bitcoin 개발자 가이드는 블록이 쌓일수록 그 아래 거래를 바꾸는 데 필요한 작업이 커진다고 설명합니다.

지분증명(이더리움)에서는 자산을 예치한 검증자 가운데 무작위로 블록 제안자를 뽑고, 다른 검증자들이 투표로 블록을 검증합니다. 일부 네트워크는 수십 명 수준의 소수 검증자가 돌아가며 블록을 만들고 3분의 2 이상의 서명으로 즉시 확정하는 방식을 쓰기도 합니다. 방식마다 속도, 탈중앙화 정도, 장애 시 반응이 다릅니다.

04

가상 네트워크 비교

아래 표는 세 가지 합의 방식을 쓰는 가상의 네트워크를 비교한 것입니다.

합의 방식별 특성 비교 (일반적인 경향, 가상 예시 포함)
항목작업증명지분증명 (대규모 검증자)소수 검증자 BFT 방식
블록 제안 권리계산 경쟁예치금 기반 무작위 선택정해진 검증자 순번
확정 방식확인 수가 쌓일수록 확률적으로체크포인트 투표로 확정3분의 2 서명 시 즉시 확정
버틸 수 있는 부정직한 참여자해시파워 절반 미만확정에는 예치금 3분의 1 미만검증자 3분의 1 미만
가상 예: 참여자 일부 오프라인블록 생성 느려짐확정 지연, 체인은 계속21명 중 7명 이탈 시 정지 가능

소수 검증자 방식은 빠르게 확정되지만, 3분의 1 이상이 멈추면 네트워크 전체가 멈출 수 있습니다. 지분증명은 일부가 이탈해도 블록은 계속 만들고 확정만 늦어집니다.

05

확정성의 정의

확정성은 한 번 기록된 거래가 되돌려지지 않는다고 볼 수 있는 상태입니다. 작업증명에서는 확인 수가 쌓일수록 되돌릴 가능성이 줄어드는 확률적 확정이고, 이더리움 지분증명에서는 검증자 다수가 체크포인트에 투표하면 확정되는 방식입니다. Ethereum.org의 지분증명 문서는 확정된 블록을 되돌리려면 공격자가 대규모 예치금을 잃어야 한다고 설명합니다.

같은 ‘확정’이라도 네트워크마다 걸리는 시간과 그 의미가 다릅니다. 거래소가 네트워크마다 입금 반영 기준을 다르게 정하는 것도 이 차이 때문입니다.

06

장애·공격 가정

모든 합의 방식은 ‘정직한 참여자가 일정 비율 이상’이라는 가정이 깨지면 문제가 생깁니다. 작업증명에서는 해시파워의 과반을 가진 공격자가 최근 거래를 다시 쓸 수 있고, 지분증명에서는 예치금의 상당 부분을 가진 공격자가 확정을 막거나 검열할 수 있습니다.

가상의 예로 검증자 21명이 3분의 2 이상의 서명으로 블록을 확정하는 네트워크에서 7명이 같은 데이터센터에 있다가 장애가 나면, 남은 14명으로는 기준(15명)을 채우지 못해 네트워크가 멈출 수 있습니다. 검증자 수뿐 아니라 그들이 얼마나 독립적인지가 중요한 이유입니다.

07

프로토콜 문서 읽기

관심 있는 블록체인의 합의 방식을 볼 때 아래 순서로 확인해 보세요.

  1. 공식 문서에서 합의 방식(작업증명, 지분증명, BFT 계열 등)과 블록 제안자를 정하는 방법을 확인합니다.
  2. 거래가 확정되는 기준과 평균 확정 시간을 확인합니다.
  3. 검증자 또는 채굴자의 수와 상위 참여자의 점유율, 지역·운영사 분산 정도를 봅니다.
  4. 참여자 일부가 멈추거나 부정직할 때 네트워크가 어떻게 반응하는지(지연, 정지, 페널티) 확인합니다.
  5. 과거에 네트워크가 멈추거나 체인 재구성이 일어난 이력이 있는지 찾아봅니다.
08

합의 방식 비교의 한계

합의 방식은 이론적인 보안 가정과 실제 운영 상황이 다를 수 있습니다. 검증자 수가 많아도 소수의 운영사나 클라우드 서비스에 몰려 있다면 실제 분산 정도는 낮습니다.

이 글의 네트워크 비교와 장애 사례는 일반적인 경향과 가상의 예시입니다. 실제 블록체인을 볼 때는 Ethereum.org와 각 프로젝트의 공식 문서를 기준 시점과 함께 확인하고, 합의 방식의 이름보다 ‘몇 명이 멈추면 무슨 일이 생기는가’를 먼저 확인하는 것이 좋습니다.