2009년 비트코인이 세상에 탄생하고 그 대상승기를 겪었던 2013년. 그리고 2017년. 그리고 최근에서야 되두 대는것이 바로 비트코인 네트워크 과부하로 인한 트랜잭션 처리성능 저하문제입니다. 하지만 이것과 별개로 또 문제되는 거 중에 하나는 바로 비트코인 노드 차제의 성능 제한 문제입니다. 예를 들어 비트코인 노드에서 Private key를 사용해 계정을 복구하게 되면 생각보다 상당한 시간이 소모됩니다. 풀노드 상태에서 현재기준 160기가에 달하는 모든 거래내역을 탐색하여 자신의 잔고 보유를 찾아낼때 제 경험으로는 꼬박 하루가 걸리기도 했습니다. 실제 사용하지 않은 지갑주소의 경우에는 전체 거래내역을 전부다 검색하고 되고 이때 어느정도 비트코인 노드의 로컬처리 및 스캔속도를 알 수 있습니다.
사실 이렇게 느릴법도 한 이유가 사실 이 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 영역에서 많은 답을 가지고 있다고 여겨집니다. 완전히 다르게 분화되어 자라난 두 기술을 융합 시킨다면 꽤나 잼있는 일들이 많이 벌어질 수 있겠네요. 한편으로 다르게 본다면 아직 블록체인의 기술 발달은 현재진행형인 것입니다.
좋은 정보와 글 감사합니다~
방문 감사합니다
bigchaindb 이친구가 nosql에 블록체인 얹는 친구입니다. 한번 확인해보시면 도움이 될 것입니다.
엇 역시나 비슷한 시도가 이미 있었군요. 좋은 정보 감사드립니다
제 생각에는 지금이라도 도입하면 좋겠는데 그런 시도를 안해보는 이유가 있을거라고 보는데요, 가장 큰 이유는 블록체인은 비선형 구조 데이터는 아니라는 이유일 겁니다. peer to peer 방식의 관계형 데이터베이스라고 봐도 무방할 것 같고 알고 계신대로 NoSql은 산재해있는 비선형 데이터에 대한 처리 방법론으로 볼 수 있는데 눈여겨봐야 될 부분이 빅데이터죠. 빅데이터와 대용량 데이터는 개념이 엄연히 다릅니다. 예를 들어 지금 이더리움이 해결해야할 sharding문제는 대용량 데이터의 처리문제라고 봐야 할 것입니다. 결국 자료구조가 맞지 않는 문제로 보입니다. 제 의견은 그렇고,
생각지도 못했던 부분을 떠올리게 됐네요. 잘 읽었습니다 ^^
말씀해주신대로 해외기준으로 빅데이터와 대용량데이터는 사실 그 등급이 다른건 사실 같습니다. 1초에 수테라의 로그데이터가 튀어나오는 트위터나 페이스북, 그외 몇몇 사이트에 비하면 대용량 데이터라고 봐야할것 같습니다. 다만 국내의 인프라에서는 아직 그정도의 부하가 없었기 때문에 사실상 빅데이터 = 대용량 데이터가 되어버린것 같습니다. 한편으로는 1초에 수테라를 처리하는 기술에 대한 노하우가 축적된 분야가 NoSQL 기술영역이기 때문에 활용하면 상당한 성능향상이 있을것으로 생각해보았네요. 좋은 분석 감사드립니다.
잘읽었습니다
감사합니다!
예전에 듣기로는 라이트닝 네트워크가 그 문제를 해결할 것이라고 했는데 아직 문제가 현재 진행형인가 보네요...
VISA 급은 아니더라도 초당 몇 천건 처리했으면 좋겠습니다.
네 본문에서처럼 라이트닝 네트워크는 초당 4천건을 처리 가능하다고 하네요. 리플은 1500건. 충분히 경쟁력은 있다고 보여집니다
기술적 특성을 당장은 이해하기 어렵지만, 자주 들러 하나씩 둘씩 배우겠슴다. 파워가 약해 미안하지만, 수업료로 보팅하고 팔로워합니다.
감사합니다
잘보고 갑니다~~!