Cross-rollup NFT wrapper
NFT거래 있잖아. 메인넷말고 다른데서 하면 안될까?
2021년 9월 6일, 비탈릭 부테린은 이더리움 리서치 포럼에서 Cross-rollup NFT wrapper and migration ideas 라는 짧은 게시글을 포스팅했는데, 이를 한마디로 요약하면 NFT 때문에 가스비가 높아졌으니 L2 레이어로 몰아내자는 것이다. 여기서 필자가 조금 강한 어조로 묘사했는데 나는 이런 방식으로 문제를 해결하는 것은 바람직 하지 않다고 생각한다. 그래서 여기서는 비탈릭의 아이디어를 설명하기 전에 먼저 배경 설명을 하고자 한다.
배경 ① — 블록체인과 수수료의 관계
블록체인에서 수수료란 제한된 블록 내에 트랜잭션의 처리 우선권을 경매 형식으로 판매하는 개념이지만, 기술적으로 보자면 서비스 거부 공격 (Denial-of-Service)을 방어하기 위한 매커니즘이다. 블록체인은 네트워크가 오픈되어 있기 때문에 공격자가 의미없는 트랜잭션을 대량 생산하면 실사용자의 트랜잭션은 처리되지 않기 때문에 공격자의 공격 의도를 없애기 위해 트랜잭션을 발생할 때마다 수수료(돈)이 나가도록 설계했다. 이 설계에 의하면 일정 단위 시간동안 트랜잭션이 많이 발생하면 수수료 또한 경쟁적으로 증가하게 된다 블록체인의 수요와 수수료 비용은 정비례한다고 볼 수 있다. 그러나, 수수료 매커니즘에는 여러 가지 문제가 있다.
- 수수료 자체가 블록체인이라는 인터넷 서비스를 이용하는데 큰 진입 장벽이 된다. 2021년을 사는 우리에게 이메일을 보내거나 구글 검색을 할 때마다 돈을 내라고 하면 선뜻 납득하기 어려울 것이다.
- 수수료 증가 문제 : 어떤 매커니즘을 사용하던 간에 블록체인의 수요가 수용량을 넘어서면 수수료는 증가하게 되어있는데, 이 수수료가 납득하기 어려울 정도로 증가한다. 만약 증가하지 않게 만든다면 DoS 공격에 취약하게 될 것이다.
예전부터 이더리움은 수수료 문제를 수수료 그 자체를 증가시키거나 한 블록에 담길 수 있는 연산량을 의미하는 gas limit을 증가시키는 방향으로 문제를 해결해왔다. EIP-1559 또한 수수료 문제를 해결하기 위함인데 이더리움이 수수료와의 전쟁을 치룬 것은 어제 오늘 일이 아니다.
배경 ② — 이더리움의 수수료 문제 해결 방식
2016년 9월 22일, 이더리움이 서비스 거부 공격을 당하는 일이 발생했다. 문제의 원인은 이더리움에서 스마트 컨트랙트를 실행할 때 LevelDB에 저장된 상태 값에 접근하는 OPCODE의 수수료가 실제 연산 시간에 비해 지나치게 저렴했기 때문이었다. 초기 이더리움은 평균 15초마다 하나의 블록이 생성되도록 설계했는데, 수수료가 저렴해서 15초에 처리할 수 없는 트랜잭션이 한 블록에 담긴 것이 문제가 됐다. 결국 이더리움은 EIP-150 하드포크를 통해 수수료를 대대적으로 인상하게된다.
EIP-150 에서 변경된 수수료 정책 (단위 : GAS)
그리고 또한 알게모르게 여러번의 하드포크를 통해 gas limit을 증가시켜서 블록당 트랜잭션 수용량을 늘렸다. 5.0M 블록의 gas limit이 8.0M인데 런던 하드포크에서 EIP-1559를 적용하면서 현재 gas limit을 약 30.M으로 3–4배 수준으로 증가시켰다.
아마 이대로면, 블록체인 붐이 일어나서 네트워크 수용량이 부족해질 때마다 노드를 운영하는 사람들에게 높은 성능의 장비가 요구되는 gas limit을 증가시키는 방향으로 이루어질 것이다. 이런 해결 방식은 1차원적이며 궁극적인 해결방법이 아니기 때문에 이더리움 측은 이를 이더리움 2.0에서 해결하려 했던 것 같다. 그러나, 다들 알다시피 이더리움 2.0은 이더리움이 난이도 폭탄을 연기시켜가면서 출시일을 계속 미뤄왔고 아직도 정확한 로드맵은 나오지 않은 상황이다.
배경 ③ — 새로운 확장성 솔루션 : 롤업 (Rollup)
진부한 얘기지만, 블록체인은 트릴레마 때문에 보안성과 확장성, 탈중앙성 사이에서 저울질을 해야한다. 대부분의 많은 블록체인 프로젝트가 탈중앙성을 포기해가며 성능을 높인다. 이더리움은 탈중앙성을 포기해가면서 확장성을 늘리기에는 여러 문제가 섞여있기 때문에 이를 블록체인 위에 실행 레이어(Execution Layer)를 추가하는 방법을 생각했고 이런 배경에서 논의된 기술이 플라즈마, 샤딩[1], 사이드 체인, 스테이트 채널 등이 있다. 이를 통칭 Layer 2(L2) 라고 부른다.
그런데 마치 이더리움이 2.0으로 전환하면서 문제를 해결할 것 처럼 이야기를 했었기 때문에 L2기술에 관심도가 떨어졌던 시기가 있던 것 같다. (필자 개인 생각), 이후 이더리움이 2.0을 계속 연기하였던 찰나 블록체인에 DeFi 붐이 불면서 수요가 증가했는데 이 때 이더리움이 이를 모두 수용하지 못하여 많은 프로젝트들이 바이낸스 체인, 테라, 솔라나로 이동하게 되었다.
이런 와중에 이더리움 진영에서 새로운 L2 솔루션인 롤업(Rollup)[2][3]이 화제가 되고 있다. 롤업은 데이터는 이더리움 메인넷인 레이어-1에 두고, 트랜잭션 연산 처리만 레이어-2 에서 처리하여 성능을 높이는 방식이다. 기존 플라즈마와 같은 솔루션과 차이점은 데이터가 레이어-1에 저장되어 있어서 데이터 가용성이 보장된다는 점이다. 상태 전환(State Transition)만 외부에서 하기 때문에 외부의 연산 결과를 L1에 저장된 데이터만으로 증명 가능하다. 이런 사실 때문에 롤업이 현재 현실적인 문제 해결 방안으로 떠오르고 있다.
사건의 발단 — NFT 르네상스
사건의 시작은 대 NFT 르네상스 시대가 오고 이더리움에서 NFT 관련 트랜잭션이 폭발적으로 증가하면서 발생했다. 안그래도 좁은 방에 계획에 없던 손님이 늘어나니 관리자 입장에서는 난처할 수 밖에 없었다. 아래 그래프는 Dune Analytics에서 제공하는 OpenSea 월간 거래액의 차트를 가져왔다. NFT에는 많은 플레이어가 있지만 OpenSea 단독으로 올해 8월 한달간 3.4조원의 거래액을 찍으며 전월대비 10배를 넘게 성장했다.
Dune Analytics — OpenSea 월간 거래 볼륨
거래액이 증가했기 때문에 트랜잭션 또한 큰 폭으로 증가했다. 아래 차트를 보면 8월을 기점으로 일간 거래량이 크게 증가한 것을 볼 수 있다. 현재 이 글을 작성하는 시점에 OpenSea는 전체 이더리움 가스 소비량의 약 10%를 차지하여 유니스왑 다음으로 통행료 상승 원인이다.
Dune Analytics — OpenSea의 일간 트랜잭션 발생 수
결론 — NFT를 L2(롤업)으로 이주시키자
여기 맛집으로 소문난 맛나초밥 음식점이 있다. 인터넷 등에서 워낙 소문이 났기 때문에 평일,주말 할 것없이 사람들은 긴 대기열을 형성해서 본인 차례가 올때까지 기다리거나 그것이 싫다면 음식 가격을 더 높게 제시해서 먼저 입장해야 한다.
초밥이 먹고싶어서 직장 근처 맛나초밥을 찾은 당신은 끝이 보이지 않는 긴 대기열을 보며 한숨을 쉰다. 그래서 소문난 맛집은 아니지만 바로 옆 초밥집으로 가서 식사를 하고자한다. 비슷한 이유로 이더리움에서 벗어나 많은 프로젝트들이 이더리움의 대안인 Solana, Terra, Binance Smart Chain 등으로 이동(탈주)하고 있고 특히, Solana와 Terra는 최근 생태계 확장을 꾀하며 최근 급성장하기도 했다.
가게가 비좁아서 손님들이 바로 옆에 있는 경쟁업체로 가는 걸 본 사장님의 마음은 어떨까? 처음부터 가게를 크게 지을걸하는 아쉬움이 있겠지만 이제와서 건물을 재설계하기엔 이미 늦었다. 그래서 맛나초밥의 사장은 지하철역에서 한정거장 떨어진 곳에 새로 건물을 임대해서 2호점(L2)을만들고 음식은 본점(L1)에서 배달하기로 했다.
이더리움의 얼굴 비탈릭 부테린이 하고 싶은 것이 바로 이 부분이다. 이더리움이 비좁기 때문에 발생하고 있는 수수료 증가 문제를 해결하기 위해서 트랜잭션의 일부를 L2로 이주시키기로 한다. 어떤 트랜잭션을 이주시킬 지 대상을 물색하다가 비금융적인데다가 트랜잭션만 많이 발생시키고 있는 NFT를 대상으로 꼽았다. 부테린은 ethresear.ch 에서 제안한 문장중에 NFT wrapper의 동기를 아래와 같이 설명했다.
as well as the greater need to avoid high fees due to the non-financial nature of a large part of the NFT sector, makes it a prime target for moving to layer 2.
그의 글을 본 한 네티즌은 이렇게말했다.
So eth can’t handle defi, “let’s take that to l2”
Then eth can’t handle dog tokens. “They dont belong here”
Then “eth should be for the metaverse”, but wait. Eth can’t handle that either. “Time for nft’s to move to l2’s”
Defi didn’t move to l2’s. It moved to other l1’s
Shitcoins didn’t move to l2’s. They moved to other l1’s
Why would nft’s go to other l2’s?
비탈릭 부테린이 non-financial nature 인 NFT를 L2로 옮기자는 취지를 이야기 했을 때 몇 명은 부정적인 의견을 제시했다. L1도 초기진입자에게는 어려운 UX를 제공하는데 여기에 L2를 사용하려면 먼저 컨트랙트에 한 쪽 자산을 락업하고 L2에서 합성하고 네트워크를 옮겨서 사용해야 한다. L2에서 작업이 끝난 뒤 L1으로 자산을 가져오려고 해도 사기 증명(Fraud Proof)이 필요한 Optimistic 롤업 같은 경우에는 일정 기간 락업 기간이 존재한다.
개인적으로 이런 식의 해결방법은 본질적인 문제 해결 방법은 아니라고 보지만, 블록체인의 특성을 생각해보면 다른 방법이 존재하지 않는 걸지도 모르겠다.
Cross-rollup NFT Wrapper
이제 본격적으로 비탈릭이 제안한 Cross-rollup NFT Wrapper 방법에 대해 설명하고자 한다. Cross-rollup이라는 이름에서 알 수 있듯이 이 제안은 롤업 간에 통신을 염두해 두고 설계되었는데, 그 이유는 다음과 같다.
- 모든 EVM 기반의 롤업은 백도어가 있거나 중앙화된 sequencer가 존재한다. 따라서, 해당 롤업이 어떤 모습으로 발전할지도 모르는 단계에서는 하나의 롤업에 모든 로직을 올리는 것은 위험하다.
- NFT 생태계는 매우 빠르게 성장하고 있기 때문에 하나의 롤업에서 처리하기에는 성능이 부족할 수 있다.
- NFT는 폐쇄 생태계가 아니기 때문에 다중 롤업간에 통신이 필요하다.
그래서 롤업 간에 통신 규격을 맞추기 위해 하나의 인터페이스를 설계했는데 그것이 바로 Wrapped NFT 이다. (제안서에는 wrapper NFT라고 지칭했는데 Wrapped BTC등 Wrapped X라는 표현이 일반적이라서 여기서는 Wrapped NFT라고 지칭한다)
① Wrapped NFT
Wrapped NFT는 우선 하나의 롤업 (혹은 메인체인)에 생성하면서 시작한다. 이 Wrapped NFT의 목적은 하나의 롤업 A 에서 다른 롤업 B 로 전송하기 위함이다.
- (생성) 롤업
A에서 NFT(이하 X)를wrapper manager contract(WMC)에 전송한다. 이 때 이 NFT가 사용될 롤업B의 주소(destination rollup)과 초기 소유자(initial owner)를 기재한다. 그러면 lockbox 컨트랙트가 이를 스토리지에X는 고유 시리얼 넘버R을 부여하고 R, desitnation rollup, initial owner를 RollupRecord에 저장한다. - (이주) 롤업
B에서는, 누구나 WMC를 통해 NFT를 생성할 수 있다. WMC를 이용해 NFT를 생성하려면 롤업B로NFT를 전송한 source rollup과 시리얼 넘버R을 기재해야한다. “올바른(valid)” NFT를 생성하려면 오직 소유자만 할 수 있으며(R, A)정보를 기재해서 클레임하면 생성할 수 있다. 이 때 롤업B의 입장에서는 이것이 “올바른” NFT인지는 모르며 올바르지 않은 NFT 또한 생성될 수 있다. 하지만, 롤업 A에서 제공하는 정보를 가지고 이를 검증할 수 있기 때문에 WMC에서 (R, source rollup, initial owner ) 튜플이 중복되지 않게만 한다면 문제가 되지 않는다. - (출금) NFT를 출금한다는 것은 롤업
B에서 다시 롤업A로 가져가는 것을 의미한다. 출금은 Wrapped-X의 소유자가 롤업B의 WMC에 NFT를 전송하면 된다. 그러면, 롤업A에서는 (이주)를 이행해서 다시 롤업A에서 NFT를 lockbox에서 꺼내올 것이다. 새로운 소유자가 롤업A의 lockbox 컨트랙트에서 클레임을 하는데 이 때 롤업B로부터 트랜잭션 실행의 증명만 제출하면 된다.
이 과정을 도식화하면 아래 그림과 같다.
출처 : ethresear.ch | cross-rollup NFT wrapper and migration ideas
② Cross-rollup Transfer
롤업 A 에서 NFT를 생성해서 롤업 B 로 전송하고 이를 다시 롤업 C 로 가져간 다음에 롤업 C 에서 롤업 A 로 출금하는 경우, 출금하려는 소유자는 롤업 B의 증명과 롤업 C의 증명을 동시에 제출해야 한다. 이 예시에서는 두 개의 롤업만 존재하기 때문에 문제가 되지 않지만 롤업 N개를 거쳐간 NFT라면 N개의 증명을 제출해야 하는 번거로움이 생긴다. 그래서 비탈릭은 롤업끼리 이동할 때마다 이동에 대한 증명인 Rollup Record를 WMC에 등록하고 ‘출금만’ 한번에 하는 것을 제안했는데 사실 별 차이는 없다.
출처 : ethresear.ch | cross-rollup NFT wrapper and migration ideas
③ Gas-optimized issuing on base chain
개별 NFT를 일일이 생성해서 롤업 A로 가져가야 한다면 엄청난 수수료를 지불해야 할 것이다. 그래서 비탈릭은 처음부터 모든 일련번호의 NFT를 선발행하자고 제안했는데, 이는 lockbox에 시리얼 넘버 R 을 필요한 만큼 등록하되 owner만 lockbox 컨트랙트 주소로 등록하고 롤업 A로 전송하는 방식으로 이루어진다. 이를 의미없는(no meaning) NFT라고 부르는데 롤업 A에서 WMC에서 일일이 Wrapped-NFT를 발행하면서 의미를 부여하고, 메인 체인에서는 하나의 트랜잭션만으로 이를 처리할 수 있기 때문에 수수료를 절약할 수 있다.
한계점 및 결론
NFT를 이렇게 L2로 이주시키고자 하는데에는 명확한 두 가지 한계점이 존재한다. 첫 번째로는 현재 모든 롤업을 지원하는 지갑이 없기 때문에 롤업 마다 지갑을 계속 추가해줘야 한다는 것이다. 만약 롤업 N개에서 인터랙션을 한다면 N개의 지갑을 설치하고 관리해야 한다. 하지만 이는 결국 이 시장에서도 핵심 플레이어가 정해지고 나면 통합될 것이라고 생각되기 때문에 큰 문제는 아니라고 본다.
두 번째 문제는 우리가 NFT를 사용하는 방식에 있다. 대량의 NFT를 수집하는 사람이 아니라면 대 다수의 평범한 사람들은 기껏 해야 1–2개의 NFT를 구매할 것이다. 그 1–2개의 NFT를 구매하기 위해 롤업 A 로 ETH를 전송하고 롤업 A 에서 NFT를 구매한 다음, 다시 메인 체인에서 이를 출금하면 총 2번의 트랜잭션과 1주일의 대기시간이 필요한데 수수료도 더 많이 발생할 뿐더러, 느리기까지 해서 실제로 이를 사용할지는 아직 의문점으로 남는다.
사실 롤업은 이름만 다를 뿐, 지금처럼 브릿지를 통해 다른 블록체인으로 자산을 이동시키는 것과 똑같다. 이동시키는 자산의 대상이 블록체인이 아니라 롤업일 뿐이다. 만약 브릿지 기술이 블록체인을 사용하는데 일반적인 방법으로 발전한다면 이더리움 생태계가 더욱 확장될 것이라고 기대한다.
- CURG(Crypto United Research Group)는 2018년 5월 대학(원), 기업, 스타트업 등 다양한 분야의 열정적인 블록체인-er들이 모인 연합 연구 그룹입니다. CURG는 2018년 5월 출범된 이후, ‘Trendy, Thoughtful, and Transdisciplinary’ 한 자세로 한 주도 빠짐없이 블록체인 연구를 지속해오고 있습니다.
- 디사이퍼(DECIPHER)는 “건강한 블록체인 생태계 조성에 기여한다” 라는 미션 아래 블록체인에 대해 연구하고 이를 실용적으로 응용하는 서울대 블록체인 연구 학회입니다. 2018년 3월에 처음 조직 되어 현재까지 블록체인 기술을 다방면에서 연구하고 산업계에 응용하고 있는 100명 이상의 회원들을 배출해왔습니다. 다양한 팀별 연구활동과 프로젝트, 컨퍼런스 개최, 서울대학교 블록체인 강의 개설, 유수 기업들과의 산학협력과 파트너십 체결을 해오며 국내 최고의 블록체인 학회로 자리 잡았습니다.
커그와 디사이퍼는 향후 적극적인 협력을 통해 블록체인 필드에서의 강력한 시너지를 구축하고자 합니다.
레퍼런스
[1] [박상현] 샤딩이 플라즈마보다 더 좋은 방법일까?
[2] An Introuction to Optimism’s Optimistic Rollup
[3] Rollup Rundown