비트코인 네트워크_풀노드, SPV

개굴·2023년 5월 8일
1

Blockchain

목록 보기
6/6
  • 비트코인 네트워크에서 노드는 전체 블록체인을 유지하며, 네트워크 상의 다른 노드와 연결되어 있는 것이 중요한 역할을 함

  • 전체 블록체인을 유지하는 노드를 풀노드(Full Node)라고 하며, SPV(Simplified Payment Verification) 노드는 블록체인 데이터의 일부만 유지

  • peer to peer : P2P( Peer-to-Peer )는 중앙 서버 없이 직접 연결되어 있는 컴퓨터들이 서로 데이터를 주고받는 분산 네트워크 시스템

    • 노드는 서버-클라이언트 모델과 같이 역할이 구분되어 있지 않고, 모든 노드는 동등한 입장에서 서로 데이터를 주고받을 수 있음

노드는 무엇인가?

  • 비트코인 네트워크에서 노드(Node)란, 비트코인 프로토콜을 구현하고 있는 컴퓨터나 서버 이야기함

노드의 종류는?

  • 풀 노드

    • 풀 노드는 비트코인 블록체인 전체를 다운로드하고, 저장하며, 모든 거래를 검증함
    • 풀 노드는 모든 거래 정보를 가지고 있기 때문에 다른 노드들에게도 블록체인 정보를 제공
    • 새로운 거래가 발생하면 이를 검증하고 새로운 블록이 추가 되면 동기화 시킴
  • SPV 노드

    • SPV 노드는 풀 노드에 비해 블록체인의 전체 정보를 저장하지 않음
      • 트랜잭션의 해시값만을 저장하고, 블록 헤더를 검증하여 블록체인의 상태를 확인
    • SPV 노드는 모바일 기기나 경량 클라이언트에서도 작동할 수 있음
    • 라이트 노드 || 라이트 웨이트 노드
    • 단순 지불 검증(Simplified Payment Verification) 이용해서 거래를 검증
  • 노드들은 서로 통신하여 정보를 교환하고, 블록체인의 상태를 동기함
  • 노드들이 연결된 분산 네트워크에서는 거래 검증과 블록체인의 신뢰성을 보장할 수 있음

풀노드가 되고 싶어요

  • 블록체인 데이터 다운로드 및 노드에 저장
  • 다른 풀노드와 연결하여 블록체인 데이터를 동기화
    • 다운로드 하면 종자 노드 주소 있음
      - 종자 노드 : 비트코인 네트워크에서 초기 노드로서, 다른 노드가 참여하기 위해 연결할 수 있는 노드를 제공

어떻게 종자 노드는 확인?_풀노드


A: 신청자 , B: 종자노드
1. 블록체인과 비교하여 버전 호환성을 비교 (없으면 종료)
2. Version 메시지에 포함된 정보를 확인
- version 메시지는 노드의 버전, IP 주소, 노드 ID, 사용 가능한 서비스 등의 정보를 포함
3. 자신의 버전 번호, 사용하는 서비스 등에 대한 정보를 VerAck 메시지로 응답함
- VerAck(Version Acknowledgment) : 통신을 계속 할수 있음을 나타냄

데이터 어떻게 받아옴?_풀노드


A: 신청자 , B: 종자노드
1. getblocks 마지막 블록 확인
2. B가 A에게 inv에는 공유 해야할 500개 블록의 해시 정보 전달
3. A가 inv체크 하고 필요한 데이터를 getdata로 B에게 요청
4. B가 A에게 block 데이터 전송
5. 최종 데이터가 같아 질 때까지 반복

SPV 노드는?


A: SPV 노드 , B: full 노드
1. SPV 노드는 full node와 연결되어 블록 헤더를 다운로드
- A가 B에게 getheaders로 요청
- B가 Headers 정보 전달
2. SPV 노드는 블록 헤더를 검증
3. SPV 노드는 블록 헤더에서 블록의 Merkle Root를 가져옴
4. SPV 노드는 트랜잭션의 Merkle Proof를 생성
- SPV 노드는 트랜잭션과 함께 블록 헤더에서 가져온 Merkle Root 사용
- 트랜잭션의 위치를 나타내는 인덱스 값을 사용
5. SPV 노드는 트랜잭션의 Merkle Proof를 검증
6. SPV 노드는 검증이 완료된 트랜잭션을 사용하여 거래를 처리

Thacks to KIKI 나의 친구 키키의 블로그 참고

https://hing9-studying.tistory.com/155

Dear 스승님.. 이 글을 보신다면 ㅜ 사실 이거 확실히는 특히 풀노드..ㅠㅜ 잘모르겠습니다. ㅠㅜ 죄송해요

0개의 댓글