Uniswap v2: AMM Produk Konstan dengan Oracle TWAP dan Flash Swap

Penulis Adams, Noah; Zinsmeister, Noah; Salem, Moody; Keefer, River; Robinson, Dan
Tahun 2020
Proyek Uniswap / Uniswap Labs
Lisensi GPL-3.0
Sumber Resmi uniswap.org/whitepaper.pdf
Disclaimer: Halaman ini merupakan ringkasan dan analisis edukatif dari whitepaper atau makalah teknis resmi. Konten ini disajikan untuk tujuan pendidikan semata dan bukan merupakan saran investasi atau keuangan. Selalu baca dokumen asli dan lakukan riset mandiri sebelum mengambil keputusan keuangan apa pun.

“Uniswap v2 Core” adalah whitepaper yang diterbitkan Maret 2020 oleh tim Uniswap — Noah Adams, Noah Zinsmeister, Moody Salem, River Keefer, dan Dan Robinson — yang mendeskripsikan versi kedua dari Uniswap, automated market maker (AMM) yang mendefinisikan perdagangan terdesentralisasi di Ethereum. Uniswap v2 menambahkan tiga inovasi utama di atas v1: pasangan ERC-20/ERC-20 langsung, oracle harga TWAP yang tahan manipulasi, dan flash swap.

Publikasi dan Konteks

Hayden Adams membangun Uniswap v1 (November 2018) setelah terinspirasi oleh postingan Vitalik Buterin di ethresear.ch. V1 hanya mendukung pasangan ETH-ERC20 — setiap perdagangan token dirutekan melalui ETH sebagai perantara. Untuk menukar BAT ke DAI diperlukan dua transaksi (BAT→ETH→DAI). Uniswap v2 menghilangkan ketidakefisienan ini dan menambahkan infrastruktur yang diperlukan DeFi.

Formula AMM Produk Konstan

Uniswap menggunakan formula produk konstan:

x · y = k

Di mana x dan y adalah cadangan kedua token dan k adalah konstanta. Setiap perdagangan harus mempertahankan k tetap konstan. Untuk membeli Δy token, trader harus menyediakan Δx = (x · Δy) / (y − Δy) token ditambah biaya 0,3%.

Pasangan ERC-20/ERC-20: V2 mendukung pasangan langsung antara dua token ERC-20 apa pun tanpa melalui ETH — BAT/DAI langsung dalam satu pool. Ini mengurangi slippage dan biaya gas untuk perdagangan antar token.

Oracle Harga TWAP

Kelemahan v1: harga spot bisa dimanipulasi melalui flash loan dalam satu transaksi, lalu dibaca oleh kontrak oracle di blok yang sama. V2 memecahkan ini dengan Time-Weighted Average Price (TWAP):

  • Di setiap blok, Uniswap mengakumulasikan log harga: price_cumulative += price_current * time_elapsed
  • Protokol lain membaca nilai kumulatif di dua titik waktu berbeda, lalu menghitung rata-rata: TWAP = (price_cumulative_end – price_cumulative_start) / time_elapsed
  • Memanipulasi TWAP 30 menit membutuhkan mempertahankan harga yang dimanipulasi selama 30 menit blok berturut-turut — sangat mahal secara modal

Oracle TWAP Uniswap v2 menjadi sumber harga on-chain paling banyak digunakan dalam DeFi di 2020–2021.

Flash Swap

Flash swap memungkinkan siapa pun menarik token dari pool Uniswap tanpa kolateral terlebih dahulu, menggunakannya dalam logika kontrak, lalu mengembalikannya (ditambah biaya 0,3%) dalam transaksi yang sama. Jika token tidak dikembalikan, seluruh transaksi dibatalkan.

Penggunaan umum: arbitrase (pinjam token A, beli token B dari DEX lain, jual di Uniswap, bayar kembali); likuidasi (pinjam stablecoin untuk melikuidasi posisi, terima kolateral, jual untuk membayar kembali).

Biaya Protokol

V2 menyertakan saklar biaya protokol tersembunyi: 1/6 dari biaya 0,3% (yaitu 0,05%) dapat dialihkan ke treasury Uniswap jika diaktifkan oleh tata kelola. Ini tidak diaktifkan dalam v2 tetapi menetapkan preseden untuk tokenomics protokol AMM.

Keterbatasan

  • Likuiditas terdistribusi merata di semua harga (0 hingga tak terhingga) — tidak efisien untuk pasangan yang diperdagangkan dalam rentang sempit
  • Impermanent loss tetap ada dan signifikan untuk pasangan dengan volatilitas berbeda
  • Uniswap v3 (2021) memecahkan masalah distribusi likuiditas dengan liquidity concentration

Warisan dan Dampak

Uniswap v2 menjadi backbone DeFi Summer 2020 dan tetap aktif bertahun-tahun setelahnya dengan ratusan miliar dolar volume seumur hidup. TWAP oracle-nya menjadi standar de facto untuk harga on-chain. Kode open-source v2 di-fork oleh SushiSwap, PancakeSwap, QuickSwap, dan ratusan DEX lain.

Istilah Terkait

Referensi