[Cosmos&Tendermint 분석] 블록체인 인터넷 Cosmos Blockchain
안녕하세요. 블록체인을 통한 탈중화 된 미래를 꿈꾸는 @bigthumbsup입니다. 오늘은 코스모스와 텐더민트에 대해서 알아보겠습니다.
Cosmos blockchain이란 무엇인가?
코스모스에 대해서 알아보기 전에 코스모스가 해결하려는 확장성 이슈를 짚어보겠습니다. 확장성 이슈로 설명되는 대표적인 지표가 초당 거래처리속도(TPS)인데요. 현재 Visa만 해도 초당 2,000건에서 최대 5만6천 건까지 거래를 처리할 수 있는 반면에 비트코인은 겨우 초당 7건, 이더리움은 초당 15건 정도입니다. 사실 확장성 이슈는 어제 오늘의 이야기가 아닙니다. 세그위트 , 라이트닝 네트워크,페룬, 비트코인 NG, 플라즈마 , 라이덴 네트워크, 샤딩 등 여러 가지 솔루션이 제시됐고 현재 활발한 실험 중입니다.
*세그위트 : 비트코인 블록의 1MB의 크기 문제를 해결하기 위해 signature와 public key를 다른 블록으로 이동시켜 블록에 더 많은 거래내역을 담을 수 있게 하는 방법입니다.
세그위트 (Segregated Witness)
세그위트(Segregated Witness)는 블록당 이체처리량을 2- 3배 가량 증가시키는 것을 목적으로 하며, 동시에 신규 노드들이 더욱 빠르게 블록 동기화(block syncing)를 하도록 돕는 비트코인 개선 제안이다(참조). 이 솔루션은 비트코인의 현재 프로토콜 내에서 작동하면서 소프트 포크 업그레이드(soft-fork upgrade)를 허용하는 방식이다. 따라서 이전의 소프트웨어 버전을 가진 클라이언트들도 업그레이드를 받아 정상적으로 기능할 수 있다. 텐더민트의 경우, 새로운 프로토콜을 만드는 데 아무런 제약이 없기 때문에 확장성에 대한 새로운 우선순위를 가진다. 주로 텐더민트는 채굴 대신 암호 서명에 기반한 ‘BFT 라운드 로빈 알고리즘(BFT round-robin algorithm)’을 사용한다. 이를 통해, 다중 병렬 블록체인을 이용한 수평 스케일링을 가능하게 하면서도, 보다 정기적이고 자주 발생하는 블록 커밋에는 수직 스케일링을 적용할 수도 있다.
*라이트닝 네트워크: 원장에서 특정 트랜젝션을 완전히 제외하여 비트코인 확장성에 도움이 됩니다. 소액결제에는 적합하지만 범용적이지 못하는 한계가 있습니다.
라이트닝 네트워크 (Lightning Network)
라이트닝 네트워크는 비트코인 블록체인(그리고 그 밖의 퍼블릭 블록체인 들)의 상위 계층에서 운용되도록 제안된 토큰 전송 네트워크로, 합의원장 (consensus ledger) 외부의 대다수 이체들을 소위 ‘지불채널 (payment channels)’로 이동시켜서 이체처리량(throughput)을 획기적으로 개선한다. 온 체인(on-chain) 암호화폐 스크립트를 통해 당사자들이 쌍무 상태기반 계약(bilateral stateful contracts )을 체결할 수 있도록 한다. 계약들의 상태는 디지털 서명에 의해 업데이트 되며 , 또한 ‘크로스 체인 아토믹 스왑 (cross-chain atomic swap)’를 통해 최초에 설정된 방식에 따라 합당한 증명을 블록체인에 전파함으로 계약이 마감된다. 다수의 당사자와 함께 지불 채널을 개방함으로, 라이트닝 네트워크의 참여자들은 당사자들이 지불을 라우팅하는 ‘포컬포인트 (focal point)’의 역할을 할 수 있다. 또한, 이러한 지불 채널에 실제 자본을 고정시킴으로 완전히 연결된 지불 채널을 개설하는 것도 가능하다.
라이트닝 네트워크는 다수의 블록체인들에 걸쳐 확장되면서 교환시장을 통해 가치(value)를 전송하도록 하지만, 하나의 블록체인에서 다른 블록체인으로 토큰(token)을 비대칭적으로 전송하는 것은 불가능하다. 이와 관련된 코스모스 네트워크의 주된 이점은 그러한 토큰의 직접 전송을 지원한다는 것이다. 물론, 비용 절감과 프라이버시 차원에서 토큰 전송 메커니즘이 지불 채널들과 라이트닝 네트워크와 함께 적용되기를 기대한다.
*비트코인 NG: 리더선정과 이체전파를 분리시켜 비트코인의 거래 처리속도를 해결한 수직 확장형입니다.
BitcoinNG는 블록 크기 확장과 같은 수직 확장성을 제공하는 방법이다. 또한 이러한 확장이 초래하는 부정적 경제 요인들을 최소화하였다. 이러한 개선은 리더 선정(leader election)과 이체 전파를 분리시킴으로 가능하다: 리더들은 우선 ‘마이크로 블록(micro-block)’들에 있는 작업증명(PoW )을 통해 선정되며, 그 이후 새로운 마이크로블록이 발견될 때까지 커밋할 이체내역들을 전파한다. 이러한 방식은 PoW경쟁을 이기기 위해 소요되는 대역폭 요구량을 줄여준다. 또한, 소규모 채굴자들이 더욱 공정하게 경쟁하고 이체가 더 정기적으로 커밋될 수 있도록 한다.
*플라즈마 : Off-chain 방식으로 트리 구조의 다중 블록체인을 구축 합니다.
*라이덴 네트워크: Off-chain 방식으로 사용자간 처음과 마지막 거래만 기록 합니다.
*샤딩: 아주 큰 한 데이터를 분할시키는 방식 입니다.
문제 2: 상호 운용성
상호운용성의 사전적 의미는 ‘서로 다른 시스템 간 서비스를 자유롭게 공유함으로써 통합된 시스템의 능력을 제공하는 것’을 뜻합니다. 앞으로 다가올 사물인터넷 시대에서도 상호운용성은 필수적인데요. 커넥티드 환경에서 디바이스가 서로 연동되어 기대 성능을 모두 발휘하기 위해서는 기계간 서로 communication이 원활해야 합니다.
암호화 세상에서는 비트코인, 이더리움, 이오스 , 라이트코인 등 각 블로체인이 서로 원환할 커뮤니케이션이 이뤄지지 않는 것이 상호운용성이 제대로 작동하지 않는 다는 것을 방증하죠. 예를 들어, 비트코인은 이더리움 생태계에서 무슨 일이 발생하고 있는지 알지 못하고 이더리움도 똑같이 다른 코인 생태계에서 일어나는 일을 시시각각 알지 못합니다. 한 마디로 블록체인끼리 서로 전혀 커뮤니케이션이 안되는거죠. 이를 사일로 현상이라고도 합니다
*사일로(Silo)현상이란 ?
부서 또는 조직단위로 업무 효율화 측면에서 IT 인프라 및 자체 솔루션을 구축해서 사용하다보면 각 부서, 사업단위나, 브랜치별로 데이터가 일치하지 않는 증상이 있는데 이것을 사일로(Silo)현상 , 사일로화 된다라고 이야기합니다.
이렇게 되면 부서/조직간 표준화가 어렵고 비즈니스 환경변화에 유연한 대처가 어려운 상황에 부닥쳐질 우려가 있는데, 이렇게 복잡하게 얽혀있는 문제들을 해결하기 위해 최근 기업들은 다방면으로 노력하고 있답니다.
특히 이런 상호운용성이 제대로 작동되지 못하다 보니 중앙화 된 거래소에 대한 의존도가 높아지게 됩니다. 하지만 아시다시피 해킹에 취약하고 프로세스가 원활히 작동하지 않는 등 중앙화 된 거래소의 문제점은 한둘이 아닙니다. 가장 큰 문제는 거래소가 갑작스럽게 문을 닫게 되면 여러분의 소중한 자산을 찾을 방법이 없게 됩니다. 현재는 아토믹 크로스체인 스웝(Atomic cross-chain swaps)과 같은 솔루션이 제시되고 있지만, 아직 진정한 상호운용성을 실현하는 데는 한계가 있습니다.
코스모스의 목적
코스모스(Cosmos)는 암호화폐와 블록체인 커뮤니티에서 오랬 동안 지속된 문제를 해결하기 위한 블록체인 네트워크라고 소개합니다. 코스모스 블록체인은 탈중화는 물론 확장성, 상호운용성 더 나아가 개발 친화적인 블록체인을 목표로 합니다. 코스모스의 로고는 블록체인 상의 인터넷(Internet of Blockchains)입니다. 즉, 코스모스의 최종 목표는 많은 독립된 블록체인들을 확장하고 상호 운용성을 가능케 하는 것입니다.
1. 확장성
텐더민트(Tendermint)와 IBC를 사용하면 코스모스 내의 블록체인들간 확장성을 크게 높일 수 있습니다. 텐더민트 위에서 작동하는 존(zones)들로 인해 초당 수 천건의 트랜잭션을 처리할 수 있어집니다. 텐더민트의 대한 자세한 설명은 아래글을 참고해주세요.
2. 상호 운용성
코스모스는 다른 블록체인들이 현재 해결하지 못하고 있는 앱과 암호화폐 간의 상호 운용이 목표입니다. 예를 들어, 현재는 비트코인을 이더리움으로 교환하고자 하면 중앙집권화된 거래소를 이용해야만 합니다. 문제는 현재 많은 거래소가 해킹, 도난 그리고 사기 등 각종 위협에 노출되어 있다는 거죠. 대표적인 거래소 해킹 사건은 Mt. Gox와 일본의 Coincheck가 있습니다.
3. 개발 친화적
코스모스는 개발 친화적이라는 말이 딱 맞는다고 생각됩니다. 텐더민드에 기반을 둔 강력한 툴키트(toolkit)를 제공해서 개발자들이 DAPP을 손쉽게 만들 수 있도록 환경을 조성해줍니다. 현재 로드맵을 보면 87% 개발이 완료되었고 텐더민트 코어는 94%까지 진행되었습니다.
코스모스 생태계
1. 허브와 존 (The Hub and Zones)
코스모스 아키텍쳐는 허브와 존(zone)은 구성되어있고 허브가 존을 관리 하는 형태입니다. 존들은 최신의 블록 커밋들을 계속해서 허브로 전송을 하므로 허브가 존들의 최신 상태를 항상 유지합니다. 마찬가지로, 각 존도 허브의 상태를 제공 받습니다. 허브와 존을 연결하는 고리를 ‘블록체인 간 통신(inter-blockchain communication) 또는 IBC라고 합니다.
블록체인 간 커뮤니케이션 (Inter-blockchain Communication (IBC))
IBC는 허브와 존 간의 상호 통신 방법입니다. 예를 들어, 존1(Zone 1), 존 2(Zone 2) 그리고 허브가 있고 존1이 허브를 통과하여 존2에게 메시지(코스모스에서는 ‘패킷’이라 함)를 보낸다고 생각해 봅시다. 존2는 메시지를 받는 수신 체인으로 존 1(송신 체인)이 메시지(패킷)를 발행했다는 것을 확인해야 합니다. 이를 위해선 존2(수신 체인)가 존1(송신 체인)의 최신의 블록헤더 정보를 알아야 합니다.
블록헤더란?
1.version : 소프트웨어/프로토콜 버전
2.previousblockhash : 블록 체인에서 바로 앞에 위치하는 블록의 블록 해쉬값
3.merklehash : 개별 거래 정보의 거래 해쉬를 2진 트리 형태로 구성할 때, 현재 블록의 거래내역들을 모두 해싱한 해시값
4.time : 블록 타임스탬프 (블록이 생성된 시간)
5.bits : 난이도 조절용 수치 (해시 목표 값)
6.nonce : 최초 0에서 시작하여 조건을 만족하는 해쉬값을 찾아낼때까지의 1씩 증가하는 계산 회수
IBC 프로토콜은 두 가지 이체 방식을 통해 정의할 수 있습니다.
IBCBlockCommitTx 이체: 블록체인이 최근의 블록 해시를 임의의 관측자에게 증명 IBCPacketTx 이체: 블록체인이 송신자의 어플리케이션이 패킷을 머클증명을 통해 최근 블록해시로 전파했다는 것을 증명
2. 합의 알고리즘
코스모스는 텐더민트 엔진을 기반으로 만들어집니다. 텐데민트의 합의 알고리즘은DPoS(Delegated Proof-of-Stake)개념과 PBFT 개념을 섞은 BFT DPos 방식입니다. BFT의 가장 큰 특징으로는 블록을 확정(finalization)하는데 전체 투표자 중에서 2/3 이상의 동의(디지털 서명)가 필요하다는 것이고 이는 위조가 불가능하도록 만듭니다. 텐더민트(Tendermint)의 전체 합의 과정은 3단계(Propose, Prevote, Precommit)로 구성되어 있으며, 2/3를 초과하는 사용자들이 동의했을 때에 다음 단계로 진행이 되는 방식입니다.
제네시스(펀드레이징 기간) 시에는 최대 검증인 수가 100명으로 설정이 되고, 이 수치는 10년 동안 13%의 비율로 증가하여 최종적으로는 총 300명의 검증인이 나오게 됩니다.
Year 0: 100 제0년도: 100
Year 1: 113 제1년도: 113
Year 2: 127 제2년도: 127
Year 3: 144 제3년도: 144
Year 4: 163 제4년도: 163
Year 5: 184 제5년도: 184
Year 6: 208 제6년도: 208
Year 7: 235 제7년도: 235
Year 8: 265 제8년도: 265
Year 9: 300 제9년도: 300
Year 10: 300 제10년도: 300
3. 거버넌스
코스모스 허브의 검증인과 위임자는 코스모스 허브 정책과 관련해서 ‘코드가 아니라 평이한 언어로 된 헌법(규칙)’을 표결에 부쳐 수정합니다. 또한 ‘블록 가스 한계(block gas limit)’같은 시스템이 사전에 설정된 제한들을 업그레이드를 통해 자동으로 변경하는 제안(Proposal)도 표결에 부칠 수 있습니다. 헌법은 The Dao 해킹 사건과 같은 절도 및 버그 관련 문제들에 대해서 이해관계자들이 신속하게 새로운 해결책을 찾는데도 도움이 됩니다. 또한 각 존(Zone) 역시 자체적인 헌법과 거버넌스 메커니즘을 가질 수 있습니다. 코스모스는 상호운용성을 가능케 하기 때문에 허브와 존들간의 상이한 헌법 및 정책들을 조율 할 수 있습니다.
각 제안(Proposal)에 대해, 투표자들은 다음과 같은 옵션으로 투표할 수 있습니다. •Yay(찬성)
•Yay With Force(강력히 찬성)
•Nay(반대)
•Nay With Force(강력히 반대)
•Abstain(기권)
제안(Proposal)의 통과 여부를 결정할 때는 과반수의 투표가 요구되지만, 1/3 이상이 강력하게 반대 (with force) 투표를 던질 때에는 과반수의 결정을 거부할 수 있습니다. 다만, 이 때 과반수가 거부될 경우, 모두가 거부에 대한 페널티로 수수료 (거부권 패널티 블록)를 지불하고, 과반수 결정을 거부한 당사자는 자신의 아톰 중 일부를 추가로 잃게 됩니다.
4. 아톰 토큰
코스모스(Cosmos) 블록체인에서 사용되는 기본 토큰은 Atom 토큰 입니다. Atom은 교환 매체나 가치 저장 수단으로 만들어지지 않았는데요.(현재 CoinMarketCap에 등재된 Atomic Coin (Atom)은 Cosmos와 다릅니다). 아톰 토큰의 목적은 코스모스 블록체인 상에서 지분(staking) 목적으로 아톰의 보유자가 투표, 검증 또는 다른 검증자들에게 위임하기 위해 사용됩니다. 이더리움의 이더와 유사하게 Denial-of-Service Attack(DDOS)을 예방하기 위해 거래 수수료를 지불할 때 아톰이 사용 됩니다.
코스모스는 2017 년 4 월 6 일에 펀드레이징 행사를 가져서 4,870 BTC와 246,890 ETH를 얻어 총 168,475,963 ATOM 을 발행하였습니다. 아톰 토큰 배분은 자금 제공자(75%), 초기 시드 투자자들 (5%), ITC (10%), AIB (10%)로 나뉩니다.
4.1아톰 토큰의 사례
4.1.1 검증인의 대한 처벌 (Penalties for Validators)
고의든 아니든 검증인이 정해진 프로토콜 규칙을 어길 때는 처벌을 받습니다. 동일한 높이(height) 또는 라운드 별 이중 서명 혹은 텐더민트 합의 프로토콜 규칙을 위반했을 경우 검증인은 해당 지위를 상실하게 되고 예치된 아톰 토큰과 지분(지급준비금 풀 내 토큰 비례분)을 상당수 잃게 됩니다. (이더리움의 캐스퍼 방식과 유사하죠.) 때때로 천재지변 또는 예상치 못한 이유로 검증인이 네트워크에서 단절되는 경우에는 과거 블록에서 커밋 투표가 이루어지지 않은 횟수의 일정 수준을 고려해서 검증인은 비활성화되거나 지분을 잃게 됩니다.
악의적인 행위가 증거로 남지 않는 경우에도 압도적 다수의 합의가 존재한다면, 검증인들이 외부에서 합의 후 악의적인 검증인을 강제로 작업 중단(timeout)시킬 수 있습니다. 투표권의 1/3 이상이 악의적으로 연합하여 코스모스를 중단시키거나 이들이 악의적 행동의 증거가 블록체인으로 들어오지 않게 검열하여 삭제하는 경우, 허브는 하드포크를 통한 블록 재조정 제안으로 복구 될 수 있습니다.
4.1.2 인센티브
코스모스의 허브 검증인들은 아톰 토큰 뿐만 아니라 어떤 유형의 토큰이라도 트랜잭션 수수료로 받을 수 있습니다. 각 검증인은 블록 가스 제한(BlockGasLimit)을 초과하지 않는 한 교환 비율과 트랜잭션 방식을 선택할 수 있습니다.
징수된 수수료는 세금을 제외하고 본딩된 아톰에 비례하여 본딩된 주주들(bonded stakeholders)에게 재분배 됩니다. 징수된 트랜잭션 수수료 중 지급준비금 세금(Reserve Tax, 디폴트 2%)은 지급준비금 풀에 충당되어 코스모스 네트워크 보안과 가치를 높이는데 사용 됩니다. 또한, 공유세 (Commonds Tax, 디포틀 3%)는 공유재의 자금으로 충당 됩니다.
투표권을 다른 검증인에게 위임하는 아톰 보유자는 일정 수준의 수수료(Commission)를 위임 받은 검증인에게 지불합니다.
4.1.3 해커에 대한 인센티브
코스모스 허브의 보안의 핵심은 검증인들과 위임자들에게 있는데, 이들이 해킹당할 경우 네트워크 전체의 보안이 위험해질 수 있습니다. 따라서 코스모스 허브는 해커들이 특정 검증인들이 해킹당한 사실을 고지해주면, 해킹이 확인된 즉시 해당 검증인과 위임자들은 비활성화 시키고, 이들의 아톰 일부를(해킹처벌비율, 디폴트 5%) 줄입니다. 해커는 포상금 주소를 통해 해커보상비율 (디폴트 5%)만큼 보상을 받습니다. 검증인은 백업 키 (backup key)를 사용하여 나머지 아톰을 회수하게 됩니다.
5. 코스모스 팀
코스모스의 창업자인 재권(Jae Kwon)은 한국계 미국인으로 아이비리그 출신입니다. 텐더민트 개발 이전에 이미 실리콘 벨리에서 개발자로서 작업을 해왔습니다. 미국에서 인기 있는 어플리케이션 중 하나인 Yelp의 아이폰 어플리케이션을 개발하였습니다.
무엇보다도 재권이 블록체인 업계에서 단숨에 조명을 받게 된 이유가 POS(지분 증명)의 치명적 단점인 “Nothing-at-stake”에 대한 솔루션을 제시했기 때문입니다.
또 다른 공동창업자는 에단(Ethan Buchman)은 University of Guelph에서 머신러닝 석사 학위를 받았으며, 샌프란시스코에 위치한 블록체인 대학에서 강의를 하다가 이후에 재권을 만나 텐더민트를 공동 창업하였습니다.
저는 코스모스와 텐더민트의 여정은 이제부터라고 생각합니다. 블록체인에서 확장성과 상호운용성을 동시에 달성하려는 위대한 여정에 여러분도 계속해서 함께 해주시면 좋겠습니다.
그럼 이것으로 글을 마치겠습니다. 많은 분들이 쉽게 읽을 수 있도록 Cosmos 백서를 한글로 번역해주신 한승환, 이승민, 김기현, 윤승완, HJ Kim(금마), 김석현님께도 감사의 말씀을 드립니다. 코스모스와 텐더민트에 대한 더 자세한 내용은 https://docs.google.com/document/d/1b-oPY0SkgJCu_z818-P2j2me3B_ZNpggYAen7LHNxQ8/edit 한글 백서를 참고해주세요.
이더리움 연구회 소개
“국내 최초 블록체인 기술 관련 전문가 커뮤니티"입니다. 소수의 실력있는 개발자들이 모여 블록체인 작동원리를 연구하면서 ‘이더리움 연구회’가 시작되었습니다. 블록체인 주요 기술뿐만 아니라 다양한 분야의 전문가들이 합류해 합의 알고리즘, 분산 스토리지, 스마트 컨트랙트 등 블록체인 기반 기술과 블록체인 응용서비스(dApp), 크립토 이코노미와 같은 경제적 구조에 대해서도 심도있는 연구를 진행하고 있습니다. 이더리움 연구회 : www.etherstudy.net References 코스모스 공식 홈페이지 https://cosmos.network/resources/whitepaper Cosmos 백서 (영어) https://hacked.com/ico-analysis-cosmos-blockchain-blockchains-bet-fundraiser/ Cosmos 백서 (한글) https://github.com/cosmos/cosmos/blob/master/WHITEPAPER.md#tendermint-consensus 코스모스 업데이트 내용 https://blog.cosmos.network/latest-in-cosmos-april-community-update-fbeb80c69da8 코스모스 PDF https://www.slideshare.net/SunnyAggarwal2/tendermintcosmos-many-chains-many-tokens-one-ecosystem 코스모스 블로그 감사합니다. @bigthumbsup이었습니다.끝으로 현재 제가 소속되어 있는
이더리움 연구회에
대해서도 잠깐 소개를 해드리겠습니다. 이더리움 연구회는 2017년 박재현 현 람다(lambda)256 연구소장이 설립하였습니다. 람다256은 국내 1위 암호화폐 거래소 업비트를 운영중인 두나무가 글로벌 블록체인 전문 연구를 위해 설립한 연구소 입니다. 이더리움 연구회 사이트에는 많은 자료가 있으니 오셔서 구경해보세요. 감사합니다.
감사합니다
정말 궁금해하던 내용이었는데
좋는 정보 정말 감사합니다.
덕분에 쉽게 공부하네요!