Uniswap v4: Singleton PoolManager, Flash Accounting ERC-6909, dan Hooks untuk AMM yang Dapat Dikustomisasi

Penulis Uniswap Labs
Tahun 2023
Proyek Uniswap v4
Lisensi BUSL-1.1
Sumber Resmi github.com/Uniswap/v4-core
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 v4 (2023, deployed mainnet Januari 2025) memperkenalkan tiga perubahan arsitektur fundamental: Singleton PoolManager, Flash Accounting berbasis ERC-6909, dan sistem Hooks yang memungkinkan siapa pun menambahkan logika kustom ke pool AMM tanpa fork protokol inti.

Singleton PoolManager

Di Uniswap v2 dan v3, setiap pool adalah kontrak terpisah. Ini berarti:

  • Swap multi-hop (A → B → C) memerlukan transfer ERC-20 antar kontrak di setiap langkah
  • Setiap pool deploy = biaya gas deploy terpisah
  • Multi-hop swap = banyak panggilan transfer ERC-20 mahal

v4 mengkonsolidasi semua pool ke dalam satu kontrak PoolManager. Swap multi-hop adalah operasi internal tunggal — tidak ada transfer token ERC-20 antar-langkah hingga seluruh rute selesai.

Flash Accounting (ERC-6909)

Alih-alih melakukan transfer ERC-20 untuk setiap operasi, v4 menggunakan akuntansi internal:

  • Selama eksekusi, saldo token dilacak sebagai delta internal (hutang/kredit)
  • ERC-6909 menggantikan ERC-20 untuk saldo internal — lebih efisien gas untuk transfer antar kontrak di dalam PoolManager
  • Hanya pada akhir operasi, delta diselesaikan melalui satu transfer ERC-20 bersih
  • Pengguna juga dapat menyimpan token di PoolManager (sebagai kredit ERC-6909) untuk menghindari transfer sama sekali di swap berikutnya

Sistem Hooks

Inovasi terbesar v4: Hooks adalah kontrak eksternal yang dapat dieksekusi pada titik-titik tertentu dalam siklus hidup pool:

  • beforeSwap / afterSwap
  • beforeAddLiquidity / afterAddLiquidity
  • beforeRemoveLiquidity / afterRemoveLiquidity
  • beforeDonate / afterDonate

Alamat kontrak hook di-encode dalam bit prefix alamat pool — bit tertentu menunjukkan hook mana yang aktif. Pool tanpa hook bekerja persis seperti v3.

Kasus Penggunaan Hook

  • TWAMM (Time-Weighted AMM): Order besar dieksekusi bertahap selama waktu untuk mengurangi slippage
  • Dynamic fees: Biaya swap berubah berdasarkan volatilitas on-chain atau kondisi lain
  • On-chain limit orders: Order tereksekusi otomatis ketika harga menyentuh target
  • MEV internalization: Bagikan pendapatan MEV kembali ke LP
  • KYC/whitelist pool: Pool yang hanya dapat diakses oleh alamat yang diverifikasi

Native ETH Support

v4 mendukung ETH asli (bukan WETH) sebagai salah satu token dalam pasangan pool — menghilangkan biaya wrap/unwrap WETH yang memperumit swap berbasis ETH.

Catatan Realistis

  • Singleton + flash accounting adalah perbaikan gas yang nyata dan konkret untuk swap multi-hop dan operasi kompleks.
  • Keamanan hook: Hook adalah kode eksternal yang dapat berisi logika arbitrer. Pengguna harus mempercayai keamanan hook yang digunakan pool — hook berbahaya dapat merugikan LP atau swapper. Audit hook menjadi persyaratan ekosistem baru.
  • BUSL-1.1: Lisensi Business Source License membatasi penggunaan komersial selama periode tertentu sebelum berubah menjadi GPL — kontroversial di komunitas open-source.

Istilah Terkait

Referensi