MSTR Cat

블록체인/레벨 X · 한 바퀴를 돌아/10.2 레시피/수업 6

6단계: 자신만의 노드

체크섬, 인덱스, 그리고 거절을 알리는 머신

준비물트리밍된 노드의 경우 약 20GB의 여유 공간이 필요하며, 전체 노드의 경우 1TB가 필요합니다.다운로드한 파일의 개발자 서명을 확인하기 위해 설치된 GPG 소프트웨어Fulcrum이나 electrs와 같은 현지의 Electrum 호환 인덱서

호기심

  1. 사용자는 자신이 다운로드한 소프트웨어가 중간자 공격자나 위험한 저장소에 의해 변조되지 않았다는 것을 어떻게 확인할 수 있을까요?
  2. 평균치 확인을 위해 공용 서버에 연결하는 것이 왜 제3자에게 자신의 재정 상태를 밝히는 것과 같은지, 그리고 로컬 인덱서들은 이 문제를 어떻게 해결하나요?
  3. 원격 기관을 통해 거래를 검증하는 것과 체인상의 규칙에 따라 독립적으로 확인하는 것의 차이점은 무엇인가요?

탐구

  1. Bitcoin Core(레슨 3.1.5)는 기원 블록부터 최신 블록까지 모든 블록을 검증하여 각 블록이 합의 규칙을 준수하는지 확인합니다. 어떤 버전을 실행하기 전에, 사용자는 SHA256SUMS 및 SHA256SUMS.asc 파일을 사용하여 무결성을 확인해야 합니다. 이 파일들에는 여러 독립적인 개발자들이 서명한 암호학적 해시가 포함되어 있습니다. 사용자는 해당 개발자들의 GPG 공개 키를 가져와 서명을 확인함으로써, 바이너리 파일이 신뢰할 수 있는 개발자들이 배포한 것과 일치한다는 것을 확인할 수 있습니다. 이를 통해 키를 도용하거나 데이터를 손상시킬 수 있는 변조된 코드가 실행되는 것을 방지할 수 있습니다.
  2. 초기 블록 다운로드(IBD)는 600GB가 훨씬 넘는 전체 체인을 가져와 검사하는 과정으로, 하드웨어 및 연결 상태에 따라 몇 시간에서 며칠이 걸립니다. 풀 노드는 해당 기록들을 디스크에 저장합니다. 프룬드 노드는 모든 블록을 검증하지만 최근의 블록들만 유지합니다(최소 설정값은 MiB 단위로 prune=550임), 따라서 UTXO 세트를 고려하면 약 10–20GB 정도의 용량으로 충분합니다. 두 유형 모두 독립적으로 합의 규칙을 적용하여, 사용자들이 잘못된 트랜잭션이 자신의 메모풀에 들어가기 전에 이를 거부할 수 있도록 합니다.
  3. 소프트웨어 지갑은 일반적으로 잔액 정보를 가져오고 거래 내역을 전송하기 위해 원격 서버에 연결됩니다. 이로 인해 지갑의 주소와 잔액이 해당 서버 운영자에게 노출됩니다. 프라이버시를 보호하기 위해 사용자는 Bitcoin Core와 함께 Fulcrum이나 electrs와 같은 로컬 Electrum 서버를 실행할 수 있습니다. 이러한 인덱서들은 표준 지갑과 호환되는 API를 제공하지만 사용자의 컴퓨터에서 로컬로 작동합니다. 지갑을 이러한 로컬 인스턴스에 연결하면 주소 기록과 잔액 데이터가 결코 사용자의 네트워크 밖으로 유출되지 않습니다.
  4. 직접적인 RPC 연결은 중간 서버를 완전히 건너뛰고 월렛을 Bitcoin Core와 통합하는 또 다른 방법입니다. 이 방식을 사용하면 고급 사용자들이 자신의 노드에서 직접 거래 구조와 수수료 로직을 맞춤화할 수 있습니다. RPC를 사용하든 Electrum과 호환되는 인덱서를 사용하든, 중요한 점은 데이터 소스가 사용자에게 있다는 것입니다. 노드는 서명하기 전에 로컬에서 UTXO 집합을 확인하여 자금이 사용되지 않았으며 프로토콜 규칙에 따라 유효한지를 검증합니다.
  5. 노드를 운영하면 신뢰가 중앙 집중식 중개자에서 수학적 검증으로 옮겨갑니다. 로컬 노드는 사용자 자신의 거래도 전송하기 때문에, 어떤 월렛 서버도 이를 조용히 거부하거나 기록에서 제외할 수 없습니다. 단점은 하드웨어 비용과 유지보수 책임입니다. 사용자는 소프트웨어 업데이트, 디스크 확장, 시스템 가동 시간 관리 등을 직접 처리해야 합니다. 하지만 이러한 자율성 덕분에 거래소, 월렛 제공업체, 서버 운영자 중 어느 한 곳이 실패하더라도 자금에 대한 접근권이나 통제권을 잃지 않습니다.
  6. 설정을 확인하세요. Bitcoin Core에서 getblockchaininfo를 실행하여 블록 수가 공개 탐색기의 현재 높이와 일치하는지, 그리고 initialblockdownload 값이 false인지 확인하십시오. 또한 getbestblockhash 값을 탐색기의 최신 블록 해시와 비교해 보세요. 지갑의 서버 설정에서는 공개 서버가 아닌 자신의 노드나 Electrum 서버를 가리키고 있는지 확인하십시오. 공개 서버를 사용하지 않을 때 잔액이 정상적으로 표시된다면, 지갑은 자신의 노드에서 데이터를 읽어오고 있는 것입니다.

핵심 사실

  • SHA256SUMS.asc 파일은 비트코인 코어 바이너리의 무결성을 확인하기 위해 여러 독립적인 제작자들에 의해 서명됩니다.
  • 가지치기된 노드는 모든 블록을 검증하지만 최근의 블록들만 유지하여 약 10–20GB 정도의 용량을 차지합니다.
  • Fulcrum이나 Electrs와 같은 로컬 인덱서를 사용하면 지갑 주소와 잔액이 서드파티 서버에 노출되는 것을 방지할 수 있습니다.
  • 처음 블록 다운로드 시 600GB가 넘는 블록들을 확인해야 하며, 이 과정에는 몇 시간에서 며칠이 걸립니다.
  • 직접적인 RPC 연결을 통해 지갑은 중간 서버 계층 없이 비트코인 코어와 상호작용할 수 있습니다.
  • 로컬 노드는 합의 규칙에 따라 거래를 독립적으로 검증하며, 방송하기 전에 유효하지 않은 데이터는 거부합니다.

연습 아홉, 여섯, 셋, 하나

9모으기개인용 비트코인 풀 노드 환경을 설정하고 검증하는 데 필요한 9가지 서로 다른 구성 요소나 단계를 나열하십시오.
6묶기9개의 항목을 기능에 따라 출처 확인, 저장 관리, 네트워크 동기화, 개인정보 보호, 소프트웨어 통합, 유지보수 중 6개의 카테고리로 분류합니다.
3추리기6가지 요소를, 공용 서비스에 의존하는 것보다 로컬 노드를 운영함으로써 보안상의 이점이 생기는 3가지 핵심 원인으로 줄입니다.
1결정화자가 검증의 계산 및 저장 비용과 제3자에 대한 신뢰 의존성 제거 사이의 트레이드오프에 대해 한 문장으로 써보세요.

팩트 체크

날짜, 수치 및 주장은 아래에 명시된 출처들을 통해 확인되었습니다.

인터랙티브 아카데미에서 열기 →

EN PT ES ZH JA RU DE FR MS