Empat baris kode.
Lebih dari 1.596 BTC hilang.
Pada Maret 2021, sebuah versi firmware COLDCARD berhenti meminta angka acak dari chip perangkat keras dan menggunakan software biasa untuk membuatnya. Tidak ada yang mengetahuinya selama lima tahun. Pada Juli 2026, para penyerang menghitungnya dan mulai menguras dompet-dompet tersebut.
Pemeriksaan keamanan yang ada, namun tidak melakukan apa pun
Semua perlindungan bertumpu pada satu angka yang tidak bisa ditebak
Sebuah hardware wallet melakukan beberapa tugas. Perangkat ini menunjukkan apa yang sebenarnya Anda tandatangani alih-alih meminta Anda mempercayai layar komputer yang terinfeksi, dan menjaga kunci Anda tetap berada di dalam chip yang dirancang untuk tahan terhadap pembongkaran. Setiap pertahanan tersebut mengasumsikan angka tempat asal kunci Anda tidak dapat ditebak. Jika angka itu bisa ditebak, penyerang tidak perlu melewati pertahanan apa pun. Kumpulan kata tempat frasa 24 kata diambil memiliki kira-kira satu angka untuk setiap seribu atom di alam semesta yang dapat diamati. Kumpulan sebesar itu tidak mungkin untuk dicari. Itulah keseluruhan model keamanannya.
12 kata membawa 128 bit entropi, 24 kata membawa 256, ditambah checksum dari SHA-256 dari entropi tersebut. BIP-39 merentangkan hasilnya menjadi master key BIP-32.
12 kata membawa 128 bit entropi, 24 kata membawa 256, ditambah checksum dari SHA-256 dari entropi tersebut. BIP-39 merentangkan hasilnya menjadi master key BIP-32.
COLDCARD berhenti mengambil dari kumpulan angka tersebut
Perubahan firmware tahun 2021 secara diam-diam menghentikan dompet untuk meminta chip keacakan khususnya untuk mendapatkan angka tersebut, dan alih-alih meminta perangkat lunak biasa untuk menghitungnya. Jika berdampingan, inilah keseluruhan insiden tersebut:
Itu bukan keamanan yang berkurang dua pertiga. Setiap bit melipatgandakan pekerjaan, jadi 88 bit yang lebih sedikit memperkecil ukuran pekerjaan dengan faktor 2⁸⁸. Satu triliun adalah angka yang besar bagi seseorang dan angka yang kecil bagi seseorang yang menyewa mesin berkinerja tinggi untuk mengerjakannya.
Pembuatan seed berpindah dari ckcc.rng_bytes() ke ngu.random.bytes(). Coinkite memperkirakan sekitar 40 bit ruang pencarian yang tersisa pada Mk3 dan sekitar 72 pada Mk4/Mk5/Q, terhadap target 128-bit. Analisis independen oleh Block mencapai tingkat yang sama (di bawah 2⁴⁰·⁷ dan di bawah 2⁷³·³) dan menemukan kondisi yang lebih sempit di mana jauh lebih sedikit ruang yang tersisa.2
Pembuatan seed berpindah dari ckcc.rng_bytes() ke ngu.random.bytes(). Coinkite memperkirakan sekitar 40 bit ruang pencarian yang tersisa pada Mk3 dan sekitar 72 pada Mk4/Mk5/Q, terhadap target 128-bit. Analisis independen oleh Block mencapai tingkat yang sama (di bawah 2⁴⁰·⁷ dan di bawah 2⁷³·³) dan menemukan kondisi yang lebih sempit di mana jauh lebih sedikit ruang yang tersisa.2
Karena perangkat lunak tidak bisa menjadi acak
Pikirkan tentang apa yang membuat lemparan koin menjadi tidak dapat diprediksi. Kekuatan lemparan, gravitasi, embusan angin dari AC, getaran halus di tanah. Puluhan pengaruh yang dapat Anda sebutkan dan puluhan yang tidak dapat Anda sebutkan. Tidak seorang pun dapat menghitung lintasannya, sehingga tidak seorang pun dapat menebak hasilnya. Software bekerja dengan cara yang berbeda. Software menjalankan rumus tetap pada segenggam nilai awal dan menghasilkan jawaban yang tetap. Di sini nilai-nilai tersebut adalah nomor seri chip dan berapa lama perangkat telah dinyalakan. Penyerang yang mempelajari resep dan bahan-bahannya akan menghitung ulang hasilnya alih-alih menebaknya.
Dengan RNG perangkat keras yang dinonaktifkan, rng_get() terhubung ke Yasmarang PRNG milik MicroPython, diberi seed dari status non-rahasia (UID, SysTick, RTC) dan tidak mengumpulkan entropi baru setelah itu, sehingga kandidat dapat dientukan secara offline. Coinkite tidak menganggap seed yang dicampur dengan 50 atau lebih lemparan yang adil dan privat berisiko dari masalah ini saja: 50 × log₂6 ≈ 129 bit.3
Dengan RNG perangkat keras yang dinonaktifkan, rng_get() terhubung ke Yasmarang PRNG milik MicroPython, diberi seed dari status non-rahasia (UID, SysTick, RTC) dan tidak mengumpulkan entropi baru setelah itu, sehingga kandidat dapat dientukan secara offline. Coinkite tidak menganggap seed yang dicampur dengan 50 atau lebih lemparan yang adil dan privat berisiko dari masalah ini saja: 50 × log₂6 ≈ 129 bit.3
Dan pemeriksaan yang dimaksudkan untuk menghentikannya menanyakan pertanyaan yang salah
Ada pengaman dalam proses build, yang ditulis khusus untuk menghentikan firmware dikirimkan tanpa generator perangkat keras. Pengaman tersebut menanyakan apakah sebuah pengaturan ada, bukan apakah pengaturan tersebut diaktifkan. Pengaturan itu ada, dan dalam keadaan mati. Pengaman tetap diam, proses build tidak melaporkan adanya kesalahan, dan firmware pun dikirimkan.
#ifndef hanya menguji apakah sesuatu telah didefinisikan. Konfigurasi board mendefinisikan MICROPY_HW_ENABLE_RNG sebagai 0, didefinisikan dan dinonaktifkan, sehingga #error tidak pernah terpicu dan linker mengarahkan rng_get() ke fallback software.3
#ifndef hanya menguji apakah sesuatu telah didefinisikan. Konfigurasi board mendefinisikan MICROPY_HW_ENABLE_RNG sebagai 0, didefinisikan dan dinonaktifkan, sehingga #error tidak pernah terpicu dan linker mengarahkan rng_get() ke fallback software.3
Cacat tersebut, dikutip dari kode sumber.3
Tidak ada yang terlihat salah selama lima tahun
Frasa pemulihan yang lemah terlihat persis seperti yang kuat. Dua puluh empat kata biasa, checksum yang benar, dan perangkat yang beroperasi secara normal. Tidak ada peringatan di layar dan tidak ada galat pada build. Kode sumber tersebut bersifat publik sepanjang waktu. Membacanya tetap mengharuskan seseorang membuka file tertentu itu.
Panjang keluaran, non-nol, dan non-pengulangan semuanya lulus pada PRNG yang lemah, sehingga uji kesehatan (smoke test) biasa tidak dapat mendeteksinya juga.
Panjang keluaran, non-nol, dan non-pengulangan semuanya lulus pada PRNG yang lemah, sehingga uji kesehatan (smoke test) biasa tidak dapat mendeteksinya juga.
Lalu seseorang melakukan perhitungan aritmatika
Mereka tidak pernah menyentuh satu perangkat pun. Mereka menghasilkan kemungkinan frasa di mesin mereka sendiri, mencari tahu alamat Bitcoin mana yang akan dihasilkan oleh masing-masing frasa, dan memeriksa alamat tersebut terhadap blockchain publik. Setiap alamat yang memiliki saldo dikosongkan. Dompet yang dibiarkan tercabut di laci sejak 2022 sama rentannya dengan dompet yang digunakan sehari-hari.
Kandidat diturunkan secara offline melalui BIP-39/BIP-32; hanya pencarian saldo akhir yang menyentuh jaringan, sehingga tidak ada sinyal di sisi korban sebelumnya.3
Kandidat diturunkan secara offline melalui BIP-39/BIP-32; hanya pencarian saldo akhir yang menyentuh jaringan, sehingga tidak ada sinyal di sisi korban sebelumnya.3
Halaman ini bukanlah sebuah perayaan kemenangan.
Coinkite mengungkapkan kerentanan tersebut, menerbitkan laporan teknis, dan merilis perbaikan. Peneliti independen dapat merekonstruksi apa yang terjadi karena COLDCARD bersifat open source.
Satu peringatan mengenai perkiraan: angka-angka tersebut menggambarkan seberapa banyak tebakan yang dihadapi penyerang berdasarkan asumsi saat ini, bukan stopwatch. Tidak seorang pun dapat memberi tahu Anda berapa lama waktu yang dibutuhkan untuk meretas dompet tertentu.2
Baca ini sebelum hal lainnya
Apa yang perlu Anda lakukan tergantung pada perangkat mana yang Anda gunakan saat frasa pemulihan pertama kali dibuat, bukan perangkat yang Anda pegang hari ini.
Asumsikan hal ini masih terjadi. Frasa tersebut dibuat agar mudah ditebak pada tahun 2021 dan metodenya sekarang sudah bersifat publik, sehingga siapa pun dapat menjalankan pencarian yang sama. Tidak ada patch yang menutup celah ini dari luar, dan tidak ada alasan bagi penyerang untuk berhenti. Jika Anda terdampak, asumsi amannya adalah waktu adalah satu-satunya hal yang memisahkan Anda dan mereka.
Mk2 dan Mk3: pindahkan koin Anda sekarang
Rentang yang terdampak adalah firmware 4.0.1 hingga 4.1.9. Versi 4.2.0 memperbaiki cara pembuatan frase baru, tetapi tidak ada pembaruan yang dapat kembali dan menambahkan keacakan pada frase yang sudah ada. Buat dompet baru di perangkat yang Anda percayai dan pindahkan dana Anda.1
Mk4 dan Mk5: periksa versi firmware
Jika frasa dibuat pada firmware yang lebih lama dari 5.6.0 (atau 6.6.0X pada build Edge), perbarui, buat dompet baru pada firmware yang diperbarui, lalu pindahkan dana Anda. Memperbarui saja tidak memperbaiki frasa yang lama.1
Q: sama, batasannya adalah 1.5.0Q
Perbarui ke 1.5.0Q atau yang lebih baru, atau 6.6.0QX pada versi Edge, buat dompet baru, catat dan uji cadangan, kirim satu transaksi uji coba kecil, lalu pindahkan sisanya.1
Apakah memperbarui firmware COLDCARD memperbaiki frase pemulihan yang sudah saya miliki?
Bagaimana cara mengetahui firmware mana yang membuat frase pemulihan COLDCARD saya?
Bagaimana cara memeriksa apakah alamat saya terlibat dalam masalah ini?
Apakah lemparan dadu atau passphrase melindungi frase pemulihan COLDCARD?
Apakah pengumuman Coinkite mencakup setiap COLDCARD yang terdampak?
Tidak ada perangkat OneKey yang terdampak
Bukan satu pun model yang pernah kami kirimkan. Firmware kami tidak memiliki dependensi libngu, Coinkite, COLDCARD, atau CKCC, sehingga jalur kode yang gagal tersebut tidak ada untuk dijangkau, dan Anda dapat memeriksanya sendiri di repositori kami. Pada perangkat keras kami saat ini, kunci berasal dari generator acak murni di dalam secure element bersertifikat, tidak pernah dari software pada prosesor utama. Subtitusi semitulah yang menjadi inti kegagalan ini.
Kami juga tidak begitu saja mempercayainya begitu saja. Ketika berita ini muncul, Anzen Lab menelusuri keacakan kami dari ujung ke ujung (dari mana asalnya, apa yang memanggilnya, dan pengaturan build yang menentukan versi mana yang sampai ke perangkat Anda) dan menerbitkan file persis yang mereka periksa.12
Baca pemeriksaan ulang Anzen LabBisakah ini terjadi pada OneKey?
Kegagalan ini memerlukan tiga hal terpisah untuk terjadi secara bersamaan. Pada OneKey, tidak ada satu pun dari hal tersebut yang terjadi, dan Anda dapat memeriksa ketiga hal tersebut sendiri.
Jadi, dari mana asal keacakan OneKey?
Dibuat di dalam chip bersertifikasi EAL 6+
Kunci Anda dibuat dan disimpan di dalam chip khusus yang tahan gangguan, alih-alih prosesor serbaguna yang menjalankan fungsi lainnya. EAL 6+ adalah tingkat jaminan yang digunakan untuk kartu pembayaran dan identitas.
Keacakan yang memantau dirinya sendiri
Chip tersebut menghasilkan keacakan dari derau fisik nyata, dan terus-menerus menguji keluarannya sendiri. Jika keacakan tersebut mulai berperilaku tidak normal, chip akan menyadarinya alih-alih terus berjalan secara diam-diam.
Kami memeriksa ulang milik kami
Setelah berita COLDCARD muncul, Anzen Lab menelusuri keacakan kami sendiri secara menyeluruh (dari mana asalnya, apa yang sebenarnya memanggilnya, dan pengaturan build yang menentukan versi mana yang berakhir di perangkat Anda) dan menerbitkan file persis yang mereka lihat.11


Empat lapis pemeriksaan pada setiap OneKey, dan tidak satupun yang saling mempercayai
Setiap lapisan dapat melewatkan sesuatu. Intinya adalah keempatnya harus melewatkan hal yang sama. COLDCARD tidak memiliki perlindungan cadangan seperti itu: satu pengaturan build yang tidak diperiksa sudah cukup.
Open-source yang benar-benar dapat Anda verifikasi
Firmware dan aplikasi kami bersifat publik di GitHub, dan build kami dapat direproduksi, yang berarti Anda dapat membangun ulang kodenya sendiri dan mengonfirmasi bahwa kode tersebut menghasilkan persis software yang berjalan di perangkat Anda. Itulah langkah yang mendeteksi masalah "kode benar, versi salah".
OneKey di GitHub
Pihak luar memeriksa kami, secara resmi
Perusahaan keamanan SlowMist mengaudit kami dan menerbitkan laporannya. Penilaian terpisah mencakup OneKey Pro, Classic 1S, dan SDK kami. Praktik keamanan kami bersertifikat ISO/IEC 27001, dan lini Pro serta Classic 1S bersertifikat terhadap EN 18031 oleh badan yang ditunjuk Uni Eropa. Semuanya dipublikasikan, tidak ada yang dinilai sendiri.13
Baca ringkasan audit SlowMistTim yang dibayar untuk merusak produk kami sendiri
Anzen Lab adalah tim keamanan internal kami yang terdiri dari para insinyur keamanan perangkat keras, firmware, dan aplikasi, yang bekerja sama dengan sekelompok peneliti luar yang berotasi. Tugas mereka adalah meretas hardware wallet, termasuk milik kami, sebelum ada yang dikirimkan. Ketika berita ini muncul, mereka memeriksa ulang keacakan OneKey sendiri dari ujung ke ujung dan menerbitkan file persis yang mereka periksa.11
Baca analisis Anzen LabKami membayar orang luar untuk menemukan kesalahan kami
Siapa pun dapat melaporkan celah kepada kami secara pribadi, melalui program publik kami di BugRap atau langsung ke [email protected], dan mendapatkan bayaran untuk itu. Tingkat keparahan menentukan pembayaran, dinilai berdasarkan CVSS. Intinya adalah membuat pelaporan kepada kami lebih menarik daripada menjualnya.15
OneKey di BugRapUji dompet di tangan Anda
entro.tools adalah alat sumber terbuka gratis yang membaca angka acak aktual yang keluar dari hardware wallet dan menjalankan pengujian kesehatan statistik standar pada angka tersebut, di browser Anda, melalui USB, tanpa ada yang diunggah ke mana pun dan tanpa memerlukan pembaruan firmware.
Menjalankan pengujian kesehatan FIPS 140-2, NIST SP 800-22, dan SP 800-90B secara lokal melalui WebUSB (desktop Chrome atau Edge). Perangkat meminta untuk mengekspor entropi, sekumpulan angka acak yang baru saja dihasilkannya, dan tidak pernah meminta frasa pemulihan Anda.16
Uji universal Maurer memerlukan setidaknya 387.840 bit; di bawah itu laporan menandainya sebagai dilewati, bukan menghilangkannya diam-diam.16
Dompet mana saja yang dapat diperiksa
Apakah pihak luar dapat membaca angka acak mentah suatu perangkat secara keseluruhan. Ini adalah satu dimensi yang sempit. Lihat catatan di bawahnya.
Pertanyaan yang muncul bagi yang lainnya
Apakah OneKey terdampak oleh kegagalan entro COLDCARD?
Dompet perangkat keras mana saja yang terdampak oleh kegagalan entro COLDCARD?
Bisakah saya menguji keacakan dompet saya sendiri?
Bagaimana cara menilai apakah sebuah dompet perangkat keras dapat dipercaya?
Menjelaskan yang rumit adalah tugas kami
Keamanan yang dapat Anda periksa, bukan keamanan yang diminta untuk Anda percaya.
Open source dan dapat direproduksi, diaudit oleh pihak luar, diuji oleh lab kami sendiri, dan diberi imbalan ketika seseorang menemukan celah. Inilah perangkat-perangkat yang dibicarakan dalam argumen tersebut.
Referensi
Sumber di bawah ini, diambil pada 6 Agustus 2026. Saran dan laporan teknis Coinkite sendiri berada di urutan pertama, diikuti oleh analisis tingkat sumber independen dan akuntansi on-chain. Angka kerugian masih terus direvisi ke atas: Galaxy Research mengonfirmasi 1.596 BTC pada 4 Agustus dan memperkirakan dugaan kerugian mendekati 2.055 BTC.
- 1. Coinkite · COLDCARD Mk3 Seed Generation Security Advisory
- 2. Coinkite · Technical Deep Dive into the Entropy Issue
- 3. Block Engineering · Predictable RNG Fallback and 32-Bit Reseed in COLDCARD Firmware
- 4. CoinDesk · Bitcoin cold-wallet attack spreads to 4,500 addresses as losses near $89 million
- 5. CoinDesk · Major bitcoin wallet flaw drains 594 BTC in 25-minute sweep
- 6. Crypto Briefing (Galaxy Research) · Galaxy Research identifies 1,367 BTC drained in attacks on Coldcard addresses
- 7. The Crypto Times (Galaxy Research) · Coldcard hack losses hit $100M with 1,596 BTC stolen in ongoing attack
- 8. The Crypto Times (Galaxy Research) · 15 attackers exploit ongoing Coldcard hack as losses approach $130M
- 9. The Hacker News · Coldcard Hardware Wallet Flaw Linked to $70 Million Bitcoin Theft in 41 Minutes
- 10. Bitcoin Magazine · Coinkite Releases Fixed Firmware After Coldcard Bug
- 11. OneKey Anzen Lab · The COLDCARD Entropy Failure: How a Silent RNG Fallback Cost Users $38 Million
- 12. OneKey · Statement: OneKey devices are not affected by this issue
- 13. OneKey · OneKey has passed a security audit by SlowMist — separate reports cover the Pro, the Classic 1S and the SDK
- 14. SlowMist · SlowMist Audit Report — OneKey Pro
- 15. BugRap · OneKey Bug Bounty Program
- 16. entro.tools · Entropy Check — verify your hardware wallet's randomness (device support matrix)








