Uniswapの流動性
Uniswap プロトコルの設計アーキテクチャは、従来のデジタル資産取引所のモデルとは異なります。ほとんどの従来の取引所は注文書を保持し、特定の資産の買い手と売り手をマッチングするために使用します。また、Uniswap は**流動性準備金**を使用して、契約内のデジタル資産の取引を実現します。
取引契約の流動性準備金は、ネットワーク内の流動性プロバイダーによって提供されます。これらの流動性プロバイダーは、特定の ERC20 トークン取引契約に同等の ETH および ERC20 トークンを預けます。交換契約に流動性を提供する最初の流動性プロバイダーは、まずその交換契約の ETH と対応する ERC20 トークン間の交換レートを設定します。流動性プロバイダーは、契約に裏付けられた ETH と ERC20 トークンと同等であると考える金額を預けることで、この交換レートを設定します。流動性プロバイダーによって設定された交換レートが、より広範な暗号通貨交換市場と一致しない場合、裁定取引業者は、ETH と ERC20 トークン間の交換レートを、市場が正しいと考える交換レートに導きます。したがって、後続のすべての流動性プロバイダーは、資産を預けて流動性を預けるときに、その交換レートを使用します。
Uniswap は、いわゆる **「流動性トークン」 (流動性トークン) も使用しており、それ自体が ERC20 に準拠しています。これらのトークンは、流動性プロバイダーの取引契約への貢献を表すものとして考えることができます。取引契約ごとに 1 つの ERC20 トークンのみをサポートするという Uniswap の制限の背後にある理論的根拠は、流動性プロバイダーが流動性資産を 1 つの準備金にプールすることを奨励することです**。Uniswap は、流動性トークンを発行することで、各流動性プロバイダーが総準備金に貢献する相対的な割合を追跡します。流動性プロバイダーは、選択した時点で流動性トークンをバーンして、交換契約から ETH および ERC20 トークンの比例部分を引き出すことができます。
流動性プロバイダーは、交換契約から流動性を削除せずに、流動性トークンを売却または譲渡することを選択できます。ただし、Uniswap の流動性トークンは、交換契約に厳密に割り当てられます。Uniswap プロトコルに関連付けられた単一のネイティブデジタル資産はありません。流動性プロバイダーは、addLiquidity() 関数を呼び出して、取引契約に流動性を預けることもできます。流動性を提供した報酬として、流動性プロバイダーは、取引が実行されたときに一定の割合の取引手数料を受け取ります。
Uniswapでの取引:ETH ⇄ ERC20取引 Uniswapプロトコルで実行できるトランザクションの1つは、ETHを特定のERC20トークンと交換することです。前述のように、ETHと特定のERC20トークン間の交換レートは、取引契約内の各資産流動性プールの相対的なサイズに基づいています。交換レートは、Uniswapの不変量に基づいています:ETHプールトークンプール=不変量(不変量)。Uniswapプロトコルでのトランザクションの実行中、不変量(不変量)は変更されません。さらに、不変量は、取引された契約の流動性が増加または減少した場合にのみ変化します。
ETH ⇄ BAT の例: ボブは、1 ETH を ERC20 トークン BAT と交換するトランザクションを開始したいと考えています。ボブは、Uniswap プロトコル上の既存の交換契約を使用して、このトランザクションを実行します。流動性プロバイダーは、一定量の ETH と BAT を交換契約に預けています。この例では、10 ETH と 500 BAT とします。基礎となる不変量は次のように設定されています: ETH プール * BAT プール = 不変量 (不変量)、つまり次のようになります:
ETHプール = 10 BAT
プール = 500
不変量 = 10 * 500 = 5,000
ボブは、トランザクション コントラクトの ETH プールに 1 ETH を送信してトランザクションを開始し、これに基づいて流動性プロバイダーの手数料として 0.3% を差し引きます。残りの 0.997 ETH が ETH プールに追加されました。次に、不変量を新しい合計 ETH で割って、BAT プールの最新のサイズを決定します。残りの BAT トークンは、購入者 (この場合はボブ) に送信されます。つまり、次のようになります。
ETHプール = 10 BAT
プール = 500
不変量 = 10 * 500 = 5,000 ボブ
トランザクション契約の ETH プールに 1 ETH を送信してトランザクションを開始し、これに基づいて流動性プロバイダーの手数料として 0.3% を差し引きます。残りの 0.997 ETH が ETH プールに追加されました。次に、不変量を新しい合計 ETH で割って、BAT プールの最新のサイズを決定します。残りの BAT トークンは、購入者、この場合はボブに送信されます。つまり、次のようになります。
ボブは1 ETHを送信します
手数料: 0.003 ETH
ETHプール = 10 + (1 – 0.003) = 10.997
BATプール = 5000/10.997 = 454.67
ボブが受け取る: 500 – 454.67 = 45.33 BAT
流動性プロバイダーに支払われる手数料は、ボブが取引を開始したときに差し引かれましたが、この手数料は流動性プールに追加されます(つまり、不変量が増加することになります)。これは流動性プロバイダーへの支払いとして機能し、流動性プロバイダーが市場から流動性貢献を取り除くときに回収できます。この手数料は価格計算後に再追加されるため、交換契約の各取引が実行されるにつれて、不変量は徐々に増加し、交換契約に流動性を預ける行為は流動性プロバイダーにとって重要な収益性の高い活動になります。現時点では:
ETHプール = 10.997 + 0.003 = 11
BATプール = 454.67 新規
不変 = 5,001.37
この取引では、ボブは 45.33 BAT/ETH の為替レートで BAT を取得します。
入力: 1 ETH
出力: 45.33 BAT
為替レート = 45.33 BAT/ETH
Uniswapでの取引: ERC20 ⇄ ERC20取引
Uniswapプロトコルで実行できる別のタイプのトランザクションは、1つのERC20トークンを別のERC20トークンと交換することです。ETHはすべてのERC20トークンの公開取引ペアとして使用されているため、UniswapはERC20とERC20間の直接トランザクションの仲介資産としてETHを使用します。たとえば、Uniswapは特定のトランザクション契約でBATトークンをETHに変換し、次に別のトランザクション契約でこの部分のETHをOMGに変換できます。これらはすべて1つのトランザクションで完了するため、ERC20トークン間の任意の2つの交換が可能になります。
この式は、購入するトークンが増えるほど、トークンを 1 単位追加購入するために支払う限界為替レートが高くなるという点で、通常の市場と非常によく似ています。


