Penulis: Tyler
Baru-baru ini saya menonton karya terbaru Jackie Chan yang banyak dibicarakan, “Capture the Wind and Chase the Shadow”, di dalamnya ada satu adegan yang cukup menarik — aset kripto senilai ratusan miliar dolar Hong Kong terkunci dalam dompet frase pemulihan 12 kata, dan di akhir hanya tersisa satu kata yang tidak diketahui.
Saya sudah mencoba dan menemukan bahwa posisi ke-10 dan ke-12 tidak ada dalam daftar frase bantuan standar, jelas penulis skrip sengaja menulisnya seperti itu untuk menghindari orang yang mencoba merekonstruksi dompet berdasarkan plot untuk melakukan penipuan, karena memang tidak jarang terjadi penipuan serupa di blockchain:
Penipu akan sengaja membocorkan alamat dompet “dengan saldo” (biasanya di rantai Tron, memanfaatkan mekanisme Pemilik), menggoda orang untuk mengirim Gas, menunggu dengan sabar, begitu dana ditransfer, tidak akan pernah bisa diambil kembali.

Namun, ada satu hal menarik di sini, film tersebut mengatakan hanya kurang satu kata terakhir yang tidak diketahui. Tetapi di dunia nyata, frasa pemulihan mengikuti standar BIP39, yang terdiri dari total 2048 kata, artinya, untuk membobol dengan paksa kata terakhir, paling banyak hanya ada 2048 kemungkinan. Jika kita mempersempit lagi, misalnya, huruf awal yang diketahui di film adalah “es”, maka kemungkinan menjadi lebih sedikit, dan bisa dicoba dalam waktu satu menit.
Namun, pertanyaan yang lebih layak untuk diingat di luar film adalah: Apa hubungan antara frase pemulihan, kunci pribadi, dan kunci publik? Mengapa kehilangan frase pemulihan sama dengan kehilangan semua aset?
Frasa pemulihan adalah metode cadangan yang mengikuti standar BIP39, yang terdiri dari 12, 18, atau 24 kata yang dipilih dan digabungkan secara acak melalui algoritma dari kumpulan 2048 kata bahasa Inggris.
Set mnemonic ini, setelah diproses dengan algoritma PBKDF2, akan menghasilkan sebuah seed, yang kemudian dari seed ini, sesuai dengan standar jalur seperti BIP32/BIP44, akan diturunkan serangkaian kunci pribadi, yang selanjutnya berkaitan dengan serangkaian kunci publik/alamat.
Sekumpulan frase pemulihan → Menghasilkan serangkaian kunci pribadi → Menghasilkan serangkaian kunci publik → Mencocokkan serangkaian alamat
Dengan kata lain:
Jadi, Anda dapat menganggap frase pemulihan sebagai “rantai kunci” Anda, dan setiap kunci pribadi seperti salah satu kunci yang dapat membuka pintu, digunakan untuk menandatangani dan membuktikan kendali Anda atas alamat dompet tertentu—ketika Anda melakukan transaksi, Anda menggunakan kunci pribadi untuk menandatangani, memberi tahu seluruh jaringan: “Transaksi ini adalah yang saya otorisasi.”
Apakah teman-teman tidak merasa: bisakah saya sendiri mengumpulkan 12 kata? Misalnya, tanggal lahir, kata bahasa Inggris favorit, nama idola, sehingga lebih personal.
Jawabannya adalah: bisa, tetapi sangat berbahaya.
Karena angka acak yang dihasilkan komputer adalah acak sejati, sedangkan manusia hampir selalu memiliki pola saat memilih kata (kata umum, kata yang biasa digunakan, preferensi urutan), ini akan sangat mengurangi ruang pencarian, membuat kata sandi pemulihan Anda lebih mudah ditebak.

Sebelumnya telah terjadi insiden keamanan “dompet pseudo-random”, di mana beberapa dompet menggunakan algoritma pseudo-random saat menghasilkan frase pemulihan, sehingga hasil entropi sangat tidak mencukupi, dan diretas oleh peretas yang secara brutal menjelajahi dan langsung menguji coba. — Pada tahun 2015, kelompok peretas Blockchain Bandit menggunakan generator angka acak yang cacat dan kerentanan kode program, secara sistematis mencari kunci pribadi dengan keamanan rendah, dan berhasil menemukan lebih dari 700.000 alamat dompet yang rentan, serta mencuri lebih dari 50.000 ETH dari dalamnya.
Tentu saja, beberapa geek akan menggunakan dadu (harus memastikan dadu juga cukup merata) untuk melempar angka acak, lalu memetakan ke dalam daftar kata BIP39, ini baru dianggap aman secara manual, tetapi bagi kebanyakan orang, tidak perlu sesulit itu, malah bisa lebih mudah menjadi salah.
Saya juga pernah membayangkan pertanyaan ini di masa lalu, membayangkan suatu hari saya membuat alamat dompet, dan ketika saya melihatnya, ada lebih dari satu juta ETH di dalamnya, tiba-tiba bebas finansial, langsung mencuri dari salah satu paus.
Tidak bisa dipungkiri, hanya memikirkannya saja sudah sangat menggoda. Tapi kenyataannya: probabilitasnya hampir nol.
Mengapa? Karena jumlah kombinasi yang mungkin dari frase pemulihan sudah sangat berlebihan hingga melampaui imajinasi manusia:
Apa konsep dari ukuran ini?
Kita semua tahu bahwa pasir di Bumi begitu banyak hingga tidak terhitung, tetapi para ilmuwan telah memperkirakan nilai mendekati, dengan asumsi bahwa semua pantai dan gurun di Bumi digabungkan, jumlah total pasir kira-kira adalah 7.5×10¹⁸ butir, yang juga berarti:
Dengan kata lain, seolah-olah setiap butir pasir di Bumi ini menjadi sebuah “Bumi Baru”, di setiap Bumi Baru ada pantai dan pasir, lalu Anda harus menemukan butir pasir yang telah Anda tandai sebelumnya di antara semua pasir ini secara acak sekaligus.
Ini sudah jauh melampaui skala yang dapat dibayangkan manusia.

Jadi, kemungkinan untuk melakukan brute force pada dompet bukanlah “sangat rendah,” melainkan di bawah fisika dan kemampuan komputasi yang diketahui, setara dengan nol, berharap untuk “mendapatkan duit” dengan cara itu, lebih baik pergi membeli tiket lotere, karena peluang menang jauh lebih tinggi.
Kembali ke pengaturan film itu: jika benar ada seseorang yang hanya kekurangan satu kata dari frasa pemulihan, maka memang mungkin untuk mencoba melalui brute force.
Terakhir, beberapa tips keamanan tentang dompet/kata sandi/ kunci privat: