Penulis asli: Jarrod Watts
Kompilasi asli: Frank, Berita Pandangan ke Depan
Proposal EIP-7702 terbaru dari Vitalik Buterin mungkin merupakan salah satu perubahan paling berdampak dalam sejarah Ethereum. Artikel ini akan memperkenalkan cara kerja proposal baru ini dan segala hal yang perlu Anda ketahui untuk mengimplementasikannya.
Pertama, proposal EIP-7702 yang baru ternyata sangat singkat, sehingga membingungkan sebagian orang tentang cara kerjanya sebenarnya. Untuk memahami 7702, pertama-tama kita perlu memahami tiga proposal lain yang disebutkan di dalamnya:
EIP-4337
EIP-3074
EIP-5003
Mari kita mulai dengan tujuan umum dari semua proposal ini, "abstraksi akun" - EOA (akun "biasa") di Ethereum sangat buruk, berisiko dan memiliki fungsi yang sangat terbatas, sementara abstraksi akun memungkinkan pengguna menggunakan kontrak pintar sebagai akun untuk menambahkan lebih banyak fitur dan keamanan untuk mengatasi masalah ini.
EIP-4337
EIP-4337, yang diluncurkan di mainnet pada Maret 2023, memungkinkan kontrak pintar ditulis seperti akun sehingga mereka dapat memverifikasi dan mengeksekusi transaksi, sehingga meningkatkan banyak pengalaman pengguna (UX).
Sejak dirilis, EIP-4337 telah diadopsi secara luas, terutama dipimpin oleh Polygon, sementara Base mengalami peningkatan aktivitas selama beberapa bulan terakhir.
Inovasi terbaru terkait EIP-4337 berasal dari ekosistem Coinbase dan Coinbase Smart Wallet, yang didasarkan pada teknologi biometrik dan memiliki pengalaman pengguna yang luar biasa. Saya membuat demo kecil lainnya di ETH Global Sydney akhir pekan lalu untuk mendemonstrasikan hal ini.
Jadi apa yang salah dengan EIP-4337? Mengapa proposal abstrak akun lain hari ini? Karena EOA sejauh ini masih menjadi jenis akun yang paling banyak digunakan.
Selain itu, sebagian besar akun kontrak pintar EIP-4337 dikendalikan oleh satu penandatangan EOA. Berikut adalah contoh kodenya:
Karena tidak ada cara untuk "mengubah" EOA pengguna menjadi akun kontrak pintar, ada solusi langkah tengah yang aneh ini - terutama karena kurangnya dukungan asli untuk menghubungkan akun kontrak pintar di aplikasi Web3, kebanyakan orang saat ini masih menggunakan plug -di dompet seperti MetaMask Gunakan EOA.
EIP-3074
Hal ini membawa kita ke proposal berikutnya: EIP-3074.
Faktanya, proposal ini telah diusulkan sebelum EIP-4337, namun belum digabungkan ke dalam mainnet. Upaya EIP-3074 untuk memberikan lebih banyak kekuatan kepada EOA, memungkinkan mereka untuk mendelegasikan kendali EOA mereka ke kontrak pintar.
Proposal tersebut menguraikan hal berikut, menambahkan dua opcode baru:
AUTH: EOA dapat menghubungi AUTH untuk mengotorisasi kontrak pintar tertentu untuk melakukan operasi atas nama EOA-nya;
AUTHCALL: Kontrak pintar resmi dapat menggunakan AUTHCALL untuk mengeksekusi transaksi untuk EOA;
Hal ini memungkinkan banyak kasus penggunaan yang sama seperti EIP-4337 tanpa mengharuskan setiap pengguna untuk menerapkan kontrak pintar baru. Perbedaan utamanya adalah transaksi tersebut berasal dari EOA pengguna, bukan kontrak baru tanpa riwayat akun pengguna, ETH, NFT, token, dll.
Tanggapan umum terhadap EIP-3074 adalah “Bagaimana jika seseorang membuat kontrak jahat dan pengguna mendelegasikannya kepada mereka?” Lagi pula, mendelegasikan ke kontrak jahat dapat mengakibatkan semua aset kripto di dompet pengguna terkuras habis.
Solusi untuk masalah ini adalah penyedia layanan dompet bahkan tidak mengizinkan pengguna untuk mengotorisasi kontrak apa pun, mereka mungkin menyimpan daftar putih kontrak pintar yang dapat didelegasikan oleh pengguna, dan kontrak apa pun di luar daftar ini tidak akan ditampilkan kepada pengguna.
Poin penting dari delegasi EIP-3074 adalah bahwa delegasi tersebut tidak permanen. "Satu transaksi EOA akan menyebabkan nonce meningkat, sehingga membatalkan otorisasi yang belum selesai."
Pada dasarnya, setelah pengguna melakukan perdagangan baru, pesanan tersebut tidak lagi valid.
EIP-5003
Kami juga sebenarnya tidak ingin memberikan kekuasaan lebih kepada EOA. Lagi pula, tujuan dari proposal ini adalah untuk memindahkan pengguna dari EOA ke akun kontrak pintar, jadi mengapa kami menambahkan fungsionalitas ke EOA?
Ini mengarah pada proposal kami berikutnya: EIP-5003. EIP-5003 menambahkan opcode lain "AUTHUSURP" yang menyebarkan kode di alamat resmi EIP-3074.
Perbedaan antara EIP-3074 dan EIP-5003 adalah:
EIP-3074 adalah delegasi sementara ke kontrak pintar dan dapat dicabut;
EIP-5003 adalah migrasi permanen dari EOA dan "konversi" dari EOA ke akun kontrak pintar;
Masalah besar dengan EIP-3074 + EIP-5003 adalah bahwa ia tidak terlalu kompatibel dengan skema abstraksi akun saat ini melalui EIP-4337, sehingga beberapa komunitas Ethereum khawatir bahwa kami akan "membuat dua ekosistem kode terpisah".
EIP-7702
Hal ini membawa kita pada proposal Vitalik Buterin hari ini: EIP-7702 - dia mengusulkan untuk memodifikasi EIP-3074 agar lebih efisien dan lebih kompatibel dengan EIP-4337, sehingga kita tidak berakhir dengan dua ekosistem abstraksi akun yang terpisah, tetapi juga Pertimbangkan EIP-5003 sebagai langkah selanjutnya dalam migrasi permanen.
EIP-7702 mengusulkan jenis transaksi baru yang menerima bidang contract_code dan tanda tangan, yang menetapkan kode kontrak akun penandatangan ke contract_code saat mulai menjalankan transaksi. Di akhir perdagangan, ticker disetel ulang menjadi kosong.
Ini sama dengan EIP-3074, yang mengimplementasikan fungsi delegasi sementara EOA untuk kontrak pintar. Namun, EIP-7702 tidak memperkenalkan opcode baru (yang memerlukan hard fork), melainkan mendefinisikan fungsi yang akan dipanggil:
AUTH -> panggil "verifikasi" (verifikasi)
AUTHCALL -> panggil "eksekusi"
Secara khusus, itu:
Periksa apakah kode kontrak akun Anda kosong;
Jika kosong, maka diatur ke kode kontrak yang disediakan;
Jalankan transaksi sesuai dengan cara kontrak pintar yang disediakan menangani transaksi;
Kembalikan pengaturan kode kontrak akun ke kosong;
"Kode kontrak" secara harfiah berarti kode kontrak pintar yang disimpan dalam "kode kontrak". Karena EOA sendiri bukan kontrak, kolom ini biasanya kosong. Namun, hal cerdas tentang EIP-7702 adalah ia mengisi sementara beberapa kode kontrak pintar ke dalam bidang ini selama eksekusi transaksi.
Ini adalah cara untuk memberikan perilaku baru kepada EOA Anda (dalam bentuk ticker) untuk mengeksekusi transaksi spesifik ini, langkah selanjutnya adalah menjadikannya perubahan perilaku permanen, cukup pilih "Jangan setel ticker ke setelah perdagangan ditutup" null" .
Salah satu hal terbaik tentang proposal ini adalah bahwa proposal ini sangat kompatibel dengan semua pekerjaan abstraksi akun yang dibuat untuk EIP-4337 hingga saat ini, "kode kontrak yang perlu ditandatangani pengguna sebenarnya bisa berupa kode dompet EIP-4337 yang sudah ada."
Setelah perubahan ini berlaku, EOA pengguna yang ada dapat mengeksekusi kode kontrak pintar apa pun. Dengan tambahan EIP, EOA juga dapat ditingkatkan secara permanen untuk menjalankan kode tertentu.
Seiring waktu, hal ini dapat merevolusi cara kita berinteraksi dengan aplikasi Web3.