Apa Itu ERC-777?
ERC-777 adalah standar token Ethereum untuk aset kripto fungibel yang menambahkan hook transfer, izin operator, data transaksi, dan pemeriksaan penerima kontrak yang lebih aman pada model token dasar.Seperti ERC-20, ERC-777 merepresentasikan unit yang dapat dipertukarkan, dengan nilai dan karakteristik yang sama untuk setiap unit token yang sama.Spesifikasi ERC-777 resmi merupakan standar Ethereum Request for Comments berstatus Final yang dibuat untuk meningkatkan interaksi token fungibel dengan wallet dan smart contract.
Fitur utamanya mencakup fungsi
Apakah ERC-777 Masih Menjadi Standar Aktif?
ERC-777 masih tercantum sebagai standar Final di repositori Ethereum Improvement Proposal resmi.Status Final berarti spesifikasinya telah menyelesaikan proses standardisasi EIP, tetapi tidak menjamin adopsi luas, dukungan library aktif, atau kesesuaiannya untuk setiap token baru.Sebuah library smart contract besar melakukan deprecated pada implementasi ERC-777 di versi 4.9 dan menghapusnya pada versi 5.0.Catatan perubahan OpenZeppelin Contracts terkini mencatat berakhirnya dukungan implementasi, sementara antarmuka standar terkait masih tersedia.
Keputusan library ini tidak membatalkan ERC-777 atau mengubah status Final-nya.Namun, developer sebaiknya tidak mengharapkan implementasi token ERC-777 yang dipelihara dalam versi terkini library tersebut.Kontrak ERC-777 yang sudah ada dapat terus beroperasi sesuai kode yang telah diterapkan, tetapi integrasi baru sebaiknya mengevaluasi perilaku callback, dependensi, audit, dan dukungan ekosistemnya dengan cermat.Mengapa ERC-777 Dibuat?
ERC-777 dibuat untuk mengatasi sejumlah keterbatasan kegunaan dan keamanan yang terkait dengan transfer ERC-20 dasar.Transfer ERC-20 ke kontrak tidak mengharuskan kontrak penerima mengakui atau memproses token tersebut.Akibatnya, token dapat terjebak jika kontrak tidak memiliki fungsi untuk memulihkan atau mencatatnya.Aplikasi ERC-20 juga umumnya menggunakan alur dua langkah: pengguna terlebih dahulu menyetujui spender, lalu spender memanggil
ERC-777 memperkenalkan
Cara Kerja ERC-777
Kontrak ERC-777 menyimpan saldo token dan total suplai, sekaligus menyediakan fungsi standar untuk mengirim, melakukan burn, dan mendelegasikan kendali token.Saat token dikirim, kontrak memeriksa apakah pengirim telah mendaftarkan hook pengirim melalui ERC-1820.Jika ada hook pengirim, token akan memanggilnya sebelum mengubah saldo.Token kemudian mengurangi saldo pengirim dan menambah saldo penerima.Setelah memperbarui saldo, token memeriksa apakah penerima telah mendaftarkan hook penerima dan memanggil hook tersebut jika diwajibkan.Hook dapat menerima perpindahan, menjalankan logika tambahan, atau membatalkan seluruh transaksi.Karena operasinya bersifat atomik, pembatalan oleh hook yang diwajibkan biasanya membatalkan perpindahan token dan semua perubahan state terkait dalam transaksi tersebut.Fungsi Inti ERC-777
Antarmuka ERC-777 mencakup fungsi untuk metadata token, saldo, granularity, operator, transfer, dan burn.Fungsi
Fungsi
Fungsi
Fungsi
Fungsi
Fungsi
Fungsi send
Fungsi
Fungsi operatorSend
Fungsi
Alamat operator, pemegang, penerima, jumlah, dan data disertakan dalam peristiwa standar
Apa Itu Operator ERC-777?
Operator adalah alamat yang diberi otorisasi untuk mengirim atau melakukan burn token ERC-777 atas nama pemegang.Pemegang token selalu menjadi operator untuk saldonya sendiri.Pemegang dapat memberi otorisasi kepada akun atau smart contract lain, lalu mencabut otorisasi tersebut kapan saja.Operator dapat mendukung pembayaran otomatis, pengelolaan akun berbasis kontrak, aktivitas terjadwal, sistem pemulihan, atau alur kerja pendelegasian token lainnya.Berbeda dengan allowance ERC-20 yang dinyatakan dalam angka, otorisasi operator biasa tidak dibatasi pada jumlah token tertentu.Wewenang yang lebih luas ini dapat meningkatkan kemudahan penggunaan, tetapi juga memperbesar potensi kerugian jika operator bertindak jahat atau akunnya disusupi.Wallet sebaiknya menjelaskan dengan jelas bahwa otorisasi operator dapat memberikan kendali berkelanjutan atas saldo pemegang.Operator Default
Token ERC-777 dapat menentukan operator default yang sejak awal diberi otorisasi untuk setiap pemegang.Daftar operator default harus ditetapkan saat kontrak token dibuat dan tidak dapat diperluas atau dikurangi setelahnya berdasarkan standar.Setiap pemegang harus dapat mencabut operator default untuk token miliknya sendiri.Pemegang juga harus dapat memberi otorisasi kembali kepada operator default yang sebelumnya dicabut.Operator default dapat mendukung layanan berskala sistem tanpa mengharuskan setiap pemegang melakukan transaksi otorisasi awal.Namun, operator default menimbulkan pertimbangan kepercayaan penting karena memiliki wewenang luas atas pemegang token sejak awal.Pengguna sebaiknya memeriksa daftar operator default dan memahami tujuannya sebelum menyimpan ERC-777 dalam jumlah signifikan.Hook Pengirim
Hook pengirim ERC-777 disebut
Hook Penerima
Hook penerima ERC-777 disebut
Apa Itu ERC-1820?
ERC-777 bergantung pada ERC-1820 untuk menemukan hook pengirim, hook penerima, dan antarmuka yang didukung.Spesifikasi ERC-1820 menetapkan registry universal tempat sebuah alamat dapat mengumumkan antarmuka yang didukung serta kontrak yang mengimplementasikannya.
Registry ini dapat mewakili antarmuka untuk akun biasa maupun smart contract.Akun dapat mendaftarkan dirinya sebagai implementer atau menunjuk kontrak terpisah untuk menangani antarmuka atas namanya.Sebelum memanggil hook ERC-777, token meminta implementasi pengirim atau penerima yang relevan dari registry.Ketergantungan pada registry ini menambahkan pencarian kontrak eksternal ke operasi ERC-777.Jaringan yang didukung harus memiliki penerapan registry ERC-1820 dan perilaku integrasi yang diharapkan agar implementasi standar dapat berfungsi dengan benar.Peristiwa ERC-777
ERC-777 mendefinisikan peristiwa
Peristiwa
Peristiwa
Peristiwa
Token yang juga mendukung ERC-20 dapat menerbitkan peristiwa ERC-20
Granularity dan Tampilan Desimal
Granularity adalah jumlah token internal terkecil yang diizinkan kontrak ERC-777 untuk dicetak, dikirim, atau di-burn.Nilainya ditetapkan saat kontrak dibuat dan tidak dapat diubah berdasarkan standar.Setiap saldo dan jumlah perpindahan harus merupakan kelipatan granularity token.Sebagian besar token menggunakan granularity satu sehingga setiap unit internal utuh dapat dipindahkan.ERC-777 menetapkan denominasi tampilan sebesar 18 angka desimal relatif terhadap unit internal.Jika token ERC-777 juga menyediakan fungsi
Kompatibilitas ERC-777 dan ERC-20
ERC-777 dirancang agar token dapat mengimplementasikan fungsi ERC-20 bersama antarmuka ERC-777.Standar ERC-20 mendefinisikan fungsi yang umum dikenal, seperti
Fungsi
Allowance ERC-777 vs. ERC-20
ERC-20 umumnya memberikan allowance numerik kepada spender yang membatasi jumlah token yang dapat dipindahkan spender dari pemiliknya.ERC-777 memberikan wewenang kepada operator atas saldo pemegang sampai wewenang tersebut dicabut.Model operator menyediakan peran bernama yang lebih jelas serta mendukung tindakan send dan burn yang distandardisasi.Model allowance dapat memberikan batas jumlah yang lebih sempit, meskipun terkadang pengguna menyetujui jumlah yang jauh lebih besar daripada yang dibutuhkan.Kedua sistem dapat menimbulkan kerugian jika pengguna memberi otorisasi kepada kontrak yang jahat atau disusupi.Wallet sebaiknya menampilkan dengan jelas apakah suatu tindakan membuat allowance tetap, allowance tanpa batas, atau wewenang operator ERC-777.Mencabut satu jenis izin belum tentu mencabut jenis lainnya jika token mendukung kedua standar.Risiko Reentrancy ERC-777
Risiko integrasi ERC-777 yang paling penting berasal dari hook-nya.Hook penerima menjalankan kode kontrak eksternal selama proses transfer token.Kode eksternal tersebut dapat memanggil kembali protokol pengirim sebelum fungsi awal protokol selesai.Perilaku ini disebut reentrancy.Protokol yang rentan dapat menghitung saldo, mengirim token ERC-777, menerima callback, lalu memungkinkan callback mengulangi tindakan menggunakan pencatatan internal yang sudah tidak aktual.Masalah ini dapat terjadi sekalipun protokol memanggil fungsi bergaya ERC-20 karena token ERC-777 yang kompatibel dengan kedua standar dapat tetap memicu hook terdaftar.Developer tidak boleh berasumsi bahwa transfer token fungibel bebas callback hanya karena nama fungsinya menyerupai transfer ERC-20 biasa.Mengurangi Risiko Reentrancy
Protokol sebaiknya memperbarui pencatatan kritisnya sendiri sebelum melakukan pemanggilan token eksternal, jika urutan tersebut sesuai dengan logika yang dimaksud.Protokol sebaiknya menggunakan reentrancy guard yang sesuai pada entry point sensitif.Fungsi terkait harus ditinjau secara bersamaan karena mencegah reentrancy pada satu fungsi belum tentu menutup celah eksploit pada fungsi lain.Protokol sebaiknya memvalidasi kontrak token, bukan menerima aset sembarang dengan perilaku callback yang tidak diketahui.Pengujian sebaiknya mencakup hook pengirim berbahaya, hook penerima berbahaya, perpindahan token bersarang, callback yang dibatalkan, dan reentrancy lintas fungsi.Developer juga sebaiknya meninjau jalur mint dan burn karena hook ERC-777 tidak hanya berlaku pada pengiriman biasa.Audit dapat mengurangi risiko, tetapi tidak dapat menjamin bahwa setiap interaksi callback aman.Perlindungan Penerima dan Batasannya
Pemeriksaan penerima ERC-777 dimaksudkan untuk mengurangi risiko token terjebak secara permanen dalam kontrak yang tidak dapat memprosesnya.Kontrak penerima token melalui
Manfaat ERC-777
ERC-777 dapat memberi tahu kontrak saat menerima token fungibel.ERC-777 dapat menggabungkan transfer dan pemrosesan penerima dalam satu transaksi.ERC-777 memungkinkan pengirim dan penerima menolak perpindahan melalui hook terprogram.ERC-777 mendukung data terlampir yang dapat digunakan aplikasi untuk memahami pembayaran atau tindakan.Model operatornya menyediakan kendali terdelegasi yang distandardisasi dan pencabutan izin yang eksplisit.Pengiriman native ERC-777 mengurangi transfer yang tidak disengaja ke kontrak yang tidak mendaftarkan dukungan penerima token.Kompatibilitas mundur memungkinkan satu token bekerja dengan infrastruktur ERC-20 sekaligus menawarkan perilaku lebih canggih kepada aplikasi yang memahami ERC-777.Keterbatasan ERC-777
Hook membuat smart contract lebih sulit menangani perpindahan token dengan aman.Pencarian ERC-1820 menambahkan dependensi eksternal dan kompleksitas integrasi.Wewenang operator dapat lebih luas daripada yang diperkirakan pengguna.Operator default menimbulkan pertimbangan penting terkait kepercayaan dan izin.Kompatibilitas ganda ERC-20 menimbulkan perilaku berbeda tergantung antarmuka transfer yang digunakan.Aplikasi dapat menghitung transfer dua kali jika memproses peristiwa ERC-777 dan ERC-20 dengan keliru.Banyak alat pengembangan dan aplikasi saat ini terutama berfokus pada ERC-20 sehingga manfaat praktis penerapan ERC-777 berkurang.Penghapusan implementasi ERC-777 yang terpelihara dari library kontrak yang banyak digunakan menambah pekerjaan untuk membuat dan memelihara deployment baru dengan aman.Mengapa Adopsi ERC-777 Terbatas?
Saat ERC-777 diperkenalkan, ERC-20 telah memiliki dukungan luas di berbagai wallet, aplikasi, alat analitik, dan sistem smart contract.Menggantikan efek jaringan tersebut membutuhkan manfaat yang cukup besar untuk membenarkan logika callback dan registry baru.Banyak protokol dibangun berdasarkan perilaku transfer dan allowance ERC-20 yang dapat diprediksi.Hook ERC-777 memperkenalkan pemanggilan eksternal tak terduga ke dalam operasi yang terkadang dianggap integrator hanya sebagai pembaruan saldo sederhana.Bagian motivasi ERC-2612 menyebutkan bahwa ERC-777 menambahkan fungsionalitas substansial yang dapat menimbulkan perilaku tak terduga pada kontrak arus utama.
Developer semakin banyak mengatasi masalah kegunaan tertentu melalui ekstensi ERC-20 yang lebih terbatas, alih-alih mengadopsi siklus transfer yang sepenuhnya berbeda.Karena itu, ERC-777 tetap penting secara teknis, tetapi bukan pilihan standar untuk token fungibel pada sebagian besar proyek Ethereum baru.Haruskah Developer Membuat Token ERC-777 Baru?
Developer sebaiknya terlebih dahulu menentukan fitur ERC-777 mana yang penting bagi token yang diusulkan.Jika tujuan utamanya adalah persetujuan bertanda tangan, ekstensi ERC-20 yang lebih terbatas mungkin menyediakan fitur tersebut tanpa memperkenalkan hook transfer universal.Jika callback penerima diperlukan, developer harus menilai apakah kontrak aplikasi yang dirancang khusus dapat memberikan perilaku yang lebih aman dan eksplisit.Implementasi ERC-777 baru memerlukan peninjauan cermat terhadap spesifikasi lengkap, pendaftaran ERC-1820, hook, operator, peristiwa, mint, burn, dan kompatibilitas ERC-20.Menggunakan kembali implementasi lama yang tidak lagi dipelihara tanpa meninjau perubahan compiler dan asumsi keamanan yang diketahui tidak aman.Sebelum mengelola aset bernilai, kontrak sebaiknya menjalani pengujian unit, fuzz, invarian, dan integrasi secara ekstensif, serta peninjauan keamanan independen.Developer juga sebaiknya memastikan wallet, sistem kustodi, bridge, dan aplikasi terdesentralisasi yang dituju mendukung perilaku callback token tersebut.Cara Pengguna Mengevaluasi Token ERC-777
Langkah pertama adalah memverifikasi alamat kontrak token melalui sumber otoritatif.Langkah kedua adalah memastikan apakah kontrak hanya mendukung ERC-777 atau juga menyediakan fungsi ERC-20.Langkah ketiga adalah memeriksa operator default dan menentukan wewenang yang dimilikinya.Langkah keempat adalah meninjau izin mint, burn, pause, freeze, upgrade, dan administrator.Langkah kelima adalah memastikan apakah kontrak menggunakan proxy yang logikanya dapat berubah setelah pembelian.Langkah keenam adalah memeriksa audit, verifikasi kode sumber, cakupan pengujian, dan riwayat insiden.Langkah ketujuh adalah memeriksa otorisasi operator dan mencabut izin yang tidak lagi diperlukan.Langkah kedelapan adalah memastikan aplikasi penerima secara eksplisit mendukung ERC-777 dan hook-nya.Langkah kesembilan adalah mencoba transaksi kecil sebelum mengirim jumlah yang signifikan.Langkah kesepuluh adalah mengingat bahwa kepatuhan terhadap antarmuka token tidak membuktikan nilai finansial, solvabilitas, atau keamanan investasi.Contoh Pembayaran ERC-777
Misalnya, pengguna ingin membayar kontrak langganan on-chain menggunakan token ERC-777.Kontrak langganan mendaftarkan implementasi
Pengguna memanggil
Selanjutnya, token memanggil hook
Kesalahan Umum ERC-777
Salah satu kesalahan umum adalah menganggap ERC-777 sekadar pengganti ERC-20 yang lebih baru.Kesalahan lainnya adalah memperlakukan transfer token sebagai operasi tanpa callback.Kesalahan ketiga adalah menerima panggilan ke
Kesalahan keenam adalah memproses peristiwa
FAQ
Apa arti ERC-777?
ERC-777 adalah standar token fungibel Ethereum berstatus Final yang menetapkan hook, operator, kolom data, pengiriman token, dan burn token.Apakah ERC-777 fungibel atau nonfungibel?
ERC-777 adalah standar token fungibel yang unit-unit dari token sama dapat dipertukarkan.Apakah ERC-777 masih berlaku?
Ya, proposal resminya masih berstatus Final, meskipun adopsinya terbatas dan sebuah library kontrak besar telah menghapus implementasi ERC-777.Apakah ERC-777 sama dengan ERC-20?
Tidak. ERC-777 menambahkan hook, operator, data terlampir, dan pemeriksaan penerima, meskipun satu token dapat mendukung kedua standar.Apa fitur utama ERC-777?
Fitur yang paling dikenal adalah kemampuannya memberi tahu kontrak pengirim dan penerima yang terdaftar selama perpindahan token.Apa itu tokensReceived?
Apa itu tokensToSend?
Apa itu operator ERC-777?
Operator adalah alamat yang diberi otorisasi untuk mengirim atau melakukan burn token atas nama pemegang.Bisakah operator ERC-777 memindahkan semua token pengguna?
Wewenang operator biasa bukan allowance numerik, sehingga operator yang diberi otorisasi dapat memiliki kendali luas sampai pemegang mencabutnya.Apa itu operator default?
Operator default adalah alamat yang diberi otorisasi untuk setiap pemegang saat token dibuat, meskipun setiap pemegang harus dapat mencabutnya secara pribadi.Mengapa ERC-777 menggunakan ERC-1820?
ERC-1820 memungkinkan token menemukan kontrak yang mengimplementasikan hook pengirim, hook penerima, dan antarmuka token yang didukung.Bisakah token ERC-777 dikirim ke smart contract?
Ya, tetapi pengiriman native ERC-777 harus dibatalkan jika kontrak penerima belum mendaftarkan hook penerima yang diwajibkan.Bisakah token ERC-777 terjebak dalam kontrak?
Pemeriksaan penerima mengurangi risiko ini untuk pengiriman native, tetapi transfer yang kompatibel dengan ERC-20 dan logika penerima yang keliru tetap dapat membuat saldo tidak dapat diakses.Apakah ERC-777 memiliki desimal?
Standar ini menggunakan denominasi tampilan 18 angka desimal, dan fungsi
Apa itu granularity ERC-777?
Granularity adalah jumlah internal terkecil yang dapat dicetak, dikirim, atau di-burn.Mengapa ERC-777 dapat menyebabkan reentrancy?
Hook-nya menjalankan kode kontrak eksternal selama operasi token sehingga implementasi penerima atau pengirim dapat memanggil fungsi lain sebelum pemanggilan awal selesai.Apakah setiap token ERC-777 tidak aman?
Tidak, tetapi setiap integrasi harus menangani callback, izin operator, pencarian ERC-1820, dan logika kontrak khusus token dengan sengaja.Mengapa implementasi ERC-777 dihapus dari OpenZeppelin Contracts?
Implementasi tersebut memiliki adopsi terbatas dan perilaku hook yang kompleks sulit didukung dengan aman sebagai komponen serbaguna.Bisakah token ERC-777 yang sudah ada tetap berfungsi?
Ya, kontrak yang telah diterapkan tetap beroperasi sesuai kodenya, kecuali mekanisme upgrade atau administrasinya sendiri mengubah kontrak tersebut.Haruskah token baru menggunakan ERC-777?
Keputusan bergantung pada apakah hook dan operator memberikan manfaat penting yang sepadan dengan kompleksitas keamanan, integrasi, dan pemeliharaan tambahan.Kesimpulan
ERC-777 adalah standar token fungibel Ethereum berstatus Final yang dirancang untuk meningkatkan interaksi token melalui hook, operator, data transaksi, dan pemeriksaan penerima kontrak.Fungsi
Hook
Anda Mungkin Juga Menyukai
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
POPULER
Mata uang kripto yang sedang tren saat ini dan menarik perhatian pasar yang signifikan
Volume TERATAS
Mata uang kripto dengan volume trading tertinggi
Baru Ditambahkan
Mata uang kripto yang baru saja masuk listing dan tersedia untuk trading

