Kami mengembangkan EIP7702Proxy, kontrak proxy ERC-1967 ringan yang dirancang untuk berfungsi sebagai penerusan logika dasar delegasi EIP-7702 untuk EOA... yang mengatasi beberapa tantangan unik untuk akun yang didelegasikan EIP-7702. Artikel ini berasal dari artikel yang ditulis oleh komunitas Boardlink dan dikompilasi, dikompilasi, dan disumbangkan oleh ForesightNews. (Sinopsis: Ethereum Pectra meningkatkan "hacker flip", Wintermute memperingatkan: EIP-7702 mengotomatiskan penyebaran sejumlah besar kontrak) (Suplemen latar belakang: "Proyek Keamanan Satu Triliun Dolar" Ethereum Foundation merilis laporan pertama: Memilah kontrak pintar, infrastruktur, dan keamanan cloud... Enam Tantangan Ekologis EIP-7702 memungkinkan dompet Ethereum (EOA) sederhana untuk ditingkatkan ke dompet kontrak pintar, memberikan keamanan yang lebih besar, fitur canggih, peluang sponsor gas, dan manfaat lainnya. Secara historis, dompet pintar harus dibangun dari awal, tetapi dengan diperkenalkannya EIP-7702, dompet tradisional dapat ditingkatkan dan menyimpan semua aset dan riwayat on-chain mereka, dengan alamat dompet yang sama. Ini seperti beralih dari telepon rumah ke smartphone tanpa harus mendapatkan nomor baru. EOA ditingkatkan dengan menyiapkan "penunjukan delegasi", yaitu penunjuk ke kontrak pintar delegasi, dan kemudian mendelegasikan logika kontrak pintar untuk mengelola EOA. Akibatnya, EOA yang ditingkatkan dapat memiliki fungsi, mengatur penyimpanan, memancarkan peristiwa, dan melakukan semua operasi lain yang dapat dilakukan oleh kontrak pintar. EOA dapat mengubah atau menghapus delegasi ini kapan saja dengan otorisasi EIP-7702 baru yang ditandatangani. Meskipun ini membuka banyak kemungkinan baru, fitur canggih ini juga memperkenalkan tantangan keamanan baru yang memerlukan pertimbangan cermat dan solusi inovatif. Untuk memungkinkan EOA bertindak sebagai dompet kontrak pintar, kami mengembangkan EIP7702Proxy, kontrak proxy ERC-1967 ringan yang dirancang untuk berfungsi sebagai delegasi EIP-7702 untuk EOA. Selain penerusan logis dasar yang dilakukan oleh agen, EIP7702Proxy menyertakan fitur tambahan dan pilihan desain yang mengatasi beberapa tantangan unik untuk akun yang didelegasikan EIP-7702. Salah satu tujuan merancang EIP7702Proxy adalah untuk mempertahankan peerability sebanyak mungkin antara dompet pintar Coinbase yang "digunakan standar" dan dompet pintar Coinbase yang didelegasikan EIP-7702, yang berarti mengabstraksi kompleksitas tambahan yang diperlukan untuk mekanisme EIP-7702 menjadi proxy khusus dan terus mengandalkan implementasi asli CoinbaseSmartWallet. Solusi untuk tantangan ini dapat diterapkan secara efektif pada logika implementasi apa pun, bukan hanya implementasi CoinbaseSmartWallet, sekaligus membantu EOA tetap aman di lingkungan yang mendukung 7702. Di bawah ini kami menyajikan tantangan khusus dan solusi desain yang sesuai yang memungkinkan kami menyesuaikan implementasi dompet kontrak pintar yang ada dengan aman untuk peningkatan EIP-7702. Tantangan #1: Menegakkan Inisialisasi Aman Rintangan utama pertama untuk menerapkan EIP-7702 berasal dari kendala inisialisasinya. Dompet kontrak pintar tradisional, termasuk CoinbaseSmartWallet, biasanya menangani inisialisasi yang aman (menetapkan kepemilikan akun) secara atomik selama penerapannya, biasanya melalui kontrak pabrik terpisah. Atomisitas ini berarti bahwa banyak implementasi tersebut memiliki fungsi inisialisasi yang tidak terlindungi yang hanya dapat dipanggil sekali. Namun, desain EIP-7702 tidak memungkinkan data panggilan inisialisasi dilakukan selama proses delegasi kode (langkah yang setara dengan "penyebaran"), sehingga ini tidak dapat dilakukan secara atomik. Pemisahan langkah-langkah ini menciptakan jendela kerentanan kritis. Ketika kontrak implementasi "diterapkan" ke EOA melalui EIP-7702, tidak ada jaminan bahwa transaksi EVM standar untuk dompet upgrade dan inisialisasi 7702 ini akan dieksekusi secara atomik. Secara teknis, bahkan jika dilakukan pada saat yang sama, kode yang mengatur otorisasi dapat independen dari aplikasi transaksi inisialisasi, yang memungkinkan penyerang untuk secara preemptif mengeksekusi transaksi inisialisasi dan mengklaim kepemilikan akun pintar. Solusi: Tanda tangan EOA diperlukan untuk mengonfigurasi implementasi dan menginisialisasi secara atomik Perhatikan bahwa dompet pintar Coinbase yang ada digunakan setelah proxy ERC-1967 dengan implementasi UUPSUpgradeable (logika CoinbaseSmartWallet yang sebenarnya). Kode di alamat akun yang sebenarnya adalah proxy yang menggunakan lokasi penyimpanan reguler yang ditentukan oleh ERC-1967 untuk menyimpan penunjuk ke logika implementasinya. Solusi kami untuk kerentanan inisialisasi dalam konteks 7702 termasuk mengenali bahwa logika implementasi apa pun menjadi aktif (dan karenanya berbahaya) hanya ketika agen benar-benar membuat koneksi ke sana. Jadi jika kita tidak dapat memaksa penyebaran dan inisialisasi atomisitas, kita dapat memaksa pengaturan dan inisialisasi implementasi atomisitas. EIP-7702Struktur Kontrak CoinbaseSmartWallet dan Proses Pendelegasian Logis Dalam konteks EIP-7702, EOA sendiri adalah otoritas awal untuk membuat perubahan apa pun pada akunnya, dan tanda tangan harus diberikan untuk memberi wewenang kepada setiap pemilik yang menginisialisasi dan membuat akun Pintar baru. Kontrak EIP7702Proxy kami mengimplementasikan fungsi setImplementation yang secara atomik mengatur implementasi logis baru dan menginisialisasi akun. setImplementation fungsi: Memverifikasi tanda tangan dari EOA, yang mencakup data kunci seperti alamat kontrak implementasi baru, menginisialisasi calldata, alamat kontrak validator yang akan mengevaluasi keamanan status akun akhir, dan perlindungan pemutaran ulang tanda tangan dasar seperti nonce dan waktu kedaluwarsa. Atur nilai penunjuk ERC-1967 ke implementasi baru dan jalankan calldata yang disediakan terhadap implementasi logis baru. Panggil fungsi validateAccountState, yang harus diimplementasikan oleh pemberi sertifikasi yang disertakan dalam tanda tangan. Validator adalah kontrak khusus implementasi yang berisi logika untuk mengevaluasi apakah dianggap status akun akhir aman. Misalnya, untuk CoinbaseSmartWallet, CoinbaseSmartWalletValidator memeriksa apakah status kepemilikan akun tidak kosong dan oleh karena itu tidak lagi rentan terhadap inisialisasi sewenang-wenang. Tantangan #2: Penyimpanan Bersama Didelegasikan di seluruh EIP-7702 Tantangan EIP-7702 yang paling kompleks mungkin terkait dengan manajemen penyimpanan. EOA bebas untuk mendelegasikan ulang logikanya ke kontrak yang berbeda kapan saja, atau menghapus delegasi sepenuhnya. Semua delegasi berbagi alamat EOA di...
Konten ini hanya untuk referensi, bukan ajakan atau tawaran. Tidak ada nasihat investasi, pajak, atau hukum yang diberikan. Lihat Penafian untuk pengungkapan risiko lebih lanjut.
Menjamin upgrade Ethereum EIP-7702: sebuah model perwakilan untuk transisi aman dari EOA ke dompet pintar
Kami mengembangkan EIP7702Proxy, kontrak proxy ERC-1967 ringan yang dirancang untuk berfungsi sebagai penerusan logika dasar delegasi EIP-7702 untuk EOA... yang mengatasi beberapa tantangan unik untuk akun yang didelegasikan EIP-7702. Artikel ini berasal dari artikel yang ditulis oleh komunitas Boardlink dan dikompilasi, dikompilasi, dan disumbangkan oleh ForesightNews. (Sinopsis: Ethereum Pectra meningkatkan "hacker flip", Wintermute memperingatkan: EIP-7702 mengotomatiskan penyebaran sejumlah besar kontrak) (Suplemen latar belakang: "Proyek Keamanan Satu Triliun Dolar" Ethereum Foundation merilis laporan pertama: Memilah kontrak pintar, infrastruktur, dan keamanan cloud... Enam Tantangan Ekologis EIP-7702 memungkinkan dompet Ethereum (EOA) sederhana untuk ditingkatkan ke dompet kontrak pintar, memberikan keamanan yang lebih besar, fitur canggih, peluang sponsor gas, dan manfaat lainnya. Secara historis, dompet pintar harus dibangun dari awal, tetapi dengan diperkenalkannya EIP-7702, dompet tradisional dapat ditingkatkan dan menyimpan semua aset dan riwayat on-chain mereka, dengan alamat dompet yang sama. Ini seperti beralih dari telepon rumah ke smartphone tanpa harus mendapatkan nomor baru. EOA ditingkatkan dengan menyiapkan "penunjukan delegasi", yaitu penunjuk ke kontrak pintar delegasi, dan kemudian mendelegasikan logika kontrak pintar untuk mengelola EOA. Akibatnya, EOA yang ditingkatkan dapat memiliki fungsi, mengatur penyimpanan, memancarkan peristiwa, dan melakukan semua operasi lain yang dapat dilakukan oleh kontrak pintar. EOA dapat mengubah atau menghapus delegasi ini kapan saja dengan otorisasi EIP-7702 baru yang ditandatangani. Meskipun ini membuka banyak kemungkinan baru, fitur canggih ini juga memperkenalkan tantangan keamanan baru yang memerlukan pertimbangan cermat dan solusi inovatif. Untuk memungkinkan EOA bertindak sebagai dompet kontrak pintar, kami mengembangkan EIP7702Proxy, kontrak proxy ERC-1967 ringan yang dirancang untuk berfungsi sebagai delegasi EIP-7702 untuk EOA. Selain penerusan logis dasar yang dilakukan oleh agen, EIP7702Proxy menyertakan fitur tambahan dan pilihan desain yang mengatasi beberapa tantangan unik untuk akun yang didelegasikan EIP-7702. Salah satu tujuan merancang EIP7702Proxy adalah untuk mempertahankan peerability sebanyak mungkin antara dompet pintar Coinbase yang "digunakan standar" dan dompet pintar Coinbase yang didelegasikan EIP-7702, yang berarti mengabstraksi kompleksitas tambahan yang diperlukan untuk mekanisme EIP-7702 menjadi proxy khusus dan terus mengandalkan implementasi asli CoinbaseSmartWallet. Solusi untuk tantangan ini dapat diterapkan secara efektif pada logika implementasi apa pun, bukan hanya implementasi CoinbaseSmartWallet, sekaligus membantu EOA tetap aman di lingkungan yang mendukung 7702. Di bawah ini kami menyajikan tantangan khusus dan solusi desain yang sesuai yang memungkinkan kami menyesuaikan implementasi dompet kontrak pintar yang ada dengan aman untuk peningkatan EIP-7702. Tantangan #1: Menegakkan Inisialisasi Aman Rintangan utama pertama untuk menerapkan EIP-7702 berasal dari kendala inisialisasinya. Dompet kontrak pintar tradisional, termasuk CoinbaseSmartWallet, biasanya menangani inisialisasi yang aman (menetapkan kepemilikan akun) secara atomik selama penerapannya, biasanya melalui kontrak pabrik terpisah. Atomisitas ini berarti bahwa banyak implementasi tersebut memiliki fungsi inisialisasi yang tidak terlindungi yang hanya dapat dipanggil sekali. Namun, desain EIP-7702 tidak memungkinkan data panggilan inisialisasi dilakukan selama proses delegasi kode (langkah yang setara dengan "penyebaran"), sehingga ini tidak dapat dilakukan secara atomik. Pemisahan langkah-langkah ini menciptakan jendela kerentanan kritis. Ketika kontrak implementasi "diterapkan" ke EOA melalui EIP-7702, tidak ada jaminan bahwa transaksi EVM standar untuk dompet upgrade dan inisialisasi 7702 ini akan dieksekusi secara atomik. Secara teknis, bahkan jika dilakukan pada saat yang sama, kode yang mengatur otorisasi dapat independen dari aplikasi transaksi inisialisasi, yang memungkinkan penyerang untuk secara preemptif mengeksekusi transaksi inisialisasi dan mengklaim kepemilikan akun pintar. Solusi: Tanda tangan EOA diperlukan untuk mengonfigurasi implementasi dan menginisialisasi secara atomik Perhatikan bahwa dompet pintar Coinbase yang ada digunakan setelah proxy ERC-1967 dengan implementasi UUPSUpgradeable (logika CoinbaseSmartWallet yang sebenarnya). Kode di alamat akun yang sebenarnya adalah proxy yang menggunakan lokasi penyimpanan reguler yang ditentukan oleh ERC-1967 untuk menyimpan penunjuk ke logika implementasinya. Solusi kami untuk kerentanan inisialisasi dalam konteks 7702 termasuk mengenali bahwa logika implementasi apa pun menjadi aktif (dan karenanya berbahaya) hanya ketika agen benar-benar membuat koneksi ke sana. Jadi jika kita tidak dapat memaksa penyebaran dan inisialisasi atomisitas, kita dapat memaksa pengaturan dan inisialisasi implementasi atomisitas. EIP-7702Struktur Kontrak CoinbaseSmartWallet dan Proses Pendelegasian Logis Dalam konteks EIP-7702, EOA sendiri adalah otoritas awal untuk membuat perubahan apa pun pada akunnya, dan tanda tangan harus diberikan untuk memberi wewenang kepada setiap pemilik yang menginisialisasi dan membuat akun Pintar baru. Kontrak EIP7702Proxy kami mengimplementasikan fungsi setImplementation yang secara atomik mengatur implementasi logis baru dan menginisialisasi akun. setImplementation fungsi: Memverifikasi tanda tangan dari EOA, yang mencakup data kunci seperti alamat kontrak implementasi baru, menginisialisasi calldata, alamat kontrak validator yang akan mengevaluasi keamanan status akun akhir, dan perlindungan pemutaran ulang tanda tangan dasar seperti nonce dan waktu kedaluwarsa. Atur nilai penunjuk ERC-1967 ke implementasi baru dan jalankan calldata yang disediakan terhadap implementasi logis baru. Panggil fungsi validateAccountState, yang harus diimplementasikan oleh pemberi sertifikasi yang disertakan dalam tanda tangan. Validator adalah kontrak khusus implementasi yang berisi logika untuk mengevaluasi apakah dianggap status akun akhir aman. Misalnya, untuk CoinbaseSmartWallet, CoinbaseSmartWalletValidator memeriksa apakah status kepemilikan akun tidak kosong dan oleh karena itu tidak lagi rentan terhadap inisialisasi sewenang-wenang. Tantangan #2: Penyimpanan Bersama Didelegasikan di seluruh EIP-7702 Tantangan EIP-7702 yang paling kompleks mungkin terkait dengan manajemen penyimpanan. EOA bebas untuk mendelegasikan ulang logikanya ke kontrak yang berbeda kapan saja, atau menghapus delegasi sepenuhnya. Semua delegasi berbagi alamat EOA di...