IBC

IBC

IBCInter-Blockchain Communication protocol의 약자로서, 블록체인간 통신 프로토콜이다.

서로 다른 블록체인 간의 데이터 인증 및 전송을 처리하는 프로토콜이라고 이해하면 좋다.

IBC는 인터체인 표준(ICS)에 지정된 최소한의 기능 세트를 필요로 한다.

ICS란 ? 체인간 표준은 코스모스 생태계에 사용될 것으로 예상되는 특정 프로토콜, 표준 또는 기능을 설명하는 설계 문서이다. ICS는 원하는 표준 속성을 나열하고 설계 근거를 설명하며 간결하지만 포괄적인 기술 사양을 제공해야 한다. 기본 ICS 작성자는 표준화 프로세스를 통해 제안을 추진하고, 커뮤니티의 입력 및 지원을 요청하고, (사회적) 합의를 보장하기 위해 관련 이해 관계자와 소통할 책임이 있다.

... ICS 표준

특히 IBC 기술은 대부분의 신뢰할 수 있는 Bridge 서비스와는 다르다.

IBC는 Cosmos 네트워크와 같은 애플리케이션별 블록체인에 필수적이다.

IBC는 서로 통신해야 하는 다른 두 개의 체인에 있는 Dapp을 위한 통신 채널을 제공해준다.

대부분의 Cosmos 애플리케이션은 자체 유효성 검사기 세트를 실행하는 자체 목적으로 구축된 블록체인에서 실행된다.

사실 해당 애플리케이션은 그냥 애플리케이션이 아니라 Cosmos SDK로 제작된 애플리케이션별 블록체인, AppChain이다.

이러한 앱은 각각 다른 블록체인의 토큰을 지불 형식으로 수락할 수 있다.

개요

전송 계층(TAO)은 보안 연결을 설정하고 체인 간에 데이터 패킷을 인증하는데 필요한 인프라를 제공한다.

애플리케이션 계층은 전송 계층 위에 구축되며, 송신 및 수신 체인에서 데이터 패킷을 패키징하고 해석하는 방법을 정의한다.

  • IBC/TAO : 패킷의 전송, 인증 및 주문 등 인프라 계층을 정의하는 표준. ICS에서 이것은 Core, Client 및 Relayer 범주로 구성된다.

  • IPC/APP : 전송 계층을 통해 전달되는 데이터 패킷에 대한 애플리케이션 핸들러를 정의하는 표준. 여기에는 ICS-20, ICS-721, ICS-27이 포함되지만 이에 국한되지 않는다.

다이어그램에서 세 가지 요소에 집중해서 보자.

체인은 Relayer에 의존하여 통신한다. Relayer-Algorithm<ICS-18>은 IBC의 물리적 연결 계층이다.

Relayer는 각 체인의 상태를 스캔하고 적절한 데이터그램을 구성하며 IBC 프로토콜을 실행하는 두 체인간의 데이터를 중계하는 오프체인 프로세스이다.

많은 Relayer가 하나 이상의 채널을 제공하여 체인 간에 메시지를 보낼 수 있다.

릴레이의 각 측은 다른 체인의 라이트 클라이언트를 사용하여 들어오는 메시지를 신속하게 확인한다.

IBC/TAO 전송 계층

다이어그램에서 세 가지 요소에 집중해서 보자.

체인은 Relayer에 의존하여 통신한다. Relayer-Algorithm<ICS-18>은 IBC의 물리적 연결 계층이다.

Relayer는 각 체인의 상태를 스캔하고 적절한 데이터그램을 구성하며 IBC 프로토콜을 실행하는 두 체인간의 데이터를 중계하는 오프체인 프로세스이다.

많은 Relayer가 하나 이상의 채널을 제공하여 체인 간에 메시지를 보낼 수 있다.

릴레이의 각 측은 다른 체인의 라이트 클라이언트를 사용하여 들어오는 메시지를 신속하게 확인한다.

IBC/TAO 전송 계층

Light Client

IBC 클라이언트는 고유한 클라이언트 ID로 식별되는 라이트 클라이언트이다.

IBC 클라이언트는 다른 블록체인의 합의 상태와 클라이언트의 합의 상태에 대한 증명을 적절하게 검증하는 데 필요한 해당 블록체인의 증명 사양을 추적한다.

클라이언트는 상대방 체인에 대한 연결 수에 관계없이 연결될 수 있다.

Connections

커넥션은 여러 채널과 연관될 수 있다.

커넥션은 두 개의 개별 블록체인에 두 개의 ConnectionEnd 객체를 캡슐화한다.

ConnectionEnd는 다른 블록체인의 클라이언트와 연결된다.

Handshake시 커넥션은 각 체인의 라이트 클라이언트가 각 상대방에게 올바른 클라이언트인지 확인하는 역할을 한다.

Channels

한 블록체인의 모듈은 (channelID, portID)에 의해 고유하게 식별되는 채널을 통해 패킷을 보내고, 받고, 확인함으로써 다른 블록체인의 모듈과 통신할 수 있다.

채널은 체인간에 정보를 중계할 수 있는 방법을 제공하지만, 총 capacity를 늘리는 역할은 하지 않는다.

커넥션과 마찬가지로 Handshake를 할 때 채널이 설정된다.

Last updated