Bug Bitcoin yang Baik, Buruk, dan Jelek

Bug Bitcoin yang Baik, Buruk, dan Jelek

Selama lebih dari setahun, semua versi Bitcoin Core mengandung salah satu bug terburuk dalam sejarah Bitcoin. Pada artikel ini, kami akan mengungkapkan detail baik, buruk, dan jelek tentang salah satu bug Bitcoin Core yang paling menjengkelkan hingga saat ini.

Sangat buruk, tentu saja, keberadaan bug tersebut sekarang terdaftar sebagai CVE-2018-17144 di database kerentanan "Kerentanan dan Eksposur Umum".

Bug ini muncul sebagai bagian dari pembaruan Bitcoin Core 0.14.0, yang dirilis pada Maret 2017 untuk meningkatkan kinerja dan terkait dengan perutean blok. Singkatnya, bug tersebut mencegah node jaringan menolak blok yang berisi transaksi yang menghabiskan dana (“input”) yang sama beberapa kali, sehingga memungkinkan terjadinya bentuk pembelanjaan ganda yang tidak teratur. Hal ini terlepas dari kenyataan bahwa salah satu masalah yang dipecahkan selama pengembangan Bitcoin adalah mencegah pembelanjaan dana ganda.

Masalah serius ini dapat muncul dalam berbagai cara. Pertama, Bitcoin Core versi 0.14.0 hingga 0.14.2 (dan dalam beberapa kasus versi yang lebih baru) akan menerima pemblokiran, namun pada saat yang sama mengakui bahwa ada sesuatu yang salah. Namun, mereka tidak bisa mengatakan secara pasti apa yang salah. Akibatnya, node tersebut akan berhenti bekerja dan mati. Jadi, jika blok yang tidak valid berhasil mencapai node tersebut, hal ini dapat menyebabkan jaringan crash. Dan ini buruk...

Tetapi kemudian menjadi lebih buruk. Dalam Bitcoin Core versi 0.15.0 hingga 0.16.2, peningkatan kinerja lain ditambahkan yang memungkinkan dalam beberapa kasus node ini bahkan tidak menyadari bahwa ada sesuatu yang salah. Khususnya, jika koin yang dibelanjakan dua kali tidak berpindah dalam blok yang sama (yang sering terjadi), node ini akan menerima transaksi dan tidak memblokir seperti biasanya. Dalam skenario hipotetis terburuk, penyerang dapat meningkatkan jumlah uang beredar Bitcoin dengan menyalin koinnya sendiri, dan node mana pun yang menjalankan Bitcoin Core versi 0.15.0 hingga 0.16.2 akan menerima koin ini sebagai valid.

Secara teknis, bug ini juga dapat menyebabkan percabangan dalam blockchain antara node yang terpengaruh (Bitcoin Core 0.15.0 hingga 0.16.2 dan fork-forknya) dan node yang tidak terpengaruh (khususnya Bitcoin Core 0.13.2 dan yang lebih lama, serta fork-forknya). Namun, hal ini kecil kemungkinannya, karena kategori terakhir kemungkinan besar tidak memiliki hashrate yang cukup untuk membuat satu blok saja dalam beberapa hari, apalagi beberapa blok. Oleh karena itu, node tersebut akan berhenti menunggu blok yang valid.

Namun, bug tersebut bisa saja menyebabkan salah satu serangan terburuk terhadap Bitcoin dalam sejarah.. Hal ini menyedihkan bagi banyak orang, karena kesalahan yang berpotensi menyebabkan konsekuensi yang mengerikan tetap tidak terdeteksi selama sekitar 18 bulan.

Sekarang kabar baiknya. Kabar baik pertama dan terpenting adalah bug ini tidak pernah dieksploitasi.

Kabar baik kedua adalah kemungkinan bug ini dapat dieksploitasi sangatlah rendah. Hal ini karena serangan hanya dapat dilakukan oleh penambang yang secara sengaja membuat blok serangan, namun tidak dapat dilakukan oleh penambang yang melakukannya secara tidak sengaja atau oleh pengguna biasa.

Ini berarti bahwa seorang penambang harus secara sadar mengambil risiko kehilangan hadiah blok sekitar $80.000. Serangan seperti itu akan diketahui dengan cepat karena semuanya terjadi di blockchain publik. Tak lama kemudian, laporan kerusakan akan memenuhi ruang obrolan dan forum. Pada titik ini, akan terungkap bahwa blok yang salah sebenarnya disebabkan oleh kesalahan.

 Seperti yang terjadi pada tahun 2010 dan 2013, ketika kesalahan dalam kode menyebabkan blockchain bercabang, sebagian besar penambang akan meningkatkan atau menurunkan versi perangkat lunak yang mereka gunakan, menolak blok penyerang dan terus menambang cabang yang jujur. Seiring waktu, cabang yang valid akan melebihi penyerang dan bahkan node yang rentan akan beralih ke cabang yang benar, meninggalkan penambang yang menyerang tanpa imbalan blok. Selain itu, insiden seperti itu akan segera menurunkan harga pasar dari koin yang diserang, sehingga secara signifikan mengurangi efektivitas finansial dari serangan itu sendiri.

Kabar baik ketiga adalah pengembang bernama awemany secara bertanggung jawab mengungkapkan bug tersebut terutama kepada pengembang yang mengerjakan Bitcoin Core (serta Bitcoin ABC dan Bitcoin Unlimited). Kesalahan tersebut awalnya dianggap sebagai kesalahan penolakan layanan (DoS). Namun setelah diperiksa lebih lanjut, karyawan Bitcoin Core dan Chaincode Labs, Matt Corallo, menemukan bahwa kesalahan yang sama juga merupakan kerentanan dampak jaringan. Kesalahan tersebut diperbaiki pada hari berikutnya dan Bitcoin Core 0.16.3 dan kandidat rilis Bitcoin Core 0.17.0 dirilis. Sementara itu, sekelompok kontributor Bitcoin Core yang menyadari masalah ini menghubungi pemain kunci di ekosistem Bitcoin dan meminta mereka untuk bermigrasi ke Bitcoin Core 0.16.3..

Kabar baik keempat adalah sebagian besar penambang di jaringan telah memperbarui perangkat lunak yang mereka gunakan dengan cukup cepat, artinya meskipun penyerang mencoba mengeksploitasi bug tersebut, mereka tidak akan bisa berbuat banyak. Penambang yang jujur ​​akan dengan cepat mengatasi rantai penyerang, dan pada titik ini bahkan node yang tidak diperbarui akan menganggap rantai yang valid sebagai satu-satunya rantai yang benar. Namun, untuk mengamankan transaksinya, saat ini pengguna disarankan menunggu konfirmasi tambahan sebelum menerima pembayaran.

Fitur Jahat... Memperbaiki bug seperti ini dapat menjadi tantangan dalam jaringan terbuka, terdesentralisasi, dan selalu aktif yang didukung oleh perangkat lunak sumber terbuka. Misalnya, ketika Bitcoin Unlimited memperbaiki bug kritis pada awal tahun 2017, fakta bahwa kerentanan dalam kode telah diperbaiki akan membuat bug tersebut terkena musuh potensial, sehingga membuka jendela serangan hingga perbaikan tersebut diterapkan ke sebagian besar node jaringan.

Untuk menghindari serangan seperti itu, pengembang Bitcoin Core memutuskan untuk tidak segera mengungkapkan tingkat keparahan kesalahannya kepada publik. Awalnya, dengan menyembunyikan informasi lengkap dari penambang dan pengguna, mereka melaporkan kerentanan DoS, namun bukan kerentanan dampak jaringan. Mereka berharap kerentanan DoS dan rekomendasi yang kuat akan menjadi alasan yang cukup bagi pengguna untuk memperbarui perangkat lunak mereka tanpa menarik perhatian calon penyerang.

Namun, tidak semua orang menyukai pendekatan ini. Saat bug tersebut diteliti, semakin banyak orang yang mulai menyadari bahwa bug tersebut lebih serius daripada sekadar kerentanan DoS. Beberapa dari mereka mengungkapkan rincian lengkap tentang kerentanannya, sehingga membuat jaringan Bitcoin berisiko terkena serangan. Setelah kerentanan ini dipublikasikan di Hacker News (walaupun kemudian dihapus), tidak ada gunanya lagi merahasiakannya.

Untungnya, ketika informasi mendetail tentang masalah ini bocor, sebagian besar pemain utama penambangan Bitcoin telah memperbarui perangkat lunak yang mereka gunakan, sehingga mengamankan jaringan dari serangan. Setelah itu, Bitcoin Core menerbitkan informasi teknis lengkap tentang kesalahan tersebut..

Sejumlah besar altcoin berdasarkan kode sumber Bitcoin mungkin masih rentan, dan fakta bahwa masalahnya diketahui publik tidak menghilangkan ancaman dari altcoin tersebut. Meskipun demikian, mata uang kripto seperti Bitcoin ABC segera menerbitkan pembaruan pada perangkat lunaknya, sehingga mengamankan jaringannya dari potensi serangan.

Berdasarkan materi dari Bitcoin Magazine

Baca juga

52018-03-29

Perusahaan perdagangan besar Newegg akan menerima pembayaran bitcoin di Kanada

Newegg menjual peralatan komputer dan memiliki sekitar 36 juta pelanggan. Dia adalah salah satu orang pertama yang menerima pembayaran dalam mata uang kripto. Dan kini perusahaan bermaksud untuk menyediakan pembayaran tersebut kepada kliennya di Kanada, kata Danny Lee, CEO perusahaan tersebut.

Bitcoin
02018-08-16

Analisis pasangan mata uang kripto BTC/USD, ETH/USD, XRP/USD pada 16/08/2018

Setelah pulih dari posisi terendah, kemungkinan dorongan bullish muncul

Analisis, Bitcoin, Ethereum, Ripple

Artikel terbaru dari bagian Bitcoin

Video terbaru di saluran