내가 기존에 있는 업계가 아닌 기성 개발자 커뮤니티를 다니다 보면, 꼭 한 번쯤은 받는 질문이 하나 있다. "블록체인 그거 사기 아닙니까? 대체 기존 DBMS하고 다른 게 뭐에요?" 물론 이런 질문이 들어오면...

Gepostet von Daniel Hong am Samstag, 20. Juli 2019

내가 기존에 있는 업계가 아닌 기성 개발자 커뮤니티를 다니다 보면, 꼭 한 번쯤은 받는 질문이 하나 있다.

"블록체인 그거 사기 아닙니까? 대체 기존 DBMS하고 다른 게 뭐에요?"

물론 이런 질문이 들어오면 최대한 상세하게 답변해 드리려고 노력하기는 한다. 블록체인이라는 건 단순한 데이터베이스 솔루션이 아니라, 그 "체인"에 담기는 데이터에 대한 "무결성에 대한 합의"를 가장 효율적으로 이루어내는 것이 핵심이라는 것, 그리고 이러한 특성들이 모여 기존 중앙화된 인프라와 차별화될 수 있는 강점들을 가질 수 있다는 것 같은 류의, 굉장히 뻔한 이야기들 말이다.

이렇게 장황하게 이야기를 늘어놓다 보면, 다시 돌아오는 질문은 크게 다음의 두 가지로 요약된다.

(1) "무슨 계속 탈중앙화무새처럼 탈중앙화 탈중앙화 외치시는데, 대체 그 탈중앙화 해 봤자 무슨 의미를 가집니까? 솔직히 B2B나 B2C용 서비스 개발하는 데 EC2(VPS형)/Lambda(함수/Serverless형)류의 클라우드 서비스로도 충분하잖아요. 거기다가 이런 솔루션들은 장기간에 걸쳐 안정성이 검증된 것들이라 개발자나 기업 입장에서 굳이 모험을 택할 필요도 없구요. 성능 면이나 개발친화성, 또는 다른 측면에서도 더 나쁘면 나빴지 특별히 강점을 가지는 것도 아니지 않습니까?"

(2) "그래서 블록체인이 지금까지 사용자에게 구체적으로 어떤 기술적/UX적 이득을 가져다 주었는지 설명해 주실 수 있나요? ICO나 코인판 빼고요"

솔직히 이런 식으로 대답이 돌아오면, 나로서는 크게 할 말이 없어진다. 말씀하신 문제들을 해결하기 위해 전 세계적으로 많은 사람들이 노력하고 있다고 말하거나, 사람들이 많이 쓰지도 않는 몇 가지 Dapp 사례들을 나열하는 것을 제외하고는 반박할 거리도 별로 없다.

이건 나뿐만이 아니라, 이 업계에서 일하고 있는 사람이라면 누구나 가지고 있을 고민이라고 생각한다. 시간이 지나도 외관상 별 발전이 없자, "현타"를 느끼고 다른 업계로의 전향을 고민하고 계신 분들도 많이 있다. 리브라로 인해 분위기가 반전될 것이라고 생각했으나 실상은 별 그렇지도 않았고.

그래서, 정말 블록체인은 역사상 가장 과대평가된 기술인가? 일부 개발자들이 지적하듯 Fault Tolerance를 가진 분산형 NoSQL 데이터베이스 그 이상도, 그 이하도 아닌 것인가? 조금만 더 자세히 들여다보자.

코인으로 시작해 코인으로 끝나는

잘 알려져 있다시피, 블록체인의 시작은 비트코인이다. 비트코인의 본래 목적은 "진정한 인터넷 화폐"를 구현하기 위한 것이었다. 세계 금융위기를 겪으며 수많은 은행들이 파산하자, 기성 금융권에 대한 반발로서 (i) 어느 한 주체(trusted third party)가 그 발행 및 관리를 독점하지 않고 (ii) 이메일처럼 손쉽게 "일대일로" (peer-to-peer) 주고받을 수 있으며 (iii) 이를 위해 모두가 거래장부(ledger)를 공유하고, 그의 무결성을 유지하기 위해 (i)의 화폐발행권을 특정한 통계적 및 암호학적 메커니즘(Adam Back의 Hashcash) 아래에서 경쟁적으로 거래장부의 거래를 검증하고 기록하는 노드들에게 위임하는 (proof-of-work) 시스템을 고안해내게 된 것이다.

당연하게도 기성 금융권은 이러한 시도를 절대 좋게 보지 않으며, 이들이 주장하듯 (탈중앙화된 방식의) 가치 조절 메커니즘 없이 비트코인이 법정화폐의 지위를 대체할 수 없다는 사실은 이미 증명된 바 있다. 물론 중앙화된 주체가 결정하는 법정화폐의 가격에 "대비하여" 가치안정성을 가지는 것(relatively stable to a centralized authority)이 결국 중앙화가 아니냐는 시각도 존재하나, 현실적으로 Turing-hard한 (즉, NP인) 경제 메커니즘 하에서 구동되는 현대사회의 특성상 이를 기성적인 Turing-completeness 체제로 해결해낸다는 것은 현재로서 불가능에 가깝다고 해석되어야 할 것이다. (물론 P = NP로 밝혀진다면 이야기가 완전히 달라진다) 실제 지난 11월 부느아 쾨레 유럽중앙은행 집행이사는 "비트코인은 금융위기가 낳은 사악한 알"이라는 발언을 내놓기도 했었다.

비트코인 이후, 비탈릭 부테린은 비트코인이 거래(transaction)을 처리하는 모델을 Turing-complete하게 확장해 programmable될 수 있는 새로운 블록체인인 이더리움을 제안했다. 기본적으로 CS에서 다루는 state transition을 transaction으로 치환해 튜링완전한 코드가 블록체인 상의 트랜잭션으로 실행될 수 있도록 한 모델인데 (account-based), 이더리움이 처음 제안될 당시까지만 해도 이 모델이 탈중앙화된 새로운 애플리케이션 플랫폼으로서 현재의 중앙화된 웹을 고칠 수 있을 것이라는 기대가 컸다. 그러나 이더리움은 5년이 지난 현재까지도 월드와이드웹의 중앙통제성을 고쳐놓지 못했고, 제대로 된 애플리케이션 플랫폼으로도 활용되지 못하고 있다. 마찬가지로 잘 알려져 있듯, 이 이야기는 아직까지도 현재진행형이다.

그러나 이더리움이 등장하자마자 곧바로 기가 막히게 강점을 보인 분야가 있었으니, 바로 손쉬운 코인 발행을 통한 자금조달이다. 이더리움 이전까지는 같은 방식으로 코인을 발행하기 위해서는 처음부터 블록체인을 새로 개발해야 했으며, 이렇게 해서 등장한 "altcoin"들의 대부분은 비트코인 블록체인 또는 소스 코드의 포크였다. 그러나 블록체인 자체를 computation machine으로 확장한 이더리움이 등장하자 더 이상은 그럴 필요가 없어졌다. 특정한 인터페이스 표준 (ERC)을 따르는 이더리움 스마트 컨트랙트 하나만 짜면 누구나 곧바로 이더리움 블록체인 위에서 코인을 발행할 수 있게 된 것이다. 덕분에 이더리움이 사용했던 자금조달 방식인 ICO의 인기는 하늘을 찌르기 시작했고, 급기야 각국의 규제 당국이 부랴부랴 규제에 나설 정도로 순식간에 그 인기가 커져버렸다. 코인판이라는 새로운 "투기판"까지 생겨버렸으니, 세상을 바꾼 정도로 치면 비트코인보다 이더리움이 훨씬 그 영향력이 큰 셈이다.

이는 물론 이더리움이 본래 의도한 바가 아니었다. 본래 이더리움을 통한 ICO는 크라우드펀딩 비슷한 개념으로 고안되었으나 현재는 그 누구도 그렇게 생각하지 않는다. 애플리케이션 플랫폼으로서의 이더리움은 (점차 개선되고는 있으나) 웹이 가져왔던 변화에 비하면 아직까지도 그 활용이 지지부진하다. 오히려 ICO의 대중화는 완전히 새로운 개념의 자산과 거래시장을 생겨나게 했고, 따라서 이더리움의 활용사례는 완전히 탈중앙화된 Dapp에서 decentralized finance, 즉 DeFi로 옮겨가고 있는 중이다.

결국 10년이라는 시간이 지났지만, 코인에서 시작해 코인으로 끝나게 된 셈이다.

Web 3.0의 비전은 어떻게

지금까지는 비트코인의 탄생부터 현재의 DeFi까지의 진행 상황을 간략하게 요약해 보았다. 그렇다면 진짜 문제는 이제부터다. 이더리움이 본래 제시했던 탈중앙화된 웹, 즉 Web 3.0의 비전은 어떻게 되는 건가?

이 질문에 답하기 위해서는 앞서 언급한 이더리움의 설계철학과, 앞선 개발자들의 지적을 다시 상기해 볼 필요가 있다. 이더리움은 본래 비트코인의 온체인 트랜잭션 모델을 튜링완전한 코드의 state transition 모델로 확장한 블록체인이다. 이더리움뿐만 아니라 현재 나와 있는 거의 모든 플랫폼 블록체인들은 이 모델을 따른다. 문제는 이 transaction-based state transition 모델이 실제 상업 목적의 애플리케이션과 서비스에서 그리 practical하지 못하다는 사실이다.

새로운 서비스를 개발하는 기업 입장에서 생각해 보자. 새로운 서비스를 개발하는 데에는 당연히 위험부담이 크다. 따라서 사용자에게 최상의 사용자경험을 제공해야만 하며, 이를 위해서는 검증되고 편안한 개발환경과 안정적이고 고성능인 인프라가 필요하다. 이러한 측면에서, 플랫폼 블록체인은 구조적으로 클라우드를 절대 앞설 수 없다. 기존의 거의 모든 레퍼런스가 클라우드 기반으로 쌓여 있고, AWS와 같은 클라우드는 숙련된 전문가와 그 사용자들이 수 년에 걸쳐 그 안정성을 끊임없이 개선하고 검증해 온 플랫폼이다.

거기다 성능 면에서도 앞설 수 있는 것도 아니다. 블록체인은 liveness의 보장 정도를 높이기 위해 반드시 합의 절차가 수반되어야 하고, 이 합의가 아무리 빠르게 이루어지더라도 네이티브로 구동되는 것보다는 당연히 느리다. 거기다 중앙화되어 있더라도 liveness가 아주 낮은 것도 아니다. 가끔씩 오류로 시스템이 뻗을 수는 있지만 이는 일시적이며, 전 세계적인 재난 상황이 아닌 이상 언젠가는 서비스가 복구될 것이라는 확신이 있다. 심지어 최근 등장하는 블록체인과 합의 알고리즘들은 처리 속도를 위해 liveness를 어느 정도 포기하는 추세다. 즉 100% uptime을 보장할 수 있는 것도 아니다. Layer 2 솔루션들의 경우 state compression을 위해 블록체인의 최대 강점 중 하나인 낮은 데이터 접근 공간복잡도를 오히려 포기한다. 이럴 거면 뭐하러 블록체인을 쓰나?

결론적으로, 앞서 서두에서 꺼냈던 개발자들의 지적은 일면 타당하다. programmable token을 통한 value transfer의 목적을 제외하고서는, 현재 형태의 플랫폼 블록체인들은 사용하기 애매한 public DBMS의 수준에서 벗어나지 못하고 있다. 엔지니어적 이상주의에 빠져 정작 타게팅해야 할 문제들을 찾지 못하고 있다는 뜻이다. 그걸 바로잡아야 할 비즈니스 쪽 사람들은 토큰 가격에 몰두해 현재 문제가 무엇인지조차 정확히 파악하지 못하고 있다. 10년 전이나, 지금이나 똑같다.

그렇다면 탈중앙화의 미래는

이렇게 되면 한 가지 질문이 남는다. 그렇다면, 탈중앙화의 미래는 어떻게 되는 건가?

사실 이 질문에 대한 답은 간단하다. 현재 tech giant들이 블록체인을 어떻게 취급하고 있는지를 살펴보면 된다. 페이스북을 제외한 사업자들은 현재 블록체인을 자사 클라우드 사업의 일부로서 바라보고 있다. 즉, 실제 고성능 애플리케이션은 자사 클라우드를 통해 구동하고, (i) 퍼블릭 블록체인에서 데이터를 끌어다 와 DID 등 신뢰 문제를 해결하는 데에 사용하거나 (ii) 클라우드 솔루션에 포함된 API를 통해 컨소시엄 또는 프라이빗 체인을 구현하는 데에 사용하라는 것이다.

페이스북의 리브라도 조금 더 자세히 살펴보면 이와 유사한 접근을 취하고 있다. Calibra를 포함한 Libra 기반의 앱들은 엄밀하게 말하면 Dapp이 아니다. 블록체인 위에 모든 로직을 올리지는 않았기 때문이다. 오직 (i) Libra 토큰을 사용한 송금처리나, (ii) Libra 토큰을 활용한 제한적인programmable logic에만 블록체인을 사용한다.

당연하게도 이는 탈중앙화적인 관점에서 이상적인 상황은 아니다. 하지만 사용자 경험의 관점에서 보면 현실적으로 최선의 선택이다. 페이스북의 Calibra가 그 누구도 구현해내지 못했던 Crypto UX를 뽐낼 수 있었던 것은 “꼭 필요한 곳에만” 블록체인을 활용하고, 나머지 대부분의 로직은 기존의 검증된 중앙화된 인프라를 사용했기 때문이다. 앞서 언급한 DeFi의 방향과 매우 유사하다.

그렇다면 남는 숙제는, 그 나머지 로직까지 탈중앙화시킬 수 있도록 성능 페널티에 크게 구애받지 않고도 중앙화된 인프라만큼의 안정성을 제공할 수 있는 탈중앙화된 인프라를 만들어내는 것이다. 앞서 언급했듯, 이러한 목적으로는 대부분의 경우 블록체인은 답이 될 수 없다. 그렇다면 블록체인이 아닌 새로운 구조를 찾아내야 할 것이다. 조금 더 구체적으로는, 모든 state transition을 on-chain transaction으로 취급하는 현재의 구조는 이러한 목적으로는 지나치게 computation 부담이 크다. 설령 consensus를 비약적으로 향상시킨다 할지라도 (i) 블록체인의 중요한 강점을 포기하거나, (ii) 네이티브 실행의 성능, 편리성 및 안정성에 미치지 못하기 때문에 중앙화된 인프라에 필연적으로 질 수밖에 없다.

다만 동일한 문제의식을 가지고 다른 방면에서 블록체인의 computation 문제를 풀어보려는 시도들이 조금 더 많아졌으면 하는 바람이다. 마침 데이터의 자기주권 (self-soverignty & privacy)이 큰 화두가 되는 상황이니, 탈중앙화의 당위성을 대중에게 납득시키기에는 과거에 비해 훨씬 쉬워졌다. 이제 제대로 된 솔루션만 나오면 되는데, 안타깝지만 현 상황에서는 모든 것을 블록체인 위주로 처리하려는 발상은 답이 될 수 없어 보인다. 이 접근이 답이 될 수 있다면 다른 누군가가 그것을 증명해 줄 수 있었으면 좋겠다.

어쨌든 블록체인이 과대평가되었다는 지적에 대한 내 입장은 대략 이러하다. 모두 맞는 지적이지만, 이는 탈중앙화에 대한 제대로 된 접근이 존재하지 않아서라는 것이다. 이는 이런 류의 문제를 풀어내려 하는 분들이 극소수여서 생긴 문제이기도 하다.

초기의 blockchain hype에 훨씬 못 미치더라도, 조용히 세상을 바꿔나가는 분들이 지금보다 조금 더 많아졌으면 하는 바람이다.