# Uniswap V3から$\sqrt{x}$ perpを作成する Uniswap V3のLPポジションから、常に2$\sqrt{x}$の価値を持つポジションを作り出す方法について説明する。Uniswap V3 LPポジションを担保に、いつでもトークンを借りることができることを前提とする。 まずUniswap V3のLP position valueは以下のようになる。 $v(x)=L(2\sqrt{x}-\sqrt{a}-\frac{1}{\sqrt{b}})$ ただし $a$はlowerPrice, $b$はupperPrice、$x$はtoken0のtoken1建ての現在価格である。 この時各トークンの数量は $(token0, token1)=(L(\frac{1}{\sqrt{x}}-\frac{1}{\sqrt{b}}), L({\sqrt{x}}-{\sqrt{a}}))...(0)$ 以下$(amount\ of\ token0, amount\ of\ token1)$のような表記をつかう。正の場合は担保、負の場合は負債。 このポジション(0)を$(L\frac{1}{\sqrt{b}},L\sqrt{a})$の担保と共に保有する場合、ポジション価値は$2L\sqrt{x}$となる。 さらにtoken1の負債$-2L\sqrt{x}$を追加することで、レバレッジをかけた$2L\sqrt{x}$ポジションとなる。 ### レンジ切り替え 初期のLPレンジを適当に$a_1, b_1$と決めたとして、いつかは現在価格をその範囲を超えてしまう。できれば範囲を出る前にレンジ切り替えをする必要がある。 $a_1$, $b_1$から$a_2$, $b_2$にレンジを移動した場合、以下のように担保と負債が追加される。 $(L(\frac{1}{\sqrt{b_2}}-\frac{1}{\sqrt{b_1}}), L({\sqrt{a_2}}-{\sqrt{a_1}}))$ レンジ切り替えの回数をnとして、より一般化すると $(L(\frac{1}{\sqrt{b_{n}}}-\frac{1}{\sqrt{b_{n-1}}}), L({\sqrt{a_{n}}}-{\sqrt{a_{n-1}}}))...(1)$ token0の価格が上昇した場合、token0が負債として追加され、token1が担保として追加される。反対にtoken0の価格が下落した場合、token1が負債として追加され、token0が担保として追加される。 上記(1)の方法でレンジ切り替えをする限り、ポジション全体は以下のようなCFMMに似た式で表される $(L(\frac{1}{\sqrt{x}}), L({\sqrt{x}}))...(2)$ 内訳としては以下である。 Uniswap LP:$(L(\frac{1}{\sqrt{x}}-\frac{1}{\sqrt{b_n}}), L({\sqrt{x}-{\sqrt{a_n}}}))$ その他担保、負債:$(\frac{L}{\sqrt{b_n}}, L{\sqrt{a_n}})$ ここで、$a_n$, $b_n$は(n-1)回レンジ切り替えを行った後の、lower priceとupper priceである。このレンジ切り替えの際には、LPポジションのデルタとガンマは変化しない。 ### レンジ外になってしまった場合 レンジ切り替えがLPポジションがレンジ外になってから発生する場合は、例外的な処理が必要である。 $a_{n-1}, b_{n-1}$から$a_{n}, b_{n}$にレンジが切り替わる場合について考える。 #### $b_{n-1} <= x$の場合 この場合 (3)..burnで得られる量は、$(0, L(\sqrt{b_{n-1}} - \sqrt{a_{n-1}}))$ (4)..mintで必要な量は、$(L(\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{b_{n}}}), L(\sqrt{x} - \sqrt{a_{n}}))$ なので、レンジ切り替えのために (3)-(4)=$( L(\frac{1}{\sqrt{b_{n}}}-\frac{1}{\sqrt{x}}), L(\sqrt{b_{n-1}} - \sqrt{a_{n-1}} - (\sqrt{x} - \sqrt{a_n})) )$ だけトークンを得る。 よって(1)のルールに加えて、以下を得ることになる。 (3)-(4)-(1)=$(L(\frac{1}{\sqrt{b_{n-1}}}-\frac{1}{\sqrt{x}}), L(\sqrt{b_{n-1}}-\sqrt{x}))...(5)$ #### $x < a_{n-1}$の場合 この場合 (6)..burnで得られる量は、$(L(\frac{1}{\sqrt{a_{n-1}}} - \frac{1}{\sqrt{b_{n-1}}}), 0)$ (7)..mintで必要な量は、$(L(\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{b_{n}}}), L(\sqrt{x} - \sqrt{a_{n}}))$ なので、レンジ切り替えのために (6)-(7)=$( L(\frac{1}{\sqrt{a_{n-1}}} - \frac{1}{\sqrt{b_{n-1}}} - (\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{b_{n}}})), L(\sqrt{a_n} - \sqrt{x}) )$ だけ得ることになる。 よって(1)のルールに加えて、以下を得ることになる。(マイナスの場合は、そのトークンが必要となる) (6)-(7)-(1)=$(L(\frac{1}{\sqrt{a_{n-1}}}-\frac{1}{\sqrt{x}}), L(\sqrt{a_{n-1}}-\sqrt{x}))...(8)$ この時以下の等式が成り立つ。 (3)-(4)=(1)+(5) (6)-(7)=(1)+(8) 全体のポジション価値が(2)に示した$2\sqrt{x}$を保つためには、(1)のルールのみを適応したい。つまり(5), (8)は余計なポジションである。そのため(5),(8)については、トークンの交換を必要とする。 ### まとめ 上記の方法で、常に$2\sqrt{x}$の価格を持つアセットを、Uniswap V3のLPポジションを使用して作ることができる。このアセットはconvexyを持ち、理論金利はtoken1建てで$\sqrt{x}\frac{\sigma^2}{4}$である。