노드(Node)란?

user-image
블록헤더스
블록헤더스
2023.06.21

[Xangle Digest]

※해당 컨텐츠는 1월 28일 외부에서 기발간 된 컨텐츠입니다. 컨텐츠에 대한 추가적인 주의사항은 본문 하단에서 확인해주세요.

비트코인 노드, 블록체인 노드, 비트코인 노드 종류, 블록체인 노드 운영, 이더리움 라이트 노드

 

작성자: 김민성(블록체인 밸리 2기), 백용기(디사이퍼 9기), 이윤서(하이블록 1기), 이주원(이화체인 7기)

 

목차

노드의 정의
비트코인 노드의 유형과 역할 

 

노드의 정의

노드의 정의는 문맥에 따라 그 의미가 다양하게 사용됩니다. 노드는 컴퓨터 혹은 통신망 네트워크에서 메시지를 생성하고 수신 및 전송될 수 있는 재분배 지점(Redistribution point) 혹은 통신 엔드포인트(Communication endpoint)로서 작동합니다.

 

노드 네트워크 구성, 비트코인 노드, 블록체인 노드, 비트코인 노드 종류, 블록체인 노드 운영

출처: https://www.kagoya.jp/howto/it-glossary/server/node/#:~:text=コンピュータネットワークにおけるノードも,もノードと呼びます。/ 네트워크의 구성 - 노드와 링크

위 그림의 파란 원이 바로 노드들입니다. 이처럼 네트워크는 연결된 각각의 기기들인 노드들이 연결되어 서로 메시지를 주고 받는 방식으로 작동합니다. 컴퓨터 네트워크의 노드들은 네트워크에 연결되어 있는 기계 하나 하나를 의미합니다. 컴퓨터, 프린터, 스마트폰, 타블렛 PC 등 다양한 것들이 노드가 될 수 있습니다.

해당 아티클에서는 다양한 네트워크 중 비트코인 네트워크 노드들에 대해 다뤄볼 예정입니다.

 

비트코인 네트워크에서의 노드

비트코인 네트워크에서 노드들은 트랜잭션이 담긴 블록을 검증 또는 제안하거나, 전체 블록을 보유함으로써 보안에 기여하는 참여자들을 의미합니다. 이러한 노드들이 중개인 없이 서로 직접 연결된 분산화된 *P2P 시스템을 구성하여 비트코인 네트워크가 사용자 간의 직접 거래를 지원할 수 있습니다.

 *P2P : 중앙 서버 없이 네트워크에 참여하는 각각의 컴퓨터(참여자)가 서버와 클라이언트 역할을 하고, 망 형태로 연결되어 데이터를 공유하는 것을 의미합니다. P2P 네트워크에서 각 컴퓨터(참여자)들을 노드라고 하며, 개별 피어 역할을 하게 됩니다.

 

P2P 네트워크 도식, 비트코인 노드, 블록체인 노드, 비트코인 노드 종류, 블록체인 노드 운영

출처: https://juraprotocol.medium.com/lets-talk-about-nodes-5aa8e4d9f9c6 / P2P 네트워크

비트코인 네트워크에 연결되는 모든 컴퓨터나 장치는 각각 다양한 방식으로 통신하는 통신 포인트 (Communication point)의 역할을 한다는 점에서 노드로 간주될 수 있습니다. 즉 비트코인 노드들은 비트코인의 P2P 프로토콜을 사용하여 분산 네트워크 내에서 트랜잭션들과 블록에 대한 정보들을 전송함을 의미합니다.



비트코인 노드의 유형과 역할

비트코인 네트워크의 노드는 동등하지만 지원하는 기능에 따라 역할이 다를 수 있습니다. 비트코인 네트워크의 노드는 지갑 서비스(W), 채굴(M), 블록체인 데이터베이스(B), 네트워크 라우팅(N)과 같은 기능으로 구성되어 있습니다. 기능들의 조합에 따라 노드들의 역할을 Full node, Miner node, SPV node 등으로 나눌 수 있습니다.

비트코인 노드 네 가지 기능: Wallet, Miner, Full Blockchain, Routing Node

출처: Mastering Bitcoin: Programming the Open Blockchain / 비트코인 노드 기능


풀 노드

Full node(이하 풀 노드)를 이해하기 위해, 지난 블록체인의 원리 아티클에서 설명드린 블록이 네트워크에 등록되는 과정을 살펴보겠습니다. 먼저 블록체인 네트워크에서 활동하는 노드들이 ①트랜잭션, ②전자서명을 검증하여 블록의 유효성을 판단 후, 해당 블록을 원본으로 등록 및 사본을 각자의 컴퓨터에 분산 저장합니다. 그리고 이 과정을 비트코인은 10분마다 반복하여 블록을 연결(Chain)합니다.
그렇다면 비트코인의 최초(제네시스) 블록부터 작성일(2023-01-28) 기준 약 몇 개의 블록이 등록 되었을까요? 비트코인 블록 통계 사이트를 확인해본 결과, 대략 770,000개의 블록이 등록되었음을 확인할 수 있습니다. 이렇게 많은 블록들은 방대한 용량을 차지하지만, 네트워크의 보안을 위해서는 꼭 필요한 데이터입니다. 그렇기에 모든 블록을 저장하고 있는 노드가 필요한데요, 이를 풀 노드라고 합니다.

풀 노드는 제네시스 블록부터 가장 최신의 블록들을 다운로드 및 보관하고 있는 노드를 의미합니다. 이러한 풀 노드는 트랜잭션 및 블록을 검증하는 프로세스에 참여하며, 또한 이를 다른 풀 노드로 전달함으로써 네트워크를 돕습니다. 그렇기에 풀 노드 수가 많을수록 블록체인 네트워크 전체의 데이터를 보유하고 검증 가능한 사람들이 많다는 의미로, 해당 블록체인 네트워크에 대한 보안성 및 신뢰성이 향상됩니다. 이러한 이유로 풀 노드는 비트코인을 지원하고 보안을 제공하는 노드이며, 모든 블록체인 네트워크에 없어서는 안 될 필수 요소입니다.

다음은 풀 노드에서 가장 많이 사용하는 Bitcoin Core에 대해서 설명해 드리겠습니다.

Bitcoin core

위에서 노드의 기능에 대해서 설명해 드렸는데요, 먼저 모든 노드는 네트워크에 참여하기 위해 데이터를 최적화된 경로를 보낼 수 있도록 하는 네트워크 라우팅(N) 기능을 포함하고 있습니다. 이 때 풀 노드 역할을 수행하기 위해서는 블록체인 데이터베이스(B) 기능을 포함해야 합니다. 즉, 풀 노드는 채굴이나 지갑 기능이 없고 블록체인 데이터베이스(B)와 네트워크 라우팅(N)기능을 포함한 노드임을 알 수 있습니다. 이러한 노드를 Bitcoin core라고 합니다.

풀 노드 구성 요소, 비트코인 노드, 블록체인 노드, 비트코인 노드 종류, 블록체인 노드 운영

출처: Mastering Bitcoin: Programming the Open Blockchain / Full node구성 요소


비트코인 네트워크에서 Bitcoin core를 실행하기 위한 최소 요구 사항은 다음과 같습니다.

  • 최신 버전의 Windows, Mac OS X 또는 Linux가 설치된 데스크탑 또는 노트북.
  • 200GB의 여유 디스크 공간.
  • 2GB의 메모리(RAM).
  • 업로드 속도가 50kB/s 이상인 고속 인터넷 연결.
  • 무제한 연결 또는 높은 업로드 제한이 있는 연결.
     -온라인 상태의 풀 노드는 월 200GB의 업로드 사용량과 월 20GB의 다운로드 사용량에 도달하거나 초과할 수 있기 때문임.
     -또한 풀 노드를 처음 시작할 때 약 200GB 다운로드 필요하기 때문임.
  • 전체 노드는 하루에 최소 6시간 이상 실행되어야 함. (지속적으로(24/7) 실행시 더욱 좋음.)


이렇게 풀 노드로서 활동하기 위해서는 많은 제약조건들이 존재하지만 따로 보상을 받지 못합니다. 하지만 많은 자발적인 참여자들이 비트코인 생태계를 돕기 위한 방법으로 풀 노드를 실행하고 있습니다. 이 외에도 채굴자들이 채굴노드의 효율성을 높이거나, 풀 노드 수가 적어짐으로 블록체인 네트워크가 위험해져 보유한 비트코인의 가치 하락을 방지하기 위해 비트코인 보유자들이 풀 노드를 실행하기도 합니다.



채굴 노드

위에서 설명한 것처럼, 일반적으로 모든 풀 노드는 새로운 데이터 블록을 생성하는 데 필요한 트랜잭션을 수신하고 트랜잭션을 검증합니다.

하지만 단순히 트랜잭션을 수신하고 검증하고 전파하는 과정만 있어서는 비트코인 네트워크가 작동할 수 없습니다. 이전의 기록을 온전히 불러온 뒤에는 블록을 새로 생성하는 과정이 필요합니다. 이 과정을 담당하는 것이 채굴 노드 입니다.

비트코인 네트워크에서 채굴 노드 수행하는 일은 아래와 같습니다.

  1. 네트워크 동기화

  2. 트랜잭션 검증

  3. 블록 유효성 검사

  4. 블록 생성

  5. 작업증명 수행

  6. 작업증명 보상 수령


위와 같이 채굴 노드는 실질적으로 이 전 블록체인의 원리 아티클에서 설명드린 유효한 nonce 값을 확인하는 작업증명(PoW) 통해, 새로운 유효 블록을 찾아내 전파하는 과정을 수행함으로써 블록 당 **6.25 비트코인(2023년 1월 기준)**과 관련된 트랜잭션의 수수료를 받게 됩니다. 채굴 노드는 혼자 채굴 노드로 Solo Mining을 할 수 있으나, 대부분의 채굴 노드는 효율적인 채굴을 위해 채굴 노드들의 연합인 Pool에 참여하여 Pool Mining을 합니다.

Solo Mining과 Pool Mining의 구조 도식화, 비트코인 노드, 블록체인 노드, 비트코인 노드 종류, 블록체인 노드 운영

출처: MiningPro / Solo Mining과 Pool Mining의 구조 도식화

 

라이트 노드(SPV 클라이언트)

  • SPV(Simplified Payment Verification) : 단순 지불 검증, 머클트리를 통해 거래가 담긴 블록의 깊이를 참고하여 진행하는 단순 검증(거래가 안전하게 기록 되었다는 검증). 하지만 이는 말 그대로 단순 검증이며, 모든 거래에 대한 기록이 없기에 거래 자체가 적합한지 확인하는 직접 검증은 불가능합니다.

라이트 노드는 이전 블록체인의 원리 아티클에서 설명했던 블록 헤더의 데이터만을 보유하는 노드입니다. 라이트 노드는 일종의 데이터 요약본인 블록 헤더만을 보유하고 있기 때문에 상대적으로 작은 저장공간만 있어도 생성할 수 있습니다. 따라서 라이트 노드는 직접적으로 비트코인 네트워크의 보안에 기여하지는 않습니다.

출처: 토큰 포스트/ 비트코인 네트워크 내의 엔드 포인트 노드, 라이트 노드

결국 라이트 노드는 실질적인 거래를 위한 검증이 필요할 때는 풀 노드에게 트랜잭션과 블록 검증에 대한 데이터를 요청해야 합니다. 하지만 경량화를 위해 세부 거래 기록을 가지고 있지 않아 그 형태가 의존적일 뿐, 결국 라이트 노드조차도 간단한 트랜잭션 검증을 수행하는 비트코인 네트워크 내의 노드 중 하나입니다. 라이트 노드는 비트코인 네트워크 내의 엔드 포인트 노드로써 작동하며, 대부분의 암호화폐 지갑에서 사용됩니다.


-> '노드(Node)란?' 원문 보러가기

 

※ 참고자료

주의사항
본 글에 기재된 내용들은 작성자 본인의 의견을 정확하게 반영하고 있으며 외부의 부당한 압력이나 간섭 없이 작성되었음을 확인합니다. 작성된 내용은 작성자 본인의 견해이며, (주)크로스앵글의 공식 입장이나 의견을 대변하지 않습니다. 본 글은 정보 제공을 목적으로 배포되는 자료입니다. 본 글은 투자 자문이나 투자권유에 해당하지 않습니다. 별도로 명시되지 않은 경우, 투자 및 투자전략, 또는 기타 상품이나 서비스 사용에 대한 결정 및 책임은 사용자에게 있으며 투자 목적, 개인적 상황, 재정적 상황을 고려하여 투자 결정은 사용자 본인이 직접 해야 합니다. 보다 자세한 내용은 금융관련 전문가를 통해 확인하십시오. 과거 수익률이나 전망이 반드시 미래의 수익률을 보장하지 않습니다.
본 제작 자료 및 콘텐츠에 대한 저작권은 자사 또는 제휴 파트너에게 있으며, 저작권에 위배되는 편집이나 무단 복제 및 무단 전재, 재배포 시 사전 경고 없이 형사고발 조치됨을 알려드립니다.