Mekanisme Hook Uniswap v4: Potensi dan Tantangan yang Beriringan
Uniswap v4 akan segera diluncurkan, dan peningkatan kali ini memperkenalkan banyak fitur inovatif, di antaranya mekanisme Hook yang sangat diperhatikan.
Mekanisme Hook memungkinkan eksekusi kode kustom pada titik tertentu dalam siklus hidup kolam likuiditas, yang secara signifikan meningkatkan skalabilitas dan fleksibilitas kolam tersebut. Namun, kompleksitas Hook juga membawa risiko keamanan potensial yang baru. Artikel ini akan memperkenalkan secara sistematis masalah keamanan dan risiko potensial yang terkait dengan mekanisme Hook, untuk mendorong pengembangan keamanan komunitas.
Mekanisme Inti Uniswap v4
Tiga fitur penting dari Uniswap v4 adalah Hook, arsitektur tunggal, dan pembukuan kilat.
Hook
Hook adalah kontrak yang beroperasi pada berbagai tahap siklus hidup kolam dana likuiditas, dengan memperkenalkan Hook, mendukung biaya dinamis secara asli, menambahkan pesanan batas di on-chain, dan melakukan penyebaran pesanan besar melalui rata-rata tertimbang waktu, dan fitur lainnya. Saat ini terdapat 8 callback Hook, dibagi menjadi 4 grup:
sebelumInisialisasi/setelahInisialisasi
sebelumUbahPosisi/setelahUbahPosisi
sebelumTukar/setelahTukar
sebelumDonasi/setelahDonasi
Singleton, pencatatan kilat, dan mekanisme penguncian
Arsitektur singleton dan pencatatan kilat dirancang untuk meningkatkan kinerja dengan menurunkan biaya dan memastikan efisiensi. Ini memperkenalkan kontrak PoolManager untuk menyimpan dan mengelola status semua kolam.
Versi v4 memperkenalkan pencatatan kilat dan mekanisme penguncian. Cara kerja mekanisme penguncian adalah sebagai berikut:
kontrak locker meminta lock di PoolManager
PoolManager menambahkan alamat kontrak locker ke antrean lockData, dan memanggil callback lockAcquired-nya.
kontrak locker menjalankan logikanya dalam callback
PoolManager memeriksa status antrean lockData dan peningkatan mata uang, setelah verifikasi menghapus kontrak locker tersebut
Mekanisme penguncian mencegah akses bersamaan dan memastikan bahwa semua transaksi dapat diselesaikan. Setiap perubahan akan dicatat dalam saldo internal kolam, dan transfer aktual dilakukan setelah operasi selesai.
Karena adanya mekanisme penguncian, akun eksternal tidak dapat berinteraksi langsung dengan PoolManager, dan harus melalui kontrak. Terdapat dua skenario interaksi kontrak yang utama:
kontrak locker berasal dari repositori kode resmi atau dideploy oleh pengguna, dapat dianggap sebagai interaksi melalui router
kontrak locker dan Hook diintegrasikan ke dalam kontrak yang sama, dapat dianggap sebagai interaksi melalui Hook
Model Ancaman
Kami terutama mempertimbangkan dua model ancaman:
Model ancaman I: Hook itu sendiri bersifat baik, tetapi memiliki kerentanan.
Model Ancaman II: Hook itu sendiri adalah jahat
Masalah keamanan dalam model ancaman I
Kami terutama fokus pada potensi kerentanan khusus versi v4, dengan penekanan pada dua jenis Hook berikut:
Hook yang menyimpan dana pengguna
Hook untuk menyimpan data status kunci
Dalam penelitian ditemukan bahwa terdapat dua jenis masalah utama: masalah kontrol akses dan masalah validasi input.
Masalah Kontrol Akses
Fungsi callback dalam v4 hanya boleh dipanggil oleh PoolManager. Jika fungsi yang bersangkutan dapat dipanggil oleh sembarang akun, ini dapat menyebabkan masalah seperti hadiah yang salah diterima. Oleh karena itu, sangat penting untuk membangun mekanisme kontrol akses yang kuat.
Masalah verifikasi input
Karena adanya mekanisme penguncian, pengguna harus memperoleh lock melalui kontrak untuk dapat melakukan operasi kolam. Namun, masih ada skenario serangan yang berpotensi:
Hook pengguna yang tidak terverifikasi berniat untuk berinteraksi dengan kolam dana
Beberapa fungsi Hook kunci memungkinkan panggilan eksternal sembarangan
Panggilan eksternal yang tidak terpercaya dapat menyebabkan masalah seperti serangan reentrancy.
Tindakan pencegahan
Untuk menghindari masalah keamanan seperti ini, perlu menerapkan kontrol akses yang diperlukan pada fungsi sensitif, memverifikasi parameter input, dan mempertimbangkan untuk menerapkan perlindungan reentrancy.
Masalah keamanan dalam model ancaman II
Kami membagi Hook menjadi dua kategori:
Hook berbasis custodian: bukan titik masuk, pengguna berinteraksi dengannya melalui router
Hook independen: adalah titik masuk, memungkinkan pengguna berinteraksi secara langsung
Hook Tipe Terpercaya
Aset pengguna ditransfer atau diberikan kepada router. Karena PoolManager melakukan pemeriksaan saldo, Hook jahat sulit untuk mencuri aset secara langsung, tetapi mungkin dapat menyerang dengan memanipulasi mekanisme pengelolaan biaya.
Hook Mandiri
Hook independen telah memperoleh lebih banyak kekuasaan, dapat melakukan operasi apa pun. Risiko utama termasuk:
Agen yang dapat ditingkatkan
Kontrak dengan logika penghancuran diri
Langkah pencegahan
Menilai apakah Hook bersifat jahat sangat penting. Untuk Hook yang dikelola, perhatian harus diberikan pada perilaku manajemen biaya; untuk Hook independen, perhatian harus diberikan pada apakah dapat ditingkatkan.
Kesimpulan
Artikel ini mengulas mekanisme inti dan potensi risiko keamanan terkait mekanisme Hook Uniswap v4. Artikel-artikel berikutnya akan menganalisis masalah keamanan di bawah setiap model ancaman.
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
Penjelasan Mendalam tentang Mekanisme Hook Uniswap v4: Potensi dan Risiko Keamanan yang Bersamaan
Mekanisme Hook Uniswap v4: Potensi dan Tantangan yang Beriringan
Uniswap v4 akan segera diluncurkan, dan peningkatan kali ini memperkenalkan banyak fitur inovatif, di antaranya mekanisme Hook yang sangat diperhatikan.
Mekanisme Hook memungkinkan eksekusi kode kustom pada titik tertentu dalam siklus hidup kolam likuiditas, yang secara signifikan meningkatkan skalabilitas dan fleksibilitas kolam tersebut. Namun, kompleksitas Hook juga membawa risiko keamanan potensial yang baru. Artikel ini akan memperkenalkan secara sistematis masalah keamanan dan risiko potensial yang terkait dengan mekanisme Hook, untuk mendorong pengembangan keamanan komunitas.
Mekanisme Inti Uniswap v4
Tiga fitur penting dari Uniswap v4 adalah Hook, arsitektur tunggal, dan pembukuan kilat.
Hook
Hook adalah kontrak yang beroperasi pada berbagai tahap siklus hidup kolam dana likuiditas, dengan memperkenalkan Hook, mendukung biaya dinamis secara asli, menambahkan pesanan batas di on-chain, dan melakukan penyebaran pesanan besar melalui rata-rata tertimbang waktu, dan fitur lainnya. Saat ini terdapat 8 callback Hook, dibagi menjadi 4 grup:
Singleton, pencatatan kilat, dan mekanisme penguncian
Arsitektur singleton dan pencatatan kilat dirancang untuk meningkatkan kinerja dengan menurunkan biaya dan memastikan efisiensi. Ini memperkenalkan kontrak PoolManager untuk menyimpan dan mengelola status semua kolam.
Versi v4 memperkenalkan pencatatan kilat dan mekanisme penguncian. Cara kerja mekanisme penguncian adalah sebagai berikut:
Mekanisme penguncian mencegah akses bersamaan dan memastikan bahwa semua transaksi dapat diselesaikan. Setiap perubahan akan dicatat dalam saldo internal kolam, dan transfer aktual dilakukan setelah operasi selesai.
Karena adanya mekanisme penguncian, akun eksternal tidak dapat berinteraksi langsung dengan PoolManager, dan harus melalui kontrak. Terdapat dua skenario interaksi kontrak yang utama:
Model Ancaman
Kami terutama mempertimbangkan dua model ancaman:
Masalah keamanan dalam model ancaman I
Kami terutama fokus pada potensi kerentanan khusus versi v4, dengan penekanan pada dua jenis Hook berikut:
Dalam penelitian ditemukan bahwa terdapat dua jenis masalah utama: masalah kontrol akses dan masalah validasi input.
Masalah Kontrol Akses
Fungsi callback dalam v4 hanya boleh dipanggil oleh PoolManager. Jika fungsi yang bersangkutan dapat dipanggil oleh sembarang akun, ini dapat menyebabkan masalah seperti hadiah yang salah diterima. Oleh karena itu, sangat penting untuk membangun mekanisme kontrol akses yang kuat.
Masalah verifikasi input
Karena adanya mekanisme penguncian, pengguna harus memperoleh lock melalui kontrak untuk dapat melakukan operasi kolam. Namun, masih ada skenario serangan yang berpotensi:
Panggilan eksternal yang tidak terpercaya dapat menyebabkan masalah seperti serangan reentrancy.
Tindakan pencegahan
Untuk menghindari masalah keamanan seperti ini, perlu menerapkan kontrol akses yang diperlukan pada fungsi sensitif, memverifikasi parameter input, dan mempertimbangkan untuk menerapkan perlindungan reentrancy.
Masalah keamanan dalam model ancaman II
Kami membagi Hook menjadi dua kategori:
Hook Tipe Terpercaya
Aset pengguna ditransfer atau diberikan kepada router. Karena PoolManager melakukan pemeriksaan saldo, Hook jahat sulit untuk mencuri aset secara langsung, tetapi mungkin dapat menyerang dengan memanipulasi mekanisme pengelolaan biaya.
Hook Mandiri
Hook independen telah memperoleh lebih banyak kekuasaan, dapat melakukan operasi apa pun. Risiko utama termasuk:
Langkah pencegahan
Menilai apakah Hook bersifat jahat sangat penting. Untuk Hook yang dikelola, perhatian harus diberikan pada perilaku manajemen biaya; untuk Hook independen, perhatian harus diberikan pada apakah dapat ditingkatkan.
Kesimpulan
Artikel ini mengulas mekanisme inti dan potensi risiko keamanan terkait mekanisme Hook Uniswap v4. Artikel-artikel berikutnya akan menganalisis masalah keamanan di bawah setiap model ancaman.