Litecoin

Keamanan Web3 Series: Bisakah dana salah arah ke rantai lain disimpan

2025/12/16 12:24
👤PANews
🌐id
Keamanan Web3 Series: Bisakah dana salah arah ke rantai lain disimpan

Dalam dunia terenkripsi, satu kesalahan klik dapat memicu & ldquao; bencana digital & rdquao; Salah satu mimpi buruk yang paling umum mengirimkan aset ke rantai blok yang salah. Misalnya, itu dimaksudkan untuk mengirim EPH ke Sepolia Etherma untuk menguji alamat Internet, dan itu sengaja dikirim ke Etherleas. Dalam hal ini, bisakah dana salah arah dari jaringan induk Ether ditemukan? Kunci untuk pemulihan aset adalah jenis alamat penerima. Ini akan dianalisis dalam cahaya keadaan yang berbeda。

1. SKENARIO I:

EOA (Akun Terdimiliki secara eksternal) adalah apa yang sering kita sebut alamat dompet biasa secara langsung dikendalikan oleh kunci pribadi atau kata bantu。

Prasyarat untuk pemulihan aset:

  • KAU MEMINDAHKAN ASET KE ALAMAT EOA。
  • KAU PUNYA ALAMAT TARGET EOA DENGAN KUNCI PRIBADI ATAU CATATAN. (BIASANYA ALAMAT DOMPET ANDA YANG LAIN, ATAU ALAMAT TEMAN ANDA, DAN DIA BERSEDIA UNTUK BEKERJA SAMA)。
  • RANTAI TARGET ADALAH RANTAI KOMPABILITAS EVM。

Metode pemulihan aset:

KOLEKSI EOA ALAMAT PEMEGANG KUNCI SWASTA HANYA DAPAT MENARIK DANA LANGSUNG DARI RANTAI TARGET。

Skenario dua: alamat penerimaan adalah kontrak

Ini adalah salah satu adegan paling putus asa. Karena alamat dari kontrak cerdas tidak dibuat oleh kunci privat, tidak ada yang memiliki kunci pribadi untuk kontrak cerdas dan tidak dapat mengendalikannya sebanyak kontrol EOA. Dan jika kontrak tidak siap sebelum proses & ldquo; salah arah ke aset & rdquo; fungsi penyelamatan, dana yang salah diarahkan mungkin selamanya terkunci ke dalam kontrak dan tidak ada yang dapat menghapus mereka。

DALAM BEBERAPA KASUS, BAGAIMANAPUN, ADA KESEMPATAN. DAN KEMUDIAN KITA AKAN MEMBANGUN SEBUAH ADEGAN YANG MENGUNCI ETH KE DALAM JARINGAN TUAN RUMAH ETHERWOOD, DAN KEMUDIAN KITA AKAN BERBICARA TENTANG BAGAIMANA CARA MENGELUARKAN UANGNYA。

Presentasi adegan

Adegan ini disimpulkan bahwa pengguna telah mencoba untuk memanggil kontrak Jaringan Tes Sepolia, mentransfer ETH ke kontrak untuk memalsukan token, tapi ketika transaksi dimulai, itu salah terhubung ke jaringan utama, menghasilkan ETH terkunci ke dalam kontrak jaringan utama. Proses konstruksi skenario khusus adalah sebagai berikut:

1. Pada tes Sepolia Ether, proyektor (EOA) mengirimkan realisasi kontrak, mengasumsikan bahwa fungsi utama dari kontrak adalah untuk pengguna untuk deposit ETH untuk membuat Accounter AToseen, kode perkiraan ditampilkan dalam fungsi MintTokens. Penugasan diasumsikan menjadi A. Sangat penting untuk dicatat bahwaTIDAK ADA FUNGSI DALAM A YANG DAPAT MENGEKSTRAK ETH SECARA LANGSUNG。

2. Pada Ether Sepolia tes, proyektor (EOA) dikerahkan kontrak tanaman, fungsi dari kontrak adalah untuk didasarkan pada alamat yang disediakan untuk kinerja kontrak dan pada penyebaran kontrak lembaga minimum (Kloning) untuk kontrak agen kinerja (seperti yang ditunjukkan oleh deproyProyByImplation). Asumsikan penyebaran pada B. Misalkan di sini kita sebut pengosongan Fungsi ProxyByImplementasi sehingga kontrak Sebuah alamat dimasukkan sebagai _ implikasiSEBUAH KONTRAK AGEN TELAH DIKERAHKAN KE A DI C。

3. Pengguna ingin menguji web di Sepolia untuk melemparkan Token dengan pindah ke ETH, sehingga pengguna memulai panggilan ke alamat kontrak proxy C, biasanya kontrak proxy C panggilan lebih lanjut ke fungsi MintTokens dari kontrak A untuk menyelesaikan operasi pengguna. Namun, ketika pengguna menelepon, mereka salah terhubung ke jaringan tuan rumah Etherwood. Jadi pengguna memindahkan ETH langsung ke alamat C dari inang Ether。UANG PENGGUNA SEMENTARA TERKUNCI PADA ALAMAT C JARINGAN UTAMA。

2,2 poin kunci pengetahuan

Sebelum menyajikan program bantuan spesifik, titik-titik dasar pengetahuan pada kebutuhan bantuan disajikan。

2.2.1. buat & amp; create2

membuat dan Create2 adalah dua kontrak penyebaran yang umum dalam Kesendirian。

  • pada saat penyebaran kontrak, alamat kontrak ditentukan bersama oleh alamat sponsor transaksi dan jumlah transaksi (nonce) dari akun, terlepas dari isi kontrak。
  • pada saat penyebaran kontrak, alamat kontrak tidak lagi tergantung pada nonce dari sponsor transaksi tetapi terkait dengan keempat parameter berikut。
    • 0xff
    • buat alamat kontrak untuk kontrak baru (alamat)
    • nilai fusi sebagai parameter (garam)
    • buat bytes untuk membuat kontrak (init _ code)

2.2.2

https: / / docs.openzeppelin.com / kontrak / 4.x / api / proxy # cones

Kontrak badan minimum, juga sering disebut sebagai kontrak Cloones, didasarkan pada gagasan untuk menyebarkan kontrak agen dengan biaya yang sangat rendah (Gas), yang menunjuk ke kontrak yang ditentukan untuk realisasinya. Dalam kontrak Cones, sebuah kontrak proksi dapat digunakan baik dengan membuat atau dengan membuat 2 atau, misalnya, dengan menyebarkan kontrak proksi melalui fungsi CineDeterministik。

Dalam fungsi clineDeterministic, kode byte dari kontrak agensi yang dibuat sangat pendek dalam format: 0x363d33d3d3d363d73 & t; alamat dari kontrak realisasi; 5af3d833e9333d61602b57d5bff3, langsung dikodekan ke kode realisasi dari kontrak, dan akan dipanggil untuk memanggil semua agen untuk mencapai kontrak。

Seperti yang dapat dilihat dari fungsi cloneDeterministik, menciptakan kontrak proksi dengan cara creating2alamat dari kontrak proksi yang dibuat berhubungan dengan alamat pendiri kontrak, garam, alamat dari kontrak realisasi, kode byte tetap, dan tidak ke kode byte dari kontrak realisasi。

Program penyelamatan 2,3

BEGINI CARA MENYELAMATKAN PENGGUNA PADA ALAMAT C. IDE UTAMANYA ADALAH UNTUK MENYEBARKAN KODE KONTRAK, AMBIL ALIH ALAMAT JARINGAN C UTAMA DAN EKSTRAK ETH. LANGKAH OPERASIONAL KHUSUS SEBAGAI BERIKUT:

1. KONTRAK TANAMAN UNTUK MENYEBARKAN DAN MENGUJI ALAMAT YANG SAMA PADA JARINGAN UTAMA B。Alamat kontrak tanaman yang sama diperlukan karena kontrak agen dihitung dalam kaitannya dengan alamat kontrak tanaman pada saat panggilan berikutnya untuk baris Determinististic pengiriman agen kontrak. Dengan melihat transaksi Sepolia 's untuk menguji kontrak untuk pabrik penyebaran online, mendapatkan nonce dari orang yang digunakan dalam transaksi (pemilik proyek' s alamat), memindahkan nonce dari pihak proyek 's (EOA) alamat ke nonce sebelum untuk pabrik penyebaran, dan kemudian menyebarkan kontrak untuk pemilik proyek pada jaringan utama, sebagai kedua lokasi dari orang yang dikirim dan nonce identik untuk tes untuk pabrik pada transaksi daring pada transaksi jaringan B pada kontrak utama tersebut。

2. KONTRAK UNTUK PENYEBARAN DARI ALAMAT YANG SAMA SEBAGAI JARINGAN PENGUJIAN PADA JARINGAN UTAMA。Bagian # Minimum Agent Contract (Clones) # disebutkan bahwa kontrak agen dikerahkan melalui fungsi Deterministik Clane dari Klones Kontrak, yang menghitung alamat kontrak proksi, yang berhubungan dengan garam partisipasi dan kesadaran alamat kontrak, dan tidak terkait dengan kode byte dari kontrak. JadiYANG HARUS KITA LAKUKAN ADALAH MENEMPATKAN KONTRAK PADA ALAMAT A, DAN RINCIAN KONTRAK TIDAK MEMPENGARUHI PERHITUNGAN DARI ALAMAT PROXY。JADI KITA DAPAT MENYEBARKAN KONTRAK YANG MEMILIKI KEMAMPUAN UNTUK MENGEKSTRAK ETH LANGSUNG DARI ALAMAT A, KODENYA ADALAH SEBAGAI BERIKUT。

Pada jaringan tes, realisasi kontrak A dikerahkan oleh alamat penyedia projek (EOA), jadi sama, lokasi kontrak realisation A hanya berhubungan dengan operator transaksi dan nonce nya. Dengan demikian, mengamati transaksi penyebaran online realisasi A, menemukan nonce yang relevan, mendorong alamat penyedia proyek online utama (EOA) ke noce yang ditunjuk, dan menyebarkan kontrak realisasi A sudah cukup。

3. AGEN KONTRAK UNTUK MENYEBARKAN DI SITUS WEB UTAMA DENGAN ALAMAT YANG SAMA SEPERTI TEST NETWORK C。Amati transaksi agen penyebaran online kontrak C, memperoleh informasi garam, memanggil penyebaran ProxyByImplementasi fungsi dari kontrak tanaman B, dan lulus dalam alamat kontrak A, garam sebagai parameter untuk menyebarkan agen kontrak pada alamat C dari jaringan utama。

4. HUBUNGI AGEN JARINGAN UTAMA KONTRAK C UNTUK PENARIKAN。Alamat Partai Projek (EOA) menyebut kontrak agen C tarik fungsi dan menunjuk penerima dana, berhasil menghapus ETH beku dalam kontrak agen C dan mengembalikannya ke pengguna yang relevan。

2.4 Ringkasan

Seperti yang dapat dilihat dari program bantuan atas yang disebutkan di atas, ada sejumlah kondisi yang perlu dipenuhi ketika dana dapat diselamatkan, seperti fakta bahwa kontraksi-pengusang tidak menggunakan nonce relevan pada rantai target, fakta bahwa kontrak di mana dana terjebak memiliki fungsi penarikan atau fakta bahwa ia dapat dikerahkan dalam berbagai cara (kontrak dapat ditingkatkan atau digunakan sebagai agen seperti Clones)。

JADI, KETIKA ANDA MEMBUAT KESEPAKATAN, ANDA HARUS BERHATI-HATI, MEMERIKSA SETIAP TRANSAKSI DIMULAI DENGAN HATI-HATI, DAN ANDA DAPAT MENGGUNAKAN ZAN SEBELUM ANDA BERINTERAKSI DENGAN KONTRAKAI SCANGAP MEMINDAI ALAT UNTUK MENDETEKSI KEAMANAN KONTRAK. ANDA DAPAT MENGHUBUNGI TIM AUDIT KEAMANAN KONTRAK ZAN UNTUK MENCOBA MEMBANTU ANDA DENGAN DANA。

Ini oleh ZANTeam (akun X)@ zan _ team& amp; Antchain OpenLabs (akun X)@ AntchainOpenLabCara@ Cara6289) Ditulis。

QQlink

Tidak ada "backdoor" kripto, tidak ada kompromi. Platform sosial dan keuangan terdesentralisasi berdasarkan teknologi blockchain, mengembalikan privasi dan kebebasan kepada pengguna.

© 2024 Tim R&D QQlink. Hak Cipta Dilindungi Undang-Undang.