Osmosis 체인의 모든 것 [KOR] — Chain Marker #1

DSRV
DSRV
Published in
11 min readJul 14, 2023

--

Chain Marker 시리즈는 All That Node에서 웹3 개발자분들을 위해 준비한 ‘체인 완전정복’ 아티클 시리즈로, 여러분이 북마크를 해두고 계속해서 보실 만한 프로토콜 관련 지식들을 한 데 모은 콘텐츠입니다.

첫 번째 아티클의 주인공은 바로 코스모스 생태계의 오스모시스(Osmosis) 체인인데요.

오스모시스는 어떠한 특징을 지니고 있고 개발을 할 때 어떤 점들에 특히 유의해야 하는지 함께 자세히 알아보도록 하겠습니다.

오스모시스는 코스모스 생태계의 대표 DEX(Decentralized Exchange, 분산 거래소) 체인입니다.

기능을 추가하고 싶을 때 이더리움은 체인 위에 여러 스마트 컨트랙트를 올리지만, 코스모스 생태계는 기능에 특화된 자체 체인을 만듭니다. 이렇게 만들어지는 체인을 앱체인이라고 부르는데요. 체인만의 독특한 기능을 제외한 공통 부분을 코스모스 SDK가 담당하기 때문에 체인을 개발하기 용이합니다.

코스모스 SDK가 자랑하는 ‘텐더민트(Tendermint와 CometBFT 포크) 합의 알고리즘’과 ‘IBC(InterBlockchain Communication, 체인 간 통신 프로토콜)’는 코스모스 계열의 모든 체인에 들어갑니다. 코스모스 생태계의 다양한 체인의 토큰을 바로 이 IBC를 통해 오스모시스로 가져와서 거래하는데요. 코스모스 생태계에 속하지 않은, 즉, IBC를 지원하지 않는 비트코인이나 이더리움과 같은 체인의 토큰은 Axelar Bridge를 통해서 거래할 수 있습니다.

오스모시스의 특징

1. 다양한 AMM 지원:

오스모시스는 대중적인 CPMM(Constant Product Market Makers)으로 시작했고, 이후 Curve의 StableSwap이 추가되었습니다. TWAP(Time Weighted Average Price)과 Geometric TWAP은 가격 조작 공격을 방어합니다. 이에 더해, 최근 오스모시스 생태계에서는 Supercharged Liquidity 또한 도입하였습니다.

2. CosmWasm:

앱체인은 기능을 추가하거나 수정할 때마다 체인을 하드포크 업그레이드 해야한다는 단점이 있습니다. 그래서 스마트 컨트랙트 플랫폼 CosmWasm을 도입하였는데요. CosmWasm은 이기종간 효율적인 웹 어플리케이션을 개발하려고 만든 WebAssembly를 블록체인에 적용한 것입니다. 이는 코스모스 SDK의 기본 요소는 아니지만, 오스모시스와 주노(Juno) 등의 체인이 CosmWasm을 채택했습니다.

Osmosis의 CosmWasm에 대해서 또 주목할 만한 부분 중 하나는 무허가(Permissionless) 구조가 아니라는 점입니다. 따라서 컨트랙트에 거버넌스가 필요한데요. 이러한 측면이 궁극적으로 플랫폼이 안전한 상태를 유지할 수 있도록 보장해 줍니다.

또한 긴 코드로 된 주소 대신 사람이 외우기 쉬운 이름을 사용할 수 있는, ICNS(InterChain Name Service)도 스마트 컨트랙트로 구현했습니다. CosmWasm 스마트 컨트랙트가 코스모스 체인의 모듈에 접근할 수 있기 때문에 Liquid Staking Derivatives와 같이 체인과 밀접하게 연관된 프로그램을 만들 수 있습니다.

3. 다양한 트랜잭션 수수료 토큰:

오스모시스의 OSMO 토큰 외에 ATOM과 axlUSDC 같이 IBC로 넘어온 토큰으로 수수료를 지급할 수 있습니다. 물론 오스모시스 자체 ION 토큰도 가능합니다. 수수료로 사용할 수 있게 승인된 토큰을 ‘오스모시스 DEX 시세’로 계산하여 지불합니다.

4. IBC 속도 제한:

IBC를 통해 일정 기간 동안 토큰을 대량으로 송금하지 못하게 할 수 있습니다. 이는 체인에 심각한 문제 혹은 해킹이 발생한 경우 대처할 시간을 벌어주는데요. 이를 이용해 어떤 것을 방지할지의 여부를 결정하는 기준은 주로 플랫폼의 위험 허용 범위 및 거버넌스 논의를 고려하여 결정됩니다.

5. Superfluid Staking:

ATOM/OSMO 등 일부 승인된 풀에 유동성으로 공급한 OSMO의 일부를 스테이킹할 수 있습니다. 유동성으로 공급한 토큰은 가격 변동과 슬래싱에 대한 담보 역할을 하는데요. 유동성 공급자는 유동성 보상에 추가로 스테이킹 보상을 얻을 수 있습니다. 이는 풀에 잠겨있는 유동성도 체인의 보안성 향상에 도움을 줄 수 있다는 Osmosis만의 고유한 특성 때문에 가능합니다.

유동성으로 공급한 토큰을 스테이킹함으로써 공급자는 Osmosis 네트워크의 전반적인 보안과 안정성에 기여하여 유저들의 생태계 참여를 더욱 장려할 수 있습니다. 반대로 OSMO와 짝을 이루는 ATOM 같은 토큰을 해당 체인에 스테이킹하는 Interfluid Staking도 도입할 예정입니다.

6. 프로토콜 자체 MEV:

MEV(Miner Extractable Value)는 트랜잭션의 순서를 조작하여 얻는 이익입니다. 조작을 통해 사용자들이 불리한 가격으로 거래를 하게 만들어 일반 사용자에게 피해를 입히곤 하는데요. 트랜잭션 순서를 결정하는 권한을 경매에 붙여 이익을 환수하는 등 다양한 MEV 경감책이 제안되고 있습니다.

오스모시스는 블록 끝에 차익거래 트랜잭션을 추가하는 흥미로운 방식을 채택하고 있는데요. 일반 트랜잭션과 달리 이 차익거래 트랜잭션은 앞뒤로 다른 트랜잭션을 끼워넣을 수 없습니다. 차익거래로 얻은 수익은 공공 기금에 모아서 사용한다고 합니다.

오스모시스 개발 팁

API

오스모시스는 REST, Tendermint RPC, gRPC, Indexed Data. 이렇게 4가지 API를 제공합니다. 코스모스 SDK는 기본적으로 gRPC 서비스를 제공하지만, 사용자의 편의를 위해 REST와 Tendermint RPC 같은 HTTP 형태로도 서비스합니다. HTTP 서비스는 gRPC 서비스에 의존하며 모든 gRPC 기능을 지원하지 않습니다.

  • 먼저 REST는 체인 모듈들의 정보를 HTTP API로 제공합니다. 1317 포트를 사용합니다. All That Node는 REST API란 이름으로 서비스합니다.
  • Tendermint RPC는 코스모스 SDK의 합의 알고리즘 Tendermint 수준 API를 제공합니다. 26657 포트를 사용합니다. Tendermint RPC의 저수준 API abci_query를 활용하면 HTTP에서도 모든 gRPC API에 접근할 수 있습니다. 단, 파라미터를 Protocol Buffers 방식으로 인코딩하는 수고가 필요합니다. 또, Tendermint RPC는 Websocket 인터페이스를 제공하지만, 다음 버전에서 사라질 예정입니다. All That Node는 Websocket을 제외한 Tendermint RPC를 제공합니다.
  • gRPC는 코스모스 SDK의 기본 정보 제공 채널입니다. 사람이 읽을 수 있는 텍스트로 통신하는 HTTP 방식과 달리 바이너리 형식이기 때문에 라이브러리를 사용해야 하지만 효율적입니다. All That Node는 gRPC 서비스를 준비하고 있습니다.
  • Indexed Data https://api.osmosis.zone/Imperator.co에서 오스모시스 정보를 가공해서 제공하는 API이고, 오스모시스 UI에서 사용하고 있습니다. All That Node는 현재 Indexed Data는 서비스하지 않습니다.

소스코드에서 자동으로 만드는 OpenAPI 명세는 누락된 부분이 많아서 그동안 개발자들이 어려움을 겪었습니다. 작년 말 오스모시스 문서가 개선되면서 비로소 숨통이 틔었는데요. 오스모시스 문서 페이지의 오른쪽 상단에 RPC, LCD, DATA, IBCGO 메뉴가 보입니다. 각각 Tendermint RPC, REST, Indexed Data를 뜻하고, 마지막 IBCGO는 REST 중 IBC 관련 호출입니다. 단, 파라미터 값과 설명은 여전히 모듈 문서 혹은 소스코드를 참고해야 하는 경우가 가끔 있습니다. 현재 오스모시스 버전이 사용하는 코스모스 SDK, Tendermint, Cosmwasm을 파악하면 도움이 됩니다.

트랜잭션 수수료

노드는 최소 가스비를 지정하고, 이보다 수수료가 낮은 트랜잭션을 거부합니다. 오스모시스가 처음 나왔을 때는 트랜잭션 수수료가 없었지만, 스팸 트랜잭션을 방지하기위해 최소 수수료 권장값이 높아졌습니다. 가장 마지막 거버넌스 투표는 최소 가스비를 0.0025 uOSMO로 정했습니다.

스마트 컨트랙트 업로드 권한

오스모시스의 Cosmwasm 스마트 컨트랙트를 업로드하려면 거버넌스 동의가 필요합니다. 공동체의 신뢰를 쌓아 팀 계정을 승인받으면, 스마트 컨트랙트를 업로드할 때마다 동의를 얻을 필요가 없습니다. 반대로 공동체의 신뢰를 잃으면 거버넌스 투표를 통해 권한을 박탈당하고 스마트 컨트랙트가 지워질 수 있습니다.

과거 블록 시점에서 조회

HTTP 요청시 x-cosmos-block-height 헤더를 사용하면 과거 블록 번호 시점에서 정보를 조회합니다. 과거 특정 시점의 계정 잔액을 확인할 수 있습니다. 특정 블록에서만 보이는 정보를 조회할 때 유용합니다. 거버넌스 투표를 예로 들면, 계정별 투표 내역은 투표 기간 중에만 조회할 수 있습니다. 투표가 끝나면 찬성표와 거절표 총합만 남습니다. 그래서 계정별 투표 내역을 확인하려면 투표가 끝나는 블록 시점에서 정보를 조회해야 합니다.

All That Node는 아카이브 노드를 제공합니다. 최근 블록 상태만 조회할 수 있는 일반 노드와 달리 아카이브 노드는 과거 블록을 자유롭게 조회할 수 있습니다. 단, 코스모스 SDK 체인들은 특정 시점에서 마지막 상태를 유지한 채 체인을 새로 시작하곤 합니다. 이 경우 재시작 이전 블록 상태를 조회할 수 없습니다. 오스모시스 메인넷(osmosis-1)은 아직 재시작하지 않았지만, 테스트넷(osmo-test-5)은 이전 테스트넷을 검색할 수 없습니다.

매일 다운타임

다른 코스모스 계열 체인과 달리 오스모시스는 매일 한번 다운타임이 발생합니다. UTC 17시에 시작하는 하루 단위 Epoch마다 풀 보상 등을 계산하기 때문입니다. 최근 기록을 보면 UTC 17시 16분부터 6~7분 가량 블록이 생성되지 않았습니다. 놀라지 마세요!

All That Node 오스모시스 서비스

All That Node에서는 오스모시스를 Shared Plan(Team Plan 이상)과 Dedicated plan으로 지원하고 있습니다. 최근 노드가 동기화를 멈출 정도로 계산이 많이 필요하거나 응답 크기가 수백메가바이트인 요청들이 서비스 품질을 크게 해치면서 아쉽게도 무료 서비스를 일시적으로 중단했습니다. 하지만 기존 사용자들에게는 무료 노드를 계속 제공하고 있으니 안심하셔도 좋습니다. 현재 All That Node는 메인넷과 테스트넷 모두 아카이브 노드를 통해 Tendermint API (JSON-RPC API, Websocket API)와 LCD API (REST API) 서비스를 제공하고 있습니다. 곧 gRPC 서비스를 시작하고, 부담이 큰 요청을 최적화할 계획입니다.

정리하자면, 오스모시스는 코스모스 생태계의 중추가 될어줄 금융 허브들 중 핵심인 탈중앙거래소(DEX) 역할의 체인을 운영하고 있습니다. AMM 지원, CosmWasm, 그리고 유연한 트랜잭션 수수료 토큰과 같은 사용자 친화적 기능을 도입함으로써 오스모시스는 웹3 엔지니어들이 유연한 확장성을 가져갈 수 있도록 노력하고 있는데요. 여러분께서 All That Node와 함께함으로써 코스모스 생태계의 탈중앙 금융을 이끌고 있는 오스모시스에 대한 개발 경험이 극대화될 수 있다면 좋겠습니다.

Chain Marker 시리즈는 또 다음 프로토콜 편으로 찾아오겠습니다!

All That Node는 어떤 서비스 인가요?

All That Node는 블록체인 인프라 기업 DSRV의 멀티체인 노드 및 데이터 제공 서비스입니다. 2021년 런칭 이후 웹3 개발자들이 다양한 블록체인 네트워크를 기반으로 프로덕트를 개발할 수 있도록 25개 이상의 네트워크에 아카이브 데이터를 포함한 풀 노드를 제공하며 미래의 인터넷을 위한 탄탄한 인프라를 구축해 오고 있습니다.

All That Node는 고객들이 프로젝트를 성공적으로 운영하고 다양한 블록체인 네트워크에 안정적으로 접속할 수 있도록 돕습니다. 전 세계 25개 이상의 네트워크에서 All That Node가 성공적으로 처리하는 리퀘스트는 현재 매달 약 10억 건에 달합니다.

노드에 대한 모든 고민, All That Node에게 맡기고 지금 바로 가장 쉽고 빠른 웹3 개발을 시작해 보세요.

All That Node의 소식이 궁금하다면?

Website | Twitter | Discord | Blog

Written by
Jeongho Jeon, Protocol Specialist, DSRV All That Node Team (Twitter @maczniak)

Edited by
Hyunjie Yu, Brand Marketer, DSRV Brand Marketing Team (Twitter @CathyYu220314)

Designed by
Heeyoung Moon, Brand Designer, DSRV Brand Marketing Team

--

--

DSRV
DSRV
Editor for

EVERYTHING DISTRIBUTED, SERVED COMPLETE. — DSRV is your easiest access to blockchain infrastructure solutions.