再調整
デュエルには3つのプールがあります。ETH 建ての A、ETH 建ての B、B 建ての A です。取引の後、これらの価格がずれることがあります。各取引の後、同じトランザクションの中で、hook は利益の出る再調整を試みます。再調整はスキップされたり、利用できる ETH によって制限されたりすることがあり、価格が完全に一致することは保証されません。
仕組み
価格のずれによって、規模を決める前の三角サイクルの利益幅が0.1%を超えると、hook は手数料ゼロで三角形を一周する取引を行えます。これはサイクルの利益のしきい値であり、どの2つのプールの価格も0.1%以内に収まることを保証するものではありません:
- A/B プールと比べて ETH 建ての A が割高になった場合、hook は ETH で B を買い、A/B プールでそれを A に交換し、その A を ETH で売ります。
- B が割高になった場合は、その逆です。
閉じた式で利益の出るループの規模を決め、売り側の ETH プールが支払える額で上限をかけます。利益の出るループだけを残します。得られた利益はラウンドのポットに入ります。 失敗した試行は巻き戻されてスキップされるため、ユーザーのスワップを妨げることはありません。ただしガス不足で失敗した場合はスワップ自体が ArbitrageStarved でリバートするため、ガスを少なく送って再調整をスキップすることはできません。制限されたりスキップされたりしたループでは、価格のずれが残ることがあります。
比率にとっての意味
比率とラウンドは、2つの ETH プールだけを読みます。A/B の価格が直接数えられることはありません。A/B 経由の乗り換えがこれらに影響するのは、再調整が実際に ETH プールで取引した場合だけです。どの ETH 価格も動かなければ、その乗り換えは比率もラウンドの平均も変えず、本来静かなラウンドをアクティブにすることもありません。
トレーダーにとっての意味
A/B プールは両陣営のトークンを少しずつ持っています。一方の陣営が上がった後に再調整が実行されると、その陣営の一部を ETH プールで売り、もう一方の陣営を少し買うことがあります。考えられる影響は3つです:
買いの直後に、その一部が相殺されることがあります。 再調整が実行されると、買われた陣営の一部を売り、得た ETH の利益をポットに送ることがあります。そのため、すぐに売り戻すと、スワップ手数料以上のコストがかかることがあります。以下は、デフォルト条件で、新しいデュエルと、一方の陣営が比率の97%を占めるデュエル(その陣営に10 ETHの買い、もう一方は買いなし)で測った社内の参考測定値です。コストはプールの状態によって変わり、固定の料率ではありません:
| 買ってすぐ売る | 新しいデュエル | 97/3、リードする陣営 | 97/3、追う陣営 |
|---|---|---|---|
| 0.1 ETH | 約4% | 約2% | 約4% |
| 1 ETH | 約5% | 約3% | 約12% |
| 5 ETH | 約10% | 約4% | 約32% |
| 20 ETH | 約22% | 約7% | 約61% |
追う陣営は、一度に大きく買うほどコストが高くなります。 リードする陣営が上がる間に、再調整は A/B プールに追う陣営の在庫をためていました。追う陣営を買うと、その在庫が買いに売り戻され、一度の買いが大きいほど多くの部分がポットに入ります。同じ合計でも、何回かに分けて買えば、買いごとに再調整が入り、一度に大きく買うよりコストは下がります。
再調整が実行されると、両陣営は連動します。 一方の陣営での買いがもう一方も押し上げることがあるため、逆転には ETH の差から想像されるより多くのコストがかかることがあります。再調整が制限されたりスキップされたりすると、結果は異なることがあります。リードは有利だが、確定ではないを参照してください。
デフォルトでは、A/B プールはそれぞれの供給量の2%で始まります。これはコントラクトが許す最小の割合で、この連動を弱く保つためのものです。初期の割合を大きくすると連動は強まり、その影響はプールの状態と取引の規模によって決まります。
なぜ hook で行うのか
利益の出る再調整は、ずれを小さくしようとし、得た利益をポットに送ります。アービトラージの機会は減りますが、なくなりはしません。ループは制限されたり、スキップされたり、わずかなずれを残したりすることがあります。