NoSQL 기술 발전의 혜택을 누리지 못한 블록체인

2009년 비트코인이 세상에 탄생하고 그 대상승기를 겪었던 2013년. 그리고 2017년. 그리고 최근에서야 되두 대는것이 바로 비트코인 네트워크 과부하로 인한 트랜잭션 처리성능 저하문제입니다. 하지만 이것과 별개로 또 문제되는 거 중에 하나는 바로 비트코인 노드 차제의 성능 제한 문제입니다. 예를 들어 비트코인 노드에서 Private key를 사용해 계정을 복구하게 되면 생각보다 상당한 시간이 소모됩니다. 풀노드 상태에서 현재기준 160기가에 달하는 모든 거래내역을 탐색하여 자신의 잔고 보유를 찾아낼때 제 경험으로는 꼬박 하루가 걸리기도 했습니다. 실제 사용하지 않은 지갑주소의 경우에는 전체 거래내역을 전부다 검색하고 되고 이때 어느정도 비트코인 노드의 로컬처리 및 스캔속도를 알 수 있습니다.

20180217_133632.png

사실 이렇게 느릴법도 한 이유가 사실 이 NoSQL과 빅데이터 기술의 본격적인 황금기는 2014년도 였습니다. 항상 가트너 기술 선정은 조금 앞서가는 감이 있죠. 저렇게 대두가 되고 본격적으로 여러 기반 기술들이 뒷받침되며 여러 영역에서 상용화되던것이 2014년으로 기억합니다. 당시 여러 데이터베이스 기반 솔루션들이 등장했고, 특히 비정형 데이터. 즉 체계화된 데이터가 아닌 여러 각종 문서와 이미지들 정형화되어 있지 않은 수많은 종류의 데이터를 처리함에 있어 비정형 데이터 처리에 특화된 NoSQL 기술은 크게 각광을 받았습니다.

블록체인 또한 사실은 데이터베이스 기술임에는 분명합니다. 다만 일반적인 SQL 에는 INSERT(입력), SELECT(조회), UPDATE(수정), DELETE(삭제) 의 4가지 기능이 필수적으로 들어가는 반면, 블록체인 기술에는 SELECT와 INSERT만 있습니다. 즉 수정과 삭제의 기능은 전혀 들어가 있지 않으며 이는 스팀잇 또한 마찬가지 입니다. 스팀잇에 올린 데이터는 영구보관되며, 우리가 쓰는 수정 기능은 사실 새로운 히스토리로 추가 저장하게 되도록 설정되어 있습니다.

INSERT와 SELECT 만 가지고 처리된다는 점과 디비 스키마 형태가 아닌 JSON 형태로 서술됨을 본다면 사실상 NoSQL과 흡사한 부분은 많습니다. 하지만 저 위의 NoSQL이 서로 비슷한 영역에서 피터지는 경쟁을 하며 전쟁을 치룰동안 비트코인을 비롯한 초창기 블록체인은 사실상 무풍지대에서 큰 일 없이 고유한 영역에서 자리 잡았지만 사실상 그 댓가는 가혹합니다.

오늘날 비자와 마스터카드 같은 회사의 결제처리 시스템은 초당 2만4천건을 처리할 수 있습니다. 하지만 그에 비해 비트코인은 초당 처리 가능한 거래횟수는 단 7건입니다. 이더리움은 초당 20건, 빠르다고 하는 대시 또한 48건 정도 입니다. 리플이 빠르다고는 하지만 1500건으로 역시 비자에는 크게 못미칩니다.

분산장부의 한계성이라고도 볼수 있지만 한편으로는 이 당시 블록체인이 개발될 당시 빅데이터에 대한 개념이 크게 없던 시절이고, 사실상 흡사한 NoSQL 기술의 발전 또한 누리지 못했습니다. 물론 희망은 있습니다. 라이트닝 네트워크의 경우에는 초당 4000건 까지 처리가 가능하다고 합니다.

하지만 결국에는 이 모든 것의 문제는 표준화 되지 못한 프로토콜. 그리고 지금에서야 처리속도 문제가 대두되었던 것이 원인일 것입니다. 저는 개인적으로 볼때 NoSQL에 쌓였던 노하우가 블록체인 처리속도 문제를 크게 개선시킬수 있다고 생각합니다. 그리고 네트워크상 결제 영역 뿐만 아니라, 앞서 위에서 말씀드린 로컬 탐색 성능 또한 기존의 엔진 으로는 성능 제약이 많습니다. 아마 몇년 후에는 새로운 풀노드 지갑에서 이전의 계정을 복구할때 몇일이 걸릴지 모를 일입니다.

서버사이드 자바스크립트 엔진인 NodeJS에 MongoDB나 REDIS 를 결합하고 거기에 원거리 리플리케이션을 도입한 솔루션 형태도 어찌보면 최근 발달한 NoSQL의 성능의 혜택을 누릴 수 있는 구성이라고도 여겨집니다. 그리고 그 DBMS 영역안에 블록체인을 구성하는 텍스트들을 배치해둔다면 블록체인의 기능은 그대로 가져오면서 성능은 NoSQL의 탐색 수준을 구현할 수 있게 됩니다. 인덱싱 성능 또한 기존 블록체인 내의 시스템 보다는 훨씬 빠를 것으로 생각되고, 블록 익스플로러와 같은 시스템도 효과적으로 구현할 수 있게 됩니다.

사실 블록체인 또한 결국은 UPDATE와 DELETE만 없을 뿐 기존 DBMS와 유사한 부분이 많습니다. 또한 기존 DBMS에서도 충분히 구현이 가능하다고 생각합니다. 한편으로는 블록체인에서 풀지 못한 숙제는 이미 수십년간 발달된 DBMS 영역에서 많은 답을 가지고 있다고 여겨집니다. 완전히 다르게 분화되어 자라난 두 기술을 융합 시킨다면 꽤나 잼있는 일들이 많이 벌어질 수 있겠네요. 한편으로 다르게 본다면 아직 블록체인의 기술 발달은 현재진행형인 것입니다.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now