ERC-3525 기반으로 유니스왑 v3 LP 모델은 어떻게 개선될 수 있을까?
저자: Will Wang, Ethan Tsai
Will Wang, Solv Protocol 공동 창립자, ERC-3525 표준 제안자
Ethan Tsai, Solv Protocol 핵심 기술 팀 멤버, ERC-3525 핵심 기여자 중 한 명
서론: 본문은 2021년 3월 23일, 즉 탈중앙화 거래소 Uniswap이 v3를 발표한 바로 다음 날에 작성되었습니다.
당시 Solv 팀은 이더리움 커뮤니티에 ERC-3525 표준 초안을 제출하고 있었으며, Uniswap v3의 LP 설계를 보고 "NFT를 금융 애플리케이션에 적용한다"는 아이디어가 업계 리더들과 일치하게 되어 매우 기뻤습니다. 동시에 우리가 설계하고 제출하려는 ERC-3525 표준이 v3에 중요한 개선을 가져올 수 있다고 판단했습니다. 예를 들어 LP에게 더 나은 유동성과 관리 능력을 제공하는 것입니다.
본문에서는 Uniswap v3의 구간 마켓메이킹 작동 원리를 탐구하고, 그 고유한 문제점들을 면밀히 분석하며, 주요 장애물을 해결하기 위한 ERC-3525 기반의 솔루션을 제시합니다.
작성 후 1년 이상이 지난 지금, ERC-3525는 이미 이더리움 커뮤니티의 공식 표준이 되었습니다. 당시 제안한 ERC-3525 개선 방안은 여전히 유효하다고 판단되어 본 글을 재게재합니다.
본문이 비교적 조기에 발표된 탓에 일부 기술 내용이 ERC-3525 공식 표준과 다소 차이가 있음을 밝힙니다.
1. 배경
Uniswap V3는 마켓메이커가 서로 다른 가격 구간에 따라 다양한 자금량을 설정할 수 있는 차별화된 position 관리 기능을 도입했습니다. 거래 가격이 특정 가격 구간 내에 있을 경우 해당 자금 포지션이 마켓메이킹에 참여하고, 가격이 그 구간 밖으로 벗어나면 해당 자금은 마켓메이킹에 참여하지 않습니다. 이는 매우 강력한 혁신이며, 그 가치와 구현 방식에는 많은 세부 사항이 있지만 여기서는 깊이 다루지 않겠습니다. 우리는 오직 하나의 문제, 즉 position 관리 방식 — 다시 말해 Uniswap V3 LP의 기술 구현 방법 — 에 대해서만 논의합니다.
众所周히 알려진 바와 같이, Uniswap V2의 LP는 ERC-20 형태입니다. V2에는 구간별 position 관리가 없었기 때문에, V2의 LP는 실제로 전체 가격 범위에 대한 position 관리 토큰이라고 할 수 있습니다. 또한 position에 차별화가 없었기 때문에, Uniswap V2의 pool과 LP는 실질적으로 하나로 통합되어 일체화된 관리 모델을 형성했습니다. 이는 현재 대부분의 DeFi 프로젝트에서 채택하고 있는 자금풀 관리 모델입니다.
ERC-20 모델의 제약상 차별화된 position 관리는 불가능합니다. 만약 이를 시도하면 각 position마다 별도의 ERC-20 계약을 생성해야 하는데, 비용 부담이 너무 크며, ERC-20 자산의 유동성 특성을 충분히 활용할 수도 없습니다. 이는 오히려 손해입니다. 게다가 차별화된 position들은 다시 통합된 하나의 자금풀로 모아져야 하므로, 기존의 LP와 자금풀이 일체화된 모델 역시 더 이상 자명하지 않게 됩니다. 위 두 가지 문제에 대해 Uniswap V3는 position 관리 토큰을 ERC-721로 변경하고, pool 자체도 별도의 스마트 계약으로 분리하는 해결책을 제시했습니다.
2. 기초 자산 토큰화(tokenization of underlying assets)의 가치
그렇다면 Uniswap V3의 position 관리 솔루션은 최적의 선택일까요? 이 질문을 명확히 하기 위해 우선 현재 주요 DeFi 플랫폼들이 채택하고 있는 '기초 자산 토큰화'라는 모델의 가치를 되짚어볼 필요가 있습니다.
기초 자산 토큰화란 사용자가 자산을 DeFi 플랫폼의 자금풀에 예치했을 때, 해당 자금풀 계약 자체가 토큰 계약이 되며 발행되는 토큰이 사용자의 자산 입금 증빙서 역할을 하는 것을 의미합니다. 이러한 모델이 계속해서 주류 DeFi 플랫폼들의 선호 방식인 이유는 바로 '이중 자산' 모델을 만들어내기 때문입니다. 즉, 기초 자산과 토큰화된 자산을 분리함으로써 다음과 같은 두 가지 핵심 가치를 창출합니다.
첫째, 토큰화는 새로운 파생 자산을 형성하여 기초 자산의 유동성을 크게 해방시킵니다. 예를 들어 Compound의 cToken이나 Uniswap V2의 LP는 기초 자산과 수량 상의 대응 관계를 가지므로 내재된 가치를 포함하게 되며, 가격도 산정 가능합니다. 현재 이미 많은 플랫폼이 이러한 LP 자산의 거래 및 담보 제공을 지원하고 있어, 사용자 자산의 유동성이 현저히 향상되었습니다.
둘째, 이중 자산 처리는 서로 독립적이며 서로에게 영향을 주지 않아, 프로토콜이 자산 관리를 단순화하고 기초 자산의 안정성을 높이는 데 기여합니다. 예를 들어 사용자가 자산을 매각하거나 담보로 제공하거나 다른 주소로 이전하여 관리하고자 할 때, 자금풀 프로토콜이 별도의 관리 기능을 개발하지 않아도 표준 토큰 프로토콜만으로 작업이 가능합니다. 또한 토큰 이전을 통해 기초 자산의 소유권을 변경함으로써, 사용자가 기초 자산을 인출했다가 다시 예치하는 번거로운 과정을 피할 수 있어 자금풀 규모의 안정성을 유지할 수 있습니다.
DeFi 세계의 레고 블록 모델이 큰 가치를 발휘할 수 있었던 것은 위 두 가지 능력 덕분이라고 할 수 있습니다. 따라서 어떤 DeFi 프로토콜의 기초 자산 관리 아키텍처, 즉 토큰화 구현 방식이라 할지라도, 위 두 가지 가치를 최대한 확보하는 것을 전제로 해야 하며, 이를 위한 해결책을 찾는 노력은 모두 의미 있는 일입니다.
3. Uniswap V3 position LP의 문제점
다시 Uniswap V3의 LP 해결책을 살펴보면, 명백한 문제가 하나 있습니다. 즉, 표준 ERC-721 프로토콜을 기반으로 한 position 관리는 차별화된 특성을 지원하지만, 앞서 언급한 두 가지 핵심 가치를 최대한 유지하지 못한다는 점입니다. 아래 두 가지 시나리오를 통해 설명하겠습니다.
포지션 변경
Uniswap V3는 포지션 변경 기능을 제공하여 사용자가 기존 포지션의 가격 구간을 수정할 수 있도록 합니다. 이는 분명 필수적인 기능입니다. 그러나 사용자는 단순히 가격 구간을 수정하는 것에 그치지 않을 수 있습니다. 예를 들어, 사용자가 ETH-USDC 거래쌍에 100만 달러를 1500-2000 구간에 투입했고, 시장 상황에 따라 그 중 30만 달러를 하락장에 대비하기 위해 1000-1200 구간으로 옮기고자 한다고 가정해 봅시다. 기존의 Uniswap V3 구현에서는, 사용자가 기존 구간의 포지션에서 30만 달러를 인출한 후, 새 가격 구간에 맞는 새로운 포지션을 생성하는 것 외에 다른 방법이 없습니다. 이는 앞서 언급한 '사용자의 기초 자산 인출을 최대한 피함으로써 자금풀의 안정성을 유지한다'는 목표에 부합하지 않습니다.
자산 유동성
앞서 언급했듯이, Uniswap V2의 LP는 이미 널리 인정받는 자산이 되었으며, V3의 LP도 마찬가지로 그렇게 될 것으로 기대됩니다. 따라서 이러한 자산에 대한 담보 제공, 거래 및 기타 처리는 일반적인 수요가 될 것입니다. 하지만 ERC-721의 제약으로 인해 이러한 시나리오에서는 유연한 방안을 제공할 수 없습니다. 예를 들어, 두 플랫폼이 V3 LP 담보 서비스를 제공하고 있고, 사용자가 어느 플랫폼의 수익률이 더 좋은지 판단하기 어려울 때, 가장 간단한 방법은 각각 50%씩 담보로 제공하는 것입니다. 이는 ERC-20 환경에서는 매우 쉬운 일이지만, 현재는 불가능합니다. 사용자는 이를 위해 가격 구간이 완전히 동일한 두 개의 LP를 새로 생성해야 할까요?
Uniswap이 제시한 답은 외곽 계약 또는 제3자가 (ERC-20 기반의) 재통용성(re-fungible) 방안을 제공하는 것입니다. 그러나 이것은 만족스럽지 않습니다. 먼저, 각 ERC-721 ID마다 별도의 ERC-20 계약을 발행한다면, 치명적인 계약 조각화 문제가 발생하며, LP 자산을 수용하는 플랫폼이 이를 처리하기 어려워집니다. 반대로 여러 ID의 토큰을 묶는 패키징 방식을 채택하면, 사용자의 자산 관리 난이도가 증가할 뿐 아니라 복잡한 가격 산정 메커니즘 문제도 겪게 됩니다. NFT 분야의 재통용성(re-fungible) 방안에 익숙한 사람이라면, 이러한 모델이 position LP처럼 고도로 복잡한 금융 자산에 효과적으로 대응하기 어렵다는 것을 잘 알고 있습니다.
종합적으로, 표준 ERC-721 프로토콜 기반의 LP는 ERC-20 형태 LP가 지닌 관리 능력과 유동성 모델을 거의 실현할 수 없습니다. 그런데 이러한 특성은 바로 LP 클래스 토큰 자산의 핵심 가치입니다. 만약 Uniswap V3가 이러한 방식만으로 LP 토큰을 구현한다면, 막 시작된 LP 시장에 상당한 타격을 줄 수 있습니다.
4. 해결책
우리는 위 문제들에 대해 신속하고 심층적인 분석을 할 수 있었던 이유는, 대출 시장의 정기 대출 상품이나 투자 시장의 정기 해제 상품을 설계할 때 동일한 문제를 겪었고, 표준 ERC-721보다 더 나은 해결책을 제시했기 때문입니다. 우리는 또한 이 해결책이 Uniswap V3의 LP에도 동일하게 적용될 수 있으며, 더 나은 유동성과 관리 능력을 부여할 수 있다고 믿습니다.
그 해결책이란 바로 SFT라 부르는 새로운 형태의 자산 프로토콜입니다. 사실 SFT는 여러 유형의 인터페이스를 포함하는 일련의 프로토콜을 총칭하는 용어이며, 구체적인 세부 사항은 추후 점차 소개될 예정입니다. 간단히 말해, SFT는 수량을 설명할 수 있는 NFT로, 이를 기반으로 분할, 병합, 부분 양도가 가능합니다. 또한 '이중 자산' 모델을 더 잘 지원하기 위해 SFT는 프로토콜 레이어에서 기초 자산 설명 기능을 추가하여, 이러한 모델의 구현을 지원하고 표준화합니다. 또한 기존 DeFi 인프라와 효과적으로 상호작용하기 위해, SFT는 구현 수준에서 ERC-721과 호환되도록 설계되어, 표준 ERC-721을 지원하는 모든 프로토콜이 SFT 토큰을 마치 ERC-721 토큰처럼 처리할 수 있습니다.
기술적으로 설명하면, 이 프로토콜은 다음과 같은 인터페이스를 포함합니다(일부만 나열함):
function safeTransferUnitsFrom(address from, address to, uint256 tokenId, uint256 targetTokenId, uint256 transferUnits) external;
function split(uint256 tokenId, uint256 newTokenId, uint256 units) external;
function merge(uint256 tokenId, uint256 targetTokenId) external;
function approveUnits(address to, uint256 tokenId, uint256 units) external ;
여기서 Units는 하나의 NFT가 포함하는 수량을 의미합니다.
자산 관리 유연성
수량 속성과 함께 분할, 병합, 부분 양도 기능이 추가됨에 따라, 위에서 언급한 Uniswap V3 LP의 문제들은 모두 효과적으로 해결될 수 있습니다. 예를 들어, 기존 포지션의 일부를 다른 가격 구간으로 옮기고자 할 때, 기존 LP 토큰을 금액 기준으로 두 부분으로 분할한 후, 그 중 하나의 가격 구간만 변경하면 됩니다. 인출 절차를 거칠 필요가 없습니다. 양도, 거래, 담보 제공 등의 작업도 유사하게 처리할 수 있으며, LP의 수량이 기초 자산과 직접 대응하므로 LP 자산의 가격도 명확하고 쉽게 산정할 수 있습니다. 외부 프로토콜을 추가하거나 이를 ERC-20으로 패키징할 필요가 없어, 사용자와 다른 DeFi 프로토콜 모두 ERC-20 LP 수준의 처리 능력을 얻을 수 있습니다.
LP와 pool의 일체화
또한 SFT는 프로토콜 레벨에서 기초 자산 설명 기능을 추가함으로써, 토큰과 기초 자산 간의 매핑 관계가 ERC-20과 동등한 수준의 유연성을 갖추게 되었고, 이를 통해 Uniswap V3가 LP 토큰과 자금풀을 쉽게 일체화할 수 있게 되었습니다. 즉, V2와 현재 대부분의 DeFi 프로토콜이 채택한 단순하고 명확한 '이중 자산' 모델로 돌아갈 수 있는 것입니다.
DEX로서의 Uniswap 관점에서 보면, 이 솔루션은 반드시 필요한 것은 아닙니다. 실제로 V3 문서에서는 LP 토큰과 pool 계약을 분리한 것이 의도된 설계라고 명시하고 있습니다. 그러나 우리看来, 이러한 일체화 모델이 제공하는 이중 자산 처리의 일관성은 LP 자산의 유동성 향상과 신뢰 마찰 감소 측면에서 중요한 역할을 하므로 여전히 고려할 가치가 큽니다.
물론 일체화 모델을 구현하기 위해서는 다른 요소들도 고려해야 합니다. 예를 들어 ERC-721 기반 계약이 너무 커서 EIP-170 제한을 초과하는 문제 등이 있는데, 이 역시 우리가 실무에서 해결한 문제들이며, 기술적으로는 모두 해결 가능한 사안이라고 생각합니다.
5. 결론
총괄적으로 우리의 결론은 다음과 같습니다. 현재 DeFi는 보다 복잡하고 다차원적인 금융 상품 설계 및 구현 단계로 진입하고 있으며, 차별화된 포지션 관리와 같은 모델이 계속해서 등장할 것입니다.
이러한 추세 하에서 LP 클래스 자산의 유동성과 관리 편의성을 유지하기 위해서는 새로운 형태의 자산 프로토콜을 모색하는 것이 필수적이며 가치 있는 일입니다. SFT는 바로 이러한 일련의 목표를 위해 우리가 제시하는 해결책입니다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














