Ketika sebuah rantai menulis ulang dirinya: bug konsensus Ravencoin dan nilai sebenarnya sebuah konfirmasi

·7 mnt baca·Oleh SSP Editorial Team
Sampul SSP Academy: bug konsensus Ravencoin dan makna sebuah konfirmasi

Ketika sebuah rantai menulis ulang dirinya: bug konsensus Ravencoin dan nilai sebenarnya sebuah konfirmasi

Hampir semua insiden kripto berkisar pada kunci. Seseorang memancing frasa benih, sebuah kontrak punya bug reentrancy, sebuah bursa kehilangan dompet panasnya. Buku besar tetap jujur; hanya sekumpulan koin tertentu yang berpindah tangan bertentangan dengan kehendak pemiliknya.

Insiden Ravencoin pada Agustus termasuk kategori lain, dan yang lebih langka. Tak ada kunci siapa pun yang disentuh. Yang berantakan adalah buku besarnya sendiri.

Apa yang terjadi

Pada 7 Agustus 2026 pukul 15.44 UTC, di ketinggian blok 4.487.776, jaringan menerima sebuah blok yang seharusnya mustahil. Lalu menyusul lebih banyak lagi. Dalam satu petak yang diperiksa sepanjang 2.089 blok, 96 di antaranya tidak sah. Celah itu didemonstrasikan ke publik pada 11 Agustus, empat hari setelah blok pertama yang dieksploitasi — artinya rantai itu diam-diam sudah memproduksi blok palsu selama hampir sepekan sebelum ada yang mengumumkannya.

RVN anjlok sekitar 20% ke kisaran 0,0027 dolar. Upbit dan Bitget menangguhkan setoran dan penarikan. Proyek Ravencoin meminta bursa, penjelajah blok, dan operator simpul segera memperbarui perangkat lunak, serta menandai setiap transaksi yang dikonfirmasi setelah blok 4.487.775 sebagai berpotensi dapat dibatalkan.

Kalimat terakhir itulah yang pantas direnungkan. Bukan «beberapa transaksi dibatalkan». Semua transaksi, selama tiga hari, bersifat sementara.

Bug-nya: sebuah angka yang tak pernah diperiksa

Ravencoin ditambang dengan KAWPOW, algoritma bukti kerja yang rakus memori dan diturunkan dari ProgPoW. Kerakusan memori itu justru intinya: pekerjaannya bergantung pada kumpulan data besar yang harus ditahan di RAM, dan itulah yang membuat ASIC tak ekonomis serta menjaga penambangan tetap terjangkau bagi kartu grafis. Kumpulan data itu diregenerasi berkala, dan yang mana yang Anda butuhkan diturunkan dari ketinggian blok.

Header blok membawa sebuah bidang bernama nHeight, yang menyatakan di mana blok itu duduk dalam rantai. Simpul memvalidasi bukti kerja terhadap ketinggian yang diklaim blok itu sendiri. Mereka tak pernah memeriksa klaim tersebut terhadap posisi sebenarnya blok itu di rantai.

Jadi Anda bisa berbohong. Nyatakan sebuah ketinggian dari masa awal rantai, dapatkan kumpulan data kecil, kerjakan sebagian kecil pekerjaannya, dan hasilkan blok yang akan diterima dengan senang hati sebagai sah oleh simpul yang rentan. Kekerasan memori yang membuat penambangan Ravencoin mahal menjadi opsional asalkan Anda sekadar mengaku sedang menambang blok yang berbeda dari yang sebenarnya. Blok tak sah menjadi, dalam rumusan proyek itu sendiri, jauh lebih murah diproduksi ketimbang blok yang sah.

Sulit menemukan bug konsensus yang lebih mendasar dari ini. Bukti kerja adalah mekanisme yang dipakai sebuah blockchain untuk mengubah listrik menjadi finalitas. Jika buktinya bisa dipalsukan dengan murah, tak ada finalitas — hanya penampakannya.

Obatnya adalah reorganisasi itu sendiri

Inilah bagian yang dari luar tampak mengkhawatirkan dan sebenarnya justru benar.

2Miners dan RavenMiner, yang bersama-sama memegang mayoritas laju hash jaringan, mengumumkan bahwa mereka menambang rantai yang mengecualikan cabang tereksploitasi sejak blok 4.487.776. Perangkat lunak simpul yang sudah ditambal (2Miners merilis 4.6.1.1-hf1) menolak blok yang ketinggian deklarasinya tak cocok dengan ketinggian sebenarnya, dan menanam blok 4.487.775 sebagai titik pemeriksaan — sebuah garis yang di baliknya sejarah lama yang teracuni tak bisa lagi diterima kembali.

Hasilnya adalah reorganisasi rantai sedalam kira-kira tiga hari. Tiga hari blok dibuang dan diganti.

Reorganisasi dalam biasanya adalah gejala serangan. Di sini ia adalah obatnya. Cabang tereksploitasi itu bukan sejarah sah yang ditulis ulang oleh seseorang; ia memang sudah tidak sah, dan jaringan memilih berhenti berpura-pura sebaliknya.

Jahitannya masih terlihat di rantai sampai hari ini. Blok 4.487.775 ditambang pukul 15.43.57 UTC pada 7 Agustus. Blok 4.487.776 — yang jujur, di rantai yang dipulihkan — berstempel 14.09.42 UTC pada 10 Agustus. Dua hari, dua puluh dua jam, dan dua puluh enam menit antara dua blok berurutan di rantai yang menyasar satu menit. Jurang itulah jaringan parutnya.

Apa artinya jika Anda memegang RVN

Kalau koin Anda tersimpan di dompet yang Anda kendalikan dan Anda tak bertransaksi pada hari-hari itu, tak terjadi apa pun pada Anda. Kunci tak pernah menjadi masalahnya. Saldo yang mendahului blok 4.487.775 tak pernah dipersoalkan.

Kalau Anda memang bertransaksi dalam jendela itu, transaksi Anda harus ditambang ulang ke rantai yang dipulihkan agar bertahan. Pembayaran biasa umumnya bertahan — itu transaksi sah yang kebetulan tinggal di blok yang dibuang, lalu kembali ke mempool untuk dikonfirmasi lagi. Yang tak bertahan dari sebuah reorganisasi adalah segala hal yang bergantung pada permanennya sejarah yang dibuang. Kasus klasiknya adalah setoran ke bursa: koin tiba, dikreditkan, diperdagangkan atau ditarik, lalu setoran itu jadi tak pernah terjadi. Persis karena itulah menangguhkan setoran dan penarikan adalah keputusan yang tepat, dan karena itu pula bursa yang bergerak cepat sedang melindungi diri dan penggunanya, bukan panik. Berhenti adalah mode kegagalan yang bisa dan seharusnya diserap bursa ketika pilihan lainnya adalah mengkreditkan uang yang nantinya menguap.

Apa yang sebenarnya dijanjikan sebuah konfirmasi

Kebanyakan dompet, termasuk milik kami, menampilkan jumlah konfirmasi dan membiarkan Anda menyimpulkan rasa aman darinya. Ada gunanya bersikap cermat tentang arti angka itu, karena pada insiden semacam inilah ketidakcermatan menggigit.

Konfirmasi bukan jaminan. Ia sebuah pernyataan ekonomi: menulis ulang sejarah dari titik ini menuntut pengulangan bukti kerja sebanyak ini, dan itu akan lebih mahal daripada nilai pembayarannya. Enam konfirmasi di Bitcoin adalah aturan praktis soal biaya, bukan pembuktian kriptografis tentang kekekalan.

Pernyataan itu memanggul satu asumsi tersembunyi: bahwa memproduksi blok itu mahal. Bug Ravencoin melenyapkan asumsinya. Ketika blok tak sah nyaris tak berbiaya, «sekian konfirmasi» berhenti mengukur apa pun. Angka di layar Anda terus bertambah; yang dihitungnya sudah diam-diam kehilangan makna.

Kesimpulan jujurnya bukan «konfirmasi tak berguna». Melainkan bahwa hitungan konfirmasi adalah pernyataan tentang kesehatan aturan konsensus sebuah rantai, dan ia mewarisi setiap kelemahan aturan itu. Sesuaikan kesabaran Anda dengan nilai yang dipertaruhkan, dan perlakukan insiden konsensus yang sedang berlangsung sebagai alasan untuk berhenti bertransaksi sama sekali, bukan alasan menunggu angka yang lebih besar.

Di mana posisi SSP

Kami menjalankan infrastruktur Ravencoin sendiri alih-alih membaca saldo dari API orang lain, yang berarti pertanyaan «apakah SSP berada di rantai yang benar?» punya jawaban yang bisa diperiksa, bukan jawaban yang menenangkan.

Simpul kami menjalankan Ravencoin 4.8.0 — jauh melewati hard fork — dan saat tulisan ini dibuat berada di ketinggian 4.522.205 pada rantai yang dipulihkan. Kedua sisi jahitan itu cocok persis dengan rantai rujukan:

  • 4.487.775 → 000000000002d64509e06e76ddbbe418c725291687ec62b41ecfc40386a091fd
  • 4.487.776 → 0000000000042bb50281ebb2f68d3f9143980b041178849015d95b067d52a841

Hash yang sama dengan penjelajah Ravencoin resmi, jurang tiga hari yang sama. Tak ada yang dituntut dari pengguna SSP, dan Ravencoin di SSP bekerja persis seperti sebelumnya.

Batas-batas jujurnya

Kami menulis tulisan semacam ini untuk menjelaskan apa yang dilindungi arsitektur kami, jadi penting untuk jelas soal apa yang tidak dilindunginya.

Multisig dua-dari-dua melindungi sisi penandatanganan. Artinya tak ada satu perangkat terkompromi pun yang bisa memindahkan koin Anda, bahwa setiap pembayaran disetujui dua kali di dua perangkat keras independen, dan bahwa pencuri yang memegang laptop Anda tak mendapat apa-apa. Sifat-sifat itu bertahan sepanjang insiden, dan itulah sifat yang penting bagi mayoritas besar cara orang kehilangan kripto.

Tak satu pun darinya membantu menghadapi reorganisasi rantai. Begitu pula dompet perangkat keras, penandatangan terisolasi, frasa sandi, atau kuorum multisig sebesar apa pun. Kegagalan konsensus berada di bawah semua itu — ia sifat jaringan, bukan sifat cara Anda menyimpan. Siapa pun yang mengklaim dompetnya melindungi Anda dari blok buruk sedang menjual sesuatu.

Yang bisa ditawarkan sebuah dompet dengan jujur adalah ini: menjalankan infrastruktur simpul sungguhan, menjaganya tetap tertambal, dan transparan tentang rantai mana yang diikutinya. Itu komitmen pemeliharaan, bukan jaminan kriptografis, dan itulah ukuran klaim yang tepat.

Hal lain yang layak dibawa pulang dari Agustus adalah pengingat tentang di mana risiko sebenarnya bermukim. Bug Ravencoin sudah bertahun-tahun ada di dalam kode sebelum ada yang mengeksploitasinya, bersarang di tempat paling tak glamor yang bisa dibayangkan: sebuah bidang di header yang semua orang mengira sudah diperiksa orang lain. Kegagalan entropi Coldcard punya bentuk masalah yang sama persis — satu baris kode kecil, membosankan, tak pernah ditelaah, tak terlihat dari luar, menyangga segala hal di atasnya.

Bug semacam itulah yang menyakitkan. Bukan serangan kriptografis yang eksotis, melainkan asumsi yang tak seorang pun menuliskan pengujiannya.

Bagikan artikel ini

Artikel terkait