Skip to Content

카르다노에 대하여 - 1편

Table of Contents

들어가며

수 많은 블록체인 프로젝트 중 카르다노 프로젝트의 팬이자 지지자로서, 프로젝트에 대한 많은 동영상과 자료를 찾아 보고는 한다. 하지만 사실 다른 이에게 왜 카르다노가 차별화되는지, 왜 가치있는 프로젝트인지 잘 정리해서 설명하기는 쉽지 않다. 이 시리즈에서는 카르다노 프로젝트에 대한 개괄적인 내용을 자세하게 풀어 설명하고자 한다. 첫 번째 글로, 카르다노가 기존 암호화폐들의 어떤 문제를 해결하기 위해 만들어지기 시작했고, 기존 문제들에 대해 어떤 해결 방안을 제시하고 있는가를 살펴보겠다. 이 글은 2017년도 10월의 찰스의 화이트보드 강의 내용에 기반하고 있으며, 동영상에서 찰스가 제시하는 내용과 현재 개발 현황이 반드시 일치하지는 않는다는 점을 감안해야한다. 1

카르다노와 3세대 암호화폐

암호화폐의 세대

카르다노가 왜 개발되고 있는지에 대해 이해하기 위해서는 먼저 이 프로젝트가 어떤 문제를 풀고자 하는지에 대해 알아야 하겠다. 그러기 위해서 우리는 비트코인에서 시작되는 블록체인 기반 암호화폐의 개발 흐름에 대해 알 필요가 있다.

1세대 암호화폐 : 비트코인

비트코인이 풀고자 하는 문제

이제는 많은 사람들이 알고 있는 비트코인이 풀고자 하는 가장 핵심적인 문제는 바로 “탈 중앙화된 가치 전송을 어떻게 가능하게 하는가?” 였다. 비트코인 이전에도 많은 프로젝트들이 이 문제를 풀고자 했지만, 중앙화된 노드 없이 어떻게 네트워크 참여자가 네트워크 자체를 신회할 수 있는 시스템을 만들 수 있는가에 대한 해답은 비트코인이 처음 제시했다. 사토시 나카모토의 백서를 보면 알 수 있듯, 비트코인은 이 문제를 블록체인을 통한 변경 불가능한 장부 구축과 작업 증명 (PoW) 알고리즘을 통한 장부 동기화를 통해 해결했다. (참고 : 비트코인 백서 요약) 비트코인 자체의 가치 변동성이 현재 너무 크고, 하드 포크를 통해 여러 가지 버전으로 나눠지는 등의 문제가 있지만 현재까지 비트코인은 사토시 나카모토가 제시한 순 기능은 문제 없이 수행하며 작동하고 있다. 비트코인이 사람들에게 제공하는 것은 결국 중간자 없는 가치 전송 수단이라 할 수 있다.

비트코인의 문제점

비트코인은 탈중앙화된 가치 전송 수단이라는 역할은 어느정도 훌륭하게 수행하고, 또한 수 많은 암호화폐 중 상징적인 존재로써 대중들에게 인식되는 장점을 가지고 있지만, 당연히 문제점을 가지고 있다. 그 중 큰 것들을 나열하자면,

  1. 기능의 제약: 비트코인 자체의 가치 전송에는 조건을 달 수 없다. 비트코인은 “A가 B에게 x 만큼의 BTC를 전송한다”는 태스크는 잘 수행할 수 있지만, “z라는 조건이 만족되었을 때 A가 B에게 x 만큼의 BTC를 전송하고 아니면 전송하지 않는다”는 조건이 있는 태스크는 수행할 수 없다. 즉, 현재, 비트코인만으로는 스마트컨트랙트를 구현할 수 없다.2

  2. 지속 가능성의 결여: 비트코인 개발에 있어 블록 사이즈를 늘리는 등의 어떤 중요한 결정을 해야 할 때가 있을 때, 그리고 해당 결정의 찬성 반대 입장으로 각각 커뮤니티가 나뉘어졌을 때, 비트코인의 경우 의견을 수렴해서 하나의 방향으로 나아갈 수 있는 기능이 없다. 그래서 주요 기능에 대한 논란이 벌어지고 해당 기능이 하드 포크(Hard fork)의 형태로 업데이트 되었을 때 블록체인 자체가 둘로 나뉘어 버리는 결과를 초래할 수 있다. 이 결과로 비트코인은 현재 비트코인(BTC) / 비트코인 캐쉬(BCH) / 비트코인 SV (BSV)로 나뉘어 있고, 각 커뮤니티의 지지자들은 자신이 지지하는 체인을 진짜 비트코인, 혹은 더 나은 비트코인이라고 여기는 상태이다. 무엇이 어떤 기능을 갖고 있고, 더 나은지에 대한 문제는 여기서 논외로 하자. 이러한 하드포크는 비트코인 자체가 가지고 있는 가치가 둘로 쪼개지는 결과를 낳는다. 결과가 무엇이 되었든 이러한 형태는 프로젝트 자체의 지속 가능성을 저해하는 특징임이 분명하다.

2세대 암호화폐 : 이더리움

이더리움이 풀고자 하는 문제

2세대 암호화폐는 이더리움으로 대표된다. 이더리움은 매우 큰 규모의 오픈소스 개발자 집단을 갖고 있고 아주 활발하게 개발되고 있는 프로젝트이다. 이더리움이 새로운 세대의 암호화폐를 대표하는 이유는 암호화폐 Ether의 전송을 프로그래밍 가능하게 만들었기 때문이다. 이더리움에서 개발자들은 솔리디티 (Solidity)라는 언어를 통해 스마트 컨트랙트를 블록체인 상에서 작동할 수 있게 만들 수 있고 이를 통해 무한히 많은 계약들이 블록체인 위에서 구현될 수 있다. 또한 이더리움은 가치 전송 수단이라기 보다는 전세계 규모의 컴퓨터이다. 이더리움 블록체인 위에서 다른 토큰들이 작동할 수 있게 만들어 준다. 이는 수 많은 이더리움 기반의 토큰들 (ERC-20)이 만들어진 기반이기도 하다.

이더리움의 문제점

  1. 지속 가능성의 결여: 비트코인과 마찬가지로 이더리움 또한 하드포크를 통해 프로젝트가 쪼개질 수 있는 위험성을 갖는다. 대표적인 예로 이더리움(ETH)과 이더리움 클래식(ETC)가 있다. 이더리움은 2016년도에 진행되던 DAO (Decentralized Autonomous Organization) 모금 도중 발생한 해킹에 의해 약 5천만달러 어치의 투자자들의 이더가 손실되는 사건을 겪었다. 이후 하드포크를 통해 이 손실이 일어나기 전으로 블록체인을 되돌리느냐 아니냐로 커뮤니티가 분할된다. 결국 하드포크를 통해 해킹 전으로 블록체인을 돌려 놓은 것이 지금의 이더리움 (ETH)이고, 손실을 그대로 안고 간 것이 이더리움 클래식(ETC)이다. 3

  2. 이더리움 블록체인의 확장성 문제 (Scalability): 이더리움이 겪고 있는 대표적인 문제가 확장성 문제이다. 하나의 거대한 세계 규모 컴퓨터로 작동하기 위해서는 그에 걸맞는 거래 처리가 가능해야 하는데, 현재의 이더리움 네트워크는 처리해야 하는 거래량이 많아지면 병목현상이 발생해서 거래 처리 속도가 현저히 느려지는 문제를 겪는다. 이에 대해 이더리움은 샤딩(Sharding) 구현을 통한 해결 방안을 개발 중이다. 4 5

3세대 암호화폐

카르다노는 자칭 3세대 암호화폐가 되겠다는 비전을 가지고 개발되고 있는 프로젝트이다. 이전 세대의 암호화폐를 넘어선 새로운 세대의 암호화폐가 되기 위해서는 어떤 문제들을 해결해야 할까, 그리고 카르다노는 그 문제들에 대해 어떤 해결 방안을 제시하는가?

카르다노가 풀고자 하는 문제

위의 1, 2세대 암호화폐가 갖는 문제점을 해결할 수 있는 프로젝트가 3세대 암호화폐라 불릴 수 있는 최소한의 조건을 갖는다고 할 수 있겠다. 카르다노 프로젝트의 창립자 찰스 호스킨슨은 카르다노 프로젝트를 소개하는 화이트보드 강연 영상에서, 3세대 암호화폐의 조건으로 다음 3가지를 제시했다.1

  1. 확장성 (Scalability)
  2. 상호운용성 (Interoperability)
  3. 지속 가능성 (Sustainability)

3세대 암호화폐의 최소한의 조건으로 여겨지는 위 세가지 성질과 카르다노가 제시하는 해결 방안에 대해서 조금 더 자세하게 알아보자.

확장성

블록체인에서 확장성이란 다음 세가지 측면에서 나눠 볼 수 있다.

  1. 거래 처리 속도 (TPS; Transaction Per Second) : 블록체인에서 TPS는 흔히 사람들이 여러 블록체인 프로젝트를 비교할 때 쓰는 용어인데, 해당 블록체인이 1초에 처리할 수 있는 거래의 수를 의미한다. 예를들어, 비트코인은 7 TPS를 갖고, 이더리움은 약 15 TPS를 갖는다.6
  2. 네트워크 대역폭 (Network Bandwidth) : 네트워크 대역폭이란, P2P 형식의 시스템에서는 잘 사용되지 않지만, 블록체인이 한 번에 처리할 수 있는 데이터의 양을 의미한다.
  3. 블록체인 데이터 (Blockchain Data) : 블록체인의 특성상 체인에서 일어나는 모든 거래는 기록되기 때문에 체인이 진행될 수록 네트워크를 구성하는 노드들이 로컬에 저장해야 하는 데이터는 늘어난다. 블록체인의 확장성의 한 측면은 데이터 양을 의미한다.

즉, 1초에 처리할 수 있는 거래가 많을 수록 (TPS), 또는 네트워크 대역폭이 커서 처리 가능한 데이터가 많을수록, 또는 블록체인 데이터의 보관이 효율적이어서 로컬 노드에 효율적으로 저장될수록 블록체인의 확장성이 좋다고 할 수 있다.

상호 운용성

현재의 블록체인 생태계에서는 여러 종류의 블록체인 (비트코인 / 이더리움 / etc.) 들이 각자의 체인 안에서 거래를 검증하며 상호간의 통신이나 검증이 어렵다. 블록체인이 진정한 의미의 자유로운 가치 전송의 매개가 되기 위해서는 이러한 분절화된 모습의 시스템이 아닌, 서로 다른 블록체인이 각자의 검증을 이해하고, 나아가 상호간의 가치 전송이 가능한 형태의 시스템이 되어야 한다. 현재 이런 가치 전송은 중앙화된 거래소들에 의해 매개되고 있으며, 사실 암호화폐 관련 사건 사고들은 이런 거래소들에서 발생하는 해킹, 사기가 대부분이다. 3세대 암호화폐는 이런 중앙화된 모습의 거래소를 대체할 수 있는 여러 블록체인 간의 상호 운용성을 가지고 있어야 한다. 이를 위해서는 어떤 암호화폐가 다른 암호화폐 체인에 대해서 해당 코인이 이중 지불 되지는 않았는지, 전송하고자 하는 자가 실제 그 값을 가지고 있는지 등을 검증할 수 있어야 한다. 7

지속 가능성

암호화폐 프로젝트의 지속 가능성에 대해서 우리는 두 가지 측면에서 생각해 볼 수 있다.

  1. 어떻게 지불하는가? (How do we pay?)
  2. 어디로 가야하는가? (Where should we go?)

첫 번째 측면인 어떻게 지불하는가에 대한 문제는, 프로젝트를 지속해서 개발하고 향상시키는데 들어가는 비용을 어떻게 처리 할 것인가에 대한 것이다. 대부분의 암호화폐는 프로젝트 시작과 함께 ICO나 크라우드 펀딩을 준비하고 특정 개발자 집단 또는 회사가 펀딩 받은 초기 자본을 통해 개발을 진행한다. 하지만 이는 지속 가능한 형태가 아니다. 1) 펀딩 받은 금액은 언젠가 바닥날 것이고, 2) 특정 집단에 의해서만 계속해서 개발되는 프로젝트는 해당 집단에 의해 좌지우지 될 것이기 때문이다. 두 번째 측면인 어디로 가야 하는가에 대한 문제는 더 큰 규모의 문제이다. 기술의 발전이나 변화에 따라 프로젝트의 방향 또한 그것에 맞추어 적응해 나가야 한다. 코드에 기반한 암호화폐 프로젝트들은 소프트 포크 또는 하드 포크를 통해 코드 저장소를 변화시킨다. 이것은 때때로 1, 2세대 암호화폐는 비트코인과 비트코인 캐시, 또는 이더리움과 이더리움 클래식의 예에서 보았듯, 프로젝트가 둘로 갈라지는 결과를 초래한다. 3세대 암호화폐는 어떤 변화에 대한 선택의 기로에 섰을 때, 프로젝트가 분할되지 않고 하나의 방향으로 나아갈 수 있는 어떤 프로토콜을 가져야 할 것이다. 이것은 민주주의 국가가 헌법을 개정할 때 둘로 분할되지 않고 투표 결과에 따라 한 가지 방향으로 나아가는 것과 같은 것이다.

카르다노가 제시하는 해결 방안

확장성
  • 우로보로스 프로토콜 (Ouroboros Protocol)8 : 카르다노는 핵심 합의 프로토콜인 우로보로스 프로토콜 (Ouroboros Protocol)은 이 확장성 문제 해결을 염두해 두고 모듈 기반으로 설계된 지분 증명 (Proof of Stake) 기반 합의 프로토콜이다. 우로보로스 프로토콜에서 블록 생성은 에폭 (Epoch) 단위로 나뉘어진 시간 마다 선출된 노드에 의해 이뤄진다. 우로보로스는 기존의 작업증명 프로토콜처럼 자원을 많이 소모하지 않고도 같은 수준의 보안성을 제공할 수 있기 때문에 매우 효율적이다. 때문에 프로토콜에서 선출된 노드는 메인 체인 하나 뿐 아니라 여러 블록체인에 대한 블록 생성 및 검증이 가능하다. 9
  • RINA (Recursive Inter-Network Architecture)10: RINA는 현재의 TCP/IP 모델을 대체할 수 있는 새로운 컴퓨터 네트워크 구조이다. 찰스는 이 구조를 블록체인 대역폭을 향상 시킬 수 있는 대안으로 제시하였다. 탈 중앙화된 네트워크 구조에서는 네트워크 전체에 균등하게 (homogeneous) 대역폭을 향상시키기란 어렵다. 특정 노드는 늘어난 대역폭을 감당할 수 없을수도 있기 때문이다. RINA 구조를 사용하면 이러한 문제점을 해소할 수 있는 것으로 보인다. 하지만 현재 RINA에 대한 자료나 카르다노에서 개발이 어떤식으로 진행되는지는 찾기 힘들다.11
  • 블록체인 데이터 효율성 강화: 카르다노에서 로컬에 저장되는 블록체인 데이터를 효율적으로 저장하기위해 Pruning / Subscripting / Partitioning / Compression 관련 기술을 이용한다. 블록체인에는 겹치는 데이터들이 많기 때문에 압축할 수 있는 여지가 있지만, 그에 따르는 보안적 결함을 피하는 방법으로 개발되야 한다. 이와 관련해서는 지난 v1.4 업데이트에서 블록 저장 최적화를 통해 다이달로스 지갑에 저장되는 데이터의 양을 감소시킨 바 있다. 12
상호 운용성

서로 다른 체인이 서로의 검증을 이해하고 상호간 가치 전송을 수행하게 할 수 있는 상호 운용성은 사이드체인 (Sidechain)을 통해 구현될 수 있다.13 다른 체인의 이해를 위해 해당 체인의 히스토리를 모두 받아와야 한다면 문제가 생길 것이다. 이를 위해 카르다노는 해당 체인의 전체 히스토리 없이도 검증이 가능한 방법을 찾는 연구(NIPoPoWs)14와, 작업 증명 방식의 사이드 체인(PoW Sidechains)15 , 지분 증명 방식의 사이드 체인 (PoS Sidechains)16에 대한 연구를 진행하였다. 카르다노의 사이드 체인 관련 연구는 Dionysis Zindros와 Aggelos Kiayias가 진행하고 있다. 더 나아가 기존 뱅킹 시스템에서 요구되는 거래에 대한 메타-데이터들을 안전하게 함께 전달 할 수 있는 방식을 개발한다면 블록체인 간의 상호 운용 뿐 아니라 기존 시스템과의 안전한 거래도 가능해 질 수 있다.

지속 가능성

지속 가능한 프로젝트 개발과 생태계 유지를 위해 카르다노는 시스템 내에 재무부 시스템(Treasury System) 을 구현한다. 17 이 재무부 시스템이란 탈 중앙화된 프로젝트 공동의 은행과 같은 것을 의미한다. 비트코인과 같은 암호화폐에서 채굴 보상이 모두 채굴자에게 가는 것과 달리 카르다노에서 블록 생성 보상 중 일부는 재무부 시스템으로 수집된다. 생태계에서 시스템을 향상시키고자 하는 사람은 그 방안 (Ballot)을 재무부에 제출한다. 카르다노 생태계의 참여자들은(토큰 보유자들), 제출된 제안서들을 검토하고 제안에 대한 투표를 진행한다. 해당 제안이 통과된다면 제안자는 재무부로부터 토큰을 지원받으며 생태계를 위해 일 할수 있다. 이는 일종의 양적 피드백 (Positive Feedback)이다. 또, 토큰 참여자들의 투표에 의해 제안이 통과되거나 부결 되는 것은 일종의 유동 민주주의 (Liquid Democracy)18의 한 구현 형태라고 생각할 수 있다. 이러한 재무부 시스템에 기반한 유동 민주주의 시스템의 투표 결과를 통해 카르다노는 큰 변화, 즉 “어디로 가야할 것인가?“에 대한 해답 또한 프로젝트가 분할되지 않으면서 수행할 수 있다. 더 나아가 이러한 매커니즘을 완전히 프로그래밍화 시킬 수 있다면 카르다노의 업데이트 매커니즘19이 자동화 될 수 있고 이것은 더욱 더 안정된 시스템을 보장할 것이다.

마치며

이 글이 기반하고 있는 찰스의 화이트보드 강의(약 40분 분량)를 보면, 카르다노 프로젝트는 매우 섬세하고 치밀하게 기획되고 개발되고 있는 프로젝트라는 것을 알 수 있다. 글의 핵심을 차지하는 3세대 암호화폐가 카르다노인지 아닌지는 사실 중요하지 않다. 시간이 지나고 돌아보았을 때 카르다노는 사실 2.5세대 암호화폐이고, 3세대 암호화폐는 어디선가 혜성처럼 등장한 혁신적인 다른 프로젝트였을 수 있다. 중요한 것은, 이 프로젝트가 풀어야 할 문제를 명확히 정의하고 있으며, 제시하는 해결 방안이 해당 문제에 국한된 임시 방편이 아니라 그 후로도 계속해서 뻗어나갈 수 있는 수단이 될 수 있는 것들이라는 것이다. 저 화이트보드 강의가 나온 후 약 1년 5개월이 지난 현재 IOHK와 협업하는 학자들이 발행한 논문들과 개발 현황들을 살펴보면 찰스가 동영상에서 제시한 타임라인보다 대부분은 개발이 늦어지고 있는 것이 사실이다. 하지만 크게 “연구 -> 피어리뷰 -> 구현 스펙 생성-> 구현 -> 스펙 검증 -> 배포”의 큰 틀을 따르는 IOHK의 매우 엄격한 개발 프로세스를 생각 해 볼때, 많은 부분이 실제로 피어리뷰 단계를 지났고, 구현 및 스펙 검증 단계에 있음을 볼 수 있다. 이 프로젝트가 제시하는 청사진은 매우 방대하고 포괄적이어서, 개인적으로는 실제로 이 만큼 진행되고 있는 사실이 놀라울 따름이다. 확장성에 있어서 우로보로스 프로토콜은 이제 우로보로스 BFT 단계, 즉 쉘리 전단계로 와있고, 사이드체인 또한 연구 논문을 찾아 볼 수 있다. 이후 구현될 재무부 시스템이나 유동 민주주의에 기반한 투표 시스템으로 생태계가 어떻게 변화할 것인지 살펴보는 것은 흥미로운 일이 될 것이다. 이어질 글에서는 카르다노의 개발 철학과 프로세스, 프로젝트의 이상, 우로보로스 프로토콜, 재무부 시스템 등을 차례로 다뤄보고 싶다.

  • ## ADA Tip Jar


글쓴이 후원하기

ADA : Ae2tdPwUPEZ2NHXQnDT4Y6qUQndmkJd5mEyEkSQNqJCrePaD1YBibGGfVhX


  1. Cardano Whiteboard; overview with Charles Hoskinson (https://youtu.be/Ja9D0kpksxw) [return]
  2. 비트코인에 스마트 컨트랙트 기능을 추가하고자 하는 프로젝트도 존재한다. (https://www.rsk.co/ko/) [return]
  3. https://en.wikipedia.org/wiki/Ethereum#The_DAO_event [return]
  4. https://github.com/ethereum/wiki/wiki/Sharding-roadmap [return]
  5. https://blockonomi.com/sharding/ [return]
  6. 확장성 측면에서는 이더리움의 개발 (샤딩과 플라즈마)은 계속 진행중이다. (https://cryptoslate.com/vitalik-buterin-sharding-and-plasma-to-help-ethereum-reach-1-million-transactions-per-second/) [return]
  7. 아토믹 스왑은 상호 운용성의 한 예시이다. https://cardanoupdates.com/resources/99b8a9b6-160c-4fdb-b049-def1fb360617 [return]
  8. 우로보로스는 카르다노의 핵심 프로토콜인 만큼 자료, 특히 논문이 많고 그 양이 방대하며 내용이 어렵다. 자세한 내용에 대해서는 나중에 다뤄볼 계획이다. [return]
  9. https://youtu.be/Ja9D0kpksxw?t=468 에서의 찰스의 말을 인용. 자세한 매커니즘과 실제 구현 방식은 우로보로스 관련 자료/논문을 더 찾아보고 검증이 필요함. [return]
  10. https://en.wikipedia.org/wiki/Recursive_Internetwork_Architecture [return]
  11. RINA와 관련된 카르다노 포럼 토론 링크 : https://forum.cardano.org/t/cardano-and-rina-recursive-internetwork-architecture/12887 [return]
  12. https://cardanoupdates.com/resources/99b8a9b6-160c-4fdb-b049-def1fb360617 [return]
  13. https://youtu.be/04D2BP33YI8 [return]
  14. https://iohk.io/research/papers/#67CHCNP8 [return]
  15. https://iohk.io/research/papers/#NAW7PLBT [return]
  16. https://iohk.io/research/papers/#YF6BA22I [return]
  17. * DASH 프로젝트는 이와 같은 재무부 시스템을 구현하여 작동시키고 있다. 카르다노의 재무부 시스템에 대한 화이트보드 강의 (https://youtu.be/Hyh3h_yX-S0) / 재무부 시스템에 대해 기술한 페이퍼(https://www.lancaster.ac.uk/staff/zhangb2/treasury.pdf) [return]
  18. https://medium.com/@memetic007/liquid-democracy-9cf7a4cb7f / https://en.wikipedia.org/wiki/Delegative_democracy [return]
  19. 카르다노의 업데이트 매커니즘 (https://cardanodocs.com/cardano/update-mechanism/) [return]
comments powered by Disqus