Try   HackMD

Uniswap V3から
x
perpを作成する

Uniswap V3のLPポジションから、常に2

xの価値を持つポジションを作り出す方法について説明する。Uniswap V3 LPポジションを担保に、いつでもトークンを借りることができることを前提とする。

まずUniswap V3のLP position valueは以下のようになる。

v(x)=L(2xa1b)
ただし
a
はlowerPrice,
b
はupperPrice、
x
はtoken0のtoken1建ての現在価格である。

この時各トークンの数量は

(token0,token1)=(L(1x1b),L(xa))...(0)

以下

(amount of token0,amount of token1)のような表記をつかう。正の場合は担保、負の場合は負債。

このポジション(0)を

(L1b,La)の担保と共に保有する場合、ポジション価値は
2Lx
となる。

さらにtoken1の負債

2Lxを追加することで、レバレッジをかけた
2Lx
ポジションとなる。

レンジ切り替え

初期のLPレンジを適当に

a1,b1と決めたとして、いつかは現在価格をその範囲を超えてしまう。できれば範囲を出る前にレンジ切り替えをする必要がある。

a1,
b1
から
a2
,
b2
にレンジを移動した場合、以下のように担保と負債が追加される。

(L(1b21b1),L(a2a1))

レンジ切り替えの回数をnとして、より一般化すると

(L(1bn1bn1),L(anan1))...(1)

token0の価格が上昇した場合、token0が負債として追加され、token1が担保として追加される。反対にtoken0の価格が下落した場合、token1が負債として追加され、token0が担保として追加される。

上記(1)の方法でレンジ切り替えをする限り、ポジション全体は以下のようなCFMMに似た式で表される

(L(1x),L(x))...(2)

内訳としては以下である。
Uniswap LP:

(L(1x1bn),L(xan))
その他担保、負債:
(Lbn,Lan)

ここで、

an,
bn
は(n-1)回レンジ切り替えを行った後の、lower priceとupper priceである。このレンジ切り替えの際には、LPポジションのデルタとガンマは変化しない。

レンジ外になってしまった場合

レンジ切り替えがLPポジションがレンジ外になってから発生する場合は、例外的な処理が必要である。

an1,bn1から
an,bn
にレンジが切り替わる場合について考える。

bn1<=x
の場合

この場合

(3)..burnで得られる量は、

(0,L(bn1an1))
(4)..mintで必要な量は、
(L(1x1bn),L(xan))

なので、レンジ切り替えのために
(3)-(4)=

(L(1bn1x),L(bn1an1(xan)))
だけトークンを得る。

よって(1)のルールに加えて、以下を得ることになる。

(3)-(4)-(1)=

(L(1bn11x),L(bn1x))...(5)

x<an1
の場合

この場合

(6)..burnで得られる量は、

(L(1an11bn1),0)
(7)..mintで必要な量は、
(L(1x1bn),L(xan))

なので、レンジ切り替えのために
(6)-(7)=

(L(1an11bn1(1x1bn)),L(anx))
だけ得ることになる。

よって(1)のルールに加えて、以下を得ることになる。(マイナスの場合は、そのトークンが必要となる)

(6)-(7)-(1)=

(L(1an11x),L(an1x))...(8)

この時以下の等式が成り立つ。
(3)-(4)=(1)+(5)
(6)-(7)=(1)+(8)

全体のポジション価値が(2)に示した

2xを保つためには、(1)のルールのみを適応したい。つまり(5), (8)は余計なポジションである。そのため(5),(8)については、トークンの交換を必要とする。

まとめ

上記の方法で、常に

2xの価格を持つアセットを、Uniswap V3のLPポジションを使用して作ることができる。このアセットはconvexyを持ち、理論金利はtoken1建てで
xσ24
である。