ERC-4626 adalah sebuah brankas ter-tokenisasi dengan satu token dasar EIP-20.
Pertama-tama, ini adalah proposal berbasis ERC-20 dan sepenuhnya kompatibel dengannya.
Kedua, pahami konsep vault, yang bukanlah sebuah perbendaharaan. Perbendaharaan yang saat ini ada di pasar pada dasarnya adalah dompet kontrak, sebagian besar adalah Gnosis Safe, yang utamanya menyediakan fungsi masuk dan keluar dana yang aman. Tetapi bagi sebuah organisasi, selain dari arus masuk dan keluar dana, arus dana juga dapat menghasilkan pendapatan.
Motivasi dari proposal ini: Kurangnya standar untuk vault ter-tokenisasi telah mengakibatkan berbagai detail implementasi dari banyak vault di pasar, seperti pasar peminjaman, agregator, token yang menghasilkan bunga, dll. Hal ini membuat integrasi agregator dan plugin pada tingkat protokol menjadi sulit, rentan terhadap kesalahan, dan pemborosan sumber daya pengembangan.
Ketika status saat ini dari proposal ini adalah Final, itu berarti itu adalah standar yang relatif stabil.
Token yang mengikuti ERC-4626 harus sepenuhnya mengimplementasikan ERC-20, yang digunakan untuk mewakili saham. Berikut adalah beberapa konsep sederhana.
Slippage adalah perbedaan antara harga perdagangan yang diharapkan dan harga eksekusi aktual. Slippage terjadi ketika ada penundaan antara menempatkan perdagangan dan mengeksekusinya, dan harga aset yang diperdagangkan berubah.
Sebagai contoh, jika Anda menemukan 20 ETH dan 80 USDT di kolam AMM, harga ETH yang diharapkan adalah 4 USDT/ETH. Namun, jika Anda berencana menghabiskan 20 USDT untuk swap di kolam, Anda hanya akan mendapatkan 4 ETH daripada 5 ETH yang diharapkan, yang berarti Anda mengalami kerugian slippage sebesar 1 USDT/ETH. Harga pembelian aktual Anda akan menjadi 5 USDT, bukan 4 USDT yang diharapkan.
Selip terutama umum terjadi di pasar yang bergerak cepat atau aset dengan volatilitas tinggi, serta aset ekor panjang dengan likuiditas terbatas. Terlepas dari itu, hal ini memiliki dampak signifikan pada kinerja perdagangan dan penting untuk mempertimbangkan selip saat melakukan perdagangan.
Kode kontrak berasal dari perpustakaan kode kontrak pintar OpenZeppelin:
Kontrak ERC-4626 mewarisi dari ERC-20. Bagian ini tidak akan diringkas. Ini juga merupakan kontrak abstrak itu sendiri. Antarmuka yang harus diterapkan kontrak adalah sebagai berikut:
Antarmuka sangat kaya, sebagian besar relatif sederhana dan dapat dibagi menjadi dua kategori: baca dan tulis.
Antarmuka utama untuk menulis data adalah deposit, mint, withdraw, dan redeem.
Bahkan, karena adanya slippage, menggunakan metode pratinjau untuk melihat angka yang diharapkan mungkin tidak akurat, yang juga merupakan masalah umum di industri dan dapat menyebabkan beberapa masalah keamanan, yang akan dibahas nanti.
Beberapa metode pratinjau yang disebutkan sebelumnya, serta convertToShares publik dan convertToAssets, sebenarnya memanggil metode _convertToShares dan _convertToAssets secara internal.
Kedua metode inti ini adalah untuk menghitung hubungan proporsional antara aset dan saham. Variabel yang terlibat termasuk pasokan saham, total aset saat ini, jumlah titik desimal, dan metode pembulatan titik desimal.
Di atas adalah implementasi dasar kontrak abstrak ERC-4626. Kontrak brankas aktual jauh lebih rumit daripada itu.
Untuk kontrak brankas, ada dua fungsi yang relatif penting untuk diimplementasikan. Satu adalah fungsi deposit dan penarikan, konversi aset dan saham; yang lain adalah cara untuk mendapatkan pendapatan, yang akan dijelaskan dengan contoh di bawah ini.
Sama seperti beberapa EIP populer lainnya, ERC-4626 juga memiliki ekosistem aliansi ( https://erc4626.info/) dikelola oleh personel yang berdedikasi, yang mengumpulkan beberapa protokol pinjaman dan aplikasi yang saat ini ada di pasaran yang kompatibel dengan ERC-4626, dan ada juga berita, perpustakaan sumber terbuka, keamanan, dan informasi lainnya. Jika vault Anda disesuaikan dengan ERC-4626, Anda juga dapat mengirimkan aplikasi di sana.
Di bawah ini kami menganalisis contoh aplikasi, brankas AladdinCRVV2 Aladdin DAOhttps://concentrator.aladdin.club/vaults/Aladdin DAO memiliki banyak kontrak vault, dan ini hanya salah satunya yang lebih aktif.
The vault earns income by staking cvxCRV tokens.
(https://etherscan.io/address/0x2b95A1Dcc3D405535f9ed33c219ab38E8d7e0884. Dan Anda dapat memeriksanya melalui kode github bahwa versi sebelumnya tidak kompatibel dengan ERC-4626
Di atas adalah analisis dasar dari kontrak vault dengan fungsi yang relatif kaya. Intinya adalah memasang aset untuk mendapatkan bunga. Mengapa ini dirancang seperti ini? Alasan utamanya terletak pada desain kontrak cvxCrvStaking. Deskripsi pendapatan dari memasang cvxCRV adalah “Dengan memasang cvxCRV, Anda akan mendapatkan imbalan biasa dari veCRV (pembagian biaya pengelolaan 3crv dari Curve + setiap airdrop), ditambah bagian dari 10% dari pendapatan CRV yang ditingkatkan dari Convex LPs, dan juga token CVX di atas itu.” Semakin banyak token, semakin besar manfaatnya.
Untuk vault ERC-4626, isu keamanan utama adalah perlindungan terhadap serangan inflasi.
Ketika seorang pengguna mendepositokan token, sesuai dengan formula perhitungan bagi hasil (shares = aset * totalSuplai / totalAset), hasil perhitungannya memiliki titik desimal dan umumnya dibulatkan ke bawah.
Seperti yang Anda lihat dari gambar di bawah, ketika seorang pengguna mendepositkan 500 token dalam aset, jumlah aset yang hilang karena pembulatan desimal bergantung pada nilai tukar (korespondensi antara per saham dan token aset). Jika nilai tukar adalah seperti kurva oranye, kita mendapatkan kurang dari 1 saham dan kehilangan 100%. Namun, jika nilai tukar adalah seperti kurva hijau dan kita mendapatkan 5000 saham, kerugian pembulatan terbatas hingga maksimum 0.02%.
Kemudian jika kita fokus pada membatasi kerugian maksimal hingga 0,5%, kita perlu mengakuisisi setidaknya 200 saham. Tingkat hijau hanya memerlukan 20 token, tetapi tingkat oranye memerlukan 200.000 token.
Melalui beberapa contoh, dapat dianalisis bahwa kurva biru dan hijau lebih aman daripada kurva kuning dan oranye, dan dirancang untuk menjadi brankas yang lebih aman.
Oleh karena itu, metode utama serangan inflasi adalah menggunakan cara tertentu untuk memindahkan kurva tingkat bunga ke kanan, menyebabkan sejumlah kecil deposito kehilangan bagian mereka, sehingga mencapai tujuan serangan.
Serangan inflasi terutama melalui donasi.
Ada tiga cara untuk mempertahankan diri dari serangan:
Implementasi khusus adalah dengan menulis ulang metode _decimalsOffset() dari kode pustaka standar yang disediakan oleh OpenZeppelin. Metode ini tidak memerlukan pengaturan selip atau menyuntikkan dana awal yang cukup. Ini adalah cara yang sangat baik untuk melawan serangan inflasi.
Sebagai proposal vault yang relatif dasar, RC-4626 tidak dapat memenuhi semua kebutuhan. Beberapa proposal juga telah menskalakannya, seperti ERC-7535 dan EIP-7540.
Seperti yang disebutkan sebelumnya, ERC-4626 hanya dapat menggunakan ERC-20 sebagai aset dasar. Proposal ini utamanya memungkinkan aset asli digunakan sebagai aset dasar, seperti ETH di vault.
Perluasan ini untuk ERC-4626 memperkenalkan dukungan untuk proses deposit dan penarikan asinkron (yang disebut 'permintaan'). Ini mencakup metode baru untuk memulai dan memeriksa status dari permintaan ini. Metode yang sudah ada dari ERC-4626, seperti deposit, mint, withdraw, dan redeem, digunakan untuk mengeksekusi permintaan yang dapat diklaim. Tergantung pada pihak yang mengimplementasikan untuk menambahkan proses asinkron untuk deposit, penarikan, atau keduanya.
Potensi kasus penggunaan:
Di atas adalah analisis lengkap dari ERC-4626.
Berdasarkan alasan historis, banyak vault saat ini di pasar tidak mematuhi ERC-4626 dan terus beroperasi, seperti dForce, tetapi mereka tidak dapat diterapkan secara lebih luas. Beberapa vault sudah ditingkatkan untuk mematuhi ERC-4626, seperti beberapa kontrak dari Aladdin DAO (.https://github.com/AladdinDAO/deployments/blob/main/deployments.mainnet.md).
Selain mendapatkan bunga melalui staking, aplikasi vault juga dapat meminjamkan saham sebagai jaminan atau meng-stake mereka lagi untuk menghasilkan pendapatan. Selain itu, penggalangan dana melalui vault juga merupakan skenario aplikasi yang baik, karena beberapa fungsi dasarnya dapat memberikan dukungan yang sangat baik.
Essensi dari proposal ini adalah untuk meningkatkan efisiensi integrasi antara vault dan ekosistem DeFi, serta mengurangi biaya pengembangan. Peran dari vault itu sendiri masih memiliki lebih banyak ruang untuk eksplorasi seiring berkembangnya pasar DeFi.
ERC-4626 adalah sebuah brankas ter-tokenisasi dengan satu token dasar EIP-20.
Pertama-tama, ini adalah proposal berbasis ERC-20 dan sepenuhnya kompatibel dengannya.
Kedua, pahami konsep vault, yang bukanlah sebuah perbendaharaan. Perbendaharaan yang saat ini ada di pasar pada dasarnya adalah dompet kontrak, sebagian besar adalah Gnosis Safe, yang utamanya menyediakan fungsi masuk dan keluar dana yang aman. Tetapi bagi sebuah organisasi, selain dari arus masuk dan keluar dana, arus dana juga dapat menghasilkan pendapatan.
Motivasi dari proposal ini: Kurangnya standar untuk vault ter-tokenisasi telah mengakibatkan berbagai detail implementasi dari banyak vault di pasar, seperti pasar peminjaman, agregator, token yang menghasilkan bunga, dll. Hal ini membuat integrasi agregator dan plugin pada tingkat protokol menjadi sulit, rentan terhadap kesalahan, dan pemborosan sumber daya pengembangan.
Ketika status saat ini dari proposal ini adalah Final, itu berarti itu adalah standar yang relatif stabil.
Token yang mengikuti ERC-4626 harus sepenuhnya mengimplementasikan ERC-20, yang digunakan untuk mewakili saham. Berikut adalah beberapa konsep sederhana.
Slippage adalah perbedaan antara harga perdagangan yang diharapkan dan harga eksekusi aktual. Slippage terjadi ketika ada penundaan antara menempatkan perdagangan dan mengeksekusinya, dan harga aset yang diperdagangkan berubah.
Sebagai contoh, jika Anda menemukan 20 ETH dan 80 USDT di kolam AMM, harga ETH yang diharapkan adalah 4 USDT/ETH. Namun, jika Anda berencana menghabiskan 20 USDT untuk swap di kolam, Anda hanya akan mendapatkan 4 ETH daripada 5 ETH yang diharapkan, yang berarti Anda mengalami kerugian slippage sebesar 1 USDT/ETH. Harga pembelian aktual Anda akan menjadi 5 USDT, bukan 4 USDT yang diharapkan.
Selip terutama umum terjadi di pasar yang bergerak cepat atau aset dengan volatilitas tinggi, serta aset ekor panjang dengan likuiditas terbatas. Terlepas dari itu, hal ini memiliki dampak signifikan pada kinerja perdagangan dan penting untuk mempertimbangkan selip saat melakukan perdagangan.
Kode kontrak berasal dari perpustakaan kode kontrak pintar OpenZeppelin:
Kontrak ERC-4626 mewarisi dari ERC-20. Bagian ini tidak akan diringkas. Ini juga merupakan kontrak abstrak itu sendiri. Antarmuka yang harus diterapkan kontrak adalah sebagai berikut:
Antarmuka sangat kaya, sebagian besar relatif sederhana dan dapat dibagi menjadi dua kategori: baca dan tulis.
Antarmuka utama untuk menulis data adalah deposit, mint, withdraw, dan redeem.
Bahkan, karena adanya slippage, menggunakan metode pratinjau untuk melihat angka yang diharapkan mungkin tidak akurat, yang juga merupakan masalah umum di industri dan dapat menyebabkan beberapa masalah keamanan, yang akan dibahas nanti.
Beberapa metode pratinjau yang disebutkan sebelumnya, serta convertToShares publik dan convertToAssets, sebenarnya memanggil metode _convertToShares dan _convertToAssets secara internal.
Kedua metode inti ini adalah untuk menghitung hubungan proporsional antara aset dan saham. Variabel yang terlibat termasuk pasokan saham, total aset saat ini, jumlah titik desimal, dan metode pembulatan titik desimal.
Di atas adalah implementasi dasar kontrak abstrak ERC-4626. Kontrak brankas aktual jauh lebih rumit daripada itu.
Untuk kontrak brankas, ada dua fungsi yang relatif penting untuk diimplementasikan. Satu adalah fungsi deposit dan penarikan, konversi aset dan saham; yang lain adalah cara untuk mendapatkan pendapatan, yang akan dijelaskan dengan contoh di bawah ini.
Sama seperti beberapa EIP populer lainnya, ERC-4626 juga memiliki ekosistem aliansi ( https://erc4626.info/) dikelola oleh personel yang berdedikasi, yang mengumpulkan beberapa protokol pinjaman dan aplikasi yang saat ini ada di pasaran yang kompatibel dengan ERC-4626, dan ada juga berita, perpustakaan sumber terbuka, keamanan, dan informasi lainnya. Jika vault Anda disesuaikan dengan ERC-4626, Anda juga dapat mengirimkan aplikasi di sana.
Di bawah ini kami menganalisis contoh aplikasi, brankas AladdinCRVV2 Aladdin DAOhttps://concentrator.aladdin.club/vaults/Aladdin DAO memiliki banyak kontrak vault, dan ini hanya salah satunya yang lebih aktif.
The vault earns income by staking cvxCRV tokens.
(https://etherscan.io/address/0x2b95A1Dcc3D405535f9ed33c219ab38E8d7e0884. Dan Anda dapat memeriksanya melalui kode github bahwa versi sebelumnya tidak kompatibel dengan ERC-4626
Di atas adalah analisis dasar dari kontrak vault dengan fungsi yang relatif kaya. Intinya adalah memasang aset untuk mendapatkan bunga. Mengapa ini dirancang seperti ini? Alasan utamanya terletak pada desain kontrak cvxCrvStaking. Deskripsi pendapatan dari memasang cvxCRV adalah “Dengan memasang cvxCRV, Anda akan mendapatkan imbalan biasa dari veCRV (pembagian biaya pengelolaan 3crv dari Curve + setiap airdrop), ditambah bagian dari 10% dari pendapatan CRV yang ditingkatkan dari Convex LPs, dan juga token CVX di atas itu.” Semakin banyak token, semakin besar manfaatnya.
Untuk vault ERC-4626, isu keamanan utama adalah perlindungan terhadap serangan inflasi.
Ketika seorang pengguna mendepositokan token, sesuai dengan formula perhitungan bagi hasil (shares = aset * totalSuplai / totalAset), hasil perhitungannya memiliki titik desimal dan umumnya dibulatkan ke bawah.
Seperti yang Anda lihat dari gambar di bawah, ketika seorang pengguna mendepositkan 500 token dalam aset, jumlah aset yang hilang karena pembulatan desimal bergantung pada nilai tukar (korespondensi antara per saham dan token aset). Jika nilai tukar adalah seperti kurva oranye, kita mendapatkan kurang dari 1 saham dan kehilangan 100%. Namun, jika nilai tukar adalah seperti kurva hijau dan kita mendapatkan 5000 saham, kerugian pembulatan terbatas hingga maksimum 0.02%.
Kemudian jika kita fokus pada membatasi kerugian maksimal hingga 0,5%, kita perlu mengakuisisi setidaknya 200 saham. Tingkat hijau hanya memerlukan 20 token, tetapi tingkat oranye memerlukan 200.000 token.
Melalui beberapa contoh, dapat dianalisis bahwa kurva biru dan hijau lebih aman daripada kurva kuning dan oranye, dan dirancang untuk menjadi brankas yang lebih aman.
Oleh karena itu, metode utama serangan inflasi adalah menggunakan cara tertentu untuk memindahkan kurva tingkat bunga ke kanan, menyebabkan sejumlah kecil deposito kehilangan bagian mereka, sehingga mencapai tujuan serangan.
Serangan inflasi terutama melalui donasi.
Ada tiga cara untuk mempertahankan diri dari serangan:
Implementasi khusus adalah dengan menulis ulang metode _decimalsOffset() dari kode pustaka standar yang disediakan oleh OpenZeppelin. Metode ini tidak memerlukan pengaturan selip atau menyuntikkan dana awal yang cukup. Ini adalah cara yang sangat baik untuk melawan serangan inflasi.
Sebagai proposal vault yang relatif dasar, RC-4626 tidak dapat memenuhi semua kebutuhan. Beberapa proposal juga telah menskalakannya, seperti ERC-7535 dan EIP-7540.
Seperti yang disebutkan sebelumnya, ERC-4626 hanya dapat menggunakan ERC-20 sebagai aset dasar. Proposal ini utamanya memungkinkan aset asli digunakan sebagai aset dasar, seperti ETH di vault.
Perluasan ini untuk ERC-4626 memperkenalkan dukungan untuk proses deposit dan penarikan asinkron (yang disebut 'permintaan'). Ini mencakup metode baru untuk memulai dan memeriksa status dari permintaan ini. Metode yang sudah ada dari ERC-4626, seperti deposit, mint, withdraw, dan redeem, digunakan untuk mengeksekusi permintaan yang dapat diklaim. Tergantung pada pihak yang mengimplementasikan untuk menambahkan proses asinkron untuk deposit, penarikan, atau keduanya.
Potensi kasus penggunaan:
Di atas adalah analisis lengkap dari ERC-4626.
Berdasarkan alasan historis, banyak vault saat ini di pasar tidak mematuhi ERC-4626 dan terus beroperasi, seperti dForce, tetapi mereka tidak dapat diterapkan secara lebih luas. Beberapa vault sudah ditingkatkan untuk mematuhi ERC-4626, seperti beberapa kontrak dari Aladdin DAO (.https://github.com/AladdinDAO/deployments/blob/main/deployments.mainnet.md).
Selain mendapatkan bunga melalui staking, aplikasi vault juga dapat meminjamkan saham sebagai jaminan atau meng-stake mereka lagi untuk menghasilkan pendapatan. Selain itu, penggalangan dana melalui vault juga merupakan skenario aplikasi yang baik, karena beberapa fungsi dasarnya dapat memberikan dukungan yang sangat baik.
Essensi dari proposal ini adalah untuk meningkatkan efisiensi integrasi antara vault dan ekosistem DeFi, serta mengurangi biaya pengembangan. Peran dari vault itu sendiri masih memiliki lebih banyak ruang untuk eksplorasi seiring berkembangnya pasar DeFi.