본문으로 바로가기

블록체인 네트워크는 여러 기능의 조합으로 다양한 형태의 노드로 구성이 됩니다.

네트워크를 구성하는 각 노드에는 어떤것이 있으면, 각 노드에는 어떤 기능이 조합되어 있는지 보도록 하겠습니다.


1. Wallet 

- 이전에 설명을 했던 지갑기능을 말합니다.

  지갑은 사용자의 개인키와 공개키를 관리하고 거래에 사용되는 주소를 생성하는 기능을 담당합니다.


2. Miner

- 작업증명(Proof of Work : PoW) 알고리즘을 사용하여 10분간의 유효한 거래를 블록으로 생성하고 메인채인에 연결하는 기능을 담당합니다.


3. Full Blockchain

- 최초의 블럭인 제네시스블록과 가장 최신의 블록까지 포함한 완전한 블록체인 복사본을 가지고 있습니다.

모든 블록을 다 가지고 있기때문에 상당한 용량을 차지하게 됩니다.

참고로 싱크완료된 비트코인의 전체 블록데이타는 하기와같이 171G를 차지하고 있습니다.





4. Network Routing

- 블록체인상의 P2P 네트워크 전송기능을 담당합니다.


이와같은 4가지 기능의 조합으로 다양한 형태로 노드가 형성이 됩니다.


1. Reference Client

- 모든 노드를 포함한 완전한 네트워크의 형태입니다. Bitcoin Core가 여기에 해당됩니다.



2. Full Blockchain Node

- 네트워크 라우팅 기능과 모든 블록체인 데이타를 가진 형태입니다.


3. Solo Miner

- 지갑기능은 제외하고 채굴에 특화된 형태의 노드입니다.



4. Lightweight wallet(SPV : Simplified Payment Verification)

- 지갑기능과 네트워크 라우팅기능만 포함된 노드로 전체 블록체인 데이타는 없이 단순히 거래와 유효성 검증만 가능한 스마트폰에 설치된 지갑등과 같은 노드입니다.

위에 언급한것처럼 Full blockchain 데이타는 170기가가 넘는 용량을 차지하기 때문에 스마트폰에는 Full Blockchain Node의 형태로 설치하기가 불가능할수 있습니다.



모든 노드는 Network Routing 기능을 포함하고 있습니다.

블록체인은 P2P 방식으로 모든 노드가 연결되어있는데, 처음으로 클라이언트가 실행되면 어떻게 다른 노드에 접속을 할수 있을까요?

주소를 얻어오는 여러개의 방식이 있는데 다음의 하나의 예를 설명하고자 합니다.


DNS Seed Node 에 접속을 하여 현재 실행중인 다른 클라이언트들의 주소를 받아올수 있습니다.

이렇게 받아온 주소에 접속하여 블록체인 네트워크에 참여하게 됩니다.

DNS Seed Node는 다음과 같이 클라이언트에 하드코딩되어 클라이언트 실행시 자동접속하게 됩니다.



최초 클라이언트에 접속을 하면 자신을 주소를 전달하여 다른 네트워크 노드들에 자신의 위치를 계속 전파하여 함께 거래의 유효성 검증에 참여하게 됩니다.