Siaran
avatar

Kontrak yang terus berjalan selepas panggilan gagal tidak mempunyai cara yang boleh dipercayai hari ini untuk menentukan sama ada penerima membatalkan dengan sengaja atau hanya kehabisan gas yang dipilih oleh penghantar. Kesenjangan ini adalah punca utama serangan griefing gas yang tidak mencukupi, dan cadangan draf baharu cuba menutupnya pada peringkat EVM. EIP-8456, yang dibuka untuk perbincangan di Ethereum Magicians pada hari Isnin, menambah arahan bernama CALLSTATUS, sementara di opcode 0xA5 dengan 2 gas. Ia mendorong status penyelesaian operasi panggilan atau cipta paling terkini dalam bingkai semasa sebagai tiga bit. Bit 0 bermaksud pembatalan, bit 1 bermaksud penghentian luar biasa seperti kehabisan gas, dan bit 2 bermaksud sesuatu dalam bingkai di bawahnya berhenti. Pengarang menunjukkan bahawa bukti tunggal hari ini ialah aritmetik gasleft() selepas panggilan, dan setiap cabang penyesuaian semula telah memecahkan ambang-ambang tersebut. Gas dua dimensi yang dicadangkan oleh EIP-8037 akan membuat aritmetik ini lebih lemah lagi, kerana rezervornya tidak kelihatan melalui opcode GAS. Jadi, mengapa bit ketiga? Kebanyakan panggilan sebenar melalui perantara seperti proxy, pembungkus functionCall OpenZeppelin, Multicall3 atau pemeriksa tanda tangan ERC-1271. Jika hanya kesudahan penerima langsung dilaporkan, pembungkus yang menangkap penghentian kehabisan gas dan membatalkan dengan sebab akan kelihatan seperti pembatalan yang disengajakan. Draf ini mengekalkan bendera melekat yang bergerak ke atas setiap bingkai, jadi penghantar yang hanya mengawal gas tidak pernah boleh membuat pemanggil membaca pembatalan biasa. Ia melaporkan kesudahan bukan punca, dan penerima masih boleh menghasilkan penghentian dengan sengaja menggunakan INVALID. Ia hanya melindungi kod yang ditulis selepas ia dilancarkan, kerana kontrak yang telah dideploy tidak akan membacanya. Belum ada ulasan luar, nombor opcode masih terbuka, dan prototaip serta ujian untuk 58 kes yang disenaraikan masih tertunda. Pautan - https://t.co/KnByUBgWrY

Kandungan ini adalah bagi tujuan maklumat dan pendidikan sahaja. Ia mungkin termasuk pandangan pihak ketiga, kandungan tajaan, atau bahan promosi yang mana pencipta mungkin menerima pampasan. Tiada apa-apa dalam suapan ini yang merupakan nasihat pelaburan atau jaminan pulangan. Anda bertanggungjawab sepenuhnya ke atas keputusan pelaburan anda sendiri. Sentiasa jalankan penyelidikan anda sendiri dan berhati-hati sebelum berdagang. Kami tidak menjamin ketepatan maklumat pihak ketiga dan tidak bertanggungjawab ke atas sebarang kerugian yang ditanggung. Prestasi masa lalu tidak menunjukkan hasil masa hadapan. Sila rujuk Terma Komuniti dan Penyata Pendedahan Risiko kami untuk mendapatkan butiran.

avatarSiarkan balasan anda

Komen