비트코인 합의 알고리즘 개요
개요
비트코인은 작업 증명(Proof of Work)을 통해 분산된 노드들이 거래 순서에 합의하도록 설계되었다. 중앙 신뢰 기관 없이도 이중 지불 문제를 해결하기 위해, 가장 긴 체인이 정당한 체인이라는 단순한 규칙을 채택한다.
작업 증명의 핵심 아이디어
각 블록의 헤더에 논스(nonce) 라는 임의 값을 포함시키고, 블록 헤더의 SHA-256 해시가 미리 정해진 난이도 목표 값보다 작아질 때까지 논스를 변경한다. 이는 본질적으로 결과를 미리 알 수 없는 계산을 다수 시도해야 하는 작업이다.
합의 규칙
- 노드는 새로운 거래를 수신하면 자신의 풀에 추가한다.
- 채굴자는 거래를 묶어 블록을 만들고, 유효한 논스를 찾으면 네트워크에 전파한다.
- 다른 노드는 블록의 유효성(서명, 잔액, 해시)을 검증한 뒤 자신의 체인에 연결한다.
- 동시에 두 블록이 발견되어 분기되면, 노드는 더 긴 체인을 따른다.
보안 가정
전체 해시 파워의 과반수가 정직한 행위자에게 있다는 가정 아래, 공격자가 자신만의 더 긴 체인을 구축하는 것이 시간이 갈수록 기하급수적으로 어려워진다.
한계
- 확정성(finality)이 확률적: 블록이 깊어질수록 번복 가능성은 줄지만 결코 0이 되지는 않는다.
- 에너지 비용: 작업 증명 자체가 막대한 전력을 요구하며, 이를 해소하려는 시도가 다양한 합의 알고리즘 연구로 이어졌다.