Welcome to Istanbul, time to rollup!

Jinwoo Park
해시드 팀 블로그
10 min readDec 20, 2019

2019년 올 한해에는 많은 수의 디파이(DeFi; Decentralized Finance, 탈중앙화 금융) 프로젝트들이 등장했습니다. 그리고 이들 프로젝트의 스마트 컨트랙트에 예치된 자산의 양은 약 7억 달러(약 8천억 원)에 달합니다. 하지만 이런 와중에도 정작 디파이 프로젝트들의 활성 이용자 수는 크게 늘어나지 않았습니다. 과연 암호자산 이용자들이 이더리움 위의 댑(Dapp), 그리고 디파이 서비스를 적극적으로 사용하지 않는 이유는 무엇일까요? 어려운 접근성이나 UX의 문제를 떠올리는 분들도 많으실 테지만, 이더리움이 2017년 큰 주목을 받은 이래 꾸준히 제기되어온 문제인 확장성(Scalability)과 프라이버시 문제를 꼽는 분들도 많습니다.

여기 이더리움 서포트들이 환영할만한 뉴스가 있습니다. 이더리움 상에서 롤업(Rollup)이라 불리는 Layer-2 솔루션의 도입이 초읽기에 들어갔습니다.

Layer-2 그리고 Offchain

유명한 경제학의 트릴레마(Trilemma)처럼 블록체인에도 비슷한 개념이 존재합니다. 하나의 블록체인이 탈중앙화(Decentralization), 안정성(Security), 확장성(Scalability)의 세 가지 특성을 동시에 만족시키기는 대단히 어렵다는 내용입니다. 이더리움의 경우 프로토콜 참여자의 수가 제한되어 있지 않아 탈중앙화의 정도가 높고, 안정성의 수준도 높은 편이지만 그 반대급부로 확장성의 문제가 늘 지적되어 왔습니다. 많은 사람들은 이더리움이 현실 세계에 본격적으로 접목되기 위해서는 반드시 이 확장성 문제가 해결되어야만 한다고 이야기합니다.

하지만 확장성을 해결하기 위해 탈중앙화나 안정성을 포기하는 것 또한 쉽사리 선택할 수 없는 방법입니다. 이러한 기조 속에서 이더리움 파운데이션, 그리고 저를 포함한 많은 크립토 네이티브들은 포기하기 힘든 탈중앙화와 안정성을 지키면서도, 확장성 문제를 이더리움 자체, 즉 온체인(on-chain) 대신 오프체인(off-chain)을 통해서 해결하려고 시도하고 있습니다. 이 중 널리 알려진 것이 사이드 체인(Side chain)과 그 한 종류인 플라즈마(Plasma), 그리고 스테이트 채널(State channel)과 다양한 변종들입니다.

Rollup

롤업(Rollup)은 Layer-2 확장성 솔루션으로, 플라즈마와 비슷한 점이 많습니다. 온체인에서 하나의 컨트랙트에 보증금이 납입되고, 사이드체인에서 일어나는 많은 수의 활동(보통 머클 트리 형태로 기록되는 이용자의 계정과 잔액, 스테이트 등)이 해당 컨트랙트를 통해서 저장되는 방식입니다. 이 때 사이드체인의 데이터중 많은 부분이 온체인(Layer-1)에 의해서 관리되지 않기 때문에 여기서 생기는 리소스의 절약을 바탕으로 확장성을 확보할 수 있게 됩니다. 여기서 사이드체인과 온체인을 연결해주고 스마트 컨트랙트를 관리하는 참여자를 일반적으로 오퍼레이터(Operator) 라고 부릅니다.

플라즈마와 롤업을 구분 짓는 가장 큰 차이점은 데이터 가용성(Data Availability)입니다. 플라즈마를 비롯해 현재까지 나온 사이드 체인 솔루션의 대표적인 문제점으로 지적되어 온 데이터 가용성 문제는, 결국 오프체인의 스테이트가 온체인에 저장되지 않기 때문에 발생하는 것입니다. 반면 롤업의 경우 이 문제를 수백~수천 개의 오프체인 트랜잭션 데이터를 모아서(Rolled up) 온체인에 직접 기록하는 방식으로 해결합니다. 이더리움의 경우 아래에서 소개해 드릴 EIP-2028에 등장하는 ‘Calldata’가 여기에 이용됩니다.

ZK Rollup(ZKR)

2018년 후반부에 비탈릭이 아이디어를 던졌던 ZK Rollup(ZKR)은 zk-Snark를 이용하여 트랜잭션을 모아서 이더리움 메인체인에 담는 방식입니다. ZKR의 오퍼레이터는 수백~수천 개의 트랜잭션들을 모으게 되는데, 이때 이 트랜잭션(또는 상태변화값)을 zk-SNARK 형태로 만들게 됩니다. 이 SNARK가 바로 트랜잭션의 유효함, 즉 적절히 서명되었으며 토큰의 전송이나 스마트 컨트랙트의 실행이 제대로 되었는지를 증명하게 됩니다. 이 과정에서도 일반적인 이더리움에서 사용하는 것과 같이 SNARK로 머클 트리(Merkle tree)를 만들게 되어, 사이즈를 혁신적으로 줄어들게 할 수 있습니다.

좀 더 기술적인 내용을 엿보고 싶으시다면 비탈릭의 아이디어 또는 이 링크를 방문해보시길 추천합니다.

ZK Rollup을 설명하는 비탈릭, 타이베이 이더리움 밋업 [Source : Youtube]

Optimistic Rollup(OR)

Optimistic Rollup(OR)은 올해 데브콘에서 가장 핫한 키워드 중 하나였습니다. OR에서는 ZKR에 비해 오퍼레이터가 하는 일이 현격히 줄어듭니다. OR에서의 오퍼레이터 역시 다른 유저가 보낸 수백~수천개의 트랜잭션을 모으기는 하지만, ZKR에서 처럼 SNARK를 이용한 영지식증명을 행하지는 않습니다. 대신 이름처럼, 그 트랜잭션들이 온전하기를 ‘낙관적으로’ 바랄 뿐이죠. 그럼 잘못된 트랜잭션이 발생하면 어떻게 될까요? 온체인의 롤업 스마트 컨트랙트를 지켜보고 있는, 혹은 오류를 먼저 알아차리게 된 참여자가 이를 스마트 컨트랙트에 알려줄 수 있고, 그 결과 트랜잭션 오류를 발생시킨 ‘나쁜’ 오퍼레이터는 자신이 스마트 컨트랙트에 걸어두었던 보증금을 슬래싱 당하게 됩니다. 이더리움 기술에 익숙하신 분들께서는 어디선가 많이 본 듯한 이야기 같지 않나요? 맞습니다, 플라즈마입니다. 현재 OR의 개발은 플라즈마 그룹이 주도하고 있습니다. 하지만 이 논리 하에서는 최종 사용자 입장에서 완결성(finality)을 명확하고 빠르게 체크할 수 있는 방법이 개발되기가 쉽지 않을 것 같다는 생각도 듭니다.

조금 더 궁금하신 분들은, 이 링크에서 John Adler의 아이디어를 엿보실 수 있습니다.

Istanbul

이더리움에 조금 관심이 있으신 분들은 콘스탄티노플, 세레니티 같은 단어들을 여러 차례 들어보셨을 겁니다. 바로 이더리움의 업그레이드 코드명입니다. 이 업그레이드들은 프로토콜에 큰 변화를 가져오기 때문에 하드포크라고 칭하기도 합니다.

‘콘스탄티노플’은 2019년 2월 28일에 일어났던 업그레이드이고, ‘세레니티’는 일명 ‘이더리움 2.0’이라고도 불리는, PoS, 샤딩(Sharding)으로의 전환까지 포함한 차세대 이더리움 업그레이드를 말합니다. 오픈 네트워크를 지향하는 이더리움에서는 누구나 EIP(Ethereum Improvement Proposal)라고 불리는 이더리움 개선 제안을 올릴 수 있습니다. 그리고 많은 토론을 통해 EIP 중에서 적절한 제안을 선정하여 업그레이드에 포함하게 됩니다. 많은 분께서 익숙하게 알고 계실 이더리움 위의 토큰 스탠다드 ‘ERC-20’도, 지난 2015년 11월 19일에 작성된 EIP-20이 업그레이드에 포함된 결과물입니다.

이스탄불 업그레이드 이후 이더리움 로드맵, 현재 조금씩 딜레이된 상태. [소스: Consensys]

‘이스탄불’로 명명된 이번 업그레이드는 한국 시각으로 2019년 12월 8일 새벽에 진행되었습니다. 약 30개 이상의 EIP가 후보로 제시되었고, 그중에서 6개의 제안이 채택되었습니다. 이 중에서 눈여겨 봐야 할만한 주요 업데이트는 EIP-1108, EIP-1344, EIP-2028 등입니다.

위 세 가지 업데이트에 대해서 간략하게 설명하면, EIP-1108은 몇몇 연산의 가스 비용을 줄이는 내용을 담고 있고, EIP-1344를 통해서는 ‘ChainID’ 라는 새로운 함수가 추가되었으며, EIP-2028은 ‘Calldata’라고 불리는 온체인 스토리지의 비용을 줄이는 내용의 업그레이드입니다.

조금 어렵게 들릴 수도 있지만 위에 설명한 기술적인 내용을 바탕으로 위의 업그레이드 내용을 재정의하면 다음과 같습니다. 결국 EIP-1108은 zk-SNARK 계열의 Layer-2 솔루션에 대한 비용을 줄여주고, EIP-1344는 Layer-2에서 스마트 컨트랙트가 올바른 체인을 따를 수 있도록 도움을 주며, 마지막으로 EIP-2028은 Layer-2에서 데이터 가용성(Data Avaiability)를 위해서 널리 사용되고 있는 Calldata의 비용을 약 ¼ 로 줄여줌으로써 많은 이점을 가져다주게 됩니다. 결론적으로, 이번 이더리움 하드포크인 이스탄불은 Layer-2 솔루션들에 대단히 우호적인 내용을 담고 있는 것이라고 정리할 수 있습니다.

Future

지금까지 이스탄불 하드포크에 포함된 업그레이드의 의의를 살펴보았습니다. 그렇다면 이러한 업그레이드가 실질적으로는 어떤 변화를 끌어낼 수 있을까요?

현재 이더리움 위에서 토큰 전송을 위한 트랜잭션은 21,000 Gas를 소비합니다. 반면 위에 설명한 OR은 1/5에 불과한 4,000 Gas만을 소비한다고 합니다. 그 결과, 현재 이더리움의 성능인 20TPS보다 약 5배에 달하는 100TPS까지 도달할 수 있게 될 것입니다. 현재 Fuel, Interstate Network, Arbitrium, 그리고 SKALE Labs 와 같은 프로젝트들이 OR의 아이디어를 적용하고 있습니다. 특히 SKALE Labs에서는 기존의 생태계에서 일반적으로 사용하고 있던 ECDSA 서명을 BLS 서명으로 바꾸는 것도 함께 고려중입니다.

SKALE Labs에서 개발 중인 BLS-Rollup, 트랜잭션에서 서명이 차지하는 부분을 획기적으로 감소. [source:SKALE Labs Blog]

한편 Matter Labs에서는 ZK Rollup의 구현체인 ZK Sync를 데브넷(devnet) 형태로 공개하였습니다. 이더리움 메인넷에 연결되면 토큰 전송에 단 272 Gas만 소비될 예정이라고 하니, 이론상 약 2000 TPS를 웃도는 성능을 기대할 수 있게 됩니다.

Matter Labs 에서 공개한 ZK Sync의 데브넷

이러한 솔루션들이 성공적으로 구현되어 이더리움 온체인에 연결된다면, 지금까지 이용자들이 겪었던 낮은 성능과 확장성 문제로 인한 불편함이 상당 부분 해소되리라 생각됩니다. 한편으로 프라이버시 문제 또한 이더리움 온체인에서 직접 해결하는 것보다 이러한 솔루션들을 통하는 것이 훨씬 수월할 것이므로, 확장성 문제와 함께 해결될 가능성이 높습니다.

결론적으로 이러한 변화는 우리가 현실 세계에서 사용하고 있는 금융 시스템과 이더리움 사이의 괴리를 점점 줄어들게 하고, 디파이 생태계에 더 많은 대중이 모일 수 있도록 하는 데 효과적으로 기여할 것 같습니다. 현실 세계의 은행에서 예금이나 대출을 하면서, 우리의 트랜잭션이 모두에게 공개되지는 않을까 염려하거나, 혹은 인터넷 뱅킹에서의 송금이 느리게 처리되지 않을까 걱정하는 일은 없죠. 이제 이더리움에서도 그러한 걱정이 옛말이 된다면, 어느 순간부터 디파이 서비스로의 이용자 유입이 급속화될지도 모릅니다. 많은 분들이 오래 기다려온 ‘이더리움 2.0’이 내후년 이후의 미래를 밝혀줄 밝은 등불이라면, ‘롤업(Rollup)’으로 대표되는 Layer-2 솔루션들은 다가오는 2020년에 우리가 가야 할 길을 알려줄 중요한 이정표가 될 수 있지 않을까, 기대를 가져봅니다.

--

--