에이다, 카르다노 2번째 편에서 작성했던 것 확장성(Scaling)에 덧붙여 확장성의 다른 측면에 대해 얘기하고자 한다.
2편에서 언급했듯이, 보통 확장성이라고 하면 TPS(Transaction Per Second)만을 의미하기 때문에 2편에서도 TPS에 대해서만 담았다.
하지만 카르다노 개발진들이 확장성이라고 정의하는 것은 TPS만이 아니다. 카르다노는 TPS에 덧붙여서 네트워킹(Networking)과 데이터 저장(Data Storage)까지 확장성 범주에 포함하여, 개인적으로 카르다노측의 위 두 문제에 대한 고민은 다른 블록체인 프로젝트들도 고민해야 할 부분이라고 본다.
▣ 네트워킹(Networking)
카르다노가 고민하는 것은 전송되는 양이 많아지면 많아질수록 이를 시간 내 전송할 수 있는 네트워크가 필요하다는 것이었다. 다른 말로 표현하면, 아무리 TPS를 10만, 100만으로 끌어 올린다 할지라도 이를 각 노드들에게 전송할 수 있는 네트워크 망이 없다면 무의미하다는 점이다.
네트워크 쪽으로 공부하지 못했기 때문에, 현재 네트워크가 얼마나 처리할 수 있을지 모르겠지만 만약 블록 크기를 1MB로 가정해보면, TPS가 10만일 때, 네트워크가 초당 전송해야 하는 데이터의 크기는 약 100GB가 된다.
동영상이나 기타 다른 파일들을 인터넷에서 다운 받을 때, 우리의 인터넷 속도는 이 정도로 빠르지 않다는 것을 알고 있으며, 때문에 지금 있는 네트워크 수준으로는 매우 큰 TPS를 감당하기 매우 어렵다는 것도 알 수 있다.
카르다노 측은 이 문제를 해결하기 위해서는 RINA(Recursive Inter-Network Architecture)를 도입하고자 한다. RINA에 대해서는 정말 처음 듣는 이야기였고, 들어봐서 나도 정확하게 알지 못하나, '분산 컴퓨팅과 통신을 통합한 컴퓨터 네트워크 아키텍쳐'라고 한다.
다만, RINA는 인터넷 아키텍쳐 구조를 전체적으로 재구성하는 것이기 때문에 카르다노 혼자만의 노력으로는 어려울 것으로 보인다.
▣ 데이터 저장(Data Storage)
카르다노가 또 하나로 제시한 이슈 사항은 데이터 저장의 문제다. 위의 예시에서도 알 수 있지만, 초당 100GB의 데이터가 전송되는 것도 어렵지만 이를 저장하는 것도 쉽지 않다. 퍼블릭 블록체인에서 노드들은 기관 뿐만 아니라 개인들도 운영할 수 있어야 하는데, 개인이 막대한 양의 데이터를 매번 저장할 수 있는 저장공간을 확보하는 것은 너무 큰 비용이 소모된다.
카르다노 측은 이를 해결하기 위해 파티셔닝(Partitioning)을 이용하고자 한다. 파티셔닝은 토렌트(Torrent)와 같이 데이터들을 다른 수많은 컴퓨터에 분산시켜서 저장하는 것으로 생각하면 된다. 이것은 이미 파일코인, 스토리지(StorJ)와 같이 실용화를 목적으로 연구하는 기관들이 많기 때문에 쉽게 해결될 수 있을 것으로 보인다.
카르다노 측이 확장성에 대해 고민했던 부분은 기존 블록체인보다 좀 더 고민한 흔적들이 보인다고 할 수 있다. 이와 같은 모습은 상호운용성(Interoperability)에서도 나타나며, 카르다노 측이 블록체인 문제에 대해 폭넓게 접근하는 것은 존경할 부분이라고 생각된다.