[Xangle Originals]
작성자: Bonk
요약
- IBC는 분리되어 있는 블록체인들이 통신할 수 있는 표준 규격을 제시함.
- TCP/IP 프로토콜과 유사한 방법으로 패킷을 주고받아 인터체인 통신을 가능하게 함.
- 토큰 전송 이외에도 NFT, 스마트 컨트랙트, 오라클 데이터에 대한 통신을 가능하게 함.
IBC는 인터체인 통신을 위한 표준 규격
2021년 4월, IBC가 출시되며 “크로스체인”, “인터체인” 등의 키워드로 업계가 떠들썩해졌다. 그런데 IBC는 정확히 무엇을 말하는 것이며 왜 중요한 걸까? 누군가가 ETH를 다른 체인으로 옮기고 싶다고 가정해보자. 그렇다면 스왑을 통해 다른 생태계로 넘어가야 하는데, 이때 가스비에 대한 부담과 함께 예상치 못한 장애물을 맞닥뜨릴 수 있다. 예를 들면, 익숙하지 않은 인터페이스라거나 네트워크 설정 등이 있다. IBC는 블록체인들이 서로 통신할 수 있는 프로토콜을 제공하여 위와 같은 문제를 해결할 수 있으며, 체인들 간의 경제적 교류를 가능케 함과 동시에 의사결정과 개발에 대한 독립성을 보장할 수 있다.
IBC는 Inter-Blockchain Communication Protocol(인터 블록체인 커뮤니케이션 프로토콜)의 약자이다. 이름에서 알 수 있듯이, 블록체인들이 서로 통신을 하여 데이터를 주고받을 수 있도록 하는 프로토콜이다. 마치 정보통신표준을 통해 다른 하드웨어를 가진 컴퓨터들이 인터넷을 통해 데이터를 주고받을 수 있듯이, IBC도 하나의 표준을 정의하는 것이다. 전 텐더민트(Tendermint)의 연구자이자 오스모시스(Osmosis)의 창립자인 서니 아가왈은 IBC가 TCP/IP 프로토콜에서 큰 영향을 받았다고 밝히기도 했다.
그래서 우리는 IBC가 애플리케이션 레이어 프로토콜이 아니라는 사실을 분명히 해야만 한다. 공식 웹사이트에 따르면 IBC는 데이터의 전송, 인증, 그리고 신뢰도에 대해 책임진다고 밝히고 있다. 즉, IBC를 통해 꼭 토큰 교환만 할 수 있다는 것이 아니라 스마트 컨트랙트, NFT, 오라클 데이터도 주고받을 수 있다는 뜻이다.
<관련 글: 이더리움 제국과 코스모스 연방>
데이터 검증과 중계기의 역할
분리되어 있는 두 블록체인이 통신하기 위해서는 어떠한 합의, 즉, 핸드셰이크 과정을 거쳐야 한다. 이 과정에서는 각 체인의 정보와 상태에 대한 증명 데이터를 주고받는다. 각 체인이 올바른 식별자를 사용하고 있는지 확인하고 인증 과정을 거친 후에 패킷 전송 과정을 준비를 마친다. 핸드셰이크가 완료되면 트랜잭션 패킷을 통해서 임의의 직렬 데이터가 두 체인 사이를 이동할 수 있게 된다. 그리고 해당 패킷들에 포함되어 있는 메타데이터를 통해 패킷의 발신지를 알 수 있게 된다.
패킷은 중계기(Relayer)를 통해 각 체인에 전달된다. 중계기는 제3자가 운영하며 IBC가 적용되어 있는 체인들을 끊임없이 스캔하면서 필요한 패킷을 전달해주는 역할을 맡는다. 그리고 전달된 패킷은 IBC를 통해 발신지를 인증한다. 그러나 위에서 언급했듯이 IBC는 전송 계층의 프로토콜일 뿐이다. 간단히 말하자면 IBC는 전송된 데이터에 어떠한 영향을 끼치지 않는다는 뜻이다. 데이터는 애플리케이션 계층에서 해독된 후에 실행된다.
패킷 전송 시에는 타임아웃과 순서 보증과 같은 조건을 걸 수 있으며 두 체인 사이에는 여러 IBC 연결이 가능하다. 각 연결은 네임스페이스로 분리하여 라우팅 할 수 있으며 다른 종류의 IBC 패킷들이 각각의 스테이트 머신과 상호작용할 수 있다.
자산 이동의 원리와 적용 조건
그러나 자산을 다른 체인으로 옮길 때, 해당 자산은 다른 체인으로 “이동”하지 않는다. 특정 자산이 특정 체인에 존재한다는 데이터는 중계기를 통해서 전송이 되지만 해당 자산은 발신 체인에 “락”(Lock)된 채로 존재한다. 랩드 비트코인(WBTC)이 이더리움에서 작동하는 방법과 유사하다. 해당 자산이 발신 체인으로 돌아갈 때 대리 자산(proxy asset)은 소각되고 발신 체인의 자산들은 락이 풀리게 된다.
코스모스 SDK를 통해 만들어진 블록체인은 IBC 모듈을 통해 간단히 적용할 수 있으며 모듈 시스템, 키-밸류 스토어, 컨센서스 스테이트 인트로스펙션, 타임스탬프 액세스, 포트 시스템, 롤백 시스템, 그리고 데이터 유효성의 조건을 만족하는 블록체인도 모두 IBC를 적용시킬 수 있다.
요약하자면, IBC는 블록체인들이 패킷 형태로 데이터를 주고받을 수 있는 인터페이스를 제공하는 프로토콜인 것이다. 중계기는 IBC를 적용한 블록체인들을 지속적으로 스캔하며 패킷을 전달하며 패킷에는 토큰 전송, NFT, 스마트 컨트랙트, 그리고 오라클 데이터와 같은 데이터가 포함될 수 있다. IBC는 전송 계층 프로토콜로써 패킷에 담겨있는 데이터와는 무관하며 오로지 데이터의 전송을 책임진다.