코스모스(Cosmos) 체인에 대하여

Introduction
Cosmos — 우주, 질서, 만물. 서로 다른 체인들이 모두 연결된 새로운 우주를 블록체인의 세상 속에 이룩하고자 시도하는 프로젝트가 존재한다. 바로 Tendermint 사와 Interchain Foundation에서 진행하는 Project Cosmos이다. 이 프로젝트는 블록체인의 인터넷(Internet of Blockchain)을 세우는 것을 핵심 이념으로 앞세운다. 어떤 방법으로 블록체인의 인터넷을 만드려고 하는 것인지 이해하기 위해서는 우선 코스모스가 왜 만들어지게 되었는지 그 역사를 알아볼 필요가 있다.
2009년 1월 3일 탄생한 비트코인은 획기적인 아이디어였지만, 비트코인은 하나의 체인을 이루는 세 가지 계층들(layers) — Networking, Consensus, Application Layers — 이 모두 통째로 묶여있는 단일형 체인이었고, 스크립트 언어도 다루기 어려웠다. 그래서 개발자로서 비트코인을 기반으로 다른 체인을 세우는 것은 상당히 어려운 일이었고, 비트코인 체인 위에서 할 수 있는 일들도 한정적이었다. 비트코인의 한계를 해결하기 위해 2014년 비탈릭 부테린은 비트코인의 Application Layer를 EVM(Ethereum Virtual Machine —이더리움 가상 머신)으로 바꾸어 스마트 컨트랙트를 작성할 수 있는 이더리움이라는 새로운 체인을 만들었다. 하지만 이더리움에게도 한계가 있었다. 초당 15개의 거래밖에 처리하지 못하는 느린 속도, 그리고 다양한 DApp들이 전부 이더리움이라는 단일 체인 위에서 한정된 자원을 두고 경쟁하는 상황에서 높아진 가스비로부터 비롯된 확장성(Scalability) 문제가 그 중 하나이다. 또한 이더리움 상에서 개발하려면 모든 것을 EVM에 맞춰서 개발해야 하기 때문에 개발이 폭이 좁아지는 활용성(Usability) 문제도 대두되었다. 또한 이더리움 기반 DApp들이 모두 이더리움의 메인 거버넌스를 따라야하고, 어떤 변경 사항을 만들려면 한 DApp 내에서의 거버넌스뿐 아니라 이더리움의 거버넌스를 모두 설득해야한다는 자주성(Sovereinty) 문제도 있었다.
이러한 기존 블록체인 1.0(비트코인)과 블록체인 2.0(이더리움)의 한계점을 해결하기 위해 일명 블록체인 3.0이라고 불리는 체인들이 세상에 나오기 시작했다. 2014년 한국계 미국인 Jae Kwon이 이더리움의 대안으로써 고안해낸 Tendermint BFT 합의 알고리즘을 2015년 Interchain Foundation의 Ethan Buchman이 함께 발전시켰고, 이 둘은 함께 Tendermint 사를 세워 Tendermint BFT 합의 알고리즘을 기반으로 한 코스모스 네트워크를 개발하게 된다.
What is Cosmos?
코스모스는 명확한 한 가지를 지칭하는 말이 아니다. 코스모스는 여러 개념들이 통합되어있는 포괄적 개념에 가깝다. 더 자세히 코스모스를 이해하기 위해서는, 이 개념 안에 들어있는 다양한 요소들을 먼저 알아볼 필요가 있다.
Tendermint Core
원래 블록체인을 구축하려면 3개의 층 — Networking, Consensus, Application Layers — 을 다 직접 개발해야했다. Tendermint Core는 이 3개의 층 중에서 Networking과 Consensus 층이 이미 완성된 채 제공되는 패키지이다. Tendermint Core는 Tendermint BFT 합의 알고리즘을 기반으로 세워졌다. Tendermint Core를 이용함으로써 개발자는 이미 완성되어있는 두 개의 층 위의 Application Layer만 손대어 체인을 만들 수 있다. 이는 수백시간의 개발시간을 아껴줄 수 있으며, 개발자로 하여금 체인을 자유롭게 디자인할 수 있도록 해준다. 하나의 예로, 체인을 Private Chain으로 만들지 Public Chain으로 만들지 자유롭게 설정할 수 있다. Tendermint Core 위에 아무 언어를 사용해 App을 만들 수 있으며, 그렇게 만들어진 App은 ABCI(Application Blockchain Interface)를 통해 Tendermint Core와 연결된다.

Cosmos SDK
Tendermint Core은 Networking, Consensus Layer 까지만 제공하고, 이후 Application Layer는 개발자가 직접 개발해야한다. 이 작업을 더 쉽게 해주기 위한 프레임워크가 Cosmos SDK이다. Tendermint Core 위에 더 편리하게 App을 개발할 수 있도록 다양한 모듈들을 제공한다.

IBC(Inter-Blockchain Communication) Protocol
Tendermint Core 위에 Application Layer를 편리하게 구축할 수 있는 툴을 제공해주는 Cosmos SDK는 다양한 모듈로 구성되어있다. 그 모듈들 중 하나가 바로 IBC Protocol이다. IBC Protocol을 채택한 체인들은 서로 소통할 수 있게 된다. Project Cosmos는 서로 다른 블록체인들이 연결되어 소통할 수 있는 블록체인의 인터넷을 만드는 것을 목표로 한다고 언급한 바 있다. 바로 이 IBC Protocol이 체인들을 서로 연결하는 데에 핵심적인 역할을 한다. 21년 2월 이루어진 Stargate Update 이후, 이젠 IBC Protocol을 채택한 체인들끼리 별 다른 조치를 취하지 않아도 편리하게 서로 연결될 수 있게 되었다.
IBC Protocol은 어떻게 체인을 연결시킬까? IBC Protocol은 Two-way peg 방식을 활용한다. 하나의 체인에서 코인을 동결시키고, 다른 체인에서 그만큼 새로 생성하는 방식이다. 서로 다른 두 체인 A와 B가 있다고 가정해보자. 그리고 A 체인의 고유 토큰을 AAA라고 가정하자. 사용자는 A 체인에서 B 체인으로 10 AAA를 보내려고 한다. 서로 다른 체인 간 송금은 총 4단계에 걸쳐 이루어진다.
- Tracking
A 체인과 B체인은 서로의 블록 헤더들을 받아오고, 서로의 Validator Set을 추적할 수 있는 상태가 된다. 즉 각 체인은 서로의 Light Client가 된다. Full Node는 모든 블록 기록들을 다운 받아야하는 반면, Light Client는 블록 헤더들만 다운 받아 Full Node에게 필요한 정보만 요청하여 트랜잭션을 검토한다.
2. Bonding
먼저 A 체인에서 AAA 토큰 10개를 Lock 시켜, 더 이상 해당 체인에서 유통될 수 없도록 한다.

3. Proof Relay
A 체인에서 10 AAA가 동결되었다는 트랜잭션을 자신의 Light Node인 체인 B에게 전송한다.

4. Validation
체인 B는 체인 A의 블록 헤더들을 검토하여 해당 트랜잭션이 유효한지 판단한다. 만약 유효하다면, 즉 A 체인에서 10 AAA가 동결된 것이 맞다면, B 체인 내에서 10 AAA-voucher를 만들어낸다.

B 체인에서 만들어진 10 AAA는 실제 AAA 토큰이 아니고, AAA을 대신하는 자산이다. Wrapped Bitcoin과 같은 원리이다.
꼭 Tendermint Core 기반으로 만들어진 체인이 아니더라도 Absolute-finality를 특징으로 갖는 체인이라면 무엇이든지 IBC를 통해 바로 연결될 수 있다. 만약 Probabilistic-finality를 특징으로 하는 체인(비트코인, 이더리움 등)이라면 Peg-zone이라는 Proxy-chain을 활용해야 한다. Peg-zone는 Absolute-finality 체인으로, Absolute-finality 체인과 Probabilistic-finality 체인 사이에서 두 체인이 간접적으로 연결될 수 있도록 해준다. 현재 Tendermint Core 기반 체인과 이더리움을 연결하는 Gravity Bridge라는 Peg-zone을 Althea사에서 개발중이라고 한다.

블록체인의 Finality에 대해 더 자세히 알아보고자 하는 분은 아래 글을 읽어주십시오.
https://medium.com/mechanism-labs/finality-in-blockchain-consensus-d1f83c120a9a
Cosmos Hub and Zones
IBC Protocol을 통해 체인들이 이제 연결될 수 있게 되었다. IBC Protocol을 통해 연결될 수 있는 독립적인 각 체인을 Zone이라고 부른다. 각 Zone은 Application-specific blockchain으로 독립적인 거버넌스 모델과 주권을 갖고 있다. 하지만 수많은 체인들이 존재하는 네트워크 상에 진정한 상호운용성(Interoperability)를 이루기 위해서는 모든 Zone들이 연결되어야 한다. 하지만 두 체인을 연결하는 경로를 각 경우의 수마다 모두 만드는 것은 비효율적이고 필요한 경로가 비대하게 많아진다. 예를 들어 10개의 Zone들을 빠짐없이 연결하는 데에도 무려 45개의 경로가 필요하고, 만약 연결해야할 Zone이 100개라면 4950개의 경로가 필요하다. 하지만 만약 Zone들의 중앙에 하나의 Hub가 있어 모두 이 Hub에 연결한다면 어떨까? 이제 Zone들은 Hub를 거쳐 그 어떤 Zone과도 소통할 수 있게 된다. 모든 Zone이 Plug-in 하여 다른 Zone과 소통할 수 있도록 Tendermint 사에서 직접 개발한 Hub가 바로 Cosmos Hub이다. 이 Hub 덕분에 이제는 n개의 Zone을 모두 연결하여 하나의 네트워크를 이루는 데에 n개의 경로만 있으면 된다.


Cosmos Hub 자체도 하나의 고유한 체인이다. Zone들은 이 Hub를 통해 정보를 전달하고 트랜잭션을 검증 받고 수수료를 지불한다. 체인들 간에 자산이 이동할 때, 하나의 체인에서 자산이 새로 생겨난 만큼 반드시 다른 체인에서는 그만큼의 자산이 동결되어야한다. 결과적으로 모든 체인의 총 유동성은 같은 수준으로 유지가 되어야한다. Cosmos Hub는 수많은 Zone들로 이루어진 전체 네트워크의 상태(State), 즉 총 유동성에 변화가 없었는지에 대해 PoS 합의 알고리즘을 기반으로 합의를 내린다. Cosmos Hub의 보안성과 안정성을 유지하기 위한 네이티브 토큰이 바로 ATOM이다. ATOM 홀더는 Validator에게 스테이킹함으로써 네트워크 수수료와 블록보상을 분배 받는다. 그리고 ATOM은 Cosmos Hub의 경제적, 정책적 변경에 대한 제안에 투표하는 거버넌스에도 활용된다.
So what is Cosmos?
다시 한번 정리해보자. 개발자들은 Tendermint Core와 Cosmos SDK를 통해 간편히 자신만의 새로운 체인을 만들 수 있다. 그렇게 만들어진 각 체인들은 Zone이라고 불리는데, Zone들끼리는 IBC Protocol을 통해 연결될 수 있다. 그리고 수많은 Zone들은 가운데에 있는 Cosmos Hub라는 특별한 체인을 거쳐 다른 Zone들과 연결된다. 이 Hub를 중심으로 Zone들이 모여 만들어지는 거대한 네트워크를 통틀어 Cosmos Network라고 부르고, 이 모든 일들이 일어나는 시스템을 간단히 Cosmos라고 부른다.

Cosmos Hub는 Tendermint 사 주관 하에 개발된 체인일 뿐, 이것이 코스모스 네트워크 내에서 유일한 Hub는 아니다. 누구든 새로운 Hub를 만들어 코스모스 네트워크 내에 들어올 수 있다. Tendermint 사에서는 다른 Hub를 만드는 것을 오히려 반기고 있으며, 여러 Zone들이 연결되어있는 Hub끼리 다시 연결하는 방식으로 코스모스 네트워크를 확장시켜 나갈 계획을 품고 있다. 각 Zone들이 모두 연결되어 하나의 네트워크를 이루는 방식은 인터넷과 유사하다. 코스모스 네트워크와 인터넷을 비교해보자면, 각 허브는 ISP(Internet Service Provider) 와 같고, Zone들은 각 사용자 애플리케이션들, IBC Protocol은 이들은 연결해주는 광섬유 케이블과 같다.
Ecosystem of Cosmos

현재 Cosmos Network에는 다양한 App과 체인들이 참여하고 있다. 더 많은 체인들이 계속해서 진입하여 Cosmos Network는 계속해서 확장해나가고 있다. Absolute-finality 체인이거나, Tendermint Core나 Cosmos SDK 기반 체인이라면 사실상 해당 체인 거버넌스가 참여하기로 합의만 한다면 IBC를 통해 Cosmos Network에 참여하는 것이 모두 가능하며, Absolute Finality 체인이 아니더라도 Peg-zone을 통해 간접적으로 연결될 수 있다. 이러한 점에 있어서 Cosmos Network는 많은 잠재성을 지니고 있다. 이는 아래는 최근에 주요한 Cosmos Network 관련 주요 뉴스들을 정리한 것이다.
- 21년 2월 — Stargate Update를 통해 IBC Protocol이 활용 가능해지게 되었다. 이전에는 Cosmos SDK 기반 체인에서 직접 다른 체인과 연결될 수 있는 브릿지를 만들어야 했지만, 이제는 IBC Protocol을 통해 간단하게 연결 가능해지게 됨
- 21년 4월 — Tharsis 팀에서 Cosmos Network 상의 EVM-compatible 체인인 Ethermint를 개발하여 Cosmos Network에 올리는 Proposal을 올렸고, 이는 거버넌스 투표에 의해 통과되어 개발에 착수하기 시작
- 21년 7월 — Cosmos Prop 51에 의해 Gravity DEX가 Cosmos Hub 체인으로 들어오는 것이 결정됨. Gravity DEX는 Cosmos Network에 존재하는 다양한 토큰들을 스왑할 수 있는 DEX임
- 21년 8월 — 20년도 8월에 Althea 사에서 Tendermint Core 기반 체인과 Probabilistic-finality 체인(비트코인, 이더리움)을 연결해주는 Peggy 개발을 시작하였고, 21년도 7월에 Cosmos Hub에 적용시키는 Proposal을 올렸지만 통과하지 못함. 그래서 Cosmos Network에 있는 다른 체인의 테스트넷에 먼저 적용하는 걸로 선회함
- 21년 10월 — Terra Money가 IBC Protocol을 적용시키기로 결정함. Terra Money는 LUNA와 UST에 IBC Protocol을 적용시키는 일을 우선시하고, 빠른 시일 내에 앵커 프로토콜, 미러 프로토콜, 파일런 등 Terra 체인 상의 주요 디파이 프로토콜들에도 IBC Protocol을 적용시킬 것이라고 밝힘
Conclusion
Tendermint Core와 Cosmos SDK를 활용해 비교적 편리하게 만들어진 체인들이 IBC Protocol을 통해 다른 체인들과 연결되며 Cosmos Network라는 거대한 생태계에 참여할 수 있다. Zone들은 Hub를 통해 서로 소통할 수 있지만, 여전히 독립적인 체인이다. 그래서 하나의 Zone에서 보안 문제가 생겨도 다른 체인의 보안성에는 직접적인 타격을 입히지는 않는다. 각 Zone들이 자주성과 독립성을 유지하며 각자 개성과 방향성을 가지고 발전해나가는 동시에 서로 상호운용(Interoperate)하는 건전한 생태계의 모습이 Cosmos가 그려나가야할 미래일 것이다.
여전히 Cosmos는 이더리움만큼의 유동성과 탄탄한 구성 요소들(Composability)에는 이르지 못한다. 또한 각 Zone들이 여전히 독립적으로 운영되기 때문에 커뮤니티가 파편화될 수도 있다는 우려가 있다. 이더리움은 오로지 이더리움이라는 하나의 체인에 집중하여 이를 성장시키는 데에 커뮤니티가 집중하였지만, Cosmos Network 내에서 각 Zone들은 자기 자신의 성장에만 주로 집중할 가능성이 크다. 하지만 디파이에 대한 관심이 점점 증가하면서 더 많은 사람들이 이더리움 이외에도 자신의 자산을 운용할 수 있는 생태계를 찾아 나서고 있다. 또한 Cosmos Network 내에는 Terra라는 스테이블 코인, Kava라는 랜딩 프로토콜, Band Protocol이라는 오라클, ThorChain이라는 AMM 등 블록체인 생태계의 구성 요소들이 이미 어느정도 갖추어져 있다. Cosmos가 과연 진정한 블록체인의 인터넷을 만들어낼 수 있을지, 그 미래를 함께 지켜보는 것도 유의미할 것이다.
Member discussion