블록체인 상호 운용성의 과거, 현재, 미래
블록체인 상호 운용성에 대해 이해하기 위한 배경지식
들어가기에 앞서
2022년, 내가 생각하였을 떄, 블록체인과 관련하여 가장 주목해야 하는 테마는 멀티체인, 크로스체인 그리고 모듈러 블록체인과 같은 블록체인의 상호 운용성이다.
몇 년 전만 하더라도, 이더리움과 비트코인을 제외하면, 성숙된 블록체인 네트워크를 찾기 힘들었기 때문에, 블록체인들이 서로 소통하는, 상호 운용성에 대한 걱정을 할 필요가 없었다. 하지만, 이제는 a) 성숙한 블록체인 네트워크들이 매우 많아졌고, b) 실제로 체인간에 자산을 이동하거나, 데이터를 이동해야하는 경우가 실제로 발생하고 있기에 상호 운용성은 눈 앞의 문제이다.
이 논문은 기존의 상호운용성에 대한 연구들을 정리, 요약, 분류하는데 목표를 두었는데, 내가 정리할 부분들은 자세한 내용들보다는, 현재 블록체인 상호 운용성에 대한 전반적인 이해에 초점을 두었으므로, 자세한 내용은 본문을 참고하면 될 것 같다.
논문의 목표
이전까지 존재하는 블록체인의 상호 운용성[Interoperability]에 대한 논문, 백서들을 바탕으로 다음과 같은 질문에 답하여보자.
- 현재 블록체인 상호 운용성에 대한 연구는 산업과 학문적으로 어떻게 진행되고 있는가?
- 블록체인 상호 운용성을 위한 기술적인 부분이 준비되어 있는가?
- 블록체인 상호 운용성을 사용하는 실제 사례가 존재하는가?
용어 정리
소스 체인 & 타겟 체인
블록체인 간 트랜젝션이 실행되면, 소스 체인에서 트랜젝션이 발동되어 타켓 체인에서 실행된다.
CCCP & CBCP
CCCP(Cross Chain Communication Protocol)는 성격이 비슷한[homogeneous](ex: EVM 베이스, Substrate 베이스, Tendermint 베이스) 블록체인 간의 소통 프로토콜이고, CBCP(Cross Blockchain Communication Protocol)는 아예 서로 다른[heterogeneous](ex: 비트코인 & 이더리움, 코스모스 & 폴카닷) 블록체인간의 소통 프로토콜을 의미한다.
CC-Tx & CB-Tx
CC-Tx는 성격이 비슷한 체인간의 트랜젝션이고, CB-Tx는 아예 서로 다른 블록체인 간의 트랜젝션이다.
CC-dApp
CC-dApp은 CC-Tx, 혹은 CB-Tx를 사용하는 어플리케이션을 말한다.
BOB
BOB(Blockchain Of Blockchain)은 CC-dApp에서 일어나는 여러 체인간 트랜젝션들을 포함하는 블럭들을 정렬하는, 블록체인의 블록체인이다. 코스모스나 폴카닷이 BOB에 해당한다.
SPV
SPV(Simplified Payment Verification)은 라이트 노드들이 블록체인 전체의 데이터 없이, 블록 헤더만을 이용하여서 트랜젝션의 유효성을 판단할 수 있는 검증 방식이다.
한가지 사실
기존 연구에서 블록체인 상호 운용성에 대하여 꾸준히 언급되는 한가지 사실이 있다. 그 사실은 바로 퍼블릭, 프라이빗에 상관업싱 블록체인 간의 트랜젝션에는 신뢰할 수 있는 제 삼자 없이는 불가능하다는 것이다. 그렇기 떄문에, 블록체인 상호운용성 접근 방식에서는 어떤 식으로든 신뢰할 수 있는 장치가 존재한다.
블록체인 상호 운용성에 대한 접근 방식들
블록체인 상호 운용성에 대한 접근 방식들은 크게 3가지; Public Connectors, Blockchain of Blockchains, 그리고 Hybrid Connectors로 나눠진다.
Public Connectors
Public Connectors는 다시 sidechain & relay, notary scheme, 그리고 hash-locking으로 나눠진다. Public Connectors 접근 방식은 주로 퍼블릭 블록체인 간의 소통에 사용되고, 체인 간 자산 교환에 가장 적합하다.
Sidechain & Relays
사이드 체인이란, 메인 체인의 옆에 추가로 붙어있어서 서로 CCCP를 통하여 소통한다. 사이드 체인은 메인 체인의 트랜젝션들의 부담을 덜어주어서, 대신 실행하고, 결과들을 모아서 다시 메인 체인에 보내주는 역할을 한다. 메인 체인과 사이드 체인간에 자산을 이동하는 것을 two-way peg라고 하는데, 이 과정은 다음과 같다. 먼저 유저는 메인 체인에서 토큰 X를 특정 주소로 보내어서 토큰들을 락업한다. 토큰들이 락업된 것이 확인되면, 그에 해당하는 만큼의 토큰들이 사이드체인에서 생성되어, 사용할 수 있게 되고, 반대도 똑같다. 그렇다면, 어떻게 사이드 체인은 메인 체인에서 토큰들이 락업된 것을 알 수 있을까?
여기에는 여러가지 방법이 있지만, 주로 사용되는 방식이 바로 릴레이 솔루션이다. 릴레이란 제 3자의 주체 없이 체인 그 자체가 다른 체인의 데이터와 이벤트를 읽고, 검증할 수 있는 형태이다. 예를 들어 체인 A의 컨트랙트가 체인 B의 SPV 노드 역할을 할 수 있다. 결국 릴레이를 사이드 체인과 함께 사용하면 사이드 체인과 메인 체인간의 데이터를 읽을 수 있고, 자산도 옮길 수 있다.
언뜻 보면, 사이드 체인 & 릴레이 방식은 따로 신뢰 주체를 필요하지 않는 것으로 보이나(사실 그렇게 봐도 무방하다), SPV의 특징 상, 다른 검증자들이 옳은 정보를 제공해야한다는 가정을 품고 있기 때문에, 엄밀히 따지면 신뢰 주체가 분산화되어 있을뿐, 여전히 필요하다. 또한 릴레이는 사이드 체인과 메인 체인같이 서로 특성이 비슷한 체인간에서는 사용이 가능하지만, 서로 특성이 다른, 즉 CBCP에서는 사용하기 힘들다.
사이드체인의 단점은 메인 체인의 보안성에 의존한다는 점과, 어쩔 수 없이 분산화와 성능 사이에서의 trade-off를 할 수 밖에 없다. 성능이 높으면, 중앙화되는 경향이 있고, 분산화되어 있으면, 성능이 떨어진다.
Notary Scheme
Notary scheme에서는 신뢰할 수 있는 주체를 통하여 체인 A의 참여자가 체인 B에서 어떤 이벤트가 일어났음을 확인할 수 있다. 이 신뢰할 수 있는 주체들은 어떠한 형태의 합의 알고리즘을 사용하고, 유효한 경우에 서명을 생성한다. Notary Scheme의 장점은 상대적으로 적용하기 쉽다는 것이지만, 단점은 신뢰할 수 있는 제 3자가 필요하다는 것이다.
Hash-Locking
Hash-Locking은 **해시락(hashlock)**과 **타임락(timelock)**을 이용하여 체인간의 거래를 실행한다. 거래자들은 서로에게 주어진 시간 제한 내에 해당하는 암호학적 증명을 서로에게 전달해야만 거래가 성사된다. Hash-Locking의 단점은 거래자가 자신에게 유리할 때만 증명을 전달하여서 불공평한 거래를 할 수 있고, 자산의 이동 외에 데이터 교환에는 사용하기 힘들다는 점이 있다.
Blockchain of Blockchains
BOB(Blockchain of Blockchains)는 다양한 특성의 체인들이 만들어질 수 있는 네트워크, 합의 알고리즘, 컨트랙트 레이어를 포함한 토대(framework)이다. 이 토대를 기반으로 만들어진 체인끼리는 서로 상호 운용이 가능하다. 코스모스와 폴카닷이 여기에 해당한다.
폴카닷
폴카닷은 Relay chain에 여러 Parachain들이 연결된 형태이다. 폴카닷은 Substrate라는 블록체인 생성 프레임워크를 기반으로 만들어져있다. WASM을 지원하여서, 기존의 개발자들에게 익숙한 언어들을 지원한다. 폴카닷은 Cross-chain Message Passing Protocol(XCMP)를 기반으로 파라체인 간 상호 운용성을 지원한다. 현재는 최대 100개의 파라체인이 릴레이 체인에 연결될 수 있다.
코스모스
코스모스는 Hub라는 메인 체인 주변에 Zone이라는 독립적인 체인들이 연결된 형태이다. 코스모스 기반의 블록체인들은 전부 Tendermint 기반의 블록체인이다. 코스모스는 inter blockchain communication protocol(IBC)를 기반으로 상호 운용성을 지원한다. 또한 코스모스 SDK를 지원하여서 개발자들이 WASM으로 컴파일될 수 있는 익숙한 언어로 스마트 컨트랙트를 개발할 수 있게 하였다.
폴카닷 vs 코스모스
폴카닷과 코스모스의 가장 큰 차이점은 커스터마이징과 보안(security) 중 어느 부분에 더 초점을 두었냐이다. 폴카닷의 경우, 보안에 더 초점을 두어서 릴레이 체인과 파라체인이 전부 하나의 공통된 보안 레이어를 이루고 있고, 각 파라체인을 커스터마이징하는데에는 한계가 있다. 코스모스의 경우, 커스터마이징에 더 초점을 두어서 IBC가 XCMP보다 일반화되어서, 사용자가 원하는대로 존들을 커스터마이징할 수 있고, 각 각의 존들은 개별적인 보안 레이어를 가지고 있다.
BOB의 단점
먼저, BOB 내에서는 상호 운용성이 자유롭지만, BOB끼리는 아직 해결과제이다. 예를 들어서 폴카닷 내의 파라체인끼리의 트랜젝션은 자유롭지만, 폴카닷과 코스모스 간은 그렇지 않다. 이로 인하여 유저들은 하나의 BOB를 골라야 되고, 이로 인해 사용할 수 있는 체인, 자원의 한계가 생긴다. 이를 해결하기 위하여 현재 폴카닷의 GRANDPA를 위한 Tendermint 라이트 클라이언트를 개발 중이라고 한다.
Hybrid Connectors
Hybrid Connectors에는 상호 운용성 솔루션 중에 앞서 언급된 Public Connectors나 Blockchain of Blockchains에 해당하지 않는 것들이다. 이 Hybrid Connectors에 해당하는 것들로는 trusted relays, blockchain-agnostic protocols, 그리고 blockchain migration이 있다.
Trusted Relays
Trusted relay는 믿을 수 있는 어떤 주체들이 소스 체인으로부터 타켓 체인으로 트랜젝션을 전송하는 방식이다. Trusted relay는 주로 Permissioned Blockchain에서 사용되고, 현재 Hyperledger Cactus에서 사용하고 있다.
Blockchain-Agnostic Protocols
Blockchain-agostic protocol은 블록체인 추상화 레이어를 통해서 블록체인 간 커뮤니케이션을 한다는데, 어떤 의미인지 잘 모르겠다. 은행과 여러 블록체인 프로토콜을 연결시켜 원활한 송금 체계를 만들려는 Interledger Protocol이 여기에 해당한다.
Blockchain Migrators
Blockchain migrators는 사용자가 블록체인의 상태(state)을 다른 블록체인으로 옮길 수 있게 하는 것이라는데, 역시 정확히 이해하지 못하였다.
토론
먼저 현재까지는 3개의 카테고리 중에서 public connectors가 가장 활발히 연구되었고, 현실에서도 적용 사례가 가장 많다. 하지만, 더 이상 블록체인 간 상호 운용이 자산의 교환에 그치지 않고, 더 복잡한 트랜젝션을 지원해야하는 상황에서, public connectors는 한계점을 가진다. 이러한 이유로, 다른 두개의 카테고리, BOB와 hybrid connectors에 대한 연구가 필요하다.
BOB, 코스모스와 폴카닷은 앞서 언급되었듯이 블록체인을 만들 때 필요한 합의 알고리즘 엔진과 보안 인프라를 제공한다. 코스모스와 폴카닷이 현재 가지고 있는 데이터 사일로를 해결하려면, BOB끼리의 연결이 필요하다.
Hybrid connectors는 나의 생각에 퍼블릭 블록체인과 프라이빗 블록체인의 연결을 주로 다룰 것 같다. 앞으로 더 많은 기존의 회사, 은행, 정부들이 분산화된 원장 시스템을 도입하게 된다면, 매스 어답션을 위해선 퍼블릭 블록체인 간의 상호 운용성 뿐만 아니라, 프라이빗 블록체인까지 고려하여야 할 것이다.
질문에 대한 해답
1. 현재 블록체인 상호 운용성에 대한 연구는 산업과 학문적으로 어떻게 진행되고 있는가?
현재 블록체인 상호 운용성에 대한 연구는 크게 3가지 카테고리; Public Connectors, Blockchain of Blockchains, 그리고 Hybrid Connectors로 나눠진다. Public Connectors는 비슷한 특징을 가진 체인 사이의 자산 교환에는 적합하지만, 그 이상의 복잡성을 위하여 Blockchain of Blockchains와 Hybrid Connectors에 대한 연구가 필요하다.
2. 블록체인 상호 운용성을 위한 기술적인 부분이 준비되어 있는가?
아직 상호 운용성이 자리 잡기 위한 표준이 존재하지 않고, 퍼블릭-프라이빗, 프라이빗-프라이빗 체인간의 상호 운용성에 대한 기술적 연구가 필요하다.
3. 블록체인 상호 운용성을 사용하는 실제 사례가 존재하는가?
첫번째는 자산의 이동이다. 퍼블릭 블록체인끼리 자산을 이동하는것 외에도 여러 정부들이 CBDC 도입을 검토하면서, 만약 각 나라들이 각각의 다른 블록체인을 기반으로 CBDC를 발행한다면, 여러 나라간의 송금이나 거래를 하기위하여서는 블록체인간 상호 운용성이 필요할 것이다.
두번째는 공급 사슬(supply chain)이다. 공급 사슬은 원재료부터 제품으로 가공되기 까지 여러 주체들을 거치는 체인이다. 이 공급 사슬에는 여러 이해관계자들이 참여하고, 믿을 수 없기 때문에 현재 종이 기반으로 공급 사슬을 기록하는 것은 변조와 접근성 부분에서 큰 문제를 일으킨다. 이를 해결하기 위하여 블록체인이 적용될 수 있는데, 각각의 이해관계자들이 서로 다른 분산화된 원장 시스템을 도입한다면, 이 시스템 간의 상호 운용성이 필요할 것이다.
읽고 난 후
읽고 난 후에 느낀점은 다음과 같다.
먼저 블록체인의 표준에 대하여서이다. TCP/IP가 인터넷의 레이어 0의 역할을 하였는데, 과연 블록체인도 이와 같은 표준이 필요한걸까? 상호 운용성의 측면에서 보았을 때 블록체인의 표준을 만들어 놓으면, 앞으로 만들어지는 블록체인 끼리의 최소한의 공통 특성이 생겨서 더 용이할 것이다. 하지만, 기존에 존재하는 블록체인들은 어떻게 할 거이며(backward compatibility), 하나의 표준을 기반으로 블록체인을 만들어야 한다면, 각각의 체인이 가지는 고유한 특성, 즉 멀티체인 생태계로 인하여 생기는 분산화 효과는 얻지 못하는 것 아닐까?
두번째는 프라이빗 블록체인에 대하여서이다. 지금까지 대부분의 관심을 퍼블릭 블록체인에 집중하다보니, 프라이빗 블록체인과도 상호 운용이 필요하다는 생각을 하지 못하였다. 그런데, 과연 프라이빗 블록체인을 현재 실제로 사용하는 사례가 있을까? 정부가 발행한 CBDC나 하이퍼레져를 이용한 기업들의 서비스가 언제쯤 우리가 실제로 사용하게 될지 잘 모르겟다. 하지만, 만약 그 시기가 나의 생각보다 빠르다면, 기존의 퍼블릭 블록체인과 프라이빗 블록체인을 연결하는 기술이 블록체인/크립토의 매스 어답션을 가져올 수 있다는 생각이 든다.