TIL 34 - 블록체인에서의 노드

프동프동·2023년 2월 10일
0

TIL

목록 보기
34/46
post-thumbnail

자료구조로써의 노드에 대해 이해할 수 있다.

노드란?

하나의 단위

블록체인에서의 노드에 대해 이해할 수 있다.

노드란?

블록체인에서 노드는 트리구조로 이루어져 있다.

  • 트랜잭션을 제안하고 검증할 수 있으며
  • 합의를 이루고
  • 채굴을 수행하기도 한다.
  • 계정의 역할도 하므로 프라이빗 블록체인 또는 폐쇄형 블록체인 네트워크에서는 계정 역할의 노드가 필요하다.

노드의 종류와 구성에 따른 기능을 이해할 수 있다.

지갑(Wallet)

개인 키와 공개 키를 관리하고 거래에 사용하는 주소를 생성하는 기능을 담당

풀 노드(Full Node)

블록체인에서 이뤄진 모든 거래 정보를 전부 저장하는 노드

  • 제네시스 블록부터 현재 블록까지 모든 블록체인 정보를 수집, 저장한다.
  • 여러 풀 노드가 함께 데이터를 보관한다.
  • 다른 노드의 도움 없이 스스로 거래 검증이 가능하다.

제네시스 블록은 블록체인에서 생성된 첫 번째 블록
제네시스 블록이 생성되었다는 것은 해당 블록체인 네트워크가 시작되었다는 상징적 의미가 있다.

라이트 노드(Light/Lightweight node)

풀노드의 단점을 해결하기 위해 나온 노드

  • 거래를 수행하는 노드
  • 풀노드에 거래 데이터를 요청하여 개별 거래를 검증하는 기능을 수행
  • 모든 블록 정보의 원본을 가지고 있지 않고 블록 헤더에 있는 중요한 데이터만 보유하고 있다.
  • 거래를 위해 내용 검증이 필요할 때마다 풀 노드에게 자료를 요청해야만 한다.

SPV(Simple Payment Verification)

라이트 노드와 동일한 개념, ‘단순 지불 검증 노드’로서 블록체인 장부 전체를 저장하지 않아도 특정 거래를 확인할 수 있다.

  • 목적
    • Storage, power가 한정적인 기기에서 블록체인 네트워크를 부분적으로 사용할 수 있게 하기 위함
  • 거래를 ‘확인’할 수 있지만 ‘직접 검증’은 불가능하다.
  • 거래가 담긴 블록의 깊이와 높이를 참고하여 단순 검증(안전하게 보관되었다는 검증)은 할 수 있지만, 거래 전부에 대한 기록이 없기에 직접 검증(거래 자체가 적합한지)은 불가능하다.
  • UTXO의 소비 여부 또한 검증할 수 없다.
  • 이웃 노드들에게 지불 검증을 위해 필요한 데이터를 요청한다.
    • 이러한 과정에서 자연스레 프라이버시를 노출하게된다.
      • 필요한 데이터가 무엇인지 그대로 전달해야한다.
      • 이러한 점을 보완하기 위해 ‘블룸필터’를 사용하여 원하는 데이터를 얻으면서 프라이버시를 유지할 수 있게 된다.

마스터 노드(Master node)

풀 노드 중에서 권한과 보상을 받는 노드로 주인, 혹은 상위 노드로 표현된다.

  • 풀노드의 의무를 수행하면서 블록 생성에 대한 보상(투표 실시)을 받고
  • 트랜잭션의 추가기능(익명, 즉시 전송)을 수행한다.

채굴 노드(Mining node)

새로운 블록을 가능한 빠르게 채굴하는 것

  • 작업 증명(PoW) 방식을 채택한 블록체인에만 존재한다.

랜덤 노드(Random node)

전체 블록체인의 무결성을 유지하기 위해 임의로 선택된 노드

  • 선출된 마스터 노드와 함께 블록을 생성한다.

엔드포인트 노드(Endpoint node) (구)레인저 노드(Ranger node)

클레이튼에 적용된 노드

합의 노드(CN; Consensus nodes)

  • 트랜잭션을 새로운 블록으로 배치하고
  • 비잔틴 장애 허용 합의 알고리즘을 사용하여 블록들을 확인하는 작업을 담당하는 합의 네트워크를 형성하는 노드
  • 블록체인에서 블록을 생성하는 노드로 블록체인을 유지하기 위해서는 합의 노드가 존재하여야하며 스마트 계약 실행이나 거래 확인은 합의 노드에서 수행하게 된다.

슈퍼 노드(Super node) or 대표 노드(Representative node)

블록체인 네트워크의 노드들을 대표해 블록을 생성하고 그에 대한 보상을 받는 노드로 위임지분증명(DPoS) 합의 알고리즘을 채택하고 있는 블록체인에서 특징적으로 볼 수 있다.

베이킹 노드(Baking node)

테조스 블록체인에서 사용하는 용어로, 코인 소유자로부터 위임받은 코인으로 베이킹을 하는 노드

  • 베이킹(Baking)은 블록체인에서 블록을 생성하고 블록을 입증하는 방법으로 채굴과 동일한 의미를 가진다.

히스토리 노드(History node)

블록에 있는 데이터를 찾을 수 있는 노드

P2P 네트워크 내의 노드가 통신하는 방법을 이해할 수 있다.

네트워크 라우팅

경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 기법으로 모든 노드가 기본적으로 가지고 있는 기능이다.

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

  • 4가지 기능의 조합으로 다양한 형태로 노드가 형성된다.

    • Reference Client

      • 모든 노드를 포함한 완전한 네트워크의 형태
        • Bitcoin Core가 여기에 해당된다.
    • Full Blockchain Node

      • 네트워크 라우팅 기능과 모든 블록체인 데이터를 가진 형태
    • Solo Miner

      • 지갑 기능은 제외하고 채굴에 특화된 형태의 노드
    • Lightweight wallet(SPV: Simplified Payment Verification)
      - 지갑 기능과 네트워크 라우팅 기능만 포함된 노드로 전체 블록체인 데이터는 없이 단순히 거래와 유효성 검증만 가능한 스마트폰에 설치된 지갑등과 같은 노드

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

블록체인이 분기되는 방식을 이해할 수 있다.

채굴 노드에서 채굴에 성공된 블록이 인근 노드로 전파가 시작되면

  1. 해당 블록을 전달받은 노드들은 그 블록의 유효성을 검사하여
  2. 유효한 경우 자신의 메인체인에 블록을 연결하여
  3. 블록체인의 길이를 연장시키고 다시 인근 노드로 블록을 전달한다.

하지만 동시에 두개의 유효한 블록이 생성되어 전파되는 경우 일시적으로 블록체인이 두개의 브랜치(branch)로 분기가 발생할 수 있다.

하기 그림과 같이 파란블록 → 빨간블록으로 이루어진 블록체인과, 파란블록 → 초록블록 →분홍블록 으로 이루어진 2개의 블록으로 분기가 됩니다. 분기가 발생하게 되는 경우 가장 많은 수의 블록으로 구성된 체인이 그만큼 유효한 작업증명이 이루어졌다고 판단하여 하기 예에서는 파란색 → 초록색 → 분홍색 블록으로 구성된 체인을 메인체인으로 선택하게 되고, 빨간색 블록에 포함되어 있던 거래는 다시 거래풀에 들어가 새로운 블록생성을 위해 대기하게 됩니다.

하드포크와 소프트포크를 이해할 수 있다.

하드 포크

블록체인의 기본 기능 자체를 쉊ㅇ하는 포크를 말하며 업그레이드 이후에는 기존 문제를 해결하고 이전 블록체인과 전혀 다른 프로토콜을 가지는 블록체인이 된다.

하드포크 이후에 채굴 노드들은 새로운 버전으로 반드시 업그레이드 해야한다고 해서 하드(Hard)포크 라고 한다.

소프트 포크

기존 블록체인의 기능을 일부 수정하는 포크를 말하며, 소프트 포크를 하면 기존 블록체인의 기본 구조는 변경되지 않고 부분적인 기능 개선만 이루어지기 때문에 기존 블록체인 노드들은 간단한 시스템 업그레이드만으로도 새로움 시스템으로 이전할 수 있게 된다.

profile
좋은 개발자가 되고싶은

0개의 댓글