devops
Application Specific blockchain with Cosmos SDK 본문
Application Specific blockchain을 앱체인(App-chain)이라고 부르기도 한다. 즉 특정 어플리케이션만을 위해서 구축된 블록체인이다. 그래서 어플리케이션의 최적화를 위해서 코어부터 커스터마이징을 통해 원하는 체인 스펙을 설정한다.
Cosmos SDK는 이런 앱체인에 특화된 프레임워크로 많은 블록체인 프로젝트에서 사용하고 있다. 아마 우리가 들어본 웬만한 프로젝트는 Cosmos SDK를 썼다고봐도 무방하다.
아래 레포는 cosmos sdk 기반의 체인들 리스트다. akash, cronos, evmos, ehos, kava, osmosis, terra, terra2 등 아주 유명한 프로젝트들이 cosmos sdk를 통해서 탄생했다.
https://github.com/cosmos/chain-registry
그렇다면 Application-specific blockchain에 대해서 한번 살펴보자.
앱체인은 single application을 위해서 커스터마이징되고 구축된 체인이다. 아래와 같이 Consensus와 네트워크는 Tendermint core를 통해서 구축되고 state-machine부분은 Cosmos SDK를 통해서 구현된다.
^ +-------------------------------+ ^
| | | | Built with Cosmos SDK
| | State-machine = Application | |
| | | v
| +-------------------------------+
| | | ^
Blockchain node | | Consensus | |
| | | |
| +-------------------------------+ | Tendermint Core
| | | |
| | Networking | |
| | | |
v +-------------------------------+ v
이는 개발자에게 여러 이점을 제공하는 데 첫번째로
1) Flexibility
상태머신은 컨센서스 엔진과 연결된다. 이때 ABCI라는 인터페이스를 통해서 상호작용하는데, 개발자는 이 상태머신을 원하는 언어로 쉽게 구축이 가능하다. 더구나 개발자는 여러 프레임 워크를 통해서 그들의 상태머신을 손쉽게 구현할 수 있다.
또한, ABCI는 개발자가 체인의 컨센서스 엔진을 쉽게 변경할 수 있게 해준다. 현재는 Tendermint만 있으나 미래에 더 나은 엔진이 개발된다면 빠르게 전환가능하다.
validator 수, 트랜잭션 처리량 그리고 DB나 UTXO와 같은 주요 요소들을 자유롭게 선택하고 구성할 수 있다.
2) Performance
탈중앙화 어플리케이션은 환경에 의해서 퍼포먼스가 제한된다. Application specific blockchain는 탈중앙화 어플리케이션의 퍼포먼스를 높일 수 있도록 환경을 최적화할 수 있다.
Tedermint와 같은 높은 퍼포먼스를 제공하는 합의 알고리즘을 선택할 수 있으며, 다른 application과 Computation과 storage를 두고 경쟁하지 않기 때문에 높은 퍼포먼스를 보일 수 있다.
3) Security
개발자는 Go와 같은 이미 입증된 프로그래밍 언어를 선택할 수 있으며, 가상머신에 사용되는 암호화 기능에 제약을 받지 않는다. 자체 암호화와 함께 이미 검증을 마친 암호화 라이브러리를 활용할 수 있다.
'DevOps > Chain' 카테고리의 다른 글
위믹스(Wemix) 3.0 테스트넷 올리기 (0) | 2023.01.15 |
---|---|
Cosmos Blockchain의 State machine, Tendermint, ABCI (0) | 2023.01.10 |
Cosmos SDK란? (0) | 2023.01.10 |
Go로 PoW 작업증명 알고리즘 구현하기 (0) | 2022.12.18 |
Go로 간단한 블록체인 구현하기 - CLI (0) | 2022.12.12 |