115 / 691NC

Nakamoto consensus

나카모토 합의는 Bitcoin 노드가 허가 없이 참여하여 Proof of Work, 누적 작업량, 유인을 통해 유효한 이력에 확률적으로 수렴하는 방식이다.

Full Node는 먼저 합의 규칙을 적용한 뒤 유효한 체인 가운데 누적 작업량이 가장 큰 체인을 선택한다. 채굴자들은 그 체인을 연장하려고 경쟁한다. 합의가 즉시 최종 확정되는 것은 아니다. 나카모토 합의라는 명칭은 나중에 생겼으며 백서에는 나오지 않는다.

이 개념은 Bitcoin 검증 규칙, Proof of Work를 통한 블록 생산자 선택, 분기 선택, 경제적 유인을 결합한다. 채굴만으로 축소하면 유효성을 독립적으로 판단하는 Full Node를 놓치게 된다. [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [The Bitcoin Backbone Protocol]

Full Node는 자신의 합의 규칙에 따라 거래와 블록을 검사한다. 막대한 작업량도 무효 블록을 유효하게 만들 수 없으며, 분기 선택은 유효한 후보끼리만 비교한다. 합의에는 참여자들의 규칙이 호환된다는 전제가 필요하다. [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — Chainstate validation]

Proof of Work는 네트워크 신원마다 한 표를 주는 대신 에너지와 장비 비용을 수반하는 계산 작업에 영향력을 연결한다. 따라서 가명을 많이 만드는 것만으로는 체인 선택의 가중치가 늘어나지 않는다. [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [The Bitcoin Backbone Protocol]

채굴자는 후보 블록을 구성하고 숫자 값이 유효한 목표값보다 작거나 같은 헤더 해시를 찾는다. 경쟁하는 유효 블록이 동시에 나올 수 있으며, 일반적인 네트워크 조건에서는 전파와 후속 작업이 일시적인 분기를 해결한다. [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain]

Full Node는 총작업량이 가장 큰 유효 분기를 선택하며 이 양을 chainwork라고 부른다. 블록 작업량은 채굴자가 실제로 시도한 횟수가 아니라 목표값에서 도출된다. 따라서 가장 긴 체인은 반드시 블록 수가 가장 많다는 뜻이 아니라 작업량이 가장 크다는 뜻이다. [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — Chainstate validation]

정직한 작업량이 과반이고 블록 전파가 적절하다고 가정하면 승인 깊이가 깊어질수록 덮어쓰기 위험이 줄어든다. 공격자는 경쟁 체인을 따라잡아야 한다. 승인은 수학적 불가역성이 아니며 임의의 공격 모델이나 피해자 격리를 해결하지 못한다. [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [The Bitcoin Backbone Protocol]

mainnet에서는 과거 타임스탬프를 바탕으로 2016블록마다 목표값을 다시 계산하며 평균 10분당 한 블록을 지향한다. 조정은 해시레이트 변화의 장기적 영향을 완화하지만, 각 블록의 정확한 간격이나 채굴자 중단에 대한 즉각적인 반응을 보장하지 않는다. [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain]

블록 보조금과 수수료는 받아들여진 이력의 연장을 보상한다. 해시레이트 과반은 유효 블록을 재구성하거나 거래를 검열할 수 있지만 Full Node에 무효 서명 수락, 발행 규칙 위반, 권한 없는 타인 자금 지출을 강제할 수는 없다. 50% 미만에서도 공격 위험은 존재한다. [Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — Chainstate validation]

안전성과 진행성은 공격자의 작업량 비율, 충분히 빠른 전파, 정직한 검증에 달려 있다. 이클립스 공격과 네트워크 분리는 연결 구조의 중요성을 보여 준다. 해시레이트 비율만으로는 완전한 위협 모델이 되지 않는다. [The Bitcoin Backbone Protocol]

고전적 BFT는 보통 알려진 참여자가 명시적인 장애 한도와 시간 가정 아래 투표로 확정한다. 나카모토 합의는 개방된 참여, 작업량에 따른 가중치, 확률적 최종성을 갖는다. 이는 단순히 OM이나 PBFT를 구현한 것이 아니라 모델을 바꾼 것이다. [The Bitcoin Backbone Protocol] [The Byzantine Generals Problem] [Bitcoin Optech — Consensus changes]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Bitcoin, Proof of Work, 난이도 조정, 합의 규칙, 비트코인 채굴, Full Node. 다음 항목에서도 이 글을 참조합니다 Byzantine Generals Problem, Sybil attack, Selfish mining.

DOC · 001Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System1차 출처 ↗DOC · 002Bitcoin Developer Guide — Block Chain문서 ↗DOC · 003Bitcoin Core v29.0 — Chainstate validation문서 ↗DOC · 004The Bitcoin Backbone Protocol1차 출처 ↗DOC · 005The Byzantine Generals Problem1차 출처 ↗DOC · 006Bitcoin Optech — Consensus changes문서 ↗
1차 출처 우선 · 투자 조언이 아닙니다