
Vitalik: NFT를 레이어2로 이전할 때, 어떻게 하면 롤업 간에 원활하게 호환되게 할 수 있을까?
저자: 비탈릭 부테린
번역: 케일, 바비트
NFT 생태계는 빠르게 성장하며 이더리움 체인의 가스 소비에서 중요한 부분을 차지하고 있다. NFT 생태계의 젊고 기반이 상대적으로 약한 특성과 NFT의 상당 부분이 비금융적 성격을 가지기 때문에 높은 수수료를 피할 필요성이 더 크다는 점은 NFT를 레이어2(Layer2) 네트워크로 이전하는 주요 대상이 되게 한다. 그러나 이는 NFT를 어떻게 레이어2로 옮길 것인지에 대한 문제를 제기한다.
간단한 제안 하나는 커뮤니티 내에서 단일 롤업 플랫폼(예: 현재 일반적인 스마트 계약 배포가 가능한 Arbitrum)으로 NFT를 이전하도록 조정하는 것이다. 하지만 이 방식에는 중요한 단점들이 존재한다:
- 기존의 주요 EVM 호환 롤업 플랫폼들은 모두 백도어, 중앙화된 정렬자 또는 기타 실험적 기능을 갖고 있으며, 전체 생태계를 단일 롤업에 맡기는 것은 위험하다. 또한 이러한 기능들을 넘어서 롤업이 어떻게 발전할지에 대해서는 불확실성이 존재한다.
- NFT 생태계는 너무 커져서 단일 롤업이 모든 트랜잭션을 안전하게 처리하기 어려울 수 있다.
- NFT 생태계의 어느 부분이든, 심지어 전체 NFT 생태계조차도 폐쇄된 세계가 아니다. 다른 이더리움 생태계 구성 요소들과 상호운용이 필요하다.
본 글에서는 NFT가 여러 롤업 간에 원활하게 이동할 수 있도록 하는 방안을 제안하며, 이를 통해 NFT가 전체 레이어2 생태계로 이동할 수 있음을 설명한다.
제안된 해결책 1
NFT는 먼저 한 개의 롤업(또는 베이스체인)에 등록된다. '래핑된 NFT(Wrapped NFT)'를 생성함으로써, NFT는 다른 롤업(또는 베이스체인) 사이를 오갈 수 있다.
래핑 프로세스는 다음과 같다:
1. 롤업 A에서 NFT(X라고 하자)를 지정된 목적지 롤업과 초기 소유자를 명시하여 '래핑 매니저 계약'으로 전송한다. 이 계약은 저장소에 기록을 남기며, X에 새로운 일련번호 R을 할당하고 목적지 롤업(B라고 하자)과 그곳의 초기 소유자(O1이라고 하자)를 저장한다.
2. 롤업 B에서는 누구나 해당 롤업의 래핑 매니저 계약을 사용해 래핑된 NFT를 생성할 수 있다. 래핑된 NFT를 생성하려면 출처 롤업과 일련번호를 지정해야 한다. X의 "유효한" 래핑 NFT를 생성하는 것은 오직 지정된 소유자만이 가능하며, (R, A)를 일련번호와 출처 롤업으로 선언함으로써 완료된다. 참고로, 아무런 실제 내용을 가리키지 않는 무효한 래핑 NFT를 생성할 수도 있는데, 롤업 B는 이것이 유효한지 여부를 알 수 없다. 래핑 매니저 계약은 (일련번호, 출처 롤업, 초기 소유자) 튜플을 저장하며 동일한 튜플로 여러 개의 NFT 생성을 방지한다.
3. NFT를 언래핑하려면, 롤업 B에서 래핑-X의 현재 소유자가 이를 다시 래핑 매니저로 보내야 하며, 매니저는 "일련번호 R, 출처 롤업 A, 초기 소유자 O1의 NFT가 방금 언래핑되었으며, 새로운 소유자 O2를 원한다"는 영수증을 발행한다.
4. 래핑 계약은 롤업 B의 영수증 증명을 받았을 때 O2에게 X를 전달할 수 있으며, 자체 저장 정보를 기반으로 일련번호, 출처 롤업, 초기 소유자를 검사하고 유효성을 확인한다.


출금에는 시간 지연이 발생한다는 점에 유의해야 한다. Optimistic 롤업의 상태 루트는 영수증을 검증하기 위해 약 1주일 정도의 지연이 필요하기 때문이다. 지금까지 다단계 이동을 더 빠르게 수행하는 유일한 방법은 다층 래핑을 사용하는 것이다.
사용자가 래핑-X가 합법적인지 검증하려면, 직접 롤업 B의 상태와 롤업 A의 영수증을 검증해야 한다.
확장: 크로스-롤업 전송 추가
롤업 B에서 래핑-X의 소유자는 이를 포장 관리자에게 보내면서 다른 종류의 영수증을 발행하도록 지시할 수 있다. 즉, "일련번호 R, 출처 롤업 A, 초기 소유자 O1의 NFT가 이제 롤업 C로 이동되었으며, 새로운 소유자 O2를 원한다"는 내용이다.
롤업 C에서는 누구든지 원래 출처 롤업(이 예에서는 롤업 A), 일련번호, 초기 소유자를 지정함으로써 래핑-X 객체를 만들 수 있으며, 이 래핑-X는 자유롭게 거래될 수 있다. 그러나 이를 언래핑하려면 롤업 B의 영수증을 롤업 A로 전송해야 한다.
실제로 발생하는 것은 NFT가 한 롤업에서 다른 롤업으로 이동할 때마다 전송 체인이 영수증 체인을 남기며, 각각의 영수증이 롤업 A에 미러링되고, 일정 시간 후 순차적으로 처리된다는 것이다. 미래에는 다른 롤업들의 상태가 최종 확정되면(단기적으로는 Kate 커밋먼트를 통해 공간을 최적화하고, 장기적으로는 ZK-SNARK로 전체 영수증 체인을 증명함으로써) 이 과정이 가능해진다.
사용자가 래핑된 X가 합법적인지 검증하려면, 크로스-롤업 전송을 반영하는 모든 롤업 상의 전체 영수증 체인(또는 적어도 마지막으로 베이스체인에 미러링된 이후의 영수증 체인)을 검증해야 한다.
또한 이 프로토콜은 간소화될 수 있다. "출금"은 본질적으로 롤업 A로의 크로스-롤업 전송이며, 롤업 A가 특정 일련번호가 이제 자신에게 돌아왔음을 인식하면, 래핑된 계약은 바로 교환할 수 있다.
확장 2: 베이스체인에서의 가스 최적화 발행
모든 NFT는 이더리움 베이스체인의 래핑 계약이 '소유'하는 방식으로 발행될 수 있다. 이를 가스 효율적으로 만들기 위해, 래핑 계약은 일련의 일련번호를 생성하고 이를 롤업으로 이전하는 기능을 갖게 된다. 실제로는 모든 NFT가 사전에 생성되지만 아직 어떤 의미도 할당되지 않은 상태(즉, 2**256개의 분화되지 않은 '줄기 세포' NFT가 있다고 생각하면 된다)이며, 이들이 일괄적으로 롤업으로 이전된다.
이제 '발행' 과정은 의미를 부여하는 과정이 된다. 이는 소유자를 전달하는 것과 같은 방식으로 '의미 해시(meaning hash)'를 영수증을 통해 전달함으로써 수행할 수 있다. 만약 NFT가 의미를 가지지 않았다면(즉, '줄기 세포' 상태라면), 소유자는 의미를 할당할 수 있고, 이는 NFT를 '분화된' NFT로 전환시키는 것이다. 베이스체인은 영수증 체인을 검증한 후에야 NFT의 의미를 알게 되며, 의미가 할당되기 전까지는 모른다(사실상, 이 영수증 검증은 실현 가능하게 하기 위해 반드시 ZK-SNARK로 이루어져야 한다).
이를 통해 모든 NFT가 롤업이 아닌 베이스체인에 '뿌리를 두게' 할 수 있다. 이는 롤업 장애 발생이나 다른 이유로 더 이상 사용 불가능한 경우, 혹은 특정 애플리케이션이 영구적으로 다른 도메인으로 이전해야 할 때 유용하다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News










