1. TWAMM이란?
TWAMM이란 Time-weighted Automated Market Maker의 준말로 대규모 자금 거래를 아주 작은 거래로 쪼개어 장기간에 걸쳐 실행하는 방법으로 가격 급변 및 유동성 고갈 등의 문제를 해결하기 위해 제시된 방법입니다.
저번 알고리즘 스테이블코인 모델 보완책 분석 글에서 알고리즘 스테이블코인 모델의 보완을 위해서는 (스테이블코인의 페깅에 큰 영향을 미치는) 프로토콜에서 대규모 거래에 대해서 TWAMM 방식을 적용할 필요가 있다고 언급한 바 있습니다. 다만 TWAMM은 유니스왑(Uniswap)의 AMM, 커브 파이낸스(Curve Finance)의 Stableswap의 개념과는 달리 디파이 세계에서 아직 생소하며, 프랙스 파이낸스(Frax Finance)의 Fraxswap에 의해 최초로 상용화되었으나 그 쓰임이 아직은 미미합니다. 따라서 이번 글에서는 TWAMM에 대해서 자세히 알아보고 현실에서 어떻게 적용될 수 있고 한계가 무엇인지 알아보려 합니다.
2. Paradigm Shift to TWAMM
프랙스 파이낸스의 Fraxswap은 TWAMM을 적용한 첫 번째 프로토콜이라고 밝히면서 Paradigm의 백서를 준수한다고 명시하였습니다. TWAMM 개념은 2021년 7월에 발간된 이 논문(백서)에서 최초로 제기되었으며 해당 논문에는 Paradigm의 리서치 팀인 Dave White와 Dan Robinson, 그리고 유니스왑의 파운더인 Hayden Adams가 참여하였습니다. 현재 TWAMM에 대한 논의는 모두 해당 논문을 바탕으로 진행되고 있다고 해도 과언이 아니므로 저 또한 Paradigm의 논문을 바탕으로 글을 구성하였음을 알려드립니다.
3. 문제 인식: 가격 충격과 거래 기피 현상
3.1. 시장 조성(Market Making)이란?
자산 거래 시 필요한 요소 중 하나가 바로 시장 조성(Market Making)입니다. 시장 조성이란, 자산 거래 시 자산(판매) 공급과 자산(구매) 수요의 불균형을 최대한 해소시켜 시장이 원활히 돌아가도록 만드는 행위로, 시장 조성자 혹은 마켓 메이커는 유동성을 공급하는 대신 수요 공급 간의 스프레드를 이용하여 수익을 거둡니다. 예를 들어, 한국에서는 ‘시장 조성자 제도’를 통해서 증권사들이 한국거래소와 계약을 맺고 유동성이 부족한 종목에 매수, 매도 호가를 제시해 가격 형성을 주도하며, 이를 통해 수수료 수익을 가져가거나 매매 수익을 올리는 방식을 채택하고 있습니다.
3.2. 디파이와 유니스왑의 CPAMM
블록체인을 기반으로 구현된 금융 시스템인 탈중앙화 금융, 이른바 디파이(DeFi; Decentralization Finance)에서는 중개자가 존재하지 않기 때문에 시장 조성자 또한 존재할 수 없습니다. 이에 따라 중개자의 도움 없이 자산 간 거래를 성사시키는 방법이 필요했고, 유니스왑(Uniswap)에 의해 제안된 AMM(Automated market makers) 방식이 탈중앙화 거래소, 일명 DEX(Decentralized Exchange)의 기본 원리로 자리 잡게 됩니다.
AMM의 가격 결정 원리는 Constant Product Formula를 따릅니다. Constant Product Formula란, 두 종류의 토큰이 들어있는 하나의 유동성 풀을 형성하고 해당 풀에 들어있는 토큰의 양에 비례하여 토큰의 가격을 결정하는 원리입니다. 기본 공식은 x*y = k로 x와 y는 한 유동성 풀에 들어 있는 각 토큰의 양을 나타내며 k는 일정 상수입니다. 즉 한 유동성 풀에 들어 있는 토큰의 양의 곱이 항상 일정 상수 k를 만족해야 하며 이 원리에 따라 각 토큰의 가격이 정해집니다. 이해를 돕기 위해 CPAMM(Constant Product Automated Market Makers) 하의 ETH/USDC 유동성 풀의 예시를 들어보겠습니다.
CPAMM 하의 ETH/USDC 풀의 예시
변동 전: 1 ETH(=x), 2,000 USDC(=y), k=2,000
가격: 1 ETH = 2,000 USDC
상황: 2,000 USDC로 ETH 구매 수요 발생, 유동성 풀 조건은 다음과 같이 변동
k=2,000, y=4,000 이므로 해당 유동성 풀에 남아 있어야 할 ETH는 x=k/y=2,000/4,000=0.5개
따라서 2,000 USDC로 ETH를 구매한 이는 0.5 ETH를 수령
구매자: 2,000 USDC로 0.5 ETH 구매
유동성 풀: 0.5 ETH, 4,000 USDC
가격: 1 ETH = 4,000 USDC
![](https://miro.medium.com/v2/resize:fit:1400/1*CihOB5svl5KJv3mmDftdlQ.png)
3.3. 가격 충격과 거래 기피 현상
위의 예시에서 ETH 구매자는 처음에 목격한 ETH 가격(2,000 USDC)보다 2배 높은 가격(4,000 USDC)에 ETH를 구매하게 되었습니다. 이와 같이 CPAMM 하에서는 특정 유동성 풀에 대규모의 자산 거래가 발생할 경우에 심각한 가격 충격 현상이 발생하며 이로 인한 피해는 거래자 본인에게 전가됩니다. 현실에서는 이러한 충격을 시장 조성자들이 부담하는 것과는 아주 다른 양상이 디파이 세계에서 보이고 있는 것입니다.
가격 충격 문제는 대규모 자금 거래자로 하여금 거래를 기피하도록 만드는 요소이며, 이는 자금 유입과 거래 활성화 측면에서 시장 전체적으로도 악영향을 끼칩니다. 대규모 자금을 여러 개로 나누어 거래한다고 해도, 번거로움이나 거래 시간의 증가로 인해 거래비용이 증가하므로 거래 기피 현상을 피할 수 없게 됩니다.
4. 해결방법: TWAMM의 이해와 한계
4.1. TWAP 주문 방식의 차용
주식 시장에서 사용되는 TWAP(Time-weighted Average Price) 주문은 총 주문 수량을 일정 시간별로 나누어 체결시키는 알고리즘 매매 방법입니다. 이 방법을 사용함으로써 거래자는 시장 평균 가격에 가까운 주문 체결이 가능해집니다. TWAMM은 이 TWAP 주문 방식을 온체인에서 실현시키는 방식으로 대규모 자금 거래를 아주 작은 규모로 쪼개어 긴 시간 동안 연속적으로 체결시키는 방법입니다. 이에 따라 TWAMM 사용자는 가격 충격 없이 시장 평균 가격에 따라 거래를 성사시킬 수 있습니다.
4.2. TWAMM 메커니즘
이론적으로 TWAMM은 대규모 자금 거래를 아주 작은 단위로 쪼개어 트랜잭션을 실행시키는 방식으로 진행됩니다. 하지만 온체인 상에서(특히 이더리움 네트워크 상에서) 거래 내용을 담은 무한히 많은 트랜잭션을 각각 실행시키는 방법은 감당할 수 없는 네트워크 수수료를 발생시키기 때문에 비현실적입니다. 따라서 온체인 상에서 구현 가능한 실제 TWAMM 작동 메커니즘은 다음과 같습니다.
- TWAMM은 기존 AMM과 분리되어 운영되므로 TWAMM을 이용한 주문 접수 시에, 해당 주문은 기존 AMM에 속한 유동성에 영향을 주지 않고 독립된 AMM에 주문이 접수되며 하나의 Order Pool이 형성됨
- 이와 동시에 사용자의 자금 규모와 설정된 거래 기간에 따라 무한히 많은 소규모의 가상 주문이 자산의 최초 시장 가격을 기준으로 시간이 지남에 따라 체결됨. 가상 주문이기 때문에 실제 유동성에는 변화가 없지만, 시간이 지날수록 자산 교환 비율, 즉 가격에는 실제 주문이 체결된 것과 같은 변화를 초래
- TWAMM에 형성된 Order Pool 상의 거래는 시장 유동성과 독립되어 있어 자산의 시장가와 TWAMM 상의 가격은 괴리가 발생
- 게다가 Order Pool은 일반 거래자들이 참여할 수 있도록 공개되어 있기 때문에 가격 괴리로 인한 차익 거래의 수요가 발생, 참여자들이 Order Pool 상에서 차익 거래를 실행하고 그 결과, 시장 가중 평균 가격 즉 TWAP에 가까운 가격으로 거래 성사
- 거래자가 설정한 기간이 만료될 때까지 위와 같은 메커니즘으로 차익 거래를 지속적으로 발생시켜 가격 충격을 최소화하고 대규모 자산 거래를 성사
이해를 돕기 위해 예시를 들면 다음과 같습니다.
1. 최초 조건: TWAMM 풀을 제외한 유동성 풀은 100 ETH와 200,000 USDC를 보유 중(1 ETH = 2,000 USDC로 가격 형성)
2. 10 ETH를 USDC로 매도하고 싶은 거래자는 24시간 거래 조건으로 TWAMM에 거래를 제출 및 Order Pool을 형성
3. 가상 주문이 체결됨에 따라 TWAMM 상의 ETH 가격은 점점 하락
3–1. 예를 들어, 차익 거래자의 진입이 없고 1시간마다 가상 주문이 체결된다고 하면, 1시간 이후 첫 번째 가상 주문 체결 이후 ETH 시장 가격에 따라 약 0.417(=10/24) ETH가 유동성 풀에 추가, 약 833 USDC가 유동성 풀에서 제거되므로 TWAMM 상 가상의 ETH/USDC 유동성 풀 비율과 가격은 다음과 같이 변동
3–2. 첫 가상 주문 체결 이후 가상의 풀 비율: 100.417 ETH / 199,167 USDC(1 ETH = 약 1983.4 USDC로 가격 형성)
3–3. 따라서 1시간 이후 시점부터 차익 거래자는 시장가인 (1 ETH = 2,000 USDC) 보다 할인된 가격으로 0.417 ETH 구매 가능
4. 실제로는 무수히 많은 가상 주문이 체결되기 때문에 ETH 가격은 실시간으로 낮아지며, 차익 거래가 발생할만한 충분히 낮은 가격이 형성되면 ETH 매수 압력이 발생하여 ETH 가격은 시장 가격에 수렴
5. 24시간이 만료될 때까지 10 ETH는 순차적으로 거래 가능해지며, 지속적인 차익 거래 발생을 통해 시장 가격에 가깝게 거래 가능
4.3. TWAMM의 한계
4.3.1. 샌드위치 공격의 가능성
샌드위치 공격(Sandwich Attack)이란, 블록체인 네트워크 상에 접수된 트랜잭션이 블록에 포함되기 전에 미리 그 내용을 확인하고 해당 트랜잭션을 기준으로 선행 매매(Front-Running)와 후행 매매(Back-Running)를 실행함으로써 재산상의 이득을 가져가는 행위를 말합니다. 예를 들어, 이더리움 네트워크 상의 AMM 풀에 10 ETH를 매수하는 내용의 트랜잭션이 발견되었다고 하면, 샌드위치 공격자는 해당 트랜잭션 보다 높은 가스비를 지출하여 해당 트랜잭션 실행 직전에 ETH를 매수하고, 해당 트랜잭션 실행 직후에 ETH를 매도함으로써 차익을 거둘 수 있고, 반대로 트랜잭션 제출자는 재산상의 손해를 입게 됩니다.
TWAMM을 이용한 자금 거래의 경우에도 트랜잭션의 내용이 대중에게 공개되기 때문에 샌드위치 공격에 취약할 수 있는 것처럼 보입니다. 하지만 TWAMM을 이용한 주문은 복수의 블록에서 실행되며 그 규모가 시간에 따라 순차적으로 증가하기 때문에, 샌드위치 공격자로 하여금 공격 대상을 특정하기 쉽지 않으며, 복수의 차익거래자가 참여하기 때문에 확실한 수익을 거두기도 쉽지 않습니다. 따라서 단일 블록에서 실행되는 샌드위치 공격에 대한 위험은 거의 없으나, 만약 복수의 블록을 대상으로 하는 샌드위치 공격 기법이 개발된다면 TWAMM 또한 그 위험으로부터 더 이상 안전하지 않을 수 있습니다. Paradigm의 논문에서도 이러한 위험의 가능성을 인지하고 다음과 같이 밝히고 있습니다.
At present, there is no way for an attacker to guarantee that they will only trade at the end of a given block if they also get to trade at the beginning of the next block. When such multi-block MEV becomes more common, allowing traders to sandwich across multiple blocks, this may become more of an issue. — Paradigm, TWAMM
4.3.2. 상용화되기에는 부족한 유인
TWAMM 방식은 다른 대규모 자금 거래 방식에 비해서 1) 자금의 규모나 거래 기간 등의 거래 내용이 공개되어 있고, 2) 상대적으로 많은 시간이 소요된다는 단점이 있습니다. 이러한 단점은 대규모 거래자들이 TWAMM 사용을 기피하게 만드는 요소로 작용하며, OTC 마켓을 이용한 P2P 거래 등의 대체 방안을 더 선호하게 만듭니다.
따라서 TWAMM은 1) 대규모 자금 거래로 인한 가격 충격을 방지하려는 강한 동기를 가지고, 2) 긴 거래 기간을 감내할 수 있는 거래자에 의해 한정적으로 선호되고 사용되어야 하는 한계를 가집니다. 이러한 한계가 TWAMM의 개념과 실현에 대해 많은 논의가 있었으나 아직까지 상용화되지 않고 있는 이유입니다.
5. 현실 적용 사례와 기대점: Fraxswap 현황 및 방어 수단의 역할
5.1. 최초의 TWAMM Fraxswap, 현황은 어떨까?
![](https://miro.medium.com/v2/resize:fit:1400/1*LPtGasuXbbrMQkjBdU4NfA.png)
지난 4월 초, 프랙스 파이낸스의 DEX인 Fraxswap은 최초의 TWAMM 상용화 거래소로 론칭하였습니다. 론칭에 있어서 프랙스 파이낸스의 파운더인 Sam Kazemian은 POL(Protocol-owned Liquidity; 프로토콜 소유 유동성) DAO 프로토콜들의 자금 리밸런싱을 위한 서비스 제공을 위해 TWAMM을 도입하였다고 밝힌 바 있습니다(출처: Do Dive, ‘Fraxswap, ‘Next Curve’를 위한 마지막 퍼즐’). POL DAO들은 지속적인 자금 리밸런싱 수요를 가지고 있으며, 자신들의 거버넌스 토큰 거래에 있어서 강력한 가격 충격 방지 동기를 가지기 때문에 앞서 언급한 TWAMM 주요 사용자 조건에 부합하기 때문에 이러한 목적을 내세웠을 것으로 추측됩니다.
다만 Fraxswap 론칭 이후 TWAMM 사용 이력은 매우 저조한 수준으로, 그나마 가장 많은 트랜잭션 처리량을 기록하고 있는 FRAX-FXS 자산 간 거래가 이더스캔(Etherscan) 상에서 5월 16일 이후로 일일 트랜잭션 처리량이 10회 내외에 그치고 있는 것으로 확인되었습니다. Fraxswap에서 취급하고 있는 자산이 많지 않아 사용성이 낮은 이유도 있겠으나, TWAMM이 상용화되기 결코 쉽지 않은 모델이라는 것을 보여주는 요소이기도 합니다.
5.2. 낮은 사용 유인, 그럼에도 불구하고..
여러 단점들과 한계점들로 인해 TWAMM의 상용화에 의문 부호가 붙긴 하였으나, 가격 충격의 방지 방안으로써 TWAMM이 가지는 의의는 강력하다고 생각합니다. 프랙스 파이낸스의 AMO(Algorithmic Market Operation) 정책, 메이커 다오(Maker DAO)의 볼트 청산 시의 자산 매도 방안 등 프로토콜 차원에서 자금 리밸런싱의 수요가 발생할 때 TWAMM을 활용할 유인이 증가하기 때문입니다. 실제로 TWAMM 리서치 및 서비스 개발을 진행하고 있는 한 개발자의 리포트에서 TWAMM의 성능 개선과 서비스 구체화를 통해 앞으로 대규모 펀드나 DAO들이 TWAMM을 사용할 가능성이 있음을 확인할 수 있었습니다.
We’ve continued our conversations with large funds and DAOs to better understand their pain points and learn how TWAMM can potentially help. One common request we’ve heard in these conversations is the ability to automate long-term orders. Below is one such example order:
Buy 2–5% of an illiquid network’s publically available tokens over the next 8–12 months with a target price of less than 3x of current price for $5M USD.
The current implementation of TWAMM doesn’t have the ability to pause orders when they’re out of price range. Therefore, traders would have to monitor their orders in order to cancel and re-start orders in case of market volatility or generic front-running attacks.— 0x70626a, TWAMM Research: April 2022
또한, 이 글의 시발점이었던 알고리즘 스테이블코인 보완책으로써 가지는 의의 역시 존재한다고 생각합니다. 스테이블코인의 페깅에 깊게 관여하는 커브 파이낸스(Curve Finance)에서 대규모 자금 거래 발생 시 TWAMM 사용을 강제하는 등의 방법을 통해서, 스테이블코인 프로토콜에 대한 의도적인 공격을 방지하는 방안으로 작용할 수 있을 것입니다.