블록체인 진화의 방향으로서의 Blockchain inter-connection 이슈들
ICON은 시가총액 기준으로 글로벌 20위권에 있는 ICO 프로젝트이다. 게다가 그것이 한국의 팀이 이끌고 있다는 점에서 한국 블록체인 생태계에서 ICON에 거는 기대는 사뭇 크다고 할 수 있다. ICON의 성공은 그런 점에서 매우 가치 있는 일이다. 하지만 아직 ICON은 블록체인들을 ‘연결’한 모습을 보여주지 않고 있다. 그걸 기다리는 사람들 중 하나로서, ICON이 다루었으면 하는 블록체인 간 inter-connecting의 ‘크립토 이코노미’와 ‘아키텍처’ 레벨의 이슈들을 간략히 검토한다.
블록체인의 inter-connecting은 가치 있는 탈중앙 이코노미를 구성하는 방법론이 될 수 있는가?
이 질문은 두 개로 나뉘어져야 한다. 하나는 블록체인 간 inter-connecting이 탈중앙화될 때 주변부로 분배할 보상의 원천이 될 가치 원천이 존재하는가이고, 다른 하나는 그것이 ‘방법적으로’ 가능한가이다.
현 시점에서 전자의 질문에 대한 답은 명백하게 ‘그렇다’이다. 왜냐하면 우리는 이미 서로 다른 블록체인들이 ‘중앙화’된 형태로 연결되는 것에서 발생하는 ‘초과 이익’이 있음을 경험하였기 때문이다. 바로 ‘가상화폐 거래소’이다. 가상화폐 거래소는 블록체인들이 구성한 탈중앙 이코노미 내의 하나의 응용인 ‘가상화폐’를 연결하는 ‘중앙화된’ inter-connecter라고 할 수 있다. 다만 가상화폐 거래소는 이를 ‘온체인’에서 연결하는 것이 아니라 ‘오프체인’으로 연결하며, 제각기 탈중앙화된 블록체인을 ‘중앙화’된 생태계로 끌어 모은다. 모든 거래는 거래소에 거래 수수료를 집중시킨다. 중앙화된 규모가 커질 수록 거래는 더 잘 체결되며, 거래소의 가치는 더 커진다. 따라서 누군가 이를 탈중앙화시킨다면 탈중앙화된 생태계에 기여하는 주체들에게 성과 분배를 할 수 있는 재원이 있다는 것은 분명하다. 경제적인 면에서 탈중앙화란 결국 ‘탈중앙화된 규모의 경제’다
하지만 문제는 방법에서 시작된다. 가상화폐 거래소의 사례는 이를 탈중앙화하는 것이 쉽지 않은 일임을 보여준다. 일단 이를 탈중앙화시키기 위해서는 중앙화된 가상화폐 거래소와 동등한 수준의 가치를 탈중앙화된 인프라로 사용자에게 제공할 수 있어야 한다. 하지만 아직 중앙화된 거래소처럼 트랜잭션(작년 12월말 피크시 처리요구 트랜잭션은 초당 2만을 넘었다고 한다. 그러나 시스템은 만도 못넘기고 뻗고^^)을 처리할 수 있는 탈중앙화된 거래소는 없다. 게다가 탈중앙화된 블록체인의 ‘온체인’ 상에서 ‘법정화폐’를 다룰 방법이 없다. 거래소의 중요한 기능 중에 하나는 ‘법정화폐’로의 전환인데, 이를 취급할 경우 ‘금융 서비스 규제’를 받는 프로세스를 구축해야 하기 때문이다.
이제 방법론의 문제를 좀 더 깊게 보기로 하자.
inter-connecting blockchain의 방법론적 이슈들
이 문제에서 가장 먼저 검토해야 할 것은 ‘블록체인 간 연결의 수준’을 어떻게 할 것인가다.
[Protocol Translation]
‘Protocol Translation’은 연결의 모든 구간이 프로토콜 레벨에서 구현되어야 한다는 뜻은 아니다. 이는 양쪽 블록체인을 연결하기 위해서 어떤 한쪽의 ‘온체인 이벤트’를 투명하게 다른 블록체인의 ‘온체인 이벤트’로 전달하고 그 위에서 ‘응용’을 연결해야 한다는 뜻이다. 그러나 이는 만만치 않은 일이다.
만약 서로 다른 블록체인 간의 온체인 이벤트를 서로 대응하는 모든 요소들에 대해 ‘연결’ 가능하게 하는 전략이라면, 그것은 반드시 ‘name space’ 수준에서의 전략을 포함해야 한다. 이는 비대칭키 암호를 밑바닥에 깔고 있는 현재의 블록체인 월렛 name space 스킴에 있어서는 서로 다른 블록체인 상에 있는 비대칭키 암호 시스템 수준에서 어떻게 서로를 식별 가능하게 만들 것인가의 문제다. 타원곡선 비대칭키 암호(ECC)가 가장 전형적이지만, 때로 공개 블록체인들은 각자의 name space를 만드는 암호 알고리즘이 상이할 수도 있다. 블록체인 컴퓨팅에서 사용되는 또다른 name space 요소인 머클트리와 해시의 경우도 필요하다면 상대 블록체인의 요소를 식별하고 탐색할 수 있어야 한다. 어쨌건 두 블록체인 안에서 name의 uniqueness가 보장되어야 하고, 온체인 이벤트 상대로 서로를 식별하고 지정할 수 있게 되는 address translation 등도 처리되어야 한다. 이것의 의미는 명백하다. 그것은 바로 ‘온체인 이벤트’ 수준에서 동기화되는 것이다. 이는 마치 두 개의 서로 다른 우주에서 서로 대응되는 사건이 언제나 ‘동기화되어’ 발생하는 것을 보장하는 인과적 관계를 deterministic하게 구성하는 것과 같다. 물론 name space 문제만 해결한다고 그 위에 있는 모든 것이 한번에 ‘소통 가능한’ 상태가 되는 것은 아니다. 하지만 이는 ‘대응하는 모든 요소 간 소통’ 전략에서는 ‘전제 조건’에 해당한다고 볼 수 있을 것이다.
만약 ‘name space’ 상의 문제가 해결되었다면, 그 다음은 서로 상대방의 ‘온체인 이벤트’를 ‘오라클’로 삼아서 자신의 ‘온체인 이벤트’를 생성하는 ‘온체인 간 상호운용성’ 문제를 해결해야 한다. 이는 일종의 ‘터널링’이라고 볼 수 있는데, 문제는 이 터널링이 어떻게 두 블록체인의 성능이나 규격의 차이에도 불구하고 ‘안전하고 무결하게’ 수행될 수 있는가 하는 것이다. 그리고 이 터널링이 구현되어야 하는 레이어는 블록체인을 하드포크하는 방식이 아니라면 dApp 레이어일 수 밖에 없는데, 서로 다른 블록체인의 dApp 간의 통신에서 그러한 보안성을 확보하는 것이 가능한가 하는 점이다.
이 문제조차 해결되었다면, 그제서야 dApp 간 터널을 통해 교환해야 하는 ‘온체인 이벤트’들을 고려할 수 있을 것이다. 각 블록체인이 서로 다른 바이트 코드를 실행하는 가상머신(VM)을 갖고 있을 경우, 이는 신뢰할 수 있는 코드 변환의 문제를 해결해야 한다는 뜻이다. 이것이 가능하다고 하더라도 ‘변환’을 수행하는 dApp이 보내는 쪽의 dApp인지 받는 쪽의 dApp인지도 결정해야 한다. dApp 간 통신을 통해, 다른 블록체인으로 보내서 ‘온체인 이벤트’로 검증하고 실행될 스마트 계약의 바이트 코드를 전달하는 것이다.
사실 이 작업은 이렇게 대충만 보더라도 만만치 않은 작업이며, ‘상호연결성’과 ‘상호운용성’을 목표로 하는 쪽에서 이 작업을 모든 블록체인에 대해 수행하는 것은 사실상 불가능하다. 결국 이는 ‘기술적으로 가능하다 하더라도’ 연결하려는 ‘동기’를 가진 블록체인 쪽에서 ‘중계 블록체인’ 역할을 하는 쪽에서 요구하는 프로토콜을 자신의 블록체인 상에서 dApp으로 구현해서 ‘중계 블록체인’ 쪽에 연결되는 방식 말고는 다른 방법은 없는 것으로 보인다. 이는 곧 다른 블록체인 위에서 이러한 역할을 하는 dApp에 대해 interconnecting을 제공하는 블록체인 쪽에서 보상을 하는 cross blockchain reward가 가능해야 함을 의미한다.
[Application Proxy]
하지만 실리적 측면에서 ‘대응하는 모든 요소 간 소통 전략’을 취하지 않는다면, ‘ROI가 높은 응용 간 연결’을 선택할 수도 있다.
이 전략에서는 ‘서로 다른 네트워크 간’ 혹은 ‘네트워크와 inter-네트워크 간’에 두 가지가 이루어져야 하는데, 하나는 ‘온체인 신뢰기반’의 상호 신뢰를 위한 ‘합의 중개 프로토콜’과 ‘개별 응용(화폐 또는 dApp) 레벨 프로토콜 변환’이 그것이다. 현재까지 릴리즈된 정보만을 본다면 ICON은 엄밀하게 본다면 ‘Protocol Translation’이 아니라 자신의 블록체인 네트워크와 다른 블록체인 간에 일부 응용을 ‘inter-working’ 시키는 전략을 구현하려는 것으로 보인다. 이는 ICON에서 C-rep이라 불리는 다른 블록체인의 ‘대표’는 ‘오프체인’ 상에 있지만, ‘충분히 신뢰성 있는 합의를 기반으로’ ‘온체인상에 있는 합의’를 ‘오라클’과 유사하게 취급하여 ICON의 ‘온체인’ consensus의 기반으로 가져오는 것이 된다. 반대 방향으로도 마찬가지다.
이 경우에도 이것이 탈중앙화된 메카니즘으로 확산되기 위해서는 다른 블록체인 위에 있는 C-rep에 cross blockchain reward를 제공할 수 있어야 하는데, 이때도 마찬가지로 서로의 name space 간 연결을 어떻게 할 것인지의 문제는 ‘응용 단위’에서라도 해결되어야 한다. 최소한 월렛 주소와 블록 탐색을 위한 머클트리와 해시가 다른 블록체인으로 넘어가 어떻게 처리되어야 하는가가 확정되어야 한다.
또한 여기서는 ‘실시간성 보장’의 문제가 드러날 가능성도 있다. 자칫 실시간이 아닌 경우, 서로 다른 두 블록체인 간 연결 지점은 ‘공격자’에게 ‘오프체인 공격’의 타겟 포인트로 노출될 가능성이 있으며, 그 ‘공격자들’은 온체인 상에서 이익을 노리는 것이 아니라, 거래소와 같은 ‘오프체인’ 상에서 수익을 내기 위해 진을 치고 해당 포인트를 공격해서 코인들의 ‘유동성’을 떨어뜨림으로써 가격 조종을 시도할 수 있다.
앞에 적은 것들이 ‘블록체인 간 inter-connection’의 이슈를 모두 아우르는 것은 아니다. 그리고 블록체인 간 연결의 문제가 당장에 시급한 문제라는 뜻도 아니다. 그러나 이 문제는 충분히 풀 가치가 있는 문제이며, 블록체인이 ‘미래의 인터넷’이 되기 위해 반드시 검토해 볼 필요가 있는 진화 방향이다. 이 문제에 관심을 가진 분들이 생각을 해보는데 도움이 되길 바라며, ICON의 건투를 빈다.
좋은 글 감사합니다. 잘 읽고 갑니다.
도움이 되셨다면 제가 감사하죠^^
좋은글 잘 읽었습니다. icon 화이팅~!
p. s. tps 문제를 해결하려고 eos 가 준비하고 있다네요 ㅎㅎ
네^^ 감사합니다. EOS의 실용주의자 댄 라리머와 토대주의자 부탈린이 '철학' 수준의 충돌을 하고 있네요^^ 누가 맞든 TPS는 계속 좋아질 겁니다^^
네 서로서로 경쟁하며 성능이 업~ 되야죠 ㅎㅎ
Hello @blog.coinlab, thank you for sharing this creative work! We just stopped by to say that you've been upvoted by the @creativecrypto magazine. The Creative Crypto is all about art on the blockchain and learning from creatives like you. Looking forward to crossing paths again soon. Steem on!