라이트노드
라이트노드(light node)는 블록체인 거래내역 중 일종의 핵심본만 저장하는 노드이다. 모든 블록 정보를 가지고 있지 않고, 필요한 부분만 저장한다는 특징이 있다.
목차
개요[편집]
라이트노드는 블록체인에 참여하여 거래를 수행하는 노드로, 풀노드에 거래 데이터를 요청하여 개별 거래를 검증하는 기능을 수행한다. 풀노드처럼 모든 블록 정보의 원본을 가지고 있지는 않고 일종의 요약본, 즉 블록헤더에 있는 중요한 데이터만 보유하고 있다. 스마트폰의 경우, 100GB 저장 공간을 가진 폰이 아직 많지 않기 때문에 안드로이드 모바일 비트코인 지갑은 라이트 노드로 사용된다. 참고로 데스크톱 컴퓨터의 비트코인 지갑은 풀노드로 사용된다.
라이트노드는 모든 블록정보를 가지고 있지 않기 때문에 어떤 새로운 거래 정보를 수신받았을 경우 이 거래가 정상적인지 검증할 수 없다.[1] 반대로 풀노드의 경우 모든 데이터를 가지고 있기 때문에 로컬에 있는 블록 정보를 조회하여 검증을 할 수 있다.[2] 따라서 라이트노드는 개별 거래에 대한 트랜잭션을 확인하기 위한 SPV(Simple Payment Verify, 단순 지불 검증)를 사용한다. SPV는 라이트노드에서 거래를 검증하기 위해 풀노드에게 블록정보를 요청하여 머클트리를 통해 이 거래가 검증된 거래인지를 확인하는 방법이다.[3]
노드[편집]
블록체인은 중앙 집중형 서버에 거래 기록을 보관, 관리하지 않고 거래에 참여하는 개개인의 서버들이 모여 네트워크를 유지 및 관리한다. 이 개개인의 서버, 즉 참여자를 노드라고 한다. 중앙 관리자가 없기 때문에 블록을 배포하는 노드의 역할이 중요하며, 참여하는 노드들 가운데 절반 이상의 동의가 있어야 새 블록이 생성된다. 노드들은 블록체인을 컴퓨터에 저장해 놓고 있는데, 일부 노드가 해킹을 당해 기존 내용이 틀어져도 다수의 노드에게 데이터가 남아 있어 계속적으로 데이터를 보존할 수 있다. 블록체인 네트워크의 모든 거래 정보를 모두 가지고 있으면 풀 노드(full blockchain node), 머클트리만 가지고 있으면 라이트 노드(lightweight node)라고 부른다.[4]
풀노드와 라이트노드 차이점[편집]
노드는 풀노드(full node)와 라이트 노드(light node)로 나뉜다. 풀노드는 네트워크의 모든 거래정보를 전부 저장하고 사용자들의 지갑을 관리한다. 라이트노드는 사용자 지갑을 저장하지만 네트워크 접근을 위해 풀 노드에 의존한다. 노드는 네트워크의 구성요소이며 풀노드는 블록체인을 유지하는 것, 라이트노드는 참여자를 위해 접속권한을 부여하는 것이라고 이해할 수 있다. 금고와 파수꾼 비유를 다시 사용해보면 풀노드는 군대급의 강화된 파수꾼이고, 라이트노드는 금고를 활용해 입출금을 시도하는 통로로 볼 수 있다. 풀노드와 라이트노드 중에서 블록체인 네트워크에 기여가 큰 것은 역시 풀노드이다. 결국 라이트노드와 개별 노드는 노드에 저장되어 있는 블록체인을 읽어 와서 네트워크에 참여되는 것이기 때문이다.
풀노드의 장점(라이트노드의 단점)[편집]
- 비트코인 전송에 대한 완전한 보안이 가능
자체 노드에서 전송데이터가 발송되기 때문에 이 전송이 어디에서 생성된 것인지 어느 누구도 알지 못한다. 라이트노드는 전송데이터가 중앙서버를 통해 나가기 때문에 완전한 보안이 가능하지는 않다. 완전한 보안이 아니라고 해서 비트코인 해킹의 위험이 증가한다는 의미는 아니다. 노출될 수 있는 정보는 어떤 주소가 어떤 IP에서 발송이 됐는지에 대한 정보가 서버에 남을 수 있다는 의미이다. 이에 반해 풀노드는 어떤 주소가 어떤 IP에서 발송됐는지 알지 못한다. 내 노드에서 코인 전송을 다른 PC에 전달하는 경우 내 브로드캐스트를 받은 PC는 이 전송이 내가 보낸 것인지 혹은 다른 것을 전달 한 것인지를 알지 못하기 때문이다.
- 안정적 운영 가능
버전업이 되는 상황에 따라 안정적인 전송이 가능하다. 노드 관리를 직접하기 때문에 블록의 변화에 대해서(하드포크 또는 소프트포크)에 대해서 안정적으로 대처가 가능하다. 하지만 이 부분의 컨트롤을 일반사용자가 하기에는 어려우므로 일반사용자에게 크게 의미를 주는 장점은 아니다.
- 개인키의 쉬운 입력과 추출
풀노드 Bitcoin Core에서 쉽게 사용할 수 있는 방법입니다. 종이지갑을 만드는 경우 개인키의 추출이 필요한데 다른 라이트노드 지갑에 비해 개인키의 추출 및 입력이 간단하다.
라이트노드의 장점(풀노드의 단점)[편집]
- 사용이 쉬움
자체 블록을 사용하는 것이 아니라 중앙서버에서 나의 잔고가 얼마나 있는지 체크하는 방식이다. 그렇기 때문에 프로그램 설치부터 사용까지의 시간이 얼마 안 걸리며 사용이 간편하다. 풀노드의 경우 블록데이터가 385GB(2022년 1월 13일 기준)에 이르기 때문에 이 블록을 모두 받아오는데 2일에서 7일까지 걸릴 수 있다.(CPU가 느리면 더 오래 걸리기도 한다.)
- 복구가 간편
시드(seed) 방식을 이용하여 주소를 관리하기 때문에 지갑 복구가 간편하다. 12 / 18 / 24개의 영어 단어를 잘 적어두면 혹시라도 지갑이 분실되어도 이 단어를 이용해 지갑 복구가 가능하다. 풀노드는 PC 명령어 사용에 어느정도 능숙해야 지갑 손실없이 안정적인 사용이 가능다.[5]
지갑[편집]
- 마이셀리엄(Mycelium) : 씬 클라이언트 지갑(Thin Client Wallet) 중 하나로, 안드로이드 비트코인 지갑 애플리케이션이다. 마이셀리움은 스마트폰을 잃어버리거나 도난당했을 때, 해당 지갑에 저장된 비트코인을 훔쳐내지 못하도록 백업 기능을 제공한다.[6] 온라인에 저장되어 있는 블록체인을 이용하기 때문에 동기화가 비교적 빠르지만, 인터넷에 로그인되어 있을 때 개인키를 따로 격리하지 않아 보안에 취약해질 수 있다는 단점이 있다.[7]
- 마이이더월렛(My Ether Wallet) : 이더리움의 브라우저 기반 자바스크립트 원격 클라이언트로 웹 브라우저를 통한 접속만으로 사용 가능하다. 만들기 쉽고 저장 용량을 차지하지 않는다. 또한 동기화 시간이 없고 테스트넷과 하드웨어 지갑을 위한 인터페이스로서 매우 유용하다는 장점이 있다. 하지만 마이이더월렛은 브라우저를 통한 공격에 노출되어 있고 안전한 키 저장 시스템이 아니기 때문에 주 소프트웨어 지갑으로 사용해서는 안 된다. 또한 웹이 다운되거나 해킹을 당한 경우 접근에 제한되는 단점이 있다. 마이이더월렛은 다음과 같은 기능을 한다.
- 자바스크립트로 실행되는 소프트웨어 지갑
- 트레저(Trezor)와 레저(Ledger) 같은 인기 있는 하드웨어 지갑으로 연결
- 다른 클라이언트에 의해 주입된 web3 인스턴스에 연결할 수 있는 web3 인터페이스
- 이더리움 풀 클라이언트에게 연결할 수 있는 RPC 클라이언트
- 계약의 주소와 애플리케이션 바이너리 인터페이스가 있는 스마트 게약과 상호작용할 수 있는 기본적인 인터페이스
각주[편집]
- ↑ Yuna, 〈블록체인 용어 정리〉, 《브런치》, 2018-07-20
- ↑ Crocus, 〈[https://www.crocus.co.kr/1365 SPV(Simple Payment Verification)란?〉, 《티스토리》, 2018-10-02
- ↑ yahweh87, 〈# 12 – 블록체인 노드에 대한 개념정리(Feat. 지갑)〉《스팀잇》
- ↑ 〈블록체인 관련 용어〉《네이버 지식백과》
- ↑ 쌍둥아빠, 〈비트코인 지갑에는 어떤 종류가 있죠?〉《땡글닷컴》, 2017-07-24
- ↑ 손경호 기자, 〈“비트코인 해킹, 정말로 어렵다”..왜?〉, 《지디넷코리아》, 2014-11-10
- ↑ Crypto Actually, 〈암호화폐 지갑 파헤치기(+핫월렛&콜드월렛)〉, 《네이버 블로그》, 2017-11-18
참고자료[편집]
- yahweh87, 〈# 12 – 블록체인 노드에 대한 개념정리(Feat. 지갑)〉《스팀잇》
- 〈블록체인 관련 용어〉《네이버 지식백과》
- CryptoActually, 〈노드의 개념과 마스터노드의 역할〉《네이버 블로그》, 2018-02-24
- 쌍둥아빠, 〈비트코인 지갑에는 어떤 종류가 있죠?〉《땡글닷컴》, 2017-07-24
같이 보기[편집]