Litecoin

Keamanan Web3 Seri: Bisakah dana tidak diarahkan ke rantai lain diselamatkan

2025/12/16 12:26
👤PANews
🌐ms
Keamanan Web3 Seri: Bisakah dana tidak diarahkan ke rantai lain diselamatkan

Di dunia yang dienkripsi, kesalahan klik tunggal dapat memicu &ldquao; bencana digital &rdquao; Salah satu mimpi buruk yang paling umum adalah mengirim aset ke rantai blok yang salah. Sebagai contoh, itu dimaksudkan untuk mengirim EPH ke Etherma Sepolia untuk menguji alamat Internet, dan secara tidak sengaja dikirim ke Etherleas. Dalam kasus seperti itu, dapatkah dana yang tidak terarah dari jaringan Ether? Kunci untuk pemulihan aset adalah jenis penerimaan alamat. Ini akan dianalisis dalam keadaan yang berbeda。

1. ^ A B C D E F G H I J K L M N O P. SKENARIO I: EOA

EOA Kita sering menyebutnya alamat dompet biasa yang dikendalikan langsung oleh kunci pribadi atau kata bantu。

Keperluan untuk pemulihan aset:

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

Metode pemulihan aset:

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

2. Skenario kedua: Alamat penerimaan adalah kontrak

Ini adalah salah satu adegan paling putus asa. Karena alamat kontrak cerdas tidak diciptakan oleh kunci pribadi, tidak ada yang memiliki kunci pribadi untuk kontrak cerdas dan tidak dapat mengendalikannya sebanyak kontrol EOA. Dan jika kontrak tidak disiapkan sebelum pemrosesan “ salah diarahkan ke aset ” fungsi penyelamatan, dana yang salah diarahkan mungkin terkunci secara permanen ke dalam kontrak dan tidak ada yang dapat menghapusnya。

NAMUN, DALAM BEBERAPA KASUS, ADA KEMUNGKINAN. DAN KEMUDIAN KITA AKAN MEMBANGUN ADEGAN YANG MENGUNCI ETH KE JARINGAN ETHERWOOD HOST, DAN KEMUDIAN KITA AKAN BERBICARA TENTANG BAGAIMANA UNTUK MENDAPATKAN UANG KELUAR。

Persembahan adegan

Adegan yang dirangkum oleh pengguna telah mencoba untuk memanggil kontrak Sepolia Test Network, mentransfer ETH ke kontrak untuk menempa token, tetapi ketika transaksi dimulai, itu salah terhubung ke jaringan utama, mengakibatkan ETH terkunci ke kontrak jaringan utama. Proses konstruksi skenario spesifik adalah sebagai berikut:

1. ^ a b c d e f g h i j k l m n o p. Pada tes Sepolia Ether, proyektor (EOA) mengerahkan realisasi kontrak, dengan asumsi bahwa fungsi utama kontrak adalah bagi pengguna untuk mendepositkan suatu ETH untuk membuat Atokeen yang bersangkutan, kode perkiraan ditunjukkan dalam fungsi MintTokens. A. Perlu dicatat bahwaTAK ADA FUNGSI DALAM A YANG BISA MENGELUARKAN ETH SECARA LANGSUNG。

Kampung 2. Pada tes Sepolia Ether, proyektor (EOA) mengerahkan kontrak tanaman, Fungsi kontrak adalah berdasarkan alamat yang diberikan untuk kinerja kontrak dan pada pengerahan kontrak agensi minimum (Clones) ke kontrak agen kinerja (seperti yang ditunjukkan oleh fungsi deproyProxyByImplation). Mengasumsikan penyebaran di B. Misalkan di sini kita sebut fungsi penyebaranProxyByImplementation sehingga kontrak A alamat dimasukkan sebagai _implikasiKONTRAK AGEN AGEN AGEN TELAH DIKERAHKAN KE A DI C。

Kampung 3. Pengguna-penggunanya ingin menguji web di Sepolia untuk melemparkan Token dengan pindah ke ETH, sehingga pengguna memprakarsai panggilan ke alamat C kontrak proksi, biasanya kontrak proksi C panggilan lebih lanjut ke MintTokens fungsi kontrak A untuk menyelesaikan operasi pengguna. Namun, ketika pengguna menelepon, mereka salah terhubung ke jaringan host Etherwood. Jadi pengguna memindahkan ETH langsung ke alamat C dari Ether host。UANG PENGGUNA UNTUK SEMENTARA DIKUNCI DI ALAMAT C JARINGAN UTAMA。

2 2.2. mata pengetahuan kunci

Sebelum menyajikan program bantuan kemanusiaan spesifik, pengetahuan dasar tentang kebutuhan bantuan kemanusiaan disajikan。

2.2.2.1. cipta & buat2

ciptaan dan Ciptaan2 adalah dua kontrak penyebaran yang umum terjadi pada Soliditas。

  • pada saat pengerahan kontrak, alamat kontrak ditentukan bersama oleh alamat sponsor transaksi dan jumlah transaksi (nonce) rekening, tidak menghargai isi kontrak。
  • pada saat pengerahan kontrak, alamat kontrak tidak lagi bergantung pada nosi sponsor transaksi tetapi terkait dengan empat parameter berikut。
    • catat alamat kontrak untuk kontrak baru (alamat)
    • nilai kebingungan kebingungan sebagai parameter (salt)
    • cipta byte untuk membuat kontrak (init_code)

2.2. Kontrak agensi minimum (Klones)

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

Kontrak agensi minimum veniago, juga sering disebut sebagai kontrak Cloones, didasarkan pada gagasan untuk mengerahkan kontrak agen dengan biaya yang sangat rendah (Gas), yang menunjuk kontrak yang ditentukan untuk realisasinya. Kekhalifahan dalam kontrak Cones, kontrak proksi dapat dikerahkan baik dengan menciptakan maupun menciptakan 2 atau misalnya dengan mengerahkan kontrak proksi melalui fungsi ClineDeterministik。

Dalam fungsi clineDeterministik, kode byte dari kontrak agensi yang dibuat sangat pendek dalam format: 0x363d3d3d3d3d3d3d363d73&t; alamat > dari kontrak realisasi; 5af43d8203e903d91602b57fd5bff3, langsung dikodekan ke kode byte untuk realisasi alamat kontrak, dan akan dipanggil untuk memanggil semua panggilan ke kontrak agen yang didelegasikan untuk mencapai kontrak。

Seperti yang dapat dilihat dari fungsi kloneDeterministik, hal ini menciptakan kontrak proksi dengan cara menciptakan2alamat dari kontrak proksi yang dibuat berkaitan dengan alamat pendiri kontrak, garam, alamat realisasi kontrak, kode byte tetap, dan bukan kode byte realisasi kontrak。

Program Penyelamatan 2.3

INI CARA PENYELAMATAN PENGGUNA DI ALAMAT C. IDE UTAMA ADALAH UNTUK MENYEBARKAN KODE KONTRAK, MENGAMBIL ALIH JARINGAN UTAMA C ALAMAT DAN MENGEKSTRAK ETH. LANGKAH OPERASIONAL YANG KHUSUS ADALAH SEBAGAI BERIKUT:

1. ^ A B C D E F G H I J K L M N O P. KONTRAK TANAMAN UNTUK MENYEBARKAN DAN MENGUJI ALAMAT YANG SAMA PADA JARINGAN UTAMA B。Alamat kontrak pabrik yang sama diperlukan karena kontrak agen dihitung dalam hubungannya dengan alamat kontrak tanaman pada saat panggilan berikutnya untuk garis Deterministik deterministik kontrak agen pengerahan. Dengan melihat transaksi Sepolia ' s untuk menguji kontrak untuk pabrik pengerahan online, mendapatkan nonce orang yang dikerahkan dalam transaksi (pemilik proyek ' s alamat s), memindahkan nonce dari pihak proyek ' s (EOA) alamat ke nonce sebelum kontrak untuk pabrik penyebaran, dan kemudian menyebarkan kontrak untuk pabrik di jaringan utama, karena kedua lokasi orang yang dikerahkan dan nonce identik dengan tes untuk transaksi penyebaran online, alamat kontrak tanaman yang dikerahkan di jaringan utama juga B。

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

Pada jaringan uji coba, realisasi kontrak A dikerahkan oleh alamat project provider (EOA), sehingga serupa, lokasi realisasi kontrak A hanya terkait dengan operator transaksi dan nonce-nya. Dengan demikian, mengamati transaksi realisasi penyebaran online realisasi A, menemukan nonce relevan, mendorong alamat provider proyek online utama (EOA) ke noce yang ditunjuk, dan menyebarkan realisasi kontrak A cukup。

KAMPUNG 3. KONTRAK AGEN BERTRANSMISI DI SITUS WEB UTAMA DENGAN ALAMAT YANG SAMA DENGAN TEST NETWORK C。Diagnomenakan transaksi kontrak agen pengerahan online C, mendapatkan informasi garam, panggilan pada fungsi pengerahan ProxyByImplementation dari kontrak tanaman B, dan lulus dalam alamat kontrak A, garam sebagai parameter untuk menyebarkan kontrak agen pada alamat C jaringan utama。

^ A B C D E F G H I J K L M N O P Q R. PANGGIL AGEN JARINGAN UTAMA KONTRAK C UNTUK PENARIKAN。Alamat Partai Proyek (EOA) menyebut agen kontrak C menarik fungsi dan menunjuk penerima dana, berhasil menghapus ETH beku dalam kontrak agen C dan mengembalikannya ke pengguna yang bersangkutan。

Ringkasan

Seperti yang dapat dilihat dari program bantuan di atas-mensioned, ada sejumlah kondisi yang perlu dipenuhi ketika dana dapat diselamatkan, seperti fakta bahwa kontrak-deployer tidak menggunakan noce relevan pada rantai target, fakta bahwa kontrak di mana dana terjebak memiliki fungsi penarikan atau fakta bahwa itu 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 AI SCANALAT PEMINDAI UNTUK MENDETEKSI KEAMANAN KONTRAK. ANDA DAPAT MENGHUBUNGI ZAN KONTRAK TIM AUDIT KEAMANAN MENCOBA UNTUK MEMBANTU ANDA DENGAN DANA。

Ini oleh ZANTeam (akun X)_cari&: Antchain OpenLabs (akun X)@AntchainOpenLabCaraJohn @Cara6289Ditulis。

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.