[INBEX(인벡스) BLOCKBUSTERS][중앙대 C-Link : 박민서] 블록체인 상호운용성 (inter-chain)

in #kr7 years ago

2009년을 시작으로 끝없이 발전해가는 블록체인을 세대별로 나누어보면 블록체인 1.0을 화폐 및 교환 수단, 2.0을 스마트 콘트랙트 및 DApp, 3.0은 상호운용성(interoperability)을 강조한 inter-chain이라고 할 수 있을 것이다. 코스모스, 폴카닷 등 이미 다양한 inter-chain 프로젝트들이 진행되는 가운데, 여기서는 프로젝트가 아닌 가장 직관적이면서도 창의적인 스마트 콘트랙트 Relay(BTC Relay)에 관해 설명한다.


Interoperability & Relay

블록체인 프로젝트는 저마다 특성을 가지고 독립적인 체인을 운영하고 있다. 하지만 그 체인들이 서로 연결되어 있지는 않다. 여기서 이더리움의 DApp을 비트코인으로 사용할 수 있다면 어떨까? 또, 다양한 체인들이 연결되어 함께 사용할 수 있다면 어떨까? 라는 상호운용성에 관한 생각이 나오기 시작하였다.

상호운용성은 그 정의[1]에서 보면 알 수 있듯이 다른 시스템을 제약 없이 사용하는 것을 의미한다. 그러기 위해서는 각 체인을 연결해주는 무언가가 필요하게 된다. 그것이 바로 Relay이다.


BTC Relay

Relay 중에서 대표적인 것은 이더리움 스마트 콘트랙트 BTC Relay이다. (현재는 개발이 중단되었다) BTC Relay를 한 마디로 설명하면 이더리움에서 작동하는 스마트 콘트랙트를 BTC로 지불할 수 있게 해주는 것이다. 즉, 비트코인 holder들이 자신의 화폐로 이더리움 DApp을 이용할 수 있다는 것이다.

여기서 DApp을 이용한다는 것은 거래가 일어나는 것을 의미한다. 각 거래는 블록에 담기고 체인에 기록되어 유효성을 검증받아야 한다. 즉, 체인 간의 상호작용을 위해서는 각 체인에서의 일어나는 거래를 반대 체인에서도 알고 유효성을 증명해내야 한다는 것이다. 그렇기에, Relay는 등록된 체인의 반대 체인의 블록 정보를 가지고 있어야 한다.

BTC Relay은 이더리움 블록체인에 등록된 스마트 콘트랙트기에, 비트코인 블록체인의 정보를 가지고 있어야 한다. 누군가는 비트코인 블록체인 정보를 보내주어야 한다. 그 정보를 전달해주는 주체가 바로 Relayer다. 그리고 Relayer는 블록 정보를 전달해주는 대가로 보상을 받게 된다.

여기서 블록 전체의 정보를 갖고 있을 수 없기에, 블록 헤더의 정보만 전송한다. 마치, 비트코인 네트워크의 SPV 노드와 같다.[2]


BTC Relay의 역할과 사용과정

BTC Relay의 역할을 조금 더 구체적으로 설명해보자.

1. BTC Relay는 이더리움 DApp과 비트코인 블록체인을 이어주는 역할을 한다.

2. 비트코인으로 이더리움 DApp을 이용하는 것이기에 비트코인의 block header를 저장하고 있다.

3. 그리고 이를 통해, 비트코인 거래의 유효성을 검증한다.


그렇다면, 사용자와 Relayer를 포함해서 전체 사용과정에 대해서 말해보겠다.

(사용자) : 특정 이더리움 DApp을 사용하고 싶은 사용자가 있다. 그러면 그 사용자는 자신의 비트코인 거래를 소정의 수수료와 제출한다.

(Relayer) : 이 사이에 relayer는 지속해서 블록 헤더를 제공하고 있다.

(BTC Relay) : 사용자가 제출한 거래의 유효성 유무는 제공된 block header를 통해 검증된다. BTC Relay는 Relayer가 제공한 block header를 저장하고 있다.

(BTC Relay, Relayer) : 검증이 되고 나면 사용자가 제출한 수수료는 relayer에게 지급된다.


<그림1> BTC Relay 진행 과정


Inter-chain과 BTC relay 발전 가능성

다양한 inter-chain들은 각기 자신들만의 방법으로(대표적으로 COSMOS는 IBC, ARK는 smart bridge 등) 체인들을 연결하려고 하고 있다. 여기서 소개한 BTC Relayer는 현재 이더리움과 비트코인만 연결하려 하고 그마저도 개발은 중단된 상태이다.

하지만, 이러한 시도들이 지속해서 이루어지고 inter-chain을 표방하는 다양한 프로젝트들이 결과물을 낸다면, 각기 다른 체인들이 호환되어 사용할 수 있는 재미있는 세상이 올 듯하다. 특히, BTC Relay처럼 단방향이 아닌 양방향으로 상호 호환이 가능해져 각 체인의 장점과 특징을 모두 이용할 수 있다면, 그 효과는 엄청날 것이다.

무엇보다도, 현재로서는 개발이 멈춰있는 BTC Relay를 계속해서 개발해나가는 것 역시 재미있을 것 같다. 좋아하는 프로젝트를 누구나 참여해서 나만의 방식으로 개발시켜 나가는 것이 오픈소스의 묘미 아닌가?


​<보충설명>

[1] : 상호운용성이란 하나의 시스템이 동일 또는 이기종의 다른 시스템과 아무런 제약이 없이 서로 호환되어 사용할 수 있는 성질을 말한다. (출처 : https://ko.wikipedia.org/wiki/상호운용성)

[2] : 비트코인 생태계에는 Full node, SPV, Miner 등 여러 종류의 노드들이 있는데, 여기서 블록체인 정보 전체가 아닌, 블록 헤더만을 가지고 있는 node들을 SPV node라고 한다.


<참고자료>

https://btc-relay.readthedocs.io/en/latest/frequently-asked-questions.html

https://btc-relay.readthedocs.io/en/latest/status.html

https://github.com/ethereum/btcrelay



  INBEX 바로가기

Sort:  

Congratulations @cqinbex! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published more than 40 posts. Your next target is to reach 50 posts.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:

Are you a DrugWars early adopter? Benvenuto in famiglia!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.082
BTC 60611.25
ETH 1557.26
USDT 1.00
SBD 0.50