베를린 웹 3.0 서밋 (part 2)

프라이버시, 확장성, 그리고 상호운용성

이전 글(1/3) — 베를린 웹 3.0 서밋 (part 1)

이번 글(Part2)과 이어질 다음 글(Part3)에서는 주요 키워드를 중심으로 베를린 웹 3.0 서밋의 현장을 소개하고자 한다. 웹 3.0은 개인의 데이터가 보호되고 상호운용성이 높은 웹이라고 설명한 바 있다. 이번 글에서부터는 새로운 웹 인프라를 위해 필요한 여러가지 기술이나 도구들의 현황과 미래에 대해 서밋에서 소개되고 논의된 것들에 대해 공유하려고한다. 이해를 돕기 위해 복잡하고 자세한 설명은 최대한 줄이고, 글의 논리를 해치지 않는 선에서 다소 단순화해 표현하고자 한다.

영지식증명

영지식증명(zero-knowledge proof)은 최근 블록체인 업계에서 가장 주목받고 있는 기술 중 하나이다. 영지식증명이란 자신이 어떤 정보를 안다는 사실을, 그 정보 자체는 드러내지 않은 채로 증명할 수 있도록 해주는 기술을 말한다.

예를들어 철수와 영희가 ‘피보나치 수열의 30 번째 숫자 먼저 찾기 게임’을 하는 상황을 생각해보자. 암산이 빠른 철수가 정답이 832,040이라는 것을 먼저 알아냈다. 철수는 자신이 답을 찾았다는 사실을 영희에게 당장 자랑하고 싶지만, 정답을 공개해서 영희에게서 수열 계산의 즐거움을 앗아가고 싶지는 않다. 이 때, 사려깊은 철수에게 영지식증명이 도움이 될 수 있다. 철수는 영지식증명을 활용하여 정답인 832,040을 영희에게 알려주지 않고도 자신이 정답을 발견했다는 사실을 증명할 수 있다.

블록체인은 원장의 기록이 모두에게 투명하게 공개되기 때문에 데이터 프라이버시의 문제가 존재한다. 가령 누군가 철수의 퍼블릭 키 주소를 안다면 자산규모, 토큰 전송 및 댑 사용내역 등 철수의 모든 온 체인(on-chain) 활동이 노출되는 셈이다. 이 때 영지식증명을 활용하면, 구체적인 트랜잭션 정보를 공개하지 않고도 그 트랜잭션이 유효하다는 것을 증명할 수 있다. 이런 관점에서 유저에게 프라이버시를 제공하고자 하는 프로젝트에는 대표적으로 지캐시(Zcash)와 모네로(Monero)가 있다.

한편 영지식증명에는 또다른 유용한 속성이 있는데, 이 기술이 최근들어 특히나 주목받는 이유가 바로 여기에 있다. 그것은 바로 증명의 ‘간결성’이다. 이해를 돕기 위해 위의 철수와 영희 예시가 30 번째부터 1,000,000 번째까지의 피보나치 숫자를 모두 찾는 게임이었다고 생각해보자. 철수가 정답을 영희에게 알려준다면 영희는 그 정답의 원본을 통째로 저장하고 철수가 거친 모든 계산을 다시 거쳐서 정답이 맞는지 확인해야 한다. 반면 영지식증명을 사용하면 원본보다 훨씬 작은 크기의 ‘증명’ 데이터를 활용하여 (구체적인 알고리즘에 따라 다르지만) 직접 계산하는 것보다 훨씬 빠른 검증이 가능해 진다. 이를 이용해 블록을 간결하게 하여 블록체인 확장성 문제를 해결하려는 대표적인 사례로 코다 프로토콜(Coda Protocol)이 있으며, 최근 비탈릭도 영지식증명을 활용한 온-체인 확장 솔루션에 대해 제안한 바 있다.

웹 3.0 서밋에서는 영지식증명 관련 분야에서 가장 주목받는 프로젝트 중 하나이자 비탈릭 부테린이 최초로 투자한 리서치 회사로 유명한 스타크웨어(STARKWARE)의 엘리 밴-새슨(Eli Ben-Sasson) 교수와 아비후 레비(Avihu Levi)가 ZK-SNARK 기술의 현황과 응용에 대해 발표하였다.

밴-새슨 교수는 영지식증명 계열의 다른 알고리즘과 ZK-STARK를 비교하는 것에 초점을 맞추어 설명하였다. 그의 발표에 따르면, 지캐시에서 활용되고 있는 ZK-SNARK에서 증명을 위해 신뢰할 수 있는 제 3자가 필요한 것과 달리 ZK-STARK는 그러한 제 3자를 요구하지 않는다.

그는 최초로 영지식증명을 온 체인 확장성 솔루션으로 제시한 것으로 유명한 코다 프로토콜(Coda Protocol)의 재귀적 SNARK(Recursive SNARK) 알고리즘과도 비교하였는데, 재귀적 SNARK는 증명 생성에 많은 시간이 소모되기 때문에 한 블록에 많은 트랜잭션을 담기 어려우므로 확장성에 제한이 있다고 주장했다.

또한 모네로의 영지식증명 알고리즘 불렛프루프(Bulletproofs)에서 증명의 검증에 많은 계산시간이 요구되는 것과 달리 (위의 철수와 영희의 예시로 생각하자면, 영희의 입장에서 증명을 검증하는 시간이 정답을 직접 계산하는 시간만큼이나 오래 걸린다는 의미) ZK-STARK는 검증이 빠르고 간결하게 이루어지도록 한다고 했다.

공간적 확장성의 측면에서, ZK-STARK는 다른 알고리즘들에 비해 증명 파일의 크기가 매우 크다는 단점이 있는데, 이에 대해 밴-새슨 교수는 최적화를 통한 꾸준한 개선이 이루어지고 있다는 점을 강조했다.

밴-새슨 교수의 발표에 이어 아비후 레비는 피보나치 수열 등의 예시로 ZK-STARK 증명이 실제로 작동하는 모습을 공개 시연했다. 또한 그는 ZK-STARK 기반 확장성의 여러가지 활용에 대해서도 논의했다.

그에 따르면 이 기술은 인프라 차원에서 레이어1, 레이어2 솔루션에 활용될 수 있으며, 풀 노드 싱크를 빠르게 하는 것에도 사용할 수 있다. ZK-STARK는 어플리케이션 레벨에서의 확장성에도 도움을 줄 수 있는데, 아비후는 그것의 예시로 탈중앙화 거래소(DEX, Decentralized Exchange)를 들었다. 그밖에도 증명가능한 연기 함수(VDF, Verifiable Delay Function), 증명 압축(Signature Aggregation) 등 다양한 활용을 생각할 수 있었다.

인터체인 프로토콜

인터체인 프로토콜이란 서로 다른 체인 간에 정보를 주고 받을 수 있게 하여 블록체인 생태계의 상호운용성을 높이고자 하는 기술이다. 인터체인 프로토콜은 TCP/IP 프로토콜에 자주 비유되곤 한다. 마치 기존의 웹에서 하나의 서비스가 하나의 서버에 구현되고 그런 서버와 클라이언트들이 TCP/IP 프로토콜을 바탕으로 통신하는 것과 같이, 인터체인 프로토콜에서는 일반적으로 하나의 어플리케이션이 하나의 블록체인 위에 구현되고 그런 체인들이 서로 연결되어서 하나의 통합된 웹 환경을 제공하고자 한다.

이미지 출처: http://www.zdnet.co.kr/news/news_view.asp?artice_id=20180306221756

어플리케이션 간의 상호운용성이라는 것이 생소하게 느껴진다면 다음과 같은 예시를 생각해보자. ‘메이플스토리’에서는 유저들끼리 ‘메소’로 아이템을 사고 팔 수 있다. ‘아이템 매니아’에서는 ‘메소’가 원화로 거래된다. ‘아프리카TV’에서는 ‘별풍선’을 원화로 환전할 수 있다. 만약 별풍선을 가진 누군가 메이플스토리의 아이템을 사고싶다면 현재는 별풍선을 원화로 환전한 뒤에 그 원화로 메소를 구매하여 그 메소로 아이템을 사는 과정을 거쳐야 한다. 반면 만약 세 서비스가 상호운용 가능하다면 아프리카TV의 환전율과 아이템매니아의 시세 데이터를 바탕으로 메소/별풍선 시세를 자동으로 계산하여 메이플스토리 아이템을 별풍선으로 직접 사는 것이 가능해질 수 있다.

직관적인 이해를 돕기 위해 단순한 결제를 먼저 예로 들었지만 다른 활용도 얼마든지 가능하다. 예를들어 게임에서 ‘강화’가 실패해서 손실을 입었을 때를 대비한 보험 서비스를 해당 게임에서 직접 제공해주지 않더라도 누구나 자유롭게 만들 수 있다. 비밀 던전 탐험에 필요한 용병과 장비를 사기 위해 투자금을 모아서 탐험에 성공할 경우 아이템을 나누어주는 식의 투자 계약도 유저들 간에 자유롭게 맺을 수 있을 것이다.

금융계약 뿐만이 아니다. 새해 첫 날 월드 오브 워크래프트에서 길드원들과 함께 찍은 감동적인 온라인 해맞이 사진원본 심즈로 가져와서 벽면에 장식할 수 있다면 어떨까? 포켓몬 세계관을 바탕으로 하는 가상의 게임 포켓몬ABC가 있다고 생각해보자. 이 때 우리는 포켓몬ABC와 그대로 연동되는 새로운 게임 포켓몬SV를 만들 수 있다. 예를들어 포켓몬ABC의 피카츄를 포켓몬SV와 호환되도록 해준다면, 포켓몬ABC가 인기를 잃어 서비스가 종료되더라도 유저들은 자신들이 키우던 피카츄와의 소중한 추억을 포켓몬SV의 세상에서 온전히 이어나갈 수 있을 것이다!

이번 서밋에서는 인터체인의 가장 대표적인 두 프로젝트인 코스모스(Cosmos)와 폴카닷(Polkadot)이 각각 세션을 진행했다.

코스모스의 텐더민트 연구소장 재키 매니언(Zaki Manian)은 어플리케이션 개발자들이 코스모스 네트워크와 호환되는 블록체인을 쉽게 런칭할 수 있도록하는 ‘코스모스 SDK(Software Development Kit, 소프트웨어 개발자 도구)’와 주요 모듈들에 대해 설명했다. 웹 3.0 어플리케이션 개발이 활성화되기 위해서는 (인프라 계층에 해당하는) 블록체인을 간편하게 개발할 수 있는 도구가 제공되어서 어플리케이션 개발자는 어플리케이션 개발에만 집중할 수 있는 환경이 갖추어지는 것이 중요하다. 현장에서 만난 한 코스모스 개발자는 코스모스 프로젝트의 가장 큰 강점으로 SDK를 꼽기도 했다.

코스모스 SDK는 코스모스에서 자체적으로 개발한 여러 모듈을 제공하는데, 그 중 가장 핵심이 되는 모듈인 IBC(Inter-Blockchain Communication)를 통해 네트워크의 수평적 확장과 상호운용성을 추구하려고 한다고 설명했다. 발표자에 따르면 코스모스는 초기에는 체인 간 토큰 전송 위주로 하여 최종적으로는 일반적인 데이터에 대한 보편적인 상호운용성을 지원하려고 한다. 그는 토큰 전송만 구현되더라도 스테이블 코인을 어플리케이션에서 화폐로 사용하거나 코스모스와 호환되는 독립적인 체인에 탈중앙화 거래소를 구축하는 것 등 다양한 활용이 가능하다고 강조했다. 발표가 끝난 후 청중들로부터 각 체인의 보안성에 대한 질문과 더불어 이더리움의 레이어2 솔루션인 플라즈마 사이드체인과의 비교 등 다양한 질문이 있었다.

코스모스는 이더리움의 플라즈마 사이드체인과는 달리 기본적으로 네트워크에 연결 된 체인들의 보안성이나 데이터 정합성을 네트워크 차원에서 보장하지는 않는다. 발표자는 이에 대해 현재 플라즈마는 그러한 속성들을 보장하기 위해 체인 내의 연산에 제약이 있는데, 현실적으로 이러한 제약들은 어플리케이션 구현에 적합하지 않다는 점을 지적했다.

폴카닷의 개빈 우드(Gavin Wood)는 하나의 거대한 체인이 웹 3.0 생태계의 유일한 ‘승자’가 되는 미래에 부정적이라는 입장을 밝히고, 그러한 것을 추구하는 일련의 움직임들에 대해 ‘체인 맥시멀리즘’이라 부르며 일종의 블록체인판 국가주의라고 비판했다. 개빈은 영원히 완벽한 단 하나의 체인만이 살아남아 홀로 웹 3.0의 뼈대가 될 가능성은 매우 낮으며 또한 그렇게 되는 것이 바람직하지 않다는 관점에서 인터체인의 의의를 역설했다. 그에 따르면 폴카닷은 현존하는 (혹은 미래의) 다른 블록체인 플랫폼과 경쟁적인 관계로 자리잡기보다는 중립성과 자율성을 바탕으로 상호 협력하는 관계를 구축하고자 한다.

폴카닷은 크게 릴레이 체인(relay chain), 파라체인(parachain), 그리고 브릿지(bridge)로 구성된다. 폴카닷 네트워크에 완전히 종속된 여러 개의 파라체인이 릴레이 체인을 통해 서로 연결되고, 이더리움과 같이 독자적인 합의 체계를 가진 외부의 체인 또한 브릿지를 통해 폴카닷 네트워크와 소통할 수 있다. 이 때 파라체인 자신도 하나의 릴레이 체인이 되어 하위에 다른 파라체인들이 연결되도록 할 수도 있다. 파라체인이 종속적이라는 말은 그것의 보안성이 네트워크 차원에서 보장된다는 뜻이다. 이곳에서 만난 한 개발자는 여러 체인이 보안을 공유한다는 것이 폴카닷의 가장 큰 특징이라고 말했다.

이번 세션에서 개빈은 폴카닷 프로젝트의 중요한 구성요소 중 하나인 서브스트레이트(Substrate)를 중점적으로 발표했다. 앞서 소개한 코스모스에서와 마찬가지로 폴카닷 프로젝트에서도 블록체인 기반의 어플리케이션을 쉽게 개발하고 그것을 폴카닷 네트워크를 통해 다른 블록체인들과 자연스럽게 연결할 수 있는 환경을 중요하게 생각한다. 서브스트레이트는 폴카닷 네트워크와 연동될 수 있는 블록체인을 쉽게 개발할 수 있는 도구이다.

개빈은 폴카닷의 인터체인 생태계에서 폴카닷이 이더넷과 같은 하나의 프로토콜이라면 서브스트레이트는 그런 프로토콜을 사용하는 PC에 비유할 수 있다고 설명했다. 어플리케이션 개발자는 서브스트레이트가 지원하는 다양한 옵션들을 자유롭게 선택하여 자신의 어플리케이션에 적합한 블록체인을 쉽게 세팅할 수 있다. 이 때, 이 블록체인은 필요에 따라 폴카닷 네트워크에 완전히 종속된 형태로 만들 수도 있고, 독자적으로 작동하되 폴카닷 네트워크와 연동되게 하거나 완전히 독립적인 형태로 개발할 수도 있다. 주목할 것은 이런 세팅들이 복잡한 하드포크가 없이도 유연하게 변경될 수 있고 언제든지 폴카닷에 연결될 수 있다는 점이다.

이번 글에서는 웹 3.0의 프라이버시와 확장성, 그리고 상호운용성을 위한 기술인 영지식증명과 인터체인 프로토콜과 관련된 세션들에 대해 살펴봤다. 다음 글에서는 블록체인에서 단골로 언급되는 주제인 온 체인 거버넌스와, 데이터의 주권을 개인에게 돌려주기 위한 프로젝트들에 대해 알아보도록 하겠다.

To be continued..