이더리움, 블록체인에 날개를 달다

블록체인을 블록체인답게 만든 이더리움

by Tawny Taewon Kim

앞 글에서 비트코인이 생긴 유래를 말씀드렸어요. 사토시 나카모토의 몇 가지 철학이 담긴 기술이 비트코인이었지요. 내용을 다른 말로 정리하면 이래요.

- 비트코인은 국적 없는 통화(currency)

- 비트코인은 분산 컴퓨팅 환경에서 가치의 전송이 가능한 플랫폼이다.

- 비트코인의 분산원장에 해당하는 블록체인은 핀테크 다양한 영역에서 활용 가능한 프로토콜이다.


비트코인이 나온 게 2009년이고 사실 그 이후로도 널리 알려지는 데는 몇 년 걸렸어요. 제가 비트코인을 알게 된 것도 해외 기술을 지속적으로 추적하다 보니 접한 건데 한 2013년쯤 되었을 거예요. 아무튼 초창기 기술 커뮤니티에서 저 마지막 명제에 대해 토론이 많았어요. 뭔가 유용한 프로토콜이 되고, 엣지있는 유망 기술인 건 알겠는데 이 '수학적으로 완벽한 싸이월드 도토리'로 과연 어떻게 세상이 바뀔지 상상이 가지 않았던 거죠. 최소한 저는 그랬어요.


이유가 있어요. 단지 정보만 전달하는 경우라도 코인의 거래(transaction)가 필요해요. 그래야 블록체인이 돌아가요. 블록체인 기술이 코인에 갇힌 거죠. 그래서 상상이 어려웠던 거고요.


코인에 갇힌 블록체인 기술을 해방시킨 비탈릭 부테린

2014년쯤 되었을 거예요. 갑자기 기술 커뮤니티에서 캐나다의 천재소년 이야기가 나오기 시작해요. 비탈릭 부테린이란 젊은이가 '이시리움(!)'이란 신기한 걸 주창해서 파문을 일으켰다는. (링크해놓은 기사에 진짜 이시리움이라고 되어 있어요. 재미나니 한번 읽어보세요. 격세지감을 느낄 수 있어요. ^^)


비탈릭이 대단했던 지점은 여기에요. 비트코인 내부에 간단한 프로그래밍인 스크립트(script)를 돌리는 부분이 있어요. 소비되지 않은 거래 출력(UTXO, Unspent Transaction Output)에 위치한 잠금 스크립트(locking script)와 서명이 담겨있는 해제 스크립트(unlocking script)란게 있지요. 이 스크립트들이 돌아가면서 소비 조건이 맞는지 확인하고 암호 해제와 거래 이전을 보장하는 역할을 해요. 상세히 기술적인 건 몰라도 돼요 지금은. 그냥 비트코인 기술 내에 스크립트가 있다는 점이 중요해요.


이 비트코인 스크립트는 스택 기반의 실행언어에요. 예전에 매크로 어셈블리어 배운 분은 알 텐데 무식하게 단순해요. 스택에 데이터와 연산자를 올려가면서 순차적으로 처리하는 방식이에요.

Webp.net-gifmaker (1).gif

이 정도면 간단한 연산과 조건 판단 정도는 되지만 정말 간단한 일 밖에 못해요. 이걸 튜링 불완전하다고 해요. 비탈릭이 천재적인 점은 이 스크립트의 가능성을 알아본 데 있어요. 이 부분을 프로그래밍 가능하게 뚝딱뚝딱 고칩니다.


그깟 튜링이 뭔데

이더리움에서는 solidity란 언어로 프로그래밍이 가능합니다. 루프도 돌리고, 조건문을 사용할 수 있어요. 그래서 일반적인 컴퓨터 언어와 마찬가지로 실생활의 문제를 풀 수 있지요. 이런 걸 튜링 완전(Turing Complete)하다고 말해요. 튜링 완전이 뭔지는 그리 중요하지 않아요. 그냥 온전한 프로그래밍이 가능하다는 거예요. 그보단 튜링이 이미테이션 게임에 나온 그 천재 수학자란 거만 알아도 족하죠.

web_turing_sf-film.jpg

솔리디티는 이더리움 가상머신인 EVM(Etherium Virtual Machine)에서 돌아가므로 OS나 장비의 특성에 의존적이지 않아요. 생겨먹은 건 자바스크립트와 매우 비슷한데 문법은 좀 더 간단해요. 그 말은 프로그래 짤 때 쓸 수 있는 수단이 좀 더 적어졌다는 이야기이기도 해요.


블록체인이 바꾸는 세상의 기초, 스마트 계약

이 이더리움 프로그램을 스마트 계약(smart contract)이라고 불러요. 비로소 블록체인을 비트코인에서 떼어낼 수 있고 수많은 블록체인 기반의 기술이 발전하게 된 계기이기도 해요.


제가 처음 스마트 계약이란 말을 들었을 때 그 신비로움에 소름이 돋는 줄 알았어요. 소유권의 이전이나 자산의 구매 같은 실생활에서의 거래행위가 소프트웨어로 표현되고 거래 조건이 만족되면 실행이 되는 스마트 계약. 환상적이지요.


실제로 내용을 보기 전엔 법률적 계약서가 표현되어 있는 줄 알고 정말 신비롭게 생각했는데, 실상은 거래 조건이 표현된 프로그램에 불과해요. 그래도 잘 보면 의미가 커요. 비트코인이 그 이전 세상과 단절적 도약을 한 '가치'의 전송이 가능해졌듯, 이더리움에서는 가치와 정보가 소프트웨어로 조건을 보고 실행 여부가 자동으로 판단돼요. 매우 대단하죠. 특히 IoT 하고 궁합은 찰떡이에요. 이 부분 나중에 많이 이야기할 기회가 있을 거예요. 미래 세상이 되면 법률 영역에도 프로그래머가 필요할 수도 있을지 몰라요.


한 가지 짚어둘 점이 있는데, 이 스마트 계약은 아직도 갈길은 멀어요. 예컨대 자산 거래에 이더리움 기반의 스마트 계약을 채용했다고 쳐요. 제가 몇 월 몇 일까지 이더리움으로 돈을 지급하지 못하면 자산거래는 취소되고 페널티로 위약금을 내야 해요. 그런데, 저는 계약을 어길 생각이 추호도 없었고 다만 그날 은행에 문제가 생겨 송금이 어려워졌어요. 사람 간이라면 전화로 사정을 설명하고 마감시간 몇 시간 후라도 은행이 정상화되는 대로 송금하면 문제가 없어요. 서로 계약을 깰 생각은 없으니까요. 하지만, 소프트웨어는 기계처럼 냉정해요. 조건이 안 맞으면 위약 프로세스를 돌려버릴 수도 있어요. 실제로 스마트 계약이 대중화되면 지나치게 엄정한 계약의 이행은 분명 문제의 소지가 있어요.

aaron-burden-64849.jpg


이더리움 스마트계약의 개선 포인트

그러면 다양한 완화조건을 프로그램에 넣어두면 되지 않냐 생각할 수 있어요. 맞아요. 분명 그런 방향으로 갈 겁니다. 하지만, 현재로선 한 가지 문제가 있어요. 프로그램을 효율적으로 짜야하는 이슈가 있거든요.


애초에 블록체인이 바꿀 수 있는 세상을 열린 상상했던 게 사토시 나카모토지요. 사토시가 비트코인의 스크립트를 튜링 불완전하게 만든 이유는 기술이 모자라서이거나 상상이 부족해서가 아니에요. 사토시는 일단 비트코인을 세상에 영원불멸한 지속 가능한 존재로 만드는 게 지상 목표였어요. 그리고 공간적으로는 세계의, 시간적으로는 미래 세상의 사람들을 못 믿는, 의심쟁이 철학이라고 했었지요. 그래서 스크립트에 무한루프를 거는 식으로 DDoS 등의 악성 공격을 막기 위해 부러 최소한의 스크립트만 가능하게 만들었어요.


자, 이제 이더리움도 같은 문제를 해결해야 해요. 즉, 누군가 복잡한 루프로 전체 시스템(블록체인 세상의 모든 노드)에 부하를 주는 짓을 막아야 하는 거죠. 이더리움은 이를 개스 요금(gas fee)란 방식으로 구조화했어요. 즉 코드 돌리는 만큼 수수료를 지급해야 해요. 스크립트의 줄 수와는 무관해요. 실행량이 중요하죠. 그래서 스마트 계약에서 코드를 돌리는 만큼 비용을 계약이 포함된 이더(ETH) 화폐에서 지불해요. 예컨대 석줄 짜리 프로그램으로 무한루프를 돌려봐야 가지고 있는 이더를 다 소진하고 끝나죠. 그래서 효율적인 코드를 작성하도록 유인을 제공해요. 버그가 있어도 문제가 생길 수 있겠네요. 암튼 이걸 개스 요금이라고 불려요. 요기까진 천재적이죠.


하지만 현재 이더의 가장 큰 문제 중 하나가 이 수수료예요. 비트코인과 달리 스마트 계약의 실행에 따라 수수료가 달라지고, 좀 복잡한 프로그램을 넣어두면 수수료가 너무 비싸 거래 비용이 급증해 버려요. 이걸 해결하려는 노력이 다양하게 진행 중이지요. 그리고 이 문제가 해결이 안 되면 이더리움의 미래는 밝지 못해요. 물론 곧 방법을 찾아내겠지요. 이더리움 나온 지 아직 3년도 안됐으니까요.


지금까지 비탈릭 부테린이 이더리움을 통해 블록체인을 비트코인에서 해방시켜 포텐을 터뜨린 이야기를 했어요. 저는 개인적으로 블록체인의 아버지가 사토시 나카모토면 블록체인의 어머니는 비탈릭 부테린이라고 생각해요. 다르게 비유하면, 비트코인이 구약이라면 이더리움은 신약에 해당한다고 보고 있어요. 그렇다고 비탈릭 부테린이 어머니의 모성이나 예수의 사랑과 희생 같은 캐릭터는 아닙니다. 요즘 욕도 많이 먹고 다닙니다 비탈릭 부테린. 그냥 이해를 돕기 위한 제 개인적인 비유일 뿐이죠.


오늘은 블록체인을 이해하는데 또 하나 중요한 밑돌인 이더리움을 이야기해 봤어요. 재미있으셨나요?

keyword
매거진의 이전글그래서 블록체인이 한마디로 뭔데?