Langkau ke kandungan utama

Asas keselamatan mnemonic

Dikemas kini semalam

Apabila menggunakan mnemonic untuk memulihkan dompet anda, terdapat peluang yang sangat kecil bahawa anda akan memasukkan perkataan secara silap (bukan dalam sandaran, tetapi dalam pangkalan data mnemonic) dan masih dapat memulihkannya menggunakan dompet blockchain.

Berikut adalah beberapa contoh dan penjelasan tentang senario yang sangat tidak mungkin ini.

Untuk bermula, kita mesti terlebih dahulu memahami proses pembinaan mnemonic untuk memahami mengapa mnemonic boleh digunakan walaupun ia dimasukkan secara salah.

Cipta mnemonic:

Menggunakan prosedur normalisasi yang digariskan dalam BIP-39, dompet menjana mnemonic secara automatik. Dompet bermula dengan sumber entropi, kemudian menambah checksum sebelum memetakan nombor rawak ke senarai perkataan:
1. Cipta nombor rawak 128 hingga 256-bit.
2. Gunakan checksum nombor rawak ini sebagai bit pertama pengepala SHA256 (empat bit pertama diambil daripada bit bantuan 12-bit).
3. Di hujung urutan rawak, tambahkan checksum.
4. Pisahkan urutan kepada separuh 11-bit.
5. Setiap nombor yang membawa komponen 11-bit sepadan dengan kamus yang sudah mempunyai 2048 perkataan.
6. Mnemonic ialah urutan suku kata yang terhasil.

Dan apabila perkataan yang salah dimasukkan, seperti dalam contoh berikut (hanya kedudukan pertama dimasukkan secara tidak betul).

Dompet menjana mnemonic sebagai:ribbon voice frame black oppose galaxy divide either tube maximum tired obvious

Hash SHA256: 00101011 11111111

mceclip3.png

Mnemonic yang dimasukkan secara salah secara artifisial adalah:rib voice frame black oppose galaxy divide either tube maximum tired obvious

Hash SHA256:00101011 11101010

mceclip4.png

Empat bit pertama setiap pasangan SHA256 adalah sama, menunjukkan bahawa checksum juga sama.

Kerana kedua-dua pasangan mnemonic mematuhi BIP39, kedua-duanya boleh dipulihkan menggunakan dompet blockchain.

Jika kita melakukan penjelasan asas dari segi kebarangkalian: pertama pilih satu perkataan rawak sebagai perkataan mnemonic terakhir, dan kemudian secara rawak pilih 11 perkataan mnemonic lain apabila perkataan mnemonic adalah 12 bit, kita boleh mencari satu set yang betul 16 kali, manakala perkataan bantuan 24-bit adalah 256 kali.

Oleh itu, adalah biasa untuk "memasukkan perkataan yang salah dan menerima mnemonic yang berfungsi", tetapi ini tidak bermakna keselamatan mnemonic adalah tidak tepat.

Mnemonic kadang-kadang disalah anggap dengan "dompet otak", walaupun ia bukan perkara yang sama.

Perbezaan utama ialah dompet otak terdiri daripada perkataan yang dipilih oleh pengguna, manakala mnemonic dijana secara rawak dan dibentangkan kepada pengguna.

Perbezaan yang paling ketara antara kedua-duanya ialah aspek yang menjadikan mnemonic lebih selamat; lagipun, manusia mempunyai keupayaan terhad untuk menjana nombor rawak.

Ini bermakna hanya kerana mnemonic yang mematuhi BIP39 telah diuji secara artifisial tidak bermakna menggunakan mnemonic yang dijana oleh dompet adalah tidak selamat; kedua-dua jenis mnemonic berbeza dari segi keselamatan; mnemonic yang dijana oleh dompet lebih rawak (iaitu, lebih selamat), manakala dompet otak (dengan mnemonic yang salah) kurang berkemungkinan dijana dan digunakan secara rawak.

Dompet menjana nombor yang benar-benar rawak menggunakan kaedah yang selamat dari segi kriptografi (cth., TRNG perkakasan), oleh itu kualiti keawakan tidak dapat dijamin oleh pilihan mnemonic biasa pengguna.

Adakah ini menjawab soalan anda?