이전 글에서 말했다시피 풀 블록체인을 가지고 있기에는 용량이 너무나도 많이 차지하게 됩니다.
그러기에 단순지불검증(SPV) 방법을 이용하여 풀 블록체인을 저장하지 않고도 운영하는 방법을 사용하는데요.
SPV노드는 블록에 있는 거래내용들은 받지 않고 블록의 헤더만 다운로드 받습니다. 이러한 거래내용이 없는 블록체인은 풀 블록체인 보다 약 1000배 정도 크기가 작아지게 됩니다. SPV노드는 네트워트상의 거래 전부에 대해서는 잘 알지 못하기 때문에 소비할 수 있는 UTXO 전분에 대한 큰 그림을 그릴 수 없습니다.
하지만 이웃 노드들에게 의하는 조금 다른 방법을 이용해 거래를 검증하고, 요청된 블록체인의 필요한 부분들만을 보여주는 방식으로 진행됩니다.
단순지불검증은 블록체인 내에서 해당 블록의 높이 대신 깊이를 참조하여 거래를 검증을 하는데, 풀 블록체인 노드가 최초불록까지 연결된 수천 개의 블록과 거래내용을 검증하여 체인을 생성하는 반면, SPV 노드는 모든 블록의 체인을 검증고, 확인하고자 하는 거래를 체인에 연결하는 방식을 사용합니다.
Coinbase 거래란 채굴을 통해 새로운 코인이 발생하는 것으로 하기의 예는 채굴을 통해 발생한 새로운 코인이, Transaction #1에서 #4까지 사용된것으로 최종 #4번 거래를 통한 출력값이 현재 미사용 출력값인 UTXO 입니다.
즉, Trsaction 4의 UTXO를 거래에 사용하기위해 이전블럭의 유효성을 검증하여 모두 유효한것으로 판단되면 해당 UTXO는 유효한것으로 판단되어 거래에 사용할수가 있는것입니다.
머클 경로를 이용하여 해당 거래와 그 거래가 담겨 있는 블록을 연결합니다.
또한 머클 경로를 통해 거래 정보에 대해 검증을 위해 요청 시 자신의 정보 또한 노출이 될 수 있는데 이걸 해결하기 위해 블룸필터를 사용하게 됩니다.
머클 경로와 블룸필터에 대해서 다음 게시글에서 자세하게 다루어 보겠습니다.
참고자료
비트코인, 블록체인과 금융의 혁신 "책"
'BlockChain > BitCoin' 카테고리의 다른 글
[BitCoin] 블룸 필터 (0) | 2019.05.02 |
---|---|
[BitCoin] 타원 곡선 암호화 (0) | 2019.05.02 |
[BitCoin] 비트코인 네트워크 (0) | 2019.04.16 |
[BitCoin] 비트코인내에서의 거래 (0) | 2019.04.16 |
[BitCoin] 키, 주소, 지갑 (0) | 2019.04.15 |
댓글