비트코인 네트워크

1 minute read

비트코인 네트워크

  • 비트코인 P2P 프로토콜을 실행하는 노드의 집합
  • 확장 비트코인 네트워크 : 비트코인 P2P 프로토콜, 풀 채굴 프로토콜, 스트라텀 프로토콜 및 비트코인 시스템의 구성요소들을 연결하는 연관 프로토콜 등이 포함되어 있는 네트워크 전반을 가리킨다.

노드 지원 가능 기능

  1. 라우팅 (Routing) : 모든 노드가 보유하는 기능 (블록 검증 및 이웃 노드와 연결 유지 기능 등)
  2. 블록체인 데이터베이스 (History)
  3. 채굴 (Mining)
  4. 지갑 (Wallet)

네트워크 연결

  • 한 노드와 연결이 되면 연결된 노드가 이웃 노드들에 IP를 전송함으로써 네트워크에 전파된다.

블록 싱크

  • 싱크 시작 전, genesis block만을 갖고 있다. (클라이언트 소프트웨어에 변경 불가능하게 내장되어있다)
  • 비트코인 네트워크 상의 다른 노드들을 따라잡을 때까지 반복

SPV 노드

  • 블록 헤더만 다운로드해서 사이즈를 줄일 수 있다.
  • 다른 노드에 의존해 거래를 검증해야 한다. (트랜잭션 정보를 갖고 있지 않기 때문에, UTXO 소비 여부를 검증할 수 없다.)

블룸 필더 (Bloom filter)

  • SPV 노드가 블룸 필터를 사용해서 이웃 노드들에게 특정 패턴과 일치하는 거래를 제공해줄 것을 요청
  • 정확도를 변화시킴으로써 정보의 양을 조절한다. (정확도를 낮추면 많은 정보를 받고, 높이면 적은 정보를 받음으로써 SPV 노드의 프라이버시 노출 문제를 해결하려 함)

Transaction Pool (memory pool)

  • 트랜잭션 풀을 이용해 네트워크에는 존재하지만 블록체 포함되지 않은 거래들을 추적한다.
  • 로컬 메모리 에 쌓여있다.
  • 미승인 거래를 갖고 있다.

UTXO pool

  • 소비되지 않은 거래 출력값의 항목을 포함하고 있다.
  • 로컬 메모리 or 영구 조정소에 색인 데이터베이스 테이블 형태로 저장
  • 승인된 출력값을 갖고 있다.

출처
Mastering Bitcoin

Categories:

Updated: