관리 메뉴

개발이야기

[백서 정리] 코스모스 백서 정리 (Cosmos Whitepaper) -1 본문

블록체인 /백서 정리

[백서 정리] 코스모스 백서 정리 (Cosmos Whitepaper) -1

안성주지몬 2018. 7. 31. 12:40

안녕하세요. 이번 포스팅에서는 제가 요즘 관심있게 보고있는 코스모스의 백서를 정리해볼 생각입니다.

백서정리가 메인이 아니라 백서를 참고하면서 코스모스에서 중요한 내용을 중심으로 다뤄볼 생각입니다.







cosmos tendermint에 대한 이미지 검색결과

[그림 1] - 코스모스



비트코인 이외의 새로운 퍼블릭 블록체인이나 새로운 블록체인 아키텍쳐를 표방하는 플랫폼들의 출시이유는 항상 비슷합니다. 기존 PoW 방식의 문제점(환경문제, ASIC 채굴 문제)를 극복하겠다! 또는 확장성 문제를 해결하겠다(bitcoin-NG, segwit 등) 등의 이유를 명시하면서 자신들이 출시하게된 정당성을 나타냅니다. 


코스모스의 등장배경도 위와 같습니다. PoW의 문제를 해결하여 새로운 합의 알고리즘을 제시하고, 비트코인 이더리움이 가지는 확장성 문제를 해결하고자 출시했다고 밝힙니다. 기존의 새로운 플랫폼, 블록체인이 등장할 때 명시하는 똑같은 이유를 대지만 제가 코스모스를 주목하고 흥미롭게 보는 이유가 있습니다. 바로 자신들의 플랫폼을 굉장히 구체적으로 설명하였고 합의 알고리즘 또한 그럴싸하다는 것이죠. 사실 구현도 굉장히 많이 되어있는 것으로 알고 있습니다.


동작방식 


우선 코스모스의 동작방식부터 설명하겠습니다. 동작방식을 이해하기 위해서는 아래에 3가지 구성요소를 알고 가야합니다.



[그림 2] - 코스모스 도식화


- 존(Zone) : 허브(Hub)와 메시지를 교환하는 독립적인 체인


- 허브(Hub) : 멀티자산 분산 원장을 관리하는 블록체인 ‘중앙원장’ 역할을 한다.

- IBC(Inter Blockchain Communication) : 메시지를 교환하는 독립 블록체인, 허브의 관점에서 존은 IBC 패킷을 이용하여 토큰을 송수신할 수 있다.   


합의 알고리즘

다음으로는 코스모스의 합의 알고리즘에 대해 살펴보겠습니다.
코스모스의 합의 알고리즘은 텐더민트 코어(Tendermint Core)에의해 실행됩니다. 텐더민트 합의 알고리즘은 DPoS + PBFT를 합친 합의 알고리즘을 사용합니다. 기존의 DPoS와 같이 지분을 기반으로 합니다. 이 지분을 기반으로 투표하여 stake holder 들은 100명의 검증자(Validator)를 선발하게 됩니다. 이는 텐더민트 자체의 토큰인 아톰을 이용합니다. 지분을 검증인에게 위임하게 되면 검증인의 행위에 따라 보상을 받거나 처벌을 받게 됩니다.

이제 합의 진행과정에 대해서 살펴보겠습니다. 

[그림 3] - 코스모스 합의 진행과정


위 그림처럼 코스모스는 3단계(Propose, Prevote, Precommit)로 나뉘어 합의를 진행하게 됩니다. 3단계가 어떻게 진행되는지 살펴보겠습니다.

- Propose : 클라이언트가 네트워크에 블록의 생성을 Request 하는 것 

- Propose된 블록을 set of validators 가 검증, 검증한 결과 참 or 거짓 결정 -> Prevote

- Prevote 이후 Precommit 과정을 진행, Precommit에서 동의한 검증자들이 전체의 2/3 이상일 경우 블록을 commit
2/3 이상을 얻지 못하면 블록을 생성하지 못하고 다음 라운드로 진행 한다.

 


이번 포스팅에서는 코스모스의 대략적인 작동원리와 합의 진행과정에 대해서 살펴보았습니다. 다음 포스팅에서는 작동원리와 합의 진행과정에 대해 세부적인 내용을 더 추가해서 설명하도록 하겠습니다. 


참고자료 

[1] https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

[2] http://www.seunghwanhan.com/2016/12/blog-post_19.html

[3] https://github.com/cosmos/cosmos/blob/master/WHITEPAPER.md#fork-accountability

Comments