본문으로 건너뛰기
buybitcoinsmart

용어집 / 채굴과 합의

합의

합의란 무엇입니까?
비트코인의 합의는 동일한 규칙을 따르는 독립적으로 운영되는 노드들이 하나의 체인, 즉 누적된 작업 증명이 가장 많은 유효한 체인에 대해 일치하는 상태입니다.

아무도 투표하지 않고 아무도 책임지지 않습니다. 각 노드는 모든 블록을 동일한 규칙집과 대조해 검사한 다음, 가장 많은 작업량을 담은 유효한 체인을 따릅니다. 처음부터 동기화하는 노트북이 2009년 1월 3일까지 동일한 이력을 재구성하는 방식이 바로 이것입니다. 비트코인을 구매할 때, 보내진 코인이 실제로 본인의 것인지를 결정하는 것이 이 구조입니다.

작동 방식

합의는 투표로 이루어지지 않고, 정해진 순서로 두 가지 질문을 던져 도달합니다.

첫 번째 질문은 유효성입니다. 노드는 블록을 받아 혼자서 검사합니다. 서명, 금액, 머클 루트, 채굴업자가 청구한 보조금, 블록의 무게, 타임스탬프를 확인합니다. 검사를 통과하지 못한 블록은 즉시 폐기되며, 그것을 만들기 위해 소비한 전력량은 무관합니다. 두 번째 질문은 유효한 선택지 중 어느 것을 고를지입니다. 두 개의 경쟁 이력이 모두 검사를 통과하면, 노드는 헤더 전체의 작업량을 합산했을 때 가장 많은 작업량을 가진 이력을 유지합니다. 이것은 블록 수가 가장 많은 이력과 같지 않습니다. 더 어려운 블록으로 이루어진 짧은 가지가 더 쉬운 블록으로 이루어진 긴 가지를 이깁니다.

없는 것이 무엇인지 보십시오. 노드는 의견을 교환하지 않고, 선호를 알리지 않으며, 서로를 세지 않습니다. 노드는 블록과 트랜잭션을 중계하고, 도착한 것에 같은 검사를 적용하며, 검사가 결정적이기 때문에 같은 지점에 도달합니다. 합의는 각자가 따로 계산한 결과로 생기는 부수 효과이며, 그래서 이 네트워크에는 매수할 정족수도, 소환할 위원회도 없습니다.

짧은 의견 불일치는 일상적입니다. 두 채굴업자가 때때로 1초 이내에 각각 블록을 풀어내고 세상의 절반은 먼저 한 블록을 보기 때문에, 몇 분 동안 체인 끝 후보가 두 개가 됩니다. 다음 블록이 동점을 깨고, 한 가지는 고아 블록으로 버려지며, 그 트랜잭션은 멤풀로 돌아갑니다. 깊은 의견 불일치가 흥미로운 경우이며, 노드가 서로 다른 규칙을 실행할 때만 발생합니다. 규칙을 엄격하게 만들면 오래된 소프트웨어도 새 소프트웨어가 만들어내는 모든 것을 계속 수용하며, 이것이 소프트 포크입니다. Taproot는 2021년 11월에 그렇게 도착했고 아무것도 나누지 않았습니다. 규칙을 느슨하게 만들면 두 집단은 영구히 서로 다른 체인을 따르며, 이것이 하드 포크이고, 2017년 8월 1일에 Bitcoin Cash가 분리되었을 때 정확히 일어난 일입니다.

비트코인을 구매할 때 이것이 중요한 이유

합의는 비트코인 잔액을 보유하는 사람의 약속이 아니라 본인의 것으로 만드는 장치입니다.

체인은 출력과 그 출력을 지출할 수 있는 키에 대해 합의합니다. 체인에는 계좌 보유자라는 개념이 없습니다. 코인이 거래소에 있는 동안 합의는 거래소의 주소만 보고 그 밖의 것은 보지 않으며, 그 코인에 대한 본인의 권리는 해당 회사의 데이터베이스에 있는 한 행이고, 노드가 아니라 계약법에 의해 강제됩니다. 키를 직접 보유하는 지갑으로 옮기면 상황이 뒤집힙니다. 이제 전 세계적인 규칙집이 본인의 지출 권한을 직접 인정하며, 어떤 지원 요청, 동결, 파산도 그것을 바꾸지 못합니다. 이것이 자기 보관의 전체 논거이며, 신뢰가 아니라 합의에 관한 주장입니다.

포크는 이 구분을 드러냅니다. 2017년 8월 1일에 키를 직접 보유한 사람은 두 체인 모두에서 코인을 통제하게 되었습니다. 두 체인 모두 동일한 출력 이력을 물려받았기 때문입니다. 플랫폼을 통해 보유한 사람은 플랫폼이 선택한 대로 받았으며, 여러 플랫폼은 새 자산을 입금 반영하는 데 몇 주가 걸렸거나 아예 지원하지 않았습니다. 같은 논리는 미래의 어떤 분리에도 적용됩니다.

합의는 규제와는 다른 방식으로 전 세계적입니다. 이 사이트의 231개국 국가별 가이드는 무엇이 합법인지, 무엇을 신고해야 하는지, 어떤 플랫폼이 본인을 받아들일지에 대해 크게 다르지만, 그 어느 것도 원장에 닿지 않습니다. 독일에서 구매한 코인과 나이지리아에서 구매한 코인은 같은 규칙으로 검증되고, 같은 UTXO 집합에 존재하며, 노드에는 구분되지 않습니다. 국경에서 달라지는 것은 누가 본인에게 팔 것인지와 세무 당국에 무엇을 내야 하는지이며, 네트워크가 무엇을 유효로 보는지는 결코 달라지지 않습니다.

비트코인이 두 개의 체인으로 운영된 2013년 3월의 6시간

2013년 3월 11일에 채굴된 225,430번 블록은 한 소프트웨어 버전에서는 수용되었고 그 이전 버전에서는 거부되었습니다.

Bitcoin 0.8은 데이터베이스를 Berkeley DB에서 LevelDB로 전환했고, 그 과정에서 큰 블록을 처리할 때 예전 데이터베이스가 걸 수 있는 잠금 수에 대한 문서화되지 않은 제한을 조용히 없앴습니다. 그 블록은 이 제한을 초과했습니다. 0.7을 실행하는 노드는 이를 거부했고, 0.8을 실행하는 노드는 그 위에 블록을 쌓았으며, 네트워크는 약 6시간 동안 두 개의 체인을 운영했습니다. 결제 처리업체 OKPay를 상대로 약 10,000 달러 규모의 이중 지출 하나가 통과되었습니다.

그 해결 과정은 어떤 프로토콜 문서도 말하지 않는 것을 말해 줍니다. 개발자들은 더 제한적인 체인이 이기도록 채굴 풀에 0.7로 다운그레이드해 달라고 요청했고, 풀들은 이미 보상을 받은 블록을 버리면서 그렇게 했습니다. 0.8.1 버전은 곧이어 생산할 블록에 500,000 바이트의 임시 상한을 두고 배포되었으며, BIP50이 사후 분석으로 작성되었습니다. 이 사건은 비트코인의 규칙이란 배포된 소프트웨어가 실제로 강제하는 것이며 버그도 포함된다는 것, 그리고 소프트웨어가 스스로와 불일치할 때는 사람이 선택해야 한다는 것을 보여 주는 표준적인 증거입니다.

합의 vs 합의 규칙

합의는 결과이고, 합의 규칙은 그 결과에 도달하는 데 사용되는 기준입니다. 규칙은 코드에 작성된 고정된 유효성 검사 목록이며, 호환되는 소프트웨어를 실행하는 모든 사람에게 동일합니다. 합의는 그 목록을 도착한 블록에 적용한 변화하는 결과이며, 그래서 두 정직한 노드가 거의 동시에 나온 블록 이후 서로 다른 체인 끝을 보유한 채 순간적으로 합의 밖에 있을 수 있으면서도 규칙에 대해서는 완전히 일치합니다. 규칙을 바꾸면 가능한 합의가 바뀌고, 아무것도 바꾸지 않아도 새로운 작업이 도착할 때마다 합의는 10분마다 계속 이동합니다.

혼동하기 쉬운 용어

자주 묻는 질문

비트코인의 합의는 누가 결정합니까?

전체 노드를 운영하는 모든 사람이 각자 결정합니다. 각 노드는 동일한 유효성 검사를 적용하고 가장 많은 작업이 누적된 유효한 체인을 따르므로, 투표나 위원회, 중앙 등록부 없이도 합의가 형성됩니다.

채굴업자가 비트코인의 규칙을 바꿀 수 있습니까?

아닙니다. 채굴업자는 어떤 유효한 트랜잭션을 어떤 순서로 포함할지 선택합니다. 규칙을 위반하는 블록은 얼마나 많은 작업을 담고 있든 모든 노드에서 거부되며, 그렇기 때문에 해시레이트만으로는 공급 상한을 높이거나 다른 사람의 코인을 사용할 수 없습니다.

네트워크가 분리되면 제 코인은 어떻게 됩니까?

직접 키를 보관한다면 두 체인에서 동일한 출력을 관리하게 되며, 2017년 8월 1일에 Bitcoin Cash가 분리되었을 때도 그랬습니다. 코인이 플랫폼에 있다면 해당 플랫폼이 입금 처리하기로 결정한 것만 받게 되며, 일부 플랫폼은 새로운 체인을 전혀 지원하지 않습니다.

다음에 읽을 글

관련 용어

채굴과 합의 분야의 다른 용어

이 페이지를 영어로 읽기