この論文では、uniswap内の一定積アルゴリズムのK値はどのように設計されているかを紹介します。
私たちはuniswapの取引ペアを持っています。ETH/USDTはK値がどのように設計されているかを例に挙げて説明します。トラック.定積アルゴリズム。
uniswapの最初の人はx個のETHとy個のUSDTを流動性として追加した時、K値の初期サイズ、すなわちK=x*yを決定しました。この時、ETHとUSDTは共に流動性プールを構成しています。この概念を覚えてください。とても重要です。
最初に流動性を追加した人は、取引ペアの中の2つの貨幣の数を任意に追加することができます。つまり、K値を任意に決定することができます。
流動性を追加した後、ETHの価格は=y(USDTの数量)/x(ETHの数量)に等しいです。この価格が他の取引所との間に価格差があれば、必ず誰かに煉瓦套利を運ばれます。。
定積アルゴリズムとは、流動性プールが追加されていない場合や流動性が減少している場合に、取引行為のみが発生した場合に、K値は不変であることを意味する。つまり、ETH/USDT取引ペアでETHを買ったり、売ったりした場合、K値の大きさは変えられません。トレーダーは、流動性プールのETHとUSDTの成分を修正します。例えば、ユーザーがdx個のETHを買ったら、流動性プールのETHの数は(x-dx)になります。usdtの数はK/(x-dx)になります。つまり、ユーザーはdy=K/(x-dx)-y個のUsdtを使ってdx個のETHを買いに来ます。
取引手数料はK値に影響します。
ただし取引手数料があるため、ユーザーがuniswapを使って取引する場合、0.3%の手数料を支払う必要があります。例えば、ユーザーがdy個のusdtを持ってETHを買います。uniswapはまず0.3%dyの手数料を差し引いて、先にこの0.3%dyの手数料をなくして、取引を完成した後に、この0.3%dyは流動性プールに追加されます。この時K値はx*(y+0.3%dy)になります。したがって、一定積アルゴリズムのK値は一定ではなく、各取引はK値に影響を与えます。
流動性を追加してK値に影響します。
今資金プールにxETH/yUSDTがあれば、K=x*yです。今は流動性が加わり、dx個のETHとdy個のusdtが増加し、dx/dy=x/yが増加しました。
Uniswapのデフォルト設定を使うと、つまり流動性を追加する時にETHの数量を先に入力してください。その後、uniswapはデフォルトでどれぐらいのusdtが必要ですか?このデフォルト計算はdx/dy=x/yを維持します。
しかし流動性を追加したら、流動性プールの資金は(x+dx)ETH/(y+dy)USDTになります。このとき(x+dx)*(y+dy)x*y。従って追加流動性K値は大きくなった。
同様に流動性を減少させると、K値が減少します。
寄付はK値に影響を与えます。もし流動性を追加するなら、dx/dy=x/yの割合で追加するのではなく、直接契約住所にdx 0、dy=0を回してもいいです。これは同様にK値を変更する。
このようなことはよくあります。ETHをuniswap流動性プールの契約住所に間違って転入した人がいます。寄付行為が発生しました。元の流動性所有者にすべての貨幣を送りました。
このようなK値以外の割合に流動性を付加する行為は、uniswapに寄付と呼ばれています。
しかし、このような寄付行為は、設計上は可能です。他の人に利するものです。例えば、dx 0をチャージした人がいます。dy=0です。この時、他の人はKの割合のdyをチャージして、流動性を追加する操作をして、そのdxの寄付をむしり取ります。これは複雑です。詳細は分かりません。
K値に比例して追加された流動性でないものには、寄付が発生します。例えばdx/dy x/yは、先に(dx-ddx)/dy=x/yの流動性を追加し、ユーザの対応する数のLPtokenに戻る。そして寄付になりました。また、同じブロックの中には取引が流動性を付加しているものもあり、取引が売買であるものもあります。そのK値はもっと複雑に変化します。トレイ.