Sedikit kusut, tulis agar tidak lupa. Komentar dari komunitas habracrypto harus menarik.
Saya memutuskan untuk memeriksa bagaimana Brainwallet kriptografis adalah sistem cadangan dompet multi-mata uang Jaxx dan apa arti kata-kata rahasia pada tingkat kode.
Untuk memulai, saya membuat salinan dompet ekstensi Google yang baru diinstal ke folder kerja saya. Mengoreksi file untuk diedit.
Notepad ++ memiliki fitur hebat untuk mencari file dan plugin untuk memformat kode, jadi mencari dan menambahkan baris seperti console.warn ("bits =" + bits) membantu dengan cepat mengetahui apa yang terjadi ketika membuat dan memulihkan dompet. Fungsional yang disembunyikan dari pengguna juga ditemukan, yang mungkin memungkinkan peningkatan level resistensi kriptografi terhadap paranoid.
Jadi, saat membuat dompet:
1. 128 bit pseudo-acak dihasilkan menggunakan rng:
function generateMnemonic(strength, rng, wordlist) { strength = strength || 128 rng = rng || randomBytes var hex = rng(strength / 8).toString('hex') console.warn('hex=' + hex) return entropyToMnemonic(hex, wordlist) }
2. Checkum 4-bit dihitung
3. Total bitmap dibagi menjadi 12 bit, dan dikonversi menjadi Integer. Kami mendapatkan 12 indeks untuk tabel kode.
4. String kata untuk cadangan dompet dikumpulkan dari tabel kode dengan ukuran 2225 kata.
5. Berdasarkan pilihan, dompet yang berbeda dibuat dengan menerapkan berbagai algoritma hashing ke benih 128-bit.
var jaxx; (function (jaxx) { var Seed = (function () { function Seed() { } Seed.generateMnemonic = function () { return thirdparty.bip39.generateMnemonic(); }; Seed.validateSeed = function (seed) { return (thirdparty.bip39.validateMnemonic(seed)) ? true : false; };
Internal pihak ketiga berisi implementasi dari banyak algoritma yang berbeda, Anda dapat menggambar ulang jaxx agar sesuai dengan kebutuhan Anda.
hash160: hash160, hash256: hash256, ripemd160: ripemd160, sha1: sha1, sha256: sha256
Dan banyak sekali kode menarik yang terus saya gali.
Ketika mengembalikan dompet, indeks yang ditemukan dalam tabel kode dilengkapi dengan 0 hingga 12 bit yang tidak signifikan, checksum diperiksa, kunci segera dihasilkan dari seed yang diterima dan sinkronisasi dengan blockchain dimulai.
words=boil,matter,crawl,clean,choice,gasp,clay,defy,crew,amount,cushion,pretty
chunks=00011001000,10001001010,00110010101,00101010010,00101000001,01100000001,00101010001,00111001101,00110011010,00001000000,00110110011,10101010001
bits=000110010001000100101000110010101001010100100010100000101100000001001010100010011100110100110011010000010000000011011001110101010001
checksum=0001
Bagi saya, semua pengalaman ini ternyata menjadi bahan penasaran untuk memperdalam kenalan saya dengan crypto.
PS Dan ya, mengapa saya:
Apa yang Anda pikirkan, jika analisis neurokriptografi diterapkan pada algoritma ini, apakah mungkin untuk mempercepat peretasan dompet yang kunci privatnya secara encodistode dikodekan dari bit array dan digunakan sebagai seed untuk beberapa dompet.
Saya akan senang dan berterima kasih kepada contoh kode python, menarik untuk mengukur kecepatan pemilihan tombol pada perangkat keras yang berbeda.