비트코인 노드가 실제로 하는 일
비트코인 노드는 소유자를 위해 규칙을 검증하는 컴퓨터일 뿐이다. 아무 보상도 없지만, 네트워크의 권한이 궁극적으로 자리하는 곳이며 — 그래서 누구도 비트코인을 몰래 바꿀 수 없다.
- 노드는 비트코인 소프트웨어를 실행하는 컴퓨터로, 모든 블록과 거래를 스스로 검증하고 규칙을 어기는 것은 무엇이든 거부한다 — 아무 보상 없이.
- 이 독립적 검증이 노드를 결정권자로 만든다: 규칙은 충분한 운영자가 실행할 때만 바뀌며, 누구에게도 강제할 수 없다.
비트코인은 흔히 전 세계에 퍼진 컴퓨터들이 운영하는 네트워크로 묘사되며, 그 탓에 「노드」가 클라우드 어딘가에 숨은 신비로운 기계처럼 들릴 수 있다. 전혀 그렇지 않다. 노드는 그저 비트코인 소프트웨어를 실행하며 다른 노드와 통신하는 컴퓨터이며 — 흔히 집 공유기 뒤에 놓인 작은 싱글보드 컴퓨터처럼 소박하다. 중요한 것은 하드웨어가 아니라 그것이 하는 일이다.
그 일은 검증이다. 노드는 새 블록이나 거래를 받으면 비트코인의 규칙이 지켜졌는지 스스로 확인한다: 블록의 작업증명이 요구 난이도에 대해 유효한지, 서명이 올바른지, 사용된 비트코인이 실제로 존재하며 이미 사용되지 않았는지, 채굴자가 허용된 블록 보상과 수수료 이상을 자기 몫으로 챙기지 않았는지. 이는 비유가 아니다. 단 하나의 합의 규칙이라도 어기면 노드는 그 블록을 즉시 거부한다 — 항소도 논의도 없다. 그 노드에게 그 블록은 그냥 비트코인이 아니다.
혼용되는 두 단어를 구분할 필요가 있다. 클라이언트는 소프트웨어, 즉 규칙을 담고 있는 것이다; Bitcoin Core가 단연 가장 널리 실행되지만 Bitcoin Knots 같은 다른 구현도 있다. 노드는 그 소프트웨어가 기기에서 실행되며 운영자를 대신해 규칙을 적용하는 것이다. 클라이언트는 규칙집을 지니고, 노드는 그것을 당신을 위해 시행한다.
여기서 놀라운 점: 프로토콜은 노드 운영자에게 아무것도 지급하지 않는다. 새로 발행된 비트코인도, 수익도, 블록 보상도 없다. 보상과 거래 수수료는 블록을 찾는 채굴자에게 가고, 그것을 검증하는 수천 개의 노드에는 가지 않는다. 노드 운영에는 저장공간, 전기, 대역폭, 약간의 시간이 들고 한 푼도 돌아오지 않는다. 그런데 왜 하는가? 노드가 먼저 당신에게 도움이 되기 때문이다. 자기 노드가 없으면 결제를 받을 때 그 거래가 실제이고 확정되었으며 규칙을 따른다는 제3자의 말을 믿어야 한다. 자기 노드가 있으면 비트코인이 유효한지, 추가 단위가 만들어지지 않았는지, 거래가 당신이 비트코인으로 인정하는 체인에 들어 있는지를 직접 검증한다. 우아한 점은 게임 이론이 조용히 도덕을 대신한다는 것이다: 「네트워크를 지키려」 이타심으로 노드를 돌릴 필요가 없다. 각 운영자는 자기 이익을 위해 검증하며, 그 독립적 검증들의 합이 시스템 전체에 규칙을 시행한다. 조금이라도 궁금한 사람에게 노드는 의외로 손쉽게 꾸릴 수 있다 — 전용 하드웨어로 수백 유로, 이미 가진 기기로는 훨씬 적게.
노드가 「결정한다」고 말할 때 뜻하는 바도 이것이다. 채굴자는 블록을 만들고, 기업이나 거래소는 개발자를 후원하거나 마케팅을 하거나 유동성을 공급할 수 있다. 그 누구도 당신의 기기에 소프트웨어를 설치할 수는 없다. 블록이 당신 노드의 규칙을 어기면 노드는 거부하고 — 충분한 사용자와 경제 주체가 똑같이 하면 채굴자는 실제 에너지를 써서 경제의 그 부분이 비트코인으로 인정하기를 거부하는 보상을 만든 셈이 된다. 그러므로 지속적 분열 없이 비트코인을 바꾸려면 충분한 운영자가 새 규칙을 실행하도록 설득해야 한다. 불가능하지 않다; 비트코인은 바로 그렇게 진화한다. 개발자가 제안하고, 생태계가 토론하고, 소프트웨어가 공개되며, 각 노드 운영자가 채택 여부를 정한다. SegWit은 2017년, Taproot은 2021년 11월에 충분히 폭넓은 지지를 얻은 뒤 그렇게 활성화됐다. 존재하지 않는 것은 모두에게 따르라고 강제하는 지렛대다.
비대칭은 하드포크에서 가장 뚜렷하다 — 현재 규칙이 거부하는 블록을 유효하게 만드는 변경이다. 새 규칙을 여전히 비트코인으로 인정받으려면 매우 폭넓은 합의가 필요하지만, 거부하려면 운영자는 아무것도 하지 않아도 된다. 이미 쓰던 소프트웨어를 그대로 두면 그것이 호환되지 않는 블록을 스스로 거부한다. 소프트포크는 다르게 작동하는데, 규칙을 조이기만 하기 때문이다: 더 엄격한 새 규칙에서 유효한 블록은 옛 규칙에서도 유효하므로, 옛 노드는 새 제한을 검사하지 않아도 계속 받아들인다. 그러나 소프트포크는 현재 규칙이 이미 금지한 것을 유효하게 만들 수 없다 — 이를 통해 21백만 최대 공급을 23백만으로 올리거나 블록 크기 한도를 직접 높일 수 없다. 그것은 어떤 단일 주체도 만들어낼 수 없는 폭넓고 자발적인 채택을 요구한다.
이 모든 것이 전부는 아니다 — 풀노드는 여러 유형 중 하나이며, 다른 블록체인도 나름의 방식으로 비슷한 논리를 적용한다. 하지만 핵심 발상이 대부분의 무게를 감당한다: 비트코인의 규칙은 정점의 권위가 강제하지 않는다. 규칙은 가장자리에서, 그것을 검증하기로 선택한 누구에 의해, 한 번에 하나의 독립된 기계로 시행된다.
본 게시물은 시장 분석이며, 매수 또는 매도 권유가 아닙니다.
관점을 바꿀 요인
- SegWit과 Taproot처럼 노드의 폭넓은 지지를 얻어 활성화되는 향후 규칙 변경과, 지지 부족으로 멈추는 변경의 차이.
- 노드 운영이 얼마나 집중되는지의 변화. 논거가 스스로 검증하는 다수의 독립 운영자에 달려 있기 때문이다.