본문 바로가기
블록체인/블록체인이란?

비트코인에서의 프루닝

by 제이제이_은재 2022. 6. 28.
반응형

 

💡 프루닝

프루닝은 경량화 기법의 하나로, 인공 지능(딥러닝) 분야에서 검색 모델을 학습한 후에 불필요하거나 중요도가 낮은 노드 등을 제거하는 기술을 일컫습니다. 이 '모델'은 매우 많은 수의 파라미터 값들로 구성된 그래프 형태로 구현했을 때, 그래프의 엣지를 제거하는 모습이 '가지치기'와 비슷한 형태를 띄어, 프루닝(가지치기)라고 붙여졌다. 나무의 가지 치기 작업을 할 때, 중요한 부분은 꼭 남겨 놓고 잔가지를 다듬는 것과 같이, 푸르닝을 시도하여 불필요한 것을 제거한다고 하더라도 올바른 노드는 꼭 있어야 한다. 이에 따라 성능의 저하를 최소화하고, 정확도를 높이는 일에 기여한다. 프루닝은 블록체인에서 오래된 블록체인 데이터를 자동으로 삭제하기 위해 사용된다.

 

✓ 비트코인에서의 프루닝

 

비트코인의 노드는 블록체인의 사본을 보관하고 네트워크를 실행하는 데에 필요한 여러 태스크를 수행한다. 그러나 하나의 문제가 있다면, 많은 스토리지를 낭비한다는 것이다. 이 행위는 노드의 디스크 공간의 차지와 노드를 시작할 때 터무니없이 느린 인터넷 연결 속도를 만들어 냈고, 그로 인해 많은 사람이 노드를 소유할 수 없게 만들었다. 비트코인은 300GB 이상을 차지하는 블록체인이라는 DB가 있으며, 비트코인의 모든 트랜잭션을 확인할 수 있고, 분 단위로 성장중이다. 다르게 말하자면 2009년 1월에 첫 번째 거래가 성사된 후 10년이 넘는 동안 이 네트워크는 한 번도 작동을 중단하지 않았다.

 

비트코인이 수년간 겪은 문제는 블록체인 크기의 가속화된 성장이다. 수십 메가바이트밖에 하지 않던 블록체인 레지스터리는 오늘날 수백기가바이트로 늘어났다. 또한, 앞으로도 비트코인을 사용하는 사람들이 많아질수록 이 성장은 더욱 빠르고 커질 것이다. 이렇나 이유로, bitcoin core팀은 Block file pruning 이라고 불리는 것을 bitcoin core 0.11.0 version 에 추가했다. 비트코인 블록체인의 참조할 가능성이 없는 불필요한 정보를 삭제한다면 비트코인의 용량은 10GB 미만의 수준으로 파악하고 있다.

 

Block File Pruning 을 통해 비트코인의 용량을 최적화할 수 있다. Block pruning 을 통해 작은 버전의 풀 블록체인을 실행할 수 있고, 최신 블록체인을 다운로드하는 동안 필요하지 않은 오래된 데이터를 삭제할 수 있다. 또한 purne mode 에서 지갑을 실행하게 되면 이전 트랜잭션과 오래된 체인 기록이 삭제되어 디스크 공간을 절약할 수 있다. 

 

블록체인은 머클트리와 머클루트가 있는, 가장 오래된 것부터 최신 것까지 전부 연관된 거대한 나무와 같다. 모든 것을 살펴볼 수 있지만 크기가 크기 때문에 전부 저장하는 건 비효율적이다. 비트코인이 블록을 실행하고 검증하는 데 중요한 것은 블록 내 트랜잭션 내의 인/아웃풋의 사용 가능 여부이다. 그렇기에 굳이 모든 트랜잭션을 저장하고 있지 않아도 된다. 그러나 블록이 교체될 경우, 빠진 블록의 트랜잭션을 복구하는 과정이 필요하기 때문에 비교적 최신 정보만 가지고 있으면 된다. 풀 블록체인을 다운로드하여, 다운로드가 올바른지 확인한 후에 필요한 최신정보만 복사한 뒤 나머지는 버린다. 저장한 블록체인은 풀 블록체인의 자식 트리(머클 트리)이며, 원본 블록체인의 부분 복사본이다.

반응형

댓글