Hooks, atau Hook Programming, adalah model pemrograman yang memungkinkan pengembang untuk menyisipkan kode kustom ke dalam jalur eksekusi dari suatu sistem, aplikasi, atau perpustakaan melalui Hooks, yang merupakan fungsi atau blok kode yang telah ditentukan sebelumnya. Tidak perlu memodifikasi kode asli. Hooks sering digunakan dalam berbagai lingkungan dan kerangka pemrograman, seperti sistem operasi, kerangka kerja dan perpustakaan, pengembangan web, dan sistem plug-in.
Dengan menggunakan Hooks, pengembang dapat meningkatkan skalabilitas dan customisasi program tanpa harus memodifikasi kode asli untuk setiap perubahan atau kebutuhan perluasan, yang membantu menjaga kode tetap bersih dan stabil. Hooks menyediakan metode implementasi yang elegan untuk ekstensi perangkat lunak dan merupakan model pemrograman yang sangat berguna dalam desain perangkat lunak.
Secara khusus, AOP (Aspect-oriented Programming) sering dibandingkan dengan pemrograman Hook. AOP adalah paradigma pemrograman modular yang mengimplementasikan kekhawatiran cross-cutting, dan tujuannya bukan untuk mengubah logika bisnis utama. Ini meningkatkan atau memodifikasi fungsionalitas jika diperlukan. Saya tidak akan mengembangkan AOP secara detail di sini. Anda dapat dengan mudah menganggap AOP sebagai abstraksi tingkat yang lebih tinggi dari pemrograman HooK.
Pada Juni 2023, Uniswap mengumumkan dan mempublikasikan versi draf dari white paper Uniswap V4. Fitur penting dari Uniswap V4 adalah pengenalan Hooks.
Hooks telah banyak digunakan dalam sistem keuangan Web2, karena sistem-sistem ini biasanya membutuhkan tingkat kustomisasi dan skalabilitas yang tinggi. Skenario yang disesuaikan, seperti saat memproses transaksi, menggunakan Hooks untuk menyisipkan logika verifikasi tambahan sebelum dan setelah eksekusi transaksi, seperti verifikasi sekunder, deteksi kontrol risiko, dan strategi anti pencucian uang (AML). Skenario skalabilitas meliputi mengintegrasikan dengan API eksternal atau mikro layanan melalui Hooks untuk memperluas fungsi-fungsi baru dalam sistem keuangan, seperti layanan otentikasi identitas, konversi kurs, gateway pembayaran, dll. Namun dengan memperkenalkan Hooks ke DeFi, Uniswap telah menetapkan preseden.
Uniswap V4 Hooks pada dasarnya adalah kontrak eksternal yang dibuat dan ditentukan oleh para pengembang. Ketika sebuah kolam likuiditas dibuat, Anda dapat memilih untuk mengikat kontrak Hook. Selanjutnya, kolam likuiditas akan memanggil kontrak Hook yang sebelumnya terikat untuk melakukan operasi yang ditentukan pada berbagai tahap siklus hidup, menyediakan tingkat kustomisasi yang tinggi. Pengembang dapat menggunakan Hook Uniswap untuk memenuhi skenario perdagangan yang lebih personal dan membangun DApps dengan fungsi yang lebih kaya, seperti:
Saat ini, Uniswap V4 mendukung empat kelompok panggilan Hook, setiap kelompok berisi sepasang panggilan:
Diagram berikut menggambarkan proses Hook sebelum/dan setelah Swap seperti yang disajikan dalam whitepaper. Dapat diamati bahwa sebelum dan setelah mengeksekusi swap, pertama-tama memeriksa apakah bendera yang sesuai dari Hook pool likuiditas diaktifkan. Jika diaktifkan, maka akan memanggil fungsi yang sesuai dari kontrak Hook.
Hook ini dapat dieksekusi sebelum perdagangan dimulai dan setelah perdagangan berakhir, memungkinkan fungsionalitas yang mirip dengan pesanan limit on-chain. Pengguna menempatkan pesanan limit pada kontrak Hook, dan kemudian menggunakan oracle kustom atau dikelola dalam panggilan afterSwap untuk menentukan apakah harga memenuhi batas. Jika ya, transaksi akan dieksekusi. Jika tidak, transaksi akan dibatalkan.
Uniswap V4 sangat erat mengikat likuiditas pada pengembangan DApp itu sendiri melalui Hooks. Ini meningkatkan fungsi DApp dan juga meningkatkan efek jaringan Uniswap, menjadikannya infrastruktur dasar dari seluruh ekosistem DeFi.
Tim BlockSec telah mengeksplorasi risiko keamanan dari mekanisme Hooks di Uniswap V4. Selain fakta bahwa kontrak Hook itu sendiri bersifat jahat, kontrak Hook yang baik hati juga sangat rentan terhadap kerentanan. Tim BlockSec menganalisis repositori Awesome Uniswap v4 Hooks (hash komit 3a0a444922f26605ec27a41929f3ced924af6075) dan menemukan bahwa lebih dari 30% proyek di repositori tersebut rentan. Kerentanan ini terutama berasal dari interaksi risiko antara Hook, PoolManager, dan pihak ketiga eksternal, dan dapat dibagi menjadi dua kategori utama:
Meskipun kontrol akses yang diperlukan ke fungsi eksternal/publik yang sensitif diimplementasikan dengan benar dan parameter input diverifikasi untuk mengurangi risiko keamanan yang terkait dengan dua jenis Hooks di atas, kerentanan kontrak itu sendiri tidak dapat sepenuhnya dihindari, terutama jika Hook yang dapat ditingkatkan. Jika kontrak diimplementasikan, Anda mungkin juga menghadapi masalah terkait yang mirip dengan kerentanan UUPSUpgradeable milik OpenZeppelin.
Alasannya terletak pada kenyataan bahwa pemrograman Hook meningkatkan kompleksitas kontrak pintar, dengan demikian memperbesar permukaan serangan. Untuk kontrak pintar reguler, OpenZeppelin menyediakan serangkaian perpustakaan praktik terbaik untuk memastikan bahwa kontrak yang dikembangkan berdasarkan itu aman. Namun, pada dasarnya, itu menambahkan "kendala penggunaan keamanan" bagi para pengembang. Dalam perbandingan, kontrak Hook memerlukan "kendala penggunaan keamanan" yang lebih ketat daripada kontrak reguler. Oleh karena itu, agar pemrograman Hook dapat diterapkan secara luas, diperlukan kerangka kerja komprehensif: ini memerlukan lingkungan eksekusi yang aman, paradigma pemrograman yang berlaku untuk Hook, dan kendala penggunaan yang lebih ketat.
Hook Uniswap V4 diimplementasikan melalui kontrak pintar, dan isu keamanannya juga disebabkan oleh keterbatasan kontrak pintar. Apakah ada solusi yang mendukung pemrograman Hook dari level protokol? Artela Aspect memberi kita jawabannya!
Artela adalah jaringan blockchain Layer 1 yang sangat dapat diskalakan dan berkinerja tinggi yang kompatibel dengan EVM, dirancang untuk pengembang membangun aplikasi modular, kaya fitur, dapat diskalakan, dan dapat disesuaikan. Artela mendefinisikan modul yang dapat diprogram baru sebagai ekstensi asli yang disebut Aspect, yang secara inovatif memperkenalkan AOP ke dalam jaringan blockchain. Aspect perlu menentukan titik koneksi, yaitu lokasi di mana Aspect dieksekusi dalam siklus hidup pemrosesan transaksi secara keseluruhan. Mirip dengan callback Hook, titik-titik koneksi mencakup:
Aspect saat ini hanya mendukung TypeScript, dan kode-kodenya dikompilasi menjadi bytecode WebAssembly (WASM) dan didistribusikan ke jaringan Artela. Setelah penyebaran Aspect, pemilik kontrak pintar dapat mengikat kontrak mereka dengan Aspect. Pemilik kontrak pintar didefinisikan sebagai alamat akun eksternal (EOA) yang dapat melewati pemeriksaan isOwner(alamat) mengembalikan (bool) dalam kontrak pintar.
Selanjutnya, transaksi berikutnya yang memanggil kontrak pintar akan ditangani oleh Aspect, seperti yang ditunjukkan dalam diagram di bawah ini:
Sebagai implementasi Hooks tingkat protokol, Aspek Artela memiliki keunggulan besar dibandingkan dengan Hooks Uniswap V4:
Pertama, Artela Aspects menggunakan WASM untuk menjalankan kode-kodenya, dan efisiensi eksekusinya beberapa tingkat lebih tinggi daripada EVM;
Kedua, Aspek Artela dapat mengaitkan seluruh siklus hidup transaksi, bukan hanya logika inti dari DeFi, dan dapat membangun DApps dengan fungsi yang lebih kaya;
Akhirnya, dan yang paling penting, Artela Aspects berjalan secara independen dalam lingkungan sandbox yang aman. Isolasi ini memastikan bahwa eksekusi Aspects tidak akan memengaruhi keamanan eksekusi kontrak.
Isolasi Aspek Artela membatasi panggilan saling antara kontrak Hook sebagai kontrak normal dan kontrak eksternal lainnya, menyelesaikan masalah keras kepala tentang kontrol akses dan verifikasi input Uniswap V4 Hooks. Untuk kontrak DeFi seperti Uniswap, Anda dapat menikmati pengalaman Hook yang lebih cepat, lebih kuat, dan lebih aman dengan mendeploynya ke Artela.
Sebagai peserta dan pemimpin penting dalam industri DeFi, Uniswap telah memainkan peran penting dalam mendorong kemajuan industri dan meningkatkan fungsionalitas. Pengenalan Hooks di Uniswap V4 tanpa ragu menetapkan arah pengembangan DEX dan dengan antusias ditiru oleh para penggantinya.
Namun, Uniswap V4 Hooks terbatas oleh kendala inherent dari kontrak pintar. Terlepas dari seberapa kuat desain protokolnya dan seberapa komprehensif toolkitnya, itu tidak dapat secara fundamental mencegah invokasi saling antara kontrak Hook dan kontrak eksternal, menciptakan potensi kerentanan keamanan.
Artela, sebagai jaringan blockchain Layer 1 yang kompatibel dengan EVM dan berkinerja tinggi, telah merancang Aspect untuk berjalan secara independen dalam WASM sejak awal protokol, dengan dukungan native untuk pemrograman Hook. Ini sangat meningkatkan keamanan, memberikan solusi canggih untuk protokol DeFi yang mempertimbangkan keamanan sebagai hal yang sangat penting.
Artikel ini awalnya berjudul "Evolusi Kait DeFi: Dari Keamanan Kontrak Uniswap V4 ke Protokol Asli Arela" direproduksi dari [Web3 Babi]. Semua hak cipta milik penulis asli [web3 Zhu Bold]. Jika Anda keberatan dengan mencetak ulang, silakan hubungi Pintu Belajartim, tim akan menanganinya secepat mungkin.
Penafian: Pandangan dan pendapat yang terdapat dalam artikel ini hanya mewakili pandangan pribadi penulis dan tidak merupakan saran investasi apa pun.
Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.
Hooks, atau Hook Programming, adalah model pemrograman yang memungkinkan pengembang untuk menyisipkan kode kustom ke dalam jalur eksekusi dari suatu sistem, aplikasi, atau perpustakaan melalui Hooks, yang merupakan fungsi atau blok kode yang telah ditentukan sebelumnya. Tidak perlu memodifikasi kode asli. Hooks sering digunakan dalam berbagai lingkungan dan kerangka pemrograman, seperti sistem operasi, kerangka kerja dan perpustakaan, pengembangan web, dan sistem plug-in.
Dengan menggunakan Hooks, pengembang dapat meningkatkan skalabilitas dan customisasi program tanpa harus memodifikasi kode asli untuk setiap perubahan atau kebutuhan perluasan, yang membantu menjaga kode tetap bersih dan stabil. Hooks menyediakan metode implementasi yang elegan untuk ekstensi perangkat lunak dan merupakan model pemrograman yang sangat berguna dalam desain perangkat lunak.
Secara khusus, AOP (Aspect-oriented Programming) sering dibandingkan dengan pemrograman Hook. AOP adalah paradigma pemrograman modular yang mengimplementasikan kekhawatiran cross-cutting, dan tujuannya bukan untuk mengubah logika bisnis utama. Ini meningkatkan atau memodifikasi fungsionalitas jika diperlukan. Saya tidak akan mengembangkan AOP secara detail di sini. Anda dapat dengan mudah menganggap AOP sebagai abstraksi tingkat yang lebih tinggi dari pemrograman HooK.
Pada Juni 2023, Uniswap mengumumkan dan mempublikasikan versi draf dari white paper Uniswap V4. Fitur penting dari Uniswap V4 adalah pengenalan Hooks.
Hooks telah banyak digunakan dalam sistem keuangan Web2, karena sistem-sistem ini biasanya membutuhkan tingkat kustomisasi dan skalabilitas yang tinggi. Skenario yang disesuaikan, seperti saat memproses transaksi, menggunakan Hooks untuk menyisipkan logika verifikasi tambahan sebelum dan setelah eksekusi transaksi, seperti verifikasi sekunder, deteksi kontrol risiko, dan strategi anti pencucian uang (AML). Skenario skalabilitas meliputi mengintegrasikan dengan API eksternal atau mikro layanan melalui Hooks untuk memperluas fungsi-fungsi baru dalam sistem keuangan, seperti layanan otentikasi identitas, konversi kurs, gateway pembayaran, dll. Namun dengan memperkenalkan Hooks ke DeFi, Uniswap telah menetapkan preseden.
Uniswap V4 Hooks pada dasarnya adalah kontrak eksternal yang dibuat dan ditentukan oleh para pengembang. Ketika sebuah kolam likuiditas dibuat, Anda dapat memilih untuk mengikat kontrak Hook. Selanjutnya, kolam likuiditas akan memanggil kontrak Hook yang sebelumnya terikat untuk melakukan operasi yang ditentukan pada berbagai tahap siklus hidup, menyediakan tingkat kustomisasi yang tinggi. Pengembang dapat menggunakan Hook Uniswap untuk memenuhi skenario perdagangan yang lebih personal dan membangun DApps dengan fungsi yang lebih kaya, seperti:
Saat ini, Uniswap V4 mendukung empat kelompok panggilan Hook, setiap kelompok berisi sepasang panggilan:
Diagram berikut menggambarkan proses Hook sebelum/dan setelah Swap seperti yang disajikan dalam whitepaper. Dapat diamati bahwa sebelum dan setelah mengeksekusi swap, pertama-tama memeriksa apakah bendera yang sesuai dari Hook pool likuiditas diaktifkan. Jika diaktifkan, maka akan memanggil fungsi yang sesuai dari kontrak Hook.
Hook ini dapat dieksekusi sebelum perdagangan dimulai dan setelah perdagangan berakhir, memungkinkan fungsionalitas yang mirip dengan pesanan limit on-chain. Pengguna menempatkan pesanan limit pada kontrak Hook, dan kemudian menggunakan oracle kustom atau dikelola dalam panggilan afterSwap untuk menentukan apakah harga memenuhi batas. Jika ya, transaksi akan dieksekusi. Jika tidak, transaksi akan dibatalkan.
Uniswap V4 sangat erat mengikat likuiditas pada pengembangan DApp itu sendiri melalui Hooks. Ini meningkatkan fungsi DApp dan juga meningkatkan efek jaringan Uniswap, menjadikannya infrastruktur dasar dari seluruh ekosistem DeFi.
Tim BlockSec telah mengeksplorasi risiko keamanan dari mekanisme Hooks di Uniswap V4. Selain fakta bahwa kontrak Hook itu sendiri bersifat jahat, kontrak Hook yang baik hati juga sangat rentan terhadap kerentanan. Tim BlockSec menganalisis repositori Awesome Uniswap v4 Hooks (hash komit 3a0a444922f26605ec27a41929f3ced924af6075) dan menemukan bahwa lebih dari 30% proyek di repositori tersebut rentan. Kerentanan ini terutama berasal dari interaksi risiko antara Hook, PoolManager, dan pihak ketiga eksternal, dan dapat dibagi menjadi dua kategori utama:
Meskipun kontrol akses yang diperlukan ke fungsi eksternal/publik yang sensitif diimplementasikan dengan benar dan parameter input diverifikasi untuk mengurangi risiko keamanan yang terkait dengan dua jenis Hooks di atas, kerentanan kontrak itu sendiri tidak dapat sepenuhnya dihindari, terutama jika Hook yang dapat ditingkatkan. Jika kontrak diimplementasikan, Anda mungkin juga menghadapi masalah terkait yang mirip dengan kerentanan UUPSUpgradeable milik OpenZeppelin.
Alasannya terletak pada kenyataan bahwa pemrograman Hook meningkatkan kompleksitas kontrak pintar, dengan demikian memperbesar permukaan serangan. Untuk kontrak pintar reguler, OpenZeppelin menyediakan serangkaian perpustakaan praktik terbaik untuk memastikan bahwa kontrak yang dikembangkan berdasarkan itu aman. Namun, pada dasarnya, itu menambahkan "kendala penggunaan keamanan" bagi para pengembang. Dalam perbandingan, kontrak Hook memerlukan "kendala penggunaan keamanan" yang lebih ketat daripada kontrak reguler. Oleh karena itu, agar pemrograman Hook dapat diterapkan secara luas, diperlukan kerangka kerja komprehensif: ini memerlukan lingkungan eksekusi yang aman, paradigma pemrograman yang berlaku untuk Hook, dan kendala penggunaan yang lebih ketat.
Hook Uniswap V4 diimplementasikan melalui kontrak pintar, dan isu keamanannya juga disebabkan oleh keterbatasan kontrak pintar. Apakah ada solusi yang mendukung pemrograman Hook dari level protokol? Artela Aspect memberi kita jawabannya!
Artela adalah jaringan blockchain Layer 1 yang sangat dapat diskalakan dan berkinerja tinggi yang kompatibel dengan EVM, dirancang untuk pengembang membangun aplikasi modular, kaya fitur, dapat diskalakan, dan dapat disesuaikan. Artela mendefinisikan modul yang dapat diprogram baru sebagai ekstensi asli yang disebut Aspect, yang secara inovatif memperkenalkan AOP ke dalam jaringan blockchain. Aspect perlu menentukan titik koneksi, yaitu lokasi di mana Aspect dieksekusi dalam siklus hidup pemrosesan transaksi secara keseluruhan. Mirip dengan callback Hook, titik-titik koneksi mencakup:
Aspect saat ini hanya mendukung TypeScript, dan kode-kodenya dikompilasi menjadi bytecode WebAssembly (WASM) dan didistribusikan ke jaringan Artela. Setelah penyebaran Aspect, pemilik kontrak pintar dapat mengikat kontrak mereka dengan Aspect. Pemilik kontrak pintar didefinisikan sebagai alamat akun eksternal (EOA) yang dapat melewati pemeriksaan isOwner(alamat) mengembalikan (bool) dalam kontrak pintar.
Selanjutnya, transaksi berikutnya yang memanggil kontrak pintar akan ditangani oleh Aspect, seperti yang ditunjukkan dalam diagram di bawah ini:
Sebagai implementasi Hooks tingkat protokol, Aspek Artela memiliki keunggulan besar dibandingkan dengan Hooks Uniswap V4:
Pertama, Artela Aspects menggunakan WASM untuk menjalankan kode-kodenya, dan efisiensi eksekusinya beberapa tingkat lebih tinggi daripada EVM;
Kedua, Aspek Artela dapat mengaitkan seluruh siklus hidup transaksi, bukan hanya logika inti dari DeFi, dan dapat membangun DApps dengan fungsi yang lebih kaya;
Akhirnya, dan yang paling penting, Artela Aspects berjalan secara independen dalam lingkungan sandbox yang aman. Isolasi ini memastikan bahwa eksekusi Aspects tidak akan memengaruhi keamanan eksekusi kontrak.
Isolasi Aspek Artela membatasi panggilan saling antara kontrak Hook sebagai kontrak normal dan kontrak eksternal lainnya, menyelesaikan masalah keras kepala tentang kontrol akses dan verifikasi input Uniswap V4 Hooks. Untuk kontrak DeFi seperti Uniswap, Anda dapat menikmati pengalaman Hook yang lebih cepat, lebih kuat, dan lebih aman dengan mendeploynya ke Artela.
Sebagai peserta dan pemimpin penting dalam industri DeFi, Uniswap telah memainkan peran penting dalam mendorong kemajuan industri dan meningkatkan fungsionalitas. Pengenalan Hooks di Uniswap V4 tanpa ragu menetapkan arah pengembangan DEX dan dengan antusias ditiru oleh para penggantinya.
Namun, Uniswap V4 Hooks terbatas oleh kendala inherent dari kontrak pintar. Terlepas dari seberapa kuat desain protokolnya dan seberapa komprehensif toolkitnya, itu tidak dapat secara fundamental mencegah invokasi saling antara kontrak Hook dan kontrak eksternal, menciptakan potensi kerentanan keamanan.
Artela, sebagai jaringan blockchain Layer 1 yang kompatibel dengan EVM dan berkinerja tinggi, telah merancang Aspect untuk berjalan secara independen dalam WASM sejak awal protokol, dengan dukungan native untuk pemrograman Hook. Ini sangat meningkatkan keamanan, memberikan solusi canggih untuk protokol DeFi yang mempertimbangkan keamanan sebagai hal yang sangat penting.
Artikel ini awalnya berjudul "Evolusi Kait DeFi: Dari Keamanan Kontrak Uniswap V4 ke Protokol Asli Arela" direproduksi dari [Web3 Babi]. Semua hak cipta milik penulis asli [web3 Zhu Bold]. Jika Anda keberatan dengan mencetak ulang, silakan hubungi Pintu Belajartim, tim akan menanganinya secepat mungkin.
Penafian: Pandangan dan pendapat yang terdapat dalam artikel ini hanya mewakili pandangan pribadi penulis dan tidak merupakan saran investasi apa pun.
Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.