IBC protocol short overview

c0wjay
3 min readFeb 22, 2022

스터디에서 최근에 코스모스의 IBC protocol에 대해 다뤘는데요,
IBC protocol 구조에 대해 제가 이해한 바를 공유합니다.
원문 페이퍼 링크입니다.

전반적인 구조는 위의 hyperledger 구조와 유사하고,

  • Client: 상대 ledger의 consensus를 검증하고 finality를 부여하는 abstraction
  • Connections: IBC protocol에서 패킷간의 교환 전 승인을 내리는 abstraction
  • 양 ledgers에 있는 각각의 connection ends는 각각의 client와 associate 되어 packet-relay 전 승인을 내리는 절차
  • Channel: 패킷이 delivery가 되는 abstraction
    ordering, exactly-once delivery, module permissiong을 부여.
    - ordering: 패킷이 정해진 순서대로 전달됨(in ordered-channel)
    - exactly-once delivery: 패킷은 딱 한번만 전송됨. (중복x)
    - module permissioning: 해당 channel에 associate된 port를 소유한 module만 channel 사용 가능.
    -> Connection과 Channel이 각각 패킷의 authorisation과 ordering 을 부여

위 관념은 블록체인 layer에서의 packet(transaction) 전달과 관련된 것이고, 인터넷과는 상관 없음.

  • Relayer: IBC의 ‘physical’ connection layer.
  • 위 블록체인 layer와 인터넷 네트워크 layer(TCP/IP 등) 를 연결해주는 역할.
  • 블록체인 위에서의 원장의 verification, consensus 등과는 관련이 없고, 오로지 network와의 communication과만 연관됨.
  • 각각의 원장이 현재 통신가능한 상태인지 등을 체크하여 릴레이할 datagram (packet)을 calculate.
  • 블록체인 위에서의 원장의 verification, consensus 등과는 관련이 없고, 오로지 network와의 communication과만 연관됨.
  • 각각의 원장이 현재 통신가능한 상태인지 등을 체크하여 릴레이할 datagram (packet)을 calculate.

정말 가볍고, 짧게 다뤄보았으며, 자세한 내용은 원문 페이퍼를 참고해주세요.
원래는 ibc protocol의 코드도 분석해보자 하였으나,
현재 해커톤 준비때문에 많이 바빠서, 많이 여유가 생긴 후에 분석해보겠습니다.

다음 포스트는 해커톤 과정에서 알게된 정보들을 다루어 보겠습니다.

--

--

c0wjay

Rustacean interested in Programming Languages.