Bitcoinjs-lib memperbaiki 2 kelemahan yang boleh menyebabkan penganggaran yuran terlalu rendah

iconCryptoSlate
Kongsi
AI summary iconRingkasan
Berita terkini bitcoin: Bitcoinjs-lib telah merilis pemaikapan untuk dua kecacatan yang boleh menyebabkan penganggaran yuran yang terlalu rendah dalam aplikasi bitcoin. Kecacatan tersebut, yang berkaitan dengan PSBT, boleh membolehkan pengiraan yuran yang salah dan kerugian kewangan. Diperbaiki dalam versi 5.2.2, 6.1.9, dan 7.0.4, kemas kini ini memastikan kaedah yang konsisten untuk menyelesaikan output dan mengira yuran. Media berita bitcoin menekankan keperluan mendesak untuk mengemas kini aplikasi yang terjejas.

Bitcoinjs-lib, sebuah pustaka perisian untuk membina aplikasi Bitcoin, telah memperbaiki dua kelemahan yang boleh menyebabkan aplikasi meremehkan yuran penambang pada transaksi yang sah. Pengumuman keselamatan pada 26 Oktober mengenal pasti versi yang telah diperbaiki iaitu 5.2.2, 6.1.9, dan 7.0.4 untuk garis rilis masing-masing. Aplikasi berisiko apabila mengimport pakej dan bergantung pada pengiraan yuran atau perlindungan yuran berlebihan pustaka tanpa mengesahkan secara berasingan output yang dibelanjakan.

Kekurangan tersebut melibatkan transaksi bitcoin yang ditandatangani sebahagian (PSBT). BIP 174 mentakrifkan PSBT sebagai format untuk bertukar butiran transaksi dan tanda tangan antara klien. Penandatanganan, penggabungan tanda tangan, pengakhiran input dan ekstraksi transaksi tetap menjadi operasi yang berasingan, walaupun dalam satu aplikasi yang sama. Transaksi bitcoin membayar caj yang sama dengan nilai input keseluruhan tolak nilai output keseluruhan. Oleh itu, merendahkan nilai input membuat caj yang dikira kelihatan lebih rendah.

Kelemahan pertama membolehkan penandatanganan dan pengiraan yuran menetapkan nilai yang berbeza kepada input yang sama. Penandatanganan bergantung pada transaksi sebelumnya yang lengkap, manakala pengiraan yuran lebih mengutamakan rekod yang bertentangan dengan nilai yang lebih rendah. Perisian yang rentan akibatnya boleh mengesahkan transaksi sebenar sambil menilai yuran yang salah. Nasihat tersebut menggambarkan demonstrasi bitcoinjs-lib 7.0.1 dengan yuran sebenar 900,000,000 satoshi dan yuran yang dilaporkan sebanyak 200 satoshi. Demonstrasi ini menghasilkan tanda tangan yang disahkan dan membenarkan penarikan tanpa memicu amaran kadar yuran lalai.

Penasihat kedua menggambarkan input yang telah disempurnakan tetapi tidak mempunyai rekod nilai input. Kalkulator yuran menganggap input-input tersebut mempunyai nilai sifar. Aplikasi boleh mengimport PSBT yang telah ditandatangani daripada pihak lain dan mencapai pengiraan tersebut tanpa menandatangani sekali lagi. Penasihat kedua mempersembahkan transaksi hipotetik dengan yuran sebenar 91,000 satoshi dan yuran yang dilaporkan 1,000 satoshi. Skrip dan tanda tangan yang telah disempurnakan sendiri tidak menetapkan nilai input yang tidak mempunyai rekod nilainya.

Cacat rekod bertentangan mempengaruhi versi 5.2.0 hingga 5.2.1, versi 6.0.0 hingga 6.1.8 termasuk 6.1.0-rc.0, dan versi 7.0.0-rc.0 hingga 7.0.3. Cacat rekod yang hilang mempengaruhi rilis versi 6 dan versi 7 yang sama, ditambah versi 5.1.0 hingga 5.2.1. Kerugian kewangan memerlukan transaksi yang diperiksa dan sah untuk disiarkan ke rangkaian dan diterima. Kegagalan tersebut tidak dapat menghasilkan tanda tangan, dan nilai berlebihan akan pergi kepada penambang sebagai yuran.

Pembaikan membuatkan proses penandatanganan dan perakaunan menggunakan satu kaedah untuk menyelesaikan output sebelumnya. Pembaikan menolak nilai atau skrip yang bertentangan dan memerlukan nilai untuk setiap input semasa mengira yuran. Pembaikan juga membuatkan yuran yang disimpan dan transaksi yang diekstrak tidak sah selepas perubahan atau kombinasi metadata yang berkaitan. Penyelenggara perlu memeriksa versi kebergantungan dan meninjau pengesahan PSBT yang diimport. Penyelenggara yang tidak dapat mengemas kini perlu mengesahkan nilai output yang dirujuk secara berasingan. Penyelenggara perlu menolak rekod yang bertentangan sebelum menandatangani atau bergantung pada yuran yang dikira. Penyelenggara perlu mengesahkan nilai setiap input sebelum bergantung pada yuran atau mengekstrak transaksi.

Penafian: Maklumat yang terdapat pada halaman ini mungkin telah diperoleh daripada pihak ketiga dan tidak semestinya menggambarkan pandangan atau pendapat KuCoin. Kandungan ini adalah disediakan bagi tujuan maklumat umum sahaja, tanpa sebarang perwakilan atau waranti dalam apa jua bentuk, dan juga tidak boleh ditafsirkan sebagai nasihat kewangan atau pelaburan. KuCoin tidak akan bertanggungjawab untuk sebarang kesilapan atau pengabaian, atau untuk sebarang akibat yang terhasil daripada penggunaan maklumat ini. Pelaburan dalam aset digital boleh membawa risiko. Sila menilai risiko produk dan toleransi risiko anda dengan teliti berdasarkan keadaan kewangan anda sendiri. Untuk maklumat lanjut, sila rujuk kepada Terma Penggunaan dan Pendedahan Risiko kami.