EIP-7702: Delegasi Kod EOA dan Risikonya
Fahami cara EIP-7702 membolehkan EOA menunjuk kepada kod yang telah digunakan, perkara yang ditandatangani oleh keizinan jenis 4, serta risiko hak akses.
Dalam panduan iniEIP-7702 mengubah laluan pelaksanaan, bukan kunci
Ringkasan ringkas
EIP-7702 membolehkan akaun milik luaran (EOA) menetapkan penanda yang menunjuk kepada kod yang telah digunakan. Alamat dan kuncinya kekal, tetapi panggilan boleh menjalankan kod tersebut dengan kuasa akaun. Piawaian ini tidak menjamin kebenaran terhad atau keselamatan. Semak kod sasaran dan pihak yang mengawalnya sebelum menandatangani.
EIP-7702 mengubah laluan pelaksanaan, bukan kunci
EOA biasa menandatangani transaksi dengan kunci peribadi dan tidak mempunyai kod boleh laksana pada alamat sendiri. EIP-7702 membolehkan akaun menunjuk kepada kod pada alamat lain dan menjalankannya dalam konteks akaun itu. Alamat, baki dan storan masih milik akaun yang mewakilkan. Ini bukan pemindahan kepada kontrak baharu atau penggantian kunci.
Spesifikasi EIP-7702 mentakrifkan transaksi set-code jenis 4 dan senarai keizinan. Panduan Pectra Ethereum.org menerangkan penunjuk kepada kod yang telah digunakan. Label “akaun pintar” tidak menjelaskan pengesahan, pemulihan atau kod sebenar. Semak siapa mengawal kod, boleh menaik tarafnya dan kesannya pada aset serta storan.
Transaksi jenis 4 membawa keizinan yang ditandatangani berasingan
Jenis 4 menggunakan bait 0x04 dan membawa senarai keizinan. Setiap tuple mengandungi ID rantaian, alamat kod sasaran, nonce akaun pemberi kuasa dan tandatangannya. Pihak berkuasa menandatangani keizinan; penghantar menandatangani transaksi luar secara berasingan. Mereka mungkin akaun yang berbeza.
ID rantaian biasanya mengehadkan keizinan kepada satu rangkaian. Nilai 0 membolehkan skop lebih luas pada rantaian yang menyokong EIP-7702, tetapi tidak menjamin kejayaan: nonce dan keadaan akaun masih mesti sepadan. Bandingkan rangkaian, akaun dan alamat penuh pada skrin tandatangan dengan penjelajah blok yang dipercayai. Tuple boleh dilangkau jika semakan gagal.
Dokumentasi transaksi Ethereum.org menyatakan jenis 4 mengandungi senarai keizinan. Transaksi luar masih mempunyai syarat gas dan pembayar yuran. Jenis ini berbeza daripada UserOperation dan paymaster ERC-4337 dalam panduan akaun pintar.
Penanda delegasi menunjuk kepada kod, bukan menyimpan kod
Kod EOA menerima penanda awalan 0xef0100 bersama alamat sasaran. Klien mengenal pasti penanda itu lalu memuatkan kod sasaran semasa panggilan. Maka alamat akaun dan alamat kod berlainan. Kod datang daripada rantaian semasa; alamat sama boleh mempunyai kod lain atau tiada kod pada rantaian yang berbeza.
Kod delegasi berjalan dalam konteks akaun dan boleh menggunakan storannya. Bergantung pada pelaksanaan, ia boleh menghantar ETH atau token, memanggil kontrak luar dan mengubah nilai tersimpan. EIP-7702 tidak mengehadkannya kepada token atau panggilan tertentu secara automatik. Jika sasaran ialah proksi, semak pentadbir dan kuasa naik taraf.
Kod delegasi boleh mempunyai kuasa luas
Pengesahan lemah boleh membenarkan pemindahan aset, kelulusan token, panggilan luar atau perubahan storan. Pertimbangan keselamatan EIP menekankan perlindungan ulangan serta ikatan tandatangan pada sasaran, calldata, nilai ETH dan gas. Tanpanya, penaja mungkin menghantar panggilan lain atau menggagalkan transaksi.
Semak kontrak yang boleh dipanggil, pengesahan tandatangan, pemegang kuasa kecemasan atau naik taraf dan kesepadanan kod dengan sumber disahkan. Lencana audit bukan bukti alamat dan versi dalam permintaan anda telah disemak. Bagi gabungan kelulusan token dan pertukaran, semak kedua-dua panggilan serta had kelulusan pada jumlah perlu.
Transaksi luar yang gagal mungkin meninggalkan delegasi
EIP-7702 memproses senarai keizinan sebelum transaksi luar dilaksanakan. Spesifikasi menyatakan penanda delegasi yang telah diproses tidak dibatalkan jika pelaksanaan kemudian gagal atau revert. Mesej gagal tidak bermakna keadaan akaun kembali ke asal. Semak resit dan kod akaun semasa secara berasingan.
Keizinan boleh berjaya tetapi panggilan kemudian gagal, lalu meninggalkan delegasi aktif walaupun persediaan tidak selesai. Semak hash transaksi, akaun pemberi kuasa, nonce dan penunjuk kod sebelum mencuba lagi; nonce mungkin berubah dan menjadikan tandatangan lama tidak sah.
Memadam delegasi tidak menghapuskan keadaan lain
Keizinan baharu boleh menunjuk kepada kod lain. Keizinan kepada alamat null menghapuskan penanda dan mengosongkan kod akaun. Ia tidak menghapuskan storan, allowance ERC-20, pemindahan selesai atau perubahan kontrak luar. Semak dan batalkan kebenaran token secara berasingan.
Kod baharu mungkin mentafsir storan lama secara berbeza. Semak susun atur storan dan pelan migrasi. Untuk allowance, baca panduan kelulusan dan allowance token. Jika kunci terdedah, memadam kod tidak memulihkannya; rujuk panduan pemulihan dompet.
Semak rantaian, sasaran dan keadaan selepas kegagalan
Pastikan dokumentasi rasmi dompet menyatakan sokongan EIP-7702 pada rangkaian dipilih. Semak ID rantaian, akaun, alamat sasaran, kod disahkan dan pentadbir proksi. Bezakan tandatangan keizinan daripada penghantar dan pembayar transaksi luar; tajaan tidak menjadikan kod selamat.
Jika delegasi aktif, semak penanda dan alamat kod semasa, bukan status transaksi sahaja. Jika tidak sepadan, hentikan panggilan dan kelulusan lain. Untuk gas, lihat panduan yuran Ethereum; untuk nonce dan transaksi tertangguh, lihat panduan transaksi tertangguh.
Bezakan fungsi protokol daripada janji dompet
EIP-7702 menyeragamkan sambungan EOA kepada kod yang digunakan. Penggabungan panggilan, tajaan yuran, kebenaran sesi dan pemulihan bergantung pada kod dan perkhidmatan khusus. Pengumuman mainnet Pectra Ethereum Foundation menerangkan penggantian atau pembatalan keizinan; UserOperation ERC-4337 ialah mekanisme lain.
Label “akaun pintar” tidak memberitahu siapa memegang kunci atau boleh mengubah kod dan pemulihan. Semak pelaksanaan, tetapan dan sokongan dompet sebelum mengubah akaun berisi aset. Panduan ini menerangkan mekanik, bukan mengesyorkan dompet tertentu.
Soalan lazim
Q1Adakah EIP-7702 menjadikan EOA dompet kontrak pintar biasa?
Tidak. EOA boleh mendelegasikan panggilan, tetapi dasar dompet, pemulihan dan kebenaran tertentu tidak ditambah secara automatik.
Q2Adakah kedua-dua tandatangan sama?
Tidak. Akaun pemberi kuasa menandatangani sasaran, ID rantaian dan nonce; penghantar menandatangani transaksi luar secara berasingan.
Q3Adakah memadam delegasi membatalkan kelulusan token?
Tidak. Kontrak token menyimpan allowance secara berasingan. Semak dan batalkannya melalui kontrak token atau aliran dompet dipercayai.
Q4Apakah yang perlu diperiksa pada sasaran delegasi?
Semak alamat dan kod pada rantaian semasa, sumber disahkan, pentadbir naik taraf serta kebenaran terhadap aset dan storan akaun.
Sumber dan bacaan lanjut
Laporkan masalah
Kami akan menyediakan e-mel dengan pautan artikel ini. Mark menerima laporan hanya selepas anda menghantarnya
Semakan pantas
Sudah membaca panduan? Uji diri dengan 3 soalan
Soalan 01
Apakah yang mungkin berlaku jika pelaksanaan luar gagal selepas keizinan diproses?
Pilih jawapan untuk melihat penjelasan
Glosari opsyen
The process that requires an option writer to fulfill the contract after an exercise notice is allocated; it can create or remove an underlying position.
Baca panduan terperinciBid-ask spreadThe gap between the best displayed bid and ask, which is a practical trading cost and a signal of how uncertain an immediate fill may be.
Baca panduan terperinci0DTEAn option that expires on the current trading day; little time remains for the thesis to work, while gamma and execution risk can change quickly.
Baca panduan terperinci