
Paperis 아티클
신뢰 없이 합의하기 — 서로 못 믿는 참여자들이 하나의 장부에 동의하는 법
관리자 없이 서로 못 믿는 컴퓨터들이 하나의 장부에 동의하는 원리를 비잔틴 장군 문제와 FLP 불가능성에서 출발해 쌓고, '확정됐다'는 말이 계열마다 다른 뜻인 이유까지 봅니다.
신뢰 없이 합의하기 — 서로 못 믿는 참여자들이 하나의 장부에 동의하는 법
관리자 없이 하나의 답을 정하는 일
내 은행 잔고가 얼마인지는 은행이 적어 둔 장부가 말해 줍니다. 장부도 하나이고 그 장부를 지키는 관리자도 하나이니, 무엇이 맞는 기록인지 궁금하면 관리자에게 물으면 됩니다.
관리자가 없으면 사정이 달라집니다. 수천 대의 컴퓨터가 장부 사본을 하나씩 들고 있고, 누구도 다른 누구를 특별히 믿지 않으며, 그중 일부는 일부러 거짓말을 할 수도 있다고 해 보겠습니다. 이들이 지금 장부에 무엇이 적혀 있는지에 같은 답을 내야 합니다. 「블록체인이란 무엇인가」는 이 일을 합의라고 불렀습니다. 서로를 특별히 믿지 않는 여럿이 지금 장부에 무엇이 적혀 있는가에 하나의 답을 정하는 일입니다. 합의 프로토콜(consensus protocol)은 그 답에 이르려고 참여자들이 주고받을 메시지와 따를 규칙을 미리 정해 둔 절차입니다.
이 문제는 블록체인보다 훨씬 오래됐습니다. 데이터를 여러 서버에 복제해 두는 분산 데이터베이스는 오래전부터 Paxos, Raft, 비잔틴 결함 허용 같은 합의 프로토콜로 사본들을 서로 맞춰 왔습니다. 어느 프로토콜을 고르느냐는 늘 성능과 일관성과 신뢰성 사이에서 무엇을 얻고 무엇을 내줄지 정하는 일이었습니다 (DOI: 10.36227/techrxiv.175606742.20986239/v1 — 동료심사 전 프리프린트). 은행 전산망도, 항공기 제어 시스템도, 우리가 매일 쓰는 클라우드 서비스도 이 문제를 풀며 돌아갑니다.
블록체인은 이 오래된 문제에 조건을 하나 더 붙였습니다. 아무나 참여할 수 있게 한 것입니다. 합의 알고리즘은 중앙의 권위에 기대지 않고 탈중앙 시스템 안에서 신뢰와 무결성을 지키는 장치이고, 그 설계는 하나의 정답으로 모이지 않습니다 (DOI: 10.63345/sjaibt.v2.i4.102).
이 글은 가격도, 투자도, 어느 코인이 옳은지도 다루지 않고, 서로 못 믿는 참여자들이 어떻게 하나의 기록에 동의하는가라는 원리만 봅니다. 이 분야의 논문을 펼쳤을 때 첫 문단에서 길을 잃지 않을 만큼의 토대가 목표입니다.
합의가 지켜야 할 두 가지와 견뎌야 할 고장
합의 프로토콜에 바라는 것은 크게 두 가지입니다. 하나는 나쁜 일이 일어나지 않는 것이고, 다른 하나는 좋은 일이 언젠가는 일어나는 것입니다.
안전성(safety)은 정직한 참여자들이 서로 어긋나는 결론에 이르지 않는다는 성질입니다. 같은 돈이 두 번 쓰이는 이중지불, 곧 「블록체인이란 무엇인가」가 말한 같은 것을 두 번 쓰는 일을 막는 것도 결국 안전성의 문제입니다. 활성(liveness)은 시스템이 영원히 멈춰 서지 않고 언젠가는 무언가를 결정한다는 성질입니다. 아무것도 결정하지 않는 시스템은 모순된 결론도 내지 않으니 안전성은 지키지만, 쓸모가 없습니다. 그래서 둘을 함께 요구합니다.
참여자가 고장 나는 방식에도 두 종류가 있습니다. 크래시 결함(crash fault)은 참여자가 그냥 멈추거나 응답을 그치는 고장입니다. 비잔틴 결함(Byzantine fault)은 고장 난 참여자가 멈추는 데서 그치지 않고 아무렇게나 행동하는 고장입니다. 거짓말을 하고, 상대마다 다른 말을 하고, 규칙을 어기고, 다른 악의적 참여자와 짜고 움직일 수도 있습니다. 이런 제멋대로의 행동은 소프트웨어 버그에서도, 운영자의 실수에서도, 악의적 공격에서도 나옵니다 (DOI: 10.1145/571637.571640).
아무나 참여하는 열린 네트워크에는 문제가 하나 더 붙습니다. 「블록체인이란 무엇인가」가 정의한 시빌 공격, 곧 가짜 신원을 대량으로 만들어 머릿수를 부풀리는 공격입니다. 한 사람이 신원 수천 개를 내세워 다수인 척하면, 그 가짜 신원들이 한꺼번에 비잔틴 결함처럼 움직일 수 있습니다. 그래서 허가 없이 누구나 들어오는 공개 네트워크는 시빌 공격에 견디는 방식으로 다음 블록을 낼 참여자를 골라야 합니다 (DOI: 10.3390/a16010034).
합의는 비잔틴 결함을 견디면서 안전성과 활성을 함께 지키는 일이고, 열린 네트워크라면 여기에 시빌 공격까지 막아야 합니다. 뒤에서 볼 설계들은 모두 이 요구를 어떻게 나눠 지느냐에서 갈립니다.
배신자가 섞인 장군들 — 비잔틴 장군 문제
비잔틴 장군 문제(Byzantine Generals Problem)는 일부 참여자가 마음대로 배신할 수 있을 때 나머지가 하나의 결정에 이를 수 있는가를 장군들의 이야기로 정리한 물음입니다. 여러 장군이 한 도시를 둘러싼 채 전령을 주고받아 공격할지 후퇴할지를 정해야 합니다. 그런데 장군 가운데 일부가 배신자라서, 어떤 장군에게는 공격하자고 하고 다른 장군에게는 후퇴하자고 할 수 있습니다. 충직한 장군들이 서로 다른 결정을 내리면 공격은 실패합니다.
이 문제는 두 장군 문제를 일반화한 것이고, 이후 무수한 합의 알고리즘 연구가 이 문제에 답하려는 시도로 이어졌습니다 (DOI: 10.3390/s23052739). 초기의 비잔틴 결함 허용 알고리즘들은 문제를 풀긴 했지만 주고받는 메시지가 불필요하게 많아 참여자를 늘리기 어려웠습니다 (DOI: 10.55677/craj/03-2025-vol02i07).
비잔틴 결함 허용(BFT)은 배신자가 섞여 있어도 결과가 흔들리지 않게 만드는 설계입니다. 누가 배신자인지는 끝내 몰라도 됩니다. 배신자의 수가 정해 둔 비율을 넘지 않기만 하면 됩니다. 그 비율이 얼마인지는 뒤의 BFT 계열에서 다시 나옵니다.
메시지가 언제 올지 모르는 네트워크 — FLP 불가능성
배신자가 적기만 하면 언제나 합의에 이를 수 있을 것 같지만, 네트워크가 어떤 성질을 갖느냐에 따라 답이 달라집니다.
비동기 네트워크(asynchronous network)는 메시지가 언제 도착할지 아무 상한도 보장되지 않는 네트워크입니다. 반대로 동기 모형은 정직한 참여자 사이의 메시지가 미리 알려진 시간 Δ 안에 반드시 도착한다고 가정합니다 (DOI: 10.1287/stsy.2022.0031). 그 사이에 부분 동기 모형이 있습니다. 한동안은 메시지가 늦어질 수 있지만, 언젠가부터는 상한 안에 도착한다고 보는 모형입니다.
FLP 불가능성(FLP impossibility)은 비동기 네트워크에서는 단 하나의 참여자(프로세스)만 고장 나도 모든 합의 프로토콜에 끝내 결정을 내리지 못할 가능성이 남는다는 증명입니다. 1985년 『Journal of the ACM』에 실린 이 증명은, 반대로 동기 시스템에서는 이름난 비잔틴 장군 문제에서조차 해법이 알려져 있다고 적습니다 (DOI: 10.1145/3149.214121). 고장이 그저 멈추는 크래시여도 이 불가능성은 그대로입니다 (arXiv:1502.02538 — 동료심사 전 프리프린트). 이름은 저자 세 사람 Fischer·Lynch·Paterson의 머리글자에서 왔습니다 (arXiv:cs/0209014 — 동료심사 전 프리프린트).
벽은 비동기라는 조건에서 나옵니다. 메시지가 언제 올지 상한이 없으면, 응답이 없는 참여자가 멈춘 것인지 그저 느린 것인지를 원리적으로 가릴 수 없습니다. 멈춘 참여자를 계속 기다리면 결정이 영영 나지 않고, 느린 참여자를 빼고 결정하면 뒤늦게 도착한 말과 어긋날 수 있습니다.
벽을 돌아가는 네 갈래
FLP가 막는 것은 세 조건을 한꺼번에 갖춘 합의입니다. 여기서 결정론적이란 무작위성을 쓰지 않아 같은 상황에서 늘 같은 선택을 한다는 뜻입니다. 참여자 하나라도 고장 날 수 있을 때, 결정론적이고 비동기에서 돌고 항상 끝나는 합의는 불가능하지만, 세 조건 중 하나를 놓으면 길이 열립니다. 발표 이후 20년간의 연구는 기본 모형을 넓혀 이 결과를 돌아갔고, 그 방법은 네 가지였습니다. 무작위성을 쓰거나, 타이밍 가정을 더하거나, 실패 감지기를 붙이거나, 기본 모형보다 강한 동기화 수단을 쓰는 것입니다 (arXiv:cs/0209014 — 동료심사 전 프리프린트).

실패 감지기는 어느 참여자가 멈췄는지에 대한 정보를 알려 주는 장치입니다. 그 정보가 때로 틀려도, 감지기가 충분히 강력하면 크래시를 견디는 합의를 풀 수 있습니다 (arXiv:1502.02538 — 동료심사 전 프리프린트).
타이밍 가정은 메시지가 최대 Δ 안에 도착한다고 못 박는 방식입니다. 이 가정에는 대가가 있습니다. 가장 긴 사슬을 따르는 프로토콜의 안전 보장은 Δ가 클수록 나빠지는데, 현실 네트워크의 지연은 이따금 평소보다 훨씬 커집니다. 최악의 지연에 맞춘 보장은 그래서 지나치게 비관적일 수 있습니다. 지연을 확률분포로 다루는 모형은 지연이 이따금 매우 커지는 네트워크에서 기존보다 나은 보안 보장을 이끌어 냈습니다 (DOI: 10.1287/stsy.2022.0031).
무작위성 쪽에서는 적대자가 메시지의 도착 순서를 고르는 대신 배달이 무작위 순서를 따른다고 가정합니다. 그러면 표준 비동기 모형은 물론 부분 동기 모형에서도 불가능한 확률적 보장이 가능해집니다 (arXiv:2502.09116 — 동료심사 전 프리프린트).
이론과 실무는 여기서 엇갈립니다. 비동기 네트워크용 합의 프로토콜은 대체로 복잡하고 비효율적이어서, 실제 시스템은 동기 프로토콜에 기대는 경우가 많습니다. 이 진단을 내린 프리프린트는 위층이 마치 동기 네트워크 위에 있는 것처럼 움직이게 해 주는 장치를 제안하고, 멈추기만 하는 참여자를 상대하는 비동기 합의가 Paxos 계열보다 단순하고 견고할 수 있다고 주장합니다 (arXiv:1907.07010 — 동료심사 전 프리프린트). 이론에서 더 강한 모형이 실무에서 늘 이기지는 않습니다.
계산을 걸고 투표권을 사는 작업증명
이제 열린 네트워크에서 이 문제를 푸는 세 갈래를 봅니다. 갈래마다 투표권을 묶는 곳이 다르고, 내주는 것도 다릅니다.
작업증명은 「블록체인이란 무엇인가」에서 본 대로, 다음 칸(블록)을 사슬에 붙이려면 봉인을 맞히는 계산을 먼저 치르게 하는 방식입니다. 나카모토 합의(Nakamoto consensus)는 비트코인이 쓰는 합의 방식으로, 작업증명을 투표 수단으로 삼아 정직한 채굴자들이 저마다 아는 가장 긴 사슬을 이어 가게 하는 방식입니다. 설계는 단순하지만, 어느 시점에든 계산력의 과반을 정직한 참여자가 쥐고 있다는 가정 아래 의미 있는 보안 보장을 얻습니다. 망 전체의 계산력이 시간에 따라 크게 출렁여도 이 성질은 유지됩니다 (arXiv:2505.14891 — 동료심사 전 프리프린트).
작업증명이 시빌 공격을 막는 이치도 그 첫걸음에 있습니다. 신원은 공짜로 늘릴 수 있어도 계산은 공짜로 늘릴 수 없습니다. 21,799편의 기록을 걸러 낸 체계적 문헌 검토는 시빌 공격을 강하게 견디는 방식이 흔히 작업증명이나 지분증명의 원리를 따랐고, 허가 없는 환경에서 시빌 공격을 견딜 수 있는 근본 방식은 몇 안 된다고 결론짓습니다. 평판 시스템이나 현실의 신원에 기대는 방식은 견디는 힘이 제한적이었습니다. 같은 검토는 공격받을 틈이 작은 시스템이라면 더 약한 보호로도 충분한 새 방식이 많다는 점도 함께 적습니다 (DOI: 10.3390/a16010034).
대가도 잘 알려져 있습니다. 에너지 소모, 확장성의 병목, 채굴 풀로의 권력 집중입니다 (DOI: 10.63345/sjaibt.v2.i4.102). 계산 대신 다른 자원을 걸면 되지 않을까 싶지만, 자원을 바꾸면 보안 성질도 함께 바뀝니다. 저장 공간을 확보해 두었음을 증명하는 공간증명이 지속 가능한 대체재로 제안돼 왔습니다. 그러나 참여하는 자원이 수시로 늘고 주는 조건, 곧 동적 가용성 아래서 안전한 가장 긴 사슬 프로토콜을 공간증명으로 만드는 방법은 알려져 있지 않습니다. 한 프리프린트는 추가 가정 없이는 그런 프로토콜이 존재하지 않음을 증명하고, 이중지불에 필요한 갈래 길이의 하한을 수로 정했습니다 (arXiv:2505.14891 — 동료심사 전 프리프린트).
지분을 걸고 투표권을 사는 지분증명
지분증명은 「장부에 한 줄 적을 권리」의 말로 계산 대신 장부에 가진 자기 몫을 증명해 합의에 이르는 방식입니다. 이 방식에서는 프로토콜이 누구에게 어떤 역할을 맡길지를 장부 자체에 기록된 지분 분포에 근거해 정해서 시빌 공격을 막습니다. 가짜 신원을 늘리는 것만으로는 지분 총량이 늘지 않으니 차례를 더 얻지 못합니다. 한 주체가 풀을 여럿 세우는 식으로 투표권이 쏠리는 문제는 「블록체인은 정말 탈중앙인가」가 따라갑니다. 다만 프로토콜이 쓰는 지분 분포는 완전히 최신일 수 없습니다. 안전성이 증명된 주요 지분증명 제안들을 조사해 보니, 프로토콜이 쓰는 분포와 지금의 분포 사이에 며칠의 시차가 있었습니다 (arXiv:2001.04187 — 동료심사 전 프리프린트). 투표권이 며칠 전 장부를 기준으로 나뉜다는 뜻입니다.
「장부에 한 줄 적을 권리」가 따라간 경제 모형에서는 보상을 충분히 절제해 잡으면 가능한 한 빨리 합의에 이르는 균형이 있고, 사슬이 갈라진 채 계속 남는 균형은 배제됩니다. 작업증명과 달리 지분증명은 검증자, 곧 다음 블록을 내고 확인하는 참여자가 동시에 지분을 가진 이해관계자일 것을 요구하기 때문입니다 (DOI: 10.1093/rfs/hhaa075). 사슬을 망가뜨리면 자기가 건 몫도 함께 망가집니다.
슬래싱(slashing)은 규칙을 어긴 검증자가 걸어 둔 지분을 몰수하는 처벌 장치입니다. 지분증명의 보안을 공격자가 치르는 비용과 공격자가 얻는 이익으로 나눠 따지는 틀이 있고, 그 틀을 세운 연구는 몰수한 돈을 나눠 주는 보험 장치를 제안했습니다. 목표는 정직하게 거래한 사람이 결코 돈을 잃지 않는다는 강한 암호경제적 안전성입니다 (arXiv:2401.05797 — 동료심사 전 프리프린트).
실제 전환의 결과도 재어져 있습니다. 이더리움은 2022년 9월 지분증명으로 넘어갔고, 그 전후를 분석한 연구에 따르면 에너지 소비가 99.98% 줄었고 연속된 블록 사이의 시간이 12초로 일정해졌습니다 (DOI: 10.3390/commodities2020006). 앞의 비교 연구는 지분증명이 에너지 소비를 크게 줄이는 대신 부와 검증자가 한쪽으로 쏠릴 우려를 낳는다고 적습니다 (DOI: 10.63345/sjaibt.v2.i4.102).
지분증명에도 고유한 약점이 있습니다. 몰수로 처벌할 수 없는 장거리(long-range) 안전성 공격, 곧 아주 오래전 지점에서 갈라져 나온 갈래로 장부를 다시 쓰려는 공격에 노출됩니다. 활성을 지키는 힘이 약하고, 토큰 값이 낮을 때는 처음 안전을 세우기가 어렵습니다. 한 프리프린트는 이 약점들이 외부의 신뢰 근원이 없는 모든 지분증명 사슬에 내재한다고 주장하고, 바깥 사슬에 중간 기준점, 곧 「장부에 한 줄 적을 권리」가 말한 「여기까지는 되돌리지 않는다」는 표시를 남겨 이를 푸는 프로토콜을 제안했습니다 (arXiv:2207.08392 — 동료심사 전 프리프린트).
정족수 투표로 그 자리에서 확정하는 BFT 계열
세 번째 갈래는 고전 분산시스템에서 곧장 이어집니다. 여기서는 노드, 곧 장부 사본을 들고 다른 참여자와 주고받는 컴퓨터를 복제본(replica)이라고 부릅니다. 정족수(quorum)는 결정을 확정하기에 충분하다고 미리 정해 둔 참여자 수이고, BFT 계열은 정족수를 채우는 찬성 투표가 모이면 그 자리에서 결정을 확정합니다.
2002년에 정리된 대표 알고리즘 PBFT는 인터넷처럼 비동기인 환경에서도 안전합니다. 고장 난 복제본을 미리 되살리는 장치 덕분에, 짧은 취약 구간 안에서 고장 난 복제본이 전체의 1/3 미만이기만 하면 시스템이 도는 동안 몇 번의 고장이든 견딜 수 있다고 보고합니다 (DOI: 10.1145/571637.571640). 부분 동기 시스템에서 고장 난 복제본 f개를 견디려면 보통 3f + 1개의 노드가 필요합니다 (arXiv:2205.08938 — 동료심사 전 프리프린트).
3분의 1이라는 수는 정족수가 서로 겹쳐야 한다는 데서 나옵니다. 서로 다른 두 결정이 각각 정족수의 찬성을 받았다면, 두 정족수는 반드시 몇몇 참여자에서 겹칩니다. 그 겹친 자리에 정직한 참여자가 적어도 한 명 남아 있어야, 그가 두 결정 모두에 찬성할 리 없으니 모순된 확정이 막힙니다. 정족수를 전체의 3분의 2보다 크게 잡으면 두 정족수는 전체의 3분의 1보다 많은 참여자에서 겹치고, 배신자가 3분의 1 미만이면 그 겹친 자리에 정직한 참여자가 반드시 남습니다. 그렇다고 정족수를 무작정 크게 잡을 수는 없습니다. 배신자가 투표를 거부해도 정족수는 모여야 활성이 지켜지므로, 정족수는 배신자를 뺀 나머지만으로 채울 수 있는 크기여야 합니다. 부분 동기(partial synchrony)나 비동기 네트워크에서 정족수로 확정하는 설계가 견디는 배신자의 상한이 3분의 1인 것은, 배신자가 빠져도 정족수가 모여야 하고 두 정족수의 겹친 자리에는 정직한 참여자가 남아야 하기 때문입니다.

이 갈래의 장점은 확정된 블록이 그 자리에서 확정된다는 것이고, 대가는 통신량입니다. 초기 알고리즘은 메시지 수가 노드 수의 제곱으로 늘어 참여자를 늘리기 어려웠습니다. 이를 덜려는 구조들 가운데 비동기 프로토콜들은 견고함을 얻는 대신 낮은 지연을 내줍니다 (DOI: 10.55677/craj/03-2025-vol02i07). PBFT는 사설·컨소시엄 블록체인에서는 잘 작동하지만 대규모 공개망에서는 확장성이 부족하다는 것이 비교 연구의 진단입니다 (DOI: 10.63345/sjaibt.v2.i4.102).
그 뒤의 설계들은 이 벽을 여러 방향에서 밀어냈습니다. 명령을 복제하는 일은 나눠 맡기고 순서를 정하는 일만 한곳에 모으는 방식은, 여러 지역에 흩어진 300개 복제본 배치에서 기존보다 처리량이 약 3배, 지연이 약 50% 나았다고 보고했습니다 (DOI: 10.14778/3538598.3538599). 값비싼 3단계 확정 절차를 건너뛰고 일단 응답부터 하는 투기적 방식도 있습니다 (DOI: 10.1145/1323293.1294267). 블록들이 한 줄이 아니라 그물처럼 서로를 가리키는 구조(DAG) 위에 세운 비동기 BFT는 광역망에서 1초 미만의 지연으로 초당 10만 건 넘게 처리했다고 보고합니다 (arXiv:2410.08670 — 동료심사 전 프리프린트).
세 갈래가 거는 것과 내주는 것
세 갈래는 같은 문제에 서로 다른 것을 걸었습니다.
| 갈래 | 거는 것 | 시빌 공격을 막는 근거 | 내주는 것 |
|---|---|---|---|
| 작업증명 | 치른 계산 | 계산은 공짜로 늘릴 수 없는 장부 바깥의 비용 | 에너지, 확장성의 병목, 채굴 풀로의 쏠림 |
| 지분증명 | 장부에 적힌 지분(어기면 몰수) | 신원을 늘려도 지분 총량은 그대로 | 며칠 늦은 지분 분포, 장거리 공격 같은 고유 약점, 부와 검증자가 쏠릴 우려 |
| BFT 계열 | 정족수를 이루는 참여자의 표 | 허가형에서는 참여자를 미리 정하고, 지분증명 위에서는 표를 지분에 묶음 | 초기 설계에서 노드 수의 제곱으로 불어난 통신량, PBFT의 대규모 공개망 확장성 한계 |
BFT 계열은 머릿수로 정족수를 세므로, 누구나 신원을 찍어 낼 수 있는 열린 네트워크에서는 그대로 쓰기 어렵습니다. BFT는 높은 처리량과 최종성 덕분에 참여자가 정해진 최근 허가형 블록체인의 핵심이 됐고 (arXiv:2205.08938 — 동료심사 전 프리프린트), 많은 지분증명 결제 시스템은 지분을 건 검증자들의 정족수 투표에 보안을 기댑니다 (arXiv:2503.16783 — 동료심사 전 프리프린트). 허가 없는 열린 네트워크에서 시빌 공격을 강하게 견디려면 투표권을 희소한 것에 묶어야 하고, 그 희소한 것이 무엇이냐에 따라 내주는 것이 정해집니다.
「확정됐다」는 말이 계열마다 다른 뜻 — 최종성
이 분야에서 가장 자주 오해되는 개념이 최종성입니다. 최종성(finality)은 한 번 기록된 거래가 이제 뒤집히지 않는다고 볼 수 있는 상태이고, 「이 거래는 확정됐다」는 말이 가리키는 것입니다. 「블록체인이란 무엇인가」는 같은 상태를 확정성이라 부르고, 작업증명 장부에서 그것이 기다리는 시간과 맞바꾸는 확률이며 그 확률은 계산력이 절반 넘게 한 손에 모이지 않았다는 조건 위에 서 있다고 적었습니다. 「확정됐다」는 말의 뜻이 계열마다 다릅니다.
나카모토 합의에서는 어떤 블록이 사슬 안에 더 깊이 묻힐수록 그 블록에 대한 확신이 커집니다. BFT 상태기계 복제에서는 일단 커밋된 블록이 고정된 저항 임계치를 갖는 안전한 블록입니다 (arXiv:2101.03715 — 동료심사 전 프리프린트). 상태기계 복제(state machine replication, SMR)는 모든 복제본이 같은 명령을 같은 순서로 실행해 같은 상태를 유지하게 하는 방식이고, 커밋은 정족수의 찬성으로 블록을 확정해 기록하는 일입니다. 고정된 저항 임계치란 배신자가 정해진 비율, 이를테면 3분의 1을 넘지 않는 한 그 블록이 뒤집히지 않는다는 뜻입니다.
이 차이는 실무에서 크게 갈립니다. 확률적 최종성(probabilistic finality)에서는 뒤집힐 확률이 줄어들 뿐 정확히 0이 되는 순간이 오지 않고, 결정론적 최종성(deterministic finality)에서는 배신자가 정해진 비율을 넘지 않는 한 정족수가 모인 순간 확정이 끝납니다. 나카모토 계열이 앞의 것이고 BFT 계열이 뒤의 것입니다. 합의를 결정론적 합의와 확률적 합의로 나누는 것은 이 분야의 표준적인 정리 방식이기도 합니다 (DOI: 10.54097/hset.v47i.8224).

두 모양 사이가 막혀 있지는 않습니다. 이 대비를 정리한 그 프리프린트는 부분 동기 BFT 상태기계 복제에 나카모토식으로 점점 커지는 보장을 얹었습니다. 네트워크가 순조롭고 배신자가 적은 구간에는 보장이 점점 커지고, 그 구간에 보장이 쌓인 커밋 블록은 구간이 지난 뒤에도 1/3을 넘어 최대 2/3의 배신까지 견딜 수 있습니다 (arXiv:2101.03715 — 동료심사 전 프리프린트).
현실 시스템은 둘을 섞기도 합니다. 이더리움은 지분증명으로 넘어가면서 BFT에 가까워졌지만 나카모토식도 함께 남겨, 참여자들이 블록을 확정하려 애쓰는 동안 사슬이 나무 모양으로 갈라져 자랄 수 있는 복잡한 구조가 됐습니다. 이를 분석한 프리프린트는 활성을 위협하는 공격들을 분류했고, 이더리움 커뮤니티가 그중 일부를 고친 뒤에도 고친 프로토콜에서 새 공격을 찾아냈습니다. 결론은 안전성은 성립하지만 활성은 확률적으로만 보장된다는 것이었습니다 (arXiv:2210.16070 — 동료심사 전 프리프린트).
최종성을 앞당기려는 연구도 이어지고 있습니다. 2026년의 한 프리프린트는 DAG 기반 BFT에서 공식 커밋 전에도 결과가 안전하다고 볼 수 있는 조건을 찾아 거래를 미리 확정하고, 최신 비동기 BFT 프로토콜보다 지연을 최대 65%까지 줄였다고 보고합니다 (arXiv:2604.03974 — 동료심사 전 프리프린트).
흔한 오해 네 가지
오해 1 — 「확인 몇 번이면 절대 안전하다.」 확인 횟수는 내 거래가 담긴 블록 뒤로 블록이 몇 개 더 붙었는지입니다. 확률적 최종성 계열에서 확인 횟수는 되돌려질 확률을 낮추는 손잡이이고, 그 수만 넘기면 안전해지는 문턱은 없습니다. 2026년의 한 프리프린트는 정해진 확인 깊이에서 이중지불 공격이 성공할 확률을 식 하나로 정확히 계산하고, 필요한 확인 깊이가 공격자가 쥔 지분의 비율과 프로토콜 설정값에 따라 달라짐을 보였습니다. 저자들은 이 결과가 자신들이 세운 해석 모형에 한정되고, 갈래가 늦게 정리되는 경우나 Ouroboros Praos의 실제 갈래 선택·최종성 규칙까지는 아직 다루지 못한다고 밝힙니다 (DOI: 10.20944/preprints202604.0694.v1 — 동료심사 전 프리프린트).
이 걱정은 실제로 돌아가는 프로토콜의 설정값에서도 계산됩니다. 재구성은 이미 붙은 블록 몇 개를 다른 갈래로 갈아 끼워 그 안의 거래를 지우는 일입니다. 2020년의 한 프리프린트에 따르면, 당시 Tezos의 지분증명 프로토콜에서는 지분의 40%를 쥔 공격자가 20블록짜리 악의적 재구성을 평균 하루 한 번꼴로 실행할 수 있었고, 지분이 40%를 넘으면 성공 확률이 비례보다 빠르게 늘었습니다. 그 공격자는 공격 기회가 언제 올지 미리 알 수도 있었습니다. 같은 연구는 프로토콜 설정값을 고치면 이 기회를 100분의 1로 줄일 수 있음도 보였습니다. 대신 깊은 재구성을 막는 설정과, 이중지불 없이도 이익이 나는 짧은 재구성인 셀피시 마이닝을 막는 설정이 서로 부딪쳤습니다 (arXiv:2009.05413 — 동료심사 전 프리프린트).
오해 2 — 「지분증명은 에너지만 아낀 작업증명이다.」 에너지가 준 것은 사실이지만(앞에서 본 99.98%), 두 방식은 보안이 기대는 가정 자체가 다릅니다. 지분증명은 보상이 충분히 절제돼 있으면 검증자가 이해관계자여야 한다는 요구로 사슬이 갈라진 채 남는 균형을 배제하고 (DOI: 10.1093/rfs/hhaa075), 장부 안의 지분 분포로 시빌 공격을 막습니다 (arXiv:2001.04187 — 동료심사 전 프리프린트). 작업증명은 장부 바깥의 물리적 비용으로 막습니다. 처벌 방식도 다릅니다. 작업증명에는 슬래싱에 해당하는 장치가 없습니다.
어느 쪽이 더 안전한지는 모형과 설정값에 달려 있습니다. 두 방식의 균형 보안을 비교하는 경제 모형은 작업증명이 더 안전한 조건과 지분증명이 더 안전한 조건을 일반적으로 이끌어 냈습니다. 그리고 실제 값을 넣으면, 다른 조건이 같을 때 지분증명 쪽이 더 안전하고 그 우위는 큰 사슬에서 특히 뚜렷하다고 보고합니다 (DOI: 10.1093/rfs/hhaf013). 이는 특정 모형과 설정값 아래의 결론이라, 앞에서 본 장거리 공격 같은 지분증명 고유의 약점 (arXiv:2207.08392 — 동료심사 전 프리프린트)과 나란히 읽어야 합니다.
오해 3 — 「탈중앙이면 저절로 안전하다.」 현대 블록체인 다섯 개를 통제된 환경에 띄우고 고장을 일부러 넣어 결함 허용을 재 본 프리프린트가 있습니다. 다섯 가운데 하나를 뺀 나머지는 네트워크의 작은 일부만 고장 나도 크게 흔들렸고, 일부는 한 곳에서 잠깐 난 고장에서 회복하지 못했습니다 (arXiv:2409.13142 — 동료심사 전 프리프린트). 흩어져 있다는 사실만으로 결함 허용이 보장되지는 않습니다.
문제는 구현에만 있지 않습니다. 2019년의 한 프리프린트는 당시 블록체인이 쓰던 비잔틴 합의 해법 가운데 형식 검증된 것을 알지 못한다며, 기껏해야 「손으로」 정확성이 증명돼 있을 뿐이라고 지적하고, 취약점 여섯 가지를 들며 그중 둘은 새 반례라고 밝혔습니다. 같은 연구는 모든 경우를 기계로 따져 보는 도구인 모델 체커로 한 블록체인의 BFT 구성요소 두 개를 실제로 형식 검증했습니다. 형식 검증은 「스마트 컨트랙트란 무엇인가」의 말로 지켜야 할 성질을 수학의 말로 적고 그 성질을 지키는지를 증명으로 따지는 방법입니다. 저자들은 합의 프로토콜의 형식 검증이 이제 비교적 간단하면서도 반드시 필요한 일이 됐다고 결론짓습니다 (arXiv:1909.07453 — 동료심사 전 프리프린트).
배포된 BFT 프로토콜들의 보안 모형은 학계에서 통용되는 모형과 조금씩 다르기도 합니다. 적대자가 네트워크의 메시지 배달 순서를 완전히 통제할 수 있다면, 이더리움 2.0과 폴카닷의 BFT 프로토콜 어느 것도 동기 네트워크에서조차 활성을 이루지 못합니다. 다만 저자들은 실제 적대자가 인터넷 규모에서 배달 순서를 그렇게 통제할 수 있는지는 분명하지 않다고 덧붙입니다 (DOI: 10.1145/3538227). 종이 위의 증명, 배포된 구현, 실제 네트워크 사이에는 언제나 틈이 있습니다.
오해 4 — 「완벽한 설계가 어딘가에 있다.」 탈중앙성·보안·확장성을 동시에 최대로 이룰 수 없다는 이른바 블록체인 트릴레마를, 세 성질을 형식으로 정의한 뒤 귀류법과 계산복잡도 분석으로 논증한 연구가 있습니다 (DOI: 10.3390/app15010019). 이런 형식화는 세 성질을 어떻게 정의하느냐에 결과가 크게 좌우되므로 그 자체로 다툼의 대상입니다. 그래도 모든 것을 다 갖춘 설계가 어딘가에 있으리라는 기대는 접어 두는 편이 낫습니다. 합의 설계는 하나의 정답을 찾는 일보다 무엇을 내줄지 고르는 일에 가깝습니다.
논문 첫머리에서 모형을 먼저 찾기
이 글이 쌓은 토대는 세 문장으로 줄어듭니다. 합의의 어려움은 거짓말하는 참여자(비잔틴 결함)와 언제 도착할지 모르는 메시지(비동기)에서 옵니다. 열린 네트워크는 여기에 시빌 공격이 더해지므로, 투표권을 계산이든 지분이든 희소한 것에 묶어야 합니다. 「확정됐다」는 말의 뜻은 계열마다 다르고, 확률적 최종성과 결정론적 최종성을 혼동하면 그 뒤의 판단이 모두 어긋납니다.
더 읽을 곳을 갈래별로 남깁니다.
- 전체 지형: 합의 알고리즘의 최근 이정표를 에너지 효율·탈중앙성·보안의 맞바꿈으로 정리한 리뷰 (DOI: 10.1186/s42400-023-00163-y), 계보를 진화 계통수로 분류한 연구 (DOI: 10.3390/s23052739).
- BFT 계열: 고전부터 최신까지 개선 방법별로 분류한 서베이 (DOI: 10.3390/electronics12183801)와, 배포된 프로토콜과 학계 모형의 간극을 짚은 분석 (DOI: 10.1145/3538227).
- 확장성: 장부를 여러 조각(샤드)으로 나눠 따로 처리하는 샤딩을 지분증명 위에서 분석한 연구. 노드 4,000개·샤드 10개·샤드가 견디는 배신자 비율 33% 조건에서 실패까지 약 4,000년으로 계산했습니다 (DOI: 10.3390/s23052819).
- 더 현실적인 모형: 정직한 참여자와 비잔틴 참여자에 더해, 이익을 좇아 움직이는 합리적 참여자까지 넣은 2025년의 프리프린트. 부분 동기에서 합리적 참여자와 비잔틴 참여자를 합쳐 전체의 1/3을 넘으면 정족수 기반 프로토콜이 상태기계 복제를 이룰 수 없음을 증명했습니다. 그다음 메시지 지연의 상한 Δ를 가정하면, 확정 규칙만 바꿔 어떤 정족수 기반 상태기계 복제도 비잔틴 1/3과 합리적 1/3까지 견디게 만들 수 있음을 보였습니다. 이더리움과 코스모스를 실측해 보니 이 설계에 필요한 5/6 참여 문턱이 블록의 99% 이상에서 채워졌습니다 (arXiv:2503.16783 — 동료심사 전 프리프린트).
투표권이 실제로 몇 곳에 모이는지, 채굴 풀과 스테이크 풀이 그 분포를 어떻게 바꾸는지는 「블록체인은 정말 탈중앙인가 — 채굴 풀에서 MEV까지, 권력이 다시 모이는 자리」가 따라갑니다.
이 분야를 읽을 때 가장 쓸모 있는 습관은 논문 첫머리에서 모형을 먼저 찾는 것입니다. 네트워크는 동기인지, 부분 동기인지, 비동기인지. 고장은 크래시인지 비잔틴인지. 참여는 열려 있는지 허가제인지. 최종성은 확률적인지 결정론적인지. 이 네 답을 확인하고 나면 뒤에 이어지는 정리와 실험이 무엇에 관한 주장인지 또렷해집니다. 성능 숫자를 비교하기 전에 모형을 비교해야 그 숫자가 무엇을 말하는지 읽을 수 있습니다.
근거 논문
- "Distributed Database Systems and Consensus Protocols…" (2025) — DOI: 10.36227/techrxiv.175606742.20986239/v1 — Paxos·Raft·BFT와 분산 DB의 성능·일관성·신뢰성 트레이드오프. 동료심사 전 프리프린트(TechRxiv).
- "Consensus Algorithms Beyond Proof of Work: A Comparative Study" (2025) — DOI: 10.63345/sjaibt.v2.i4.102 — 합의는 중앙 권위 없이 신뢰·무결성을 보장하는 장치. PoW의 에너지·확장성·채굴 풀 집중 문제, PBFT는 대규모 공개망에서 확장성 부족.
- "Practical byzantine fault tolerance and proactive recovery," ACM Transactions on Computer Systems (2002) — DOI: 10.1145/571637.571640 — 비잔틴 고장의 원인(버그·운영자 실수·악의적 공격). 취약 창 안에서 복제본의 1/3 미만이 고장 나면 견딤.
- "Sybil in the Haystack: A Comprehensive Review of Blockchain Consensus Mechanisms…," Algorithms (2023) — DOI: 10.3390/a16010034 — 시빌 공격 정의와 체계적 문헌 검토(21,799편→483편). 강한 시빌 저항성은 PoW/PoS 원리뿐.
- "A Taxonomic Hierarchy of Blockchain Consensus Algorithms," Sensors (2023) — DOI: 10.3390/s23052739 — 비잔틴 장군 문제(두 장군 문제의 일반화)를 출발점으로 한 합의 알고리즘 계통 분류.
- "Byzantine Fault Tolerance in Distributed Systems: A Literature Review" (2025) — DOI: 10.55677/craj/03-2025-vol02i07 — 초기 BFT의 과도한 통신 부담, PBFT의 2차 메시지 복잡도, 비동기 프로토콜의 트레이드오프.
- "Impossibility of distributed consensus with one faulty process," Journal of the ACM (1985) — DOI: 10.1145/3149.214121 — 비동기 시스템에서 단 하나의 고장만으로도 모든 합의 프로토콜이 종료하지 못할 가능성(FLP). 동기 경우에는 해법이 알려져 있음.
- "Randomized protocols for asynchronous consensus" (2002) — arXiv:cs/0209014 — FLP를 우회하는 네 확장 모형(무작위성·타이밍 가정·실패 감지기·강한 동기화)과 무작위 프로토콜의 역사. 동료심사 전 프리프린트.
- "Consensus using Asynchronous Failure Detectors" (2015) — arXiv:1502.02538 — 충분히 강력한 실패 감지기가 FLP를 우회하는 정확한 기제. 동료심사 전 프리프린트.
- "Threshold Logical Clocks for Asynchronous Distributed Coordination…" (2019) — arXiv:1907.07010 — 비동기 합의 프로토콜은 대체로 복잡·비효율적이어서 실무는 동기 프로토콜에 의존. 동료심사 전 프리프린트.
- "The Longest-Chain Protocol Under Random Delays," Stochastic Systems (2023) — DOI: 10.1287/stsy.2022.0031 — 동기 모형의 보장이 최대 지연 Δ에 따라 나빠지는 문제와, 지연을 확률분포로 다루는 대안 모형.
- "Byzantine Consensus in the Random Asynchronous Model" (2025) — arXiv:2502.09116 — 적대적 스케줄링을 무작위 스케줄로 완화하면 표준 비동기·부분동기에서 불가능한 확률적 보장이 가능. 동료심사 전 프리프린트.
- "On the (in)security of Proofs-of-Space based Longest-Chain Blockchains" (2025) — arXiv:2505.14891 — 나카모토 합의는 PoW를 투표 메커니즘으로 사용(정직한 과반 해시파워 가정). 공간증명 기반 최장 사슬은 추가 가정 없이 안전할 수 없음을 증명. 동료심사 전 프리프린트.
- "Stake Shift in Major Cryptocurrencies: An Empirical Study" (2020) — arXiv:2001.04187 — PoS는 장부에 기록된 지분 분포로 역할을 배분해 시빌 공격을 방지. 그 분포의 시차(stake distribution lag) 실증. 동료심사 전 프리프린트.
- "Blockchain without Waste: Proof-of-Stake," The Review of Financial Studies (2020) — DOI: 10.1093/rfs/hhaa075 — PoS의 첫 정식 경제 모형. 절제된 보상 일정이 조속한 합의 균형을 낳고 지속적 분기 균형을 배제(검증자=이해관계자 요구 때문).
- "STAKESURE: Proof of Stake Mechanisms with Strong Cryptoeconomic Safety" (2024) — arXiv:2401.05797 — 공격 비용과 공격 이익을 분리하는 틀, 몰수 자금 배분 보험 메커니즘. 동료심사 전 프리프린트.
- "An Event Study of the Ethereum Transition to Proof-of-Stake," Commodities (2023) — DOI: 10.3390/commodities2020006 — PoS 전환 후 에너지 소비 99.98% 감소, 블록 간격 12초로 일정화.
- "Bitcoin-Enhanced Proof-of-Stake Security: Possibilities and Impossibilities" (2022) — arXiv:2207.08392 — 장거리 안전성 공격·낮은 활성 저항력·부트스트랩 난점은 외부 신뢰 근원이 없는 모든 PoS 사슬에 내재적. 동료심사 전 프리프린트.
- "SplitBFT: Improving BFT Safety Using Trusted Compartments" (2022) — arXiv:2205.08938 — 부분 동기에서 f개 고장을 견디려면 통상 3f+1 노드가 필요. 동료심사 전 프리프린트.
- "Byzantine Fault-Tolerant Consensus Algorithms: A Survey," Electronics (2023) — DOI: 10.3390/electronics12183801 — 고전부터 최신까지 BFT 합의 알고리즘을 개선 방법별로 분류한 서베이.
- "Scalable byzantine fault tolerance via partial decentralization," Proceedings of the VLDB Endowment (2022) — DOI: 10.14778/3538598.3538599 — 명령 복제는 분산, 순서 결정은 중앙화. 300 복제본 지역 분산 배치에서 처리량 약 3배·지연 약 50% 개선.
- "Zyzzyva," ACM SIGOPS Operating Systems Review (2007) — DOI: 10.1145/1323293.1294267 — 3단계 커밋 없이 낙관적으로 응답하고 투기적 BFT.
- "Mahi-Mahi: Low-Latency Asynchronous BFT DAG-Based Consensus" (2024) — arXiv:2410.08670 — 인증 없는 DAG 위의 비동기 BFT로 광역망 1초 미만 지연·초당 10만 건 이상 처리. 동료심사 전 프리프린트.
- "Strengthened Fault Tolerance in Byzantine Fault Tolerant Replication" (2021) — arXiv:2101.03715 — 나카모토 합의는 깊이 묻힐수록 확신이 커지는 반면 BFT SMR은 커밋된 블록이 고정된 저항 임계치를 가짐(최종성 대비의 핵심). 동료심사 전 프리프린트.
- "A Brief Study on Byzantine Fault Tolerance, Consensus, and Blockchain" (2023) — DOI: 10.54097/hset.v47i.8224 — 합의를 결정론적 합의와 확률적 합의로 나누어 보는 표준 정리, PBFT·HotStuff.
- "Ethereum Proof-of-Stake under Scrutiny" (2022) — arXiv:2210.16070 — BFT와 나카모토 스타일이 뒤섞인 구조. 안전성은 성립하나 활성은 확률적으로만 보장. 동료심사 전 프리프린트.
- "Lemonshark: Asynchronous DAG-BFT With Early Finality" (2026) — arXiv:2604.03974 — 공식 커밋 이전에 안전이 충분히 보장되는 조건을 찾아 조기 확정, 지연 최대 65% 감소. 동료심사 전 프리프린트.
- "The Evaluation of a Double-Spend Attack Probability for Ouroboros-Like Proof-of-Stake Consensus" (2026) — DOI: 10.20944/preprints202604.0694.v1 — 유한 확인 깊이에서 이중지불 성공 확률의 닫힌 해. 필요한 확인 깊이가 적대적 지분 비율에 의존. 동료심사 전 프리프린트.
- "Defending Against Malicious Reorgs in Tezos Proof-of-Stake" (2020) — arXiv:2009.05413 — 지분 40% 공격자가 20블록 재구성을 평균 하루 한 번 실행 가능, 40% 초과 시 초선형 증가, 공격 기회를 미리 알 수 있음. 동료심사 전 프리프린트.
- "Proof-of-Work versus Proof-of-Stake: A Comparative Economic Analysis," The Review of Financial Studies (2025) — DOI: 10.1093/rfs/hhaf013 — 균형 보안 비교 모형. 실제 파라미터 대입 시 PoS가 더 안전하며 대규모 사슬에서 우위가 두드러짐.
- "Stabl: Blockchain Fault Tolerance" (2024) — arXiv:2409.13142 — 다섯 개 현대 블록체인에 고장 주입. 하나를 제외하면 네트워크 일부 고장에도 크게 영향받고, 일부는 일시적 고장에서 회복 실패. 동료심사 전 프리프린트.
- "Formal Verification of Blockchain Byzantine Fault Tolerance" (2019) — arXiv:1909.07453 — 블록체인 합의는 잘해야 '손으로' 증명되어 있을 뿐. 여섯 가지 취약점(새 반례 둘 포함) 제시와 모델 체커 검증. 동료심사 전 프리프린트.
- "Byzantine Fault Tolerance For Distributed Ledgers Revisited," Distributed Ledger Technologies: Research and Practice (2022) — DOI: 10.1145/3538227 — 배포된 BFT 프로토콜과 학계 보안 모형의 간극. 배달 순서를 통제하는 적대자 앞에선 동기 네트워크에서도 활성 실패.
- "The Blockchain Trilemma: A Formal Proof of the Inherent Trade-Offs…," Applied Sciences (2024) — DOI: 10.3390/app15010019 — 세 성질을 형식화하고 귀류법·계산복잡도 분석으로 동시 최대화의 모순을 논증.
- "Evolution of blockchain consensus algorithms," Cybersecurity (2023) — DOI: 10.1186/s42400-023-00163-y — 에너지 효율·탈중앙성·보안 트레이드오프 관점의 합의 알고리즘 리뷰.
- "Sharding-Based Proof-of-Stake Blockchain Protocols…," Sensors (2023) — DOI: 10.3390/s23052819 — 샤딩 기반 PoS의 구성 요소와 확률적 보안 모형. 4,000노드·10샤드·샤드 저항성 33%에서 실패까지 약 4,000년.
- "CoBRA: A Universal Strategyproof Confirmation Protocol…" (2025) — arXiv:2503.16783 — 정직·비잔틴·합리적 참여자 혼합 모형. 부분 동기에서 합리+비잔틴이 1/3을 넘으면 SMR 불가능. 동료심사 전 프리프린트.
🏛️ 이 글의 뿌리가 된 논문
이 글이 근거로 삼은 논문 중 ‘거인의 어깨’에 오른 초석 연구예요. 개념을 익혔다면 원전으로 가보세요.
최초로 실용 가능한 비잔틴 결함 허용(PBFT) 알고리즘을 제안하여 분산 합의 분야의 혁신을 이끌었습니다.
이 분야의 거인의 어깨 →비동기 분산 시스템에서 단 하나의 결함만으로도 합의가 불가능함을 증명한 분산 컴퓨팅의 최고 걸작입니다.
이 분야의 거인의 어깨 →