Cosmos Intro

이민기·2023년 7월 7일
1

Cosmos

목록 보기
1/5
post-thumbnail

Intro

UniSwap이 자체 AppChain을 운영할 예정이 있다는 뉴스를 보았다

AppChain이란 무엇일까 ..?

간단하게 정의하면 “특정 애플리케이션을 목적으로 설계된 블록체인” 이라고 정리 가능하다

그렇다면 AppChain 생태계 중 대표적인 Cosmos EcoSystem에 대해서도 궁금하다..!

그래서 시작된 포스팅!


What is Cosmos?

코스모스 블록체인은 중앙 집중식 서버에 의존하지 않고 분산 원장 간의 통신을 용이하게 하기 위해 개발되었으며 백서는 2016년에 발간되었습니다.

Cosmos 네트워크는 Cosmos SDK를 이용해 각자의 블록체인을 좀 더 쉽게 만들 수 있도록 하며, 각 블록체인을 Zone이라고하여 상호 운용성을 가능하게 하는 플랫폼입니다.

Cosmos 네트워크는 Cosmos Hub, Tendermint 합의 알고리즘 및 IBC(Inter-Blockchain Communication) 프로토콜을 사용하여 블록체인이 안전하게 통신할 수 있도록 하여, 상호 연결된 앱과 서비스의 계속 확장되는 생태계입니다.

암호화폐로는 ATOM을 사용합니다.

Cosmos 구성요소 및 특징

CometBFT

기존 Tendermint에서 개선된 합의 알고리즘

❓ Tendermint

  • Cosmos의 합의 레이어이며 DPOSBFT를 결합한 합의 알고리즘
  • Finality를 우선시 하여 블록이 생성되자 마자 Finality를 갖는다는 특징이 있음.
  • 100~130개의 대표노드들에게 위임하여 동작하며 검증인이 많아질 수록 합의 속도 증가
  • 그러나 각 AppChain으로 Staking된 금액들이 나누어 지면서 보안성 ↓
    Interchain Security를 통해 보완
    Interchain Security : 새로 만들어지는 체인들이 런칭을 할 때 DPOS 악용 문제 해결을 위해 Total Stake가 큰 체인들(cosmos hub)의 validate set과 voting power를 빌려와 검증에 사용

특징

  • 상위 175개 노드가 프로세스의 벨리데이터로 참여
  • ABCI++ : 기존 ABCI(Application BlockChain Interface)는 Application과 Consensus사이에 통신을 위한 인터페이스이며, ABCI를 사용하면 앱은 결정 시간에만 합의와 상호 작용하고 mempool에서 선택할 트랜잭션에 대한 제어를 거의 제공하지 않는다는 단점이 존재했으나 ABCI++로 변경되며 합의 단계에서의 트랜잭션을 재정렬, 수정, 삭제, 지연 또는 추가할 수 있도록 확장한 인터페이스입니다.

IBC (Inter-Blockchain Communication)

IBC는 블록체인 간의 통신을 가능하게 하는 프로토콜입니다.
Cosmos의 합의알고리즘의 즉각적인 최종성 속성을 활용하여 서로 다른 체인이 가치 또는 데이터를 서로 전송할 수 있도록 합니다.
이를 통해, 서로 다른 블록체인 간에 토큰이나 기타 데이터를 송수신할 수 있으며, 서로 다른 블록체인 간의 상호 운용성을 가능하게 합니다.

동작 방식

체인 A의 계정이 체인 B의 계정에게 10개의 ✪Token을 보내는 시나리오

Tracking
각 체은은 기본적으로 다른 체인의 Light Client를 실행 하여 서로의 헤더 데이터를 수신

Bonding
체인 A에서 토큰을 전송하기 위해 IBC 전송이 시작되면 ✪Token을 Bonding 상태로 잠금 처리

Proof Relay
그 후 10개의 ✪Token이 결합되어 있다는 Proof가 체인 A에서 체인 B로 전달

Validation
증명은 체인 B에서 체인 A의 헤더에 대해 검증되며, 유효하면 체인 B에서 10개의 ✪Token바우처를 생성

𖤐𖤐 체인 B에 생성된 ✪Token은 체인 A에만 존재하기 때문에 실제 ✪Token이 아니며 체인B에 대한 체인A✪Token이 체인A에 동결되어 있다는 증명으로 사용
✪Token이 원래 체인으로 돌아올 때 역시 유사한 메커니즘을 사용하여 ✪Token의 잠금을 해제

Cosmos SDK (Software Develop Kit)

Cosmos SDK는 Cosmos Blockchain 네트워크 상에 애플리케이션을 구축하는 데 사용되는 도구 모음입니다.

특징

Cosmos SDK를 사용하면 사용자들은 자신들의 블록체인을 빠르게 구축하고, 다른 블록체인과 손쉽게 통신할 수 있게 됩니다. 또한 Cosmos SDK를 사용하면 기본적인 블록체인 기능들을 모듈로 사용할 수 있어, 개발 시간을 단축하고 코드의 품질을 향상시킬 수 있으며 CLI, REST 서버 및 기타 일반적으로 사용되는 다양한 유틸리티 라이브러리를 구축하기 위한 유용한 기능을 제공합니다.

Zone

Cosmos SDK를 이용해서 만든 Cosmos Ecosystem에 소속된 독립된 블록체인을 의미하며 각 Zone은 개별적인 상태 머신과 합의 알고리즘을 갖고, 특정한 사용 사례나 애플리케이션에 맞게 최적화할 수 있습니다.

Zone은 Cosmos 네트워크의 핵심 구성 요소 중 하나로, 블록체인의 확장성 문제를 해결하는 데 중요한 역할을 합니다. Zone 각각은 독립적으로 확장될 수 있기 때문에, 전체 네트워크의 성능이나 안정성에 영향을 미치지 않으면서 특정 블록체인의 처리량을 증가시킬수 있다는 특징을 갖고 있습니다.

각 Zone은 Cosmos Hub나 다른 Zone과 IBC(Inter-Blockchain Communication) 프로토콜을 통해 통신할 수 있으며 이를 통해 Cosmos는 다양한 블록체인이 서로 협력하여 복잡한 애플리케이션을 구현할 수 있고, 블록체인의 확장성과 상호 운용성 문제를 개선할 수 있습니다.


Outro

백서가 나온지 7년이 넘었으나, 생각보다 강의 또는 자료는 여전히 찾기가 쉽지가 않습니다 ㅠㅠ

그럼에도 Cosmos가 추구하는 바는 충분히 매력적이라고 생각이 들었고,

앞으로 Cosmos SDK에 대해서도 조금씩 공부해서 포스팅할 계획입니다 ☻


Refer.

profile
블로그를 옮기는 중입니다. https://min71.dev

1개의 댓글