Apa itu Dompet?

Pemula10/1/2024, 6:09:44 PM
Dalam postingan ini, kami akan membahas apa itu dompet, bagaimana dompet dibuat, dan bagaimana mereka menggunakan kriptografi kurva eliptik untuk menghasilkan dan mengamankan pasangan kunci privat-publik, menurunkan frasa biji, dan memfasilitasi interaksi blockchain yang aman.

Dompet adalah alat penting yang memungkinkan pengguna untuk mengelola akun blockchain mereka, menyimpan aset mereka dengan aman, dan menandatangani transaksi untuk membuat perubahan pada status blockchain.

Dalam posting ini, kami akan membahas apa itu dompet, bagaimana dompet dibuat, dan bagaimana mereka menggunakan kriptografi kurva eliptik untuk menghasilkan dan mengamankan pasangan kunci pribadi-publik, menurunkan frasa biji, dan memfasilitasi interaksi blockchain yang aman.

Apa itu Dompet?

Dompet adalah aplikasi yang memungkinkan Anda melihat dan berinteraksi dengan akun blockchain Anda; akun-akun ini memungkinkan Anda mengirimkan transaksi untuk melakukan tindakan seperti mengirimkan token atau berinteraksi dengan kontrak pintar.

Setiap akun di blockchain terdiri dari sepasang kunci kriptografi; sekumpulan 2 kunci yang saling terhubung. Dalam konteks blockchain, jenis akun ini biasanya disebut sebagai Akun Milik Eksternal (EOA) dan terdiri dari kunci publik dan kunci pribadi:

  • Kunci publik: Alamat dompet Anda. Ini dapat dibagikan kepada siapa pun, dan orang lain (atau kontrak pintar) dapat menggunakannya untuk mengirimkan cryptocurrency kepada Anda.
  • Kunci pribadi: Kunci 'penandatanganan' yang Anda gunakan untuk menandatangani pesan atau transaksi. Siapa pun yang memiliki akses ke kunci pribadi memiliki kontrol penuh atas dana di dalam dompet.

Pasangan kunci ini memiliki fitur yang kuat, yang disebut fungsi pintu belakang; artinya itu:

  • Mudah mencari tahu kunci publik jika Anda memiliki kunci pribadi (A→B).
  • Mustahil untuk mengetahui kunci privat jika Anda memiliki kunci publik (B→A).

Untuk apa dompet digunakan?

Dompet digunakan untuk menandatangani pesan atau transaksi menggunakan kunci pribadi dompet untuk dikirim ke blockchain.

Dompet menyediakan cara untuk mengetahui pesan atau transaksi apa yang disetujui oleh dompet; karena kunci publik pengirim transaksi dapat dipulihkan dari tanda tangan transaksi. Ini penting untuk mencegah transaksi palsu / berbahaya diterima di blockchain.

Sebagai contoh, Jarrod bisa mengirimkan transaksi yang mengklaim bahwa Abril mengirimkan 5 ETH padanya bahkan jika dia tidak pernah menyetujui transaksi ini. Namun, karena blockchain memverifikasi tanda tangan setiap transaksi, itu akan segera menolak transaksi karena alamat yang dipulihkan dari tanda tangan tidak cocok dengan “pengirim” transaksi (yaitu Abril).

Blockchain seperti Ethereum menggunakan ECDSA (Elliptic Curve Digital Signature Algorithm) untuk memeriksa apakah kunci publik yang dipulihkan dari tanda tangan transaksi cocok dengan kunci publik orang yang mengirim transaksi ke jaringan.

Bagaimana dompet diciptakan?

Untuk membuat dompet, Anda perlu membuat pasangan kunci publik-privat. Namun, nilai dari pasangan kunci ini perlu mengikuti beberapa aturan agar bisa berfungsi di blockchain.

  1. Kunci privat terdiri dari 64 karakter heksadesimal (karakter 0→F).
  2. Kunci publik diperoleh dari kunci pribadi menggunakan kriptografi kurva eliptik (ECC).
  3. Kunci publik dipotong, di-hash, dan diformat menjadi alamat 42 karakter.

Proses 3 langkah ini adalah alur inti dari bagaimana akun dibuat di blockchain.

Selanjutnya, kami akan menjelajahi bagaimana kunci publik dihasilkan menggunakan kurva eliptik dan kunci pribadi. Tetapi sebelum itu, kami akan menjawab beberapa pertanyaan lain yang mungkin Anda miliki tentang dompet, seperti:

  • Bagaimana saya memastikan kunci pribadi saya secara acak dihasilkan?
  • Bagaimana jika saya mendapatkan kunci pribadi yang sama dengan orang lain?
  • Bagaimana frasa benih cocok dalam proses ini?
  • Bagaimana beberapa pasangan kunci dihasilkan dari frase biji tunggal?

Apa itu frase benih?

Meskipun memungkinkan untuk menghasilkan nilai 64-hex acak seperti yang baru saja kami tunjukkan, biasanya, kunci pribadi dihasilkan menggunakan standar tertentu yang berasal dari Bitcoin. Standar ini memungkinkan pengguna untuk mengingat frasa biji, yang merupakan frasa 12-24 kata yang dapat digunakan untuk membuat sejumlah akun baru yang terkait dengannya.

Ini memungkinkan pengguna untuk mengingat satu set kata-kata untuk mengakses semua akun mereka; masing-masing dengan pasangan kunci publik-privat individu. Sejumlah kunci privat baru dapat diturunkan dari satu frase benih tunggal menggunakan fungsi derivasi kunci tertentu (KDF).

Jadi, mari kita bahas terlebih dahulu bagaimana frase benih dihasilkan melalui entropi acak dan bagaimana kunci privat dapat diturunkan dari frase benih, sebelum akhirnya membahas kembali bagaimana kunci publik diturunkan dari kunci privat.

Bagaimana Frasa Benih Bekerja

Ketika Anda pertama kali menginstal aplikasi dompet, biasanya, itu akan meminta Anda untuk menulis dan menyimpan frasa biji dengan aman di suatu tempat; biasanya kombinasi kata 12 atau 24 kata. Anda dapat melihat contoh daftar kemungkinan kata-kata dalam bahasa Inggris di sini, yang akan Anda perhatikan memiliki panjang 2048 kata (kita akan segera membahas angka tersebut).

Apa itu BIP-39?

Konsep menyimpan frase benih mnemonik ini diperkenalkan pada tahun 2013 dengan BIP (Usulan Peningkatan Bitcoin); BIP-39. Usulan ini menyediakan cara standar untuk menghasilkan entropi acak dan menerjemahkannya menjadi serangkaian kata-kata yang mudah diingat.

Bagaimana frasa benih dihasilkan?

Pertama, kita perlu memastikan bahwa frasa biji kita dihasilkan secara acak, setelah semua, kita tidak ingin orang lain secara tidak sengaja masuk ke dompet kita dan mengakses dana kita.

Untuk melakukan ini, sebuah nomor acak dihasilkan menggunakan CSPRNG (Cryptographically secure pseudorandom number generator), yang dapat Anda lakukan di browser Anda:

Angka acak ini disebut entropi. Entropi ini digunakan untuk membuat kumpulan kata-kata yang membentuk frasa benih. Dalam kasus kami, 128 bit dipetakan ke 12 kata, tetapi juga mungkin menggunakan panjang lain, seperti:

  • 15 kata: 160 bit
  • 18 kata: 192 bit
  • 21 kata: 224 bit
  • 24 kata: 256 bit

Jadi, bagaimana kita menggunakan bit ini untuk membuat frase bibit? Apa hubungan antara bit dan kata-kata? Pertama, checksum untuk entropi dibuat dan ditambahkan ke 128 bit; ini adalah hash 4 bit dari entropi yang dibuat untuk memastikan integritasnya.

Jadi, sekarang kita memiliki 128 bit entropi + 4 bit checksum, untuk total 132 bit. Selanjutnya, 132 bit tersebut diubah menjadi biner; secara khusus, mereka dibagi menjadi potongan-potongan 11 bit.

Sekarang kita memiliki set 12 angka biner, masing-masing terdiri dari 11 bit. Petunjuk: kita memiliki 12 angka, dan frase biji kita akan berisi 12 kata!

Ingatlah bahwa kami memiliki 2048 kata dalam daftar kami dan bahwa 2048 dipilih karena 2048 adalah 2^11, karena ada 2048 kemungkinan angka biner yang berbeda yang dapat Anda buat dengan 11 bit.

Sekarang kita hanya perlu mengonversi angka biner ini menjadi kata-kata dari daftar kata kita. Ini dilakukan dengan menggunakan angka biner sebagai indeks untuk mencari kata dalam daftar kata. yaitu Jika angka biner adalah 10, kita menggunakan kata ke-9 dalam daftar (karena kita mulai dari indeks 0), sebagai contoh:

  • 000000111, (7 dalam biner) adalah item ke-8 dalam daftar, yang merupakan abstrak! 😉
  • 11111111111, (2047 dalam biner) adalah item terakhir dalam daftar (ke-2048), yang merupakan "zoo".

Ulangi ini 12 kali, satu untuk setiap nomor 11-bit untuk membentuk frase benih yang berisi 12 kata.

Dengan menghasilkan nilai entropi acak, membaginya menjadi potongan-potongan biner, dan menggunakan nilai-nilai biner tersebut sebagai indeks untuk mencari kata-kata dalam daftar kata, kita akhirnya mendapatkan frase benih acak.

Dapatkah seseorang menebak frasa benih saya?

Reaksi langsung Anda terhadap ini mungkin akan menjadi: "Jika hanya ada 2048 kata yang mungkin, tidakkah seseorang bisa menebak frase benih saya?" Yah, secara teknis iya, tapi sangat... sangat tidak mungkin. Seberapa tidak mungkin Anda tanyakan?

Bayangkan kita lupa tentang langkah pembangkitan 128-bit acak, dan hanya memilih secara manual 12 kata dari daftar. Setiap kali kita memilih kata, kita memilih satu opsi dari kolam 2048 kata.

Jadi, kita bisa mengatakan bahwa untuk orang lain juga menebak urutan kata yang sama, mereka perlu menebak kata yang sama dengan kami dengan peluang 1/2048, 12 kali berturut-turut. Saat ini, Anda mungkin berpikir, "ok itu tidak terdengar begitu sulit...", benar?Tapi, mari kita mainkan ini:

  • Kata Pertama: 2048 pilihan
  • Kata Kedua: 2048 pilihan
  • Dan seterusnya, hingga 12: 2048 pilihan

Ini adalah 2048 x 2048 x 2048 ... 12 kali. Atau, 2048^12. Yang mana... jumlah yang sangat besar. Kira-kira, 5 septillion, atau 5 kuadriliun miliaran. Itu tak terduga untuk kita pahami, tapi mari kita coba ...

Bayangkan Anda mulai menebak sekarang, menggunakan komputer yang sangat kuat yang bisa menebak 1 triliun frasa benih per detik. Mesin ini akan membutuhkan 159 triliun tahun untuk menebak satu frasa benih. Atau, (tergantung pada apa yang Anda percayai), sekitar 11.000 kali lebih lama dari usia alam semesta saat ini.

Apakah frasa biji benih 24 kata lebih baik daripada 12?

Beberapa dompet memilih 128 bit (12 kata), tetapi dompet yang lebih modern meminta Anda mengingat 24 kata untuk frasa benih Anda! Yang lagi, sangat besar.

Bagaimana kunci privat dihasilkan dari frasa benih

Sekarang kita memiliki frasa benih 12-kata, bagaimana itu digunakan untuk membuat kunci pribadi untuk akun? Untuk melakukannya, kita perlu mengonversi frasa benih kita menjadi benih biner yang dapat digunakan untuk menghasilkan dompet. Proses ini melibatkan langkah-langkah berikut:

  1. Opsional, pengguna memberikan kata sandi tambahan.
  2. Sebuah algoritma yang disebut PBKDF2 (Password-Based Key Derivation Function) mengambil: Frase benih. Kombinasi string "mnemonic" dan kata sandi opsional.

Proses ini (yang disebut fungsi derivasi kunci), menghasilkan nilai hash 64 byte, yang disebut seed biner, menggunakan algoritma lain yang disebut HMAC-SHA512 sebagai fungsi semu acak.

Nilai hash 64 byte yang dihasilkan dapat digunakan untuk menghasilkan akun menggunakan logika yang berasal dari standar Bitcoin lainnya; yaitu BIP-32 dan opsionalnya, perluasan dari BIP-32, BIP-44.

Apa itu BIP-32?

BIP-32 memperkenalkan dompet deterministik hierarkis (HD); Di mana banyak dompet dapat diturunkan dari satu biji, dan lebih banyak dompet dapat diturunkan dari dompet tersebut, menciptakan "pohon" dompet.

Apa itu BIP-44?

BIP-44 menyediakan cara standar untuk membuat hirarki struktur dompet dari satu biji biner dengan menerapkan jalur derivasi spesifik mengikuti struktur: m / tujuan' / jenis_koin' / akun' / perubahan / indeks_alamat:

  • tujuan: Mengidentifikasi standar BIP yang digunakan; untuk BIP-44, itu adalah 44’.
  • jenis_koin: Menentukan kriptocurrency; misalnya, 0 untuk Bitcoin, 60 untuk Ethereum.
  • akun: Membedakan antara akun pengguna yang berbeda.
  • change: Menunjukkan jenis alamat: 0 untuk menerima, 1 untuk perubahan.
  • address_index: Menyediakan indeks unik untuk setiap alamat di bawah akun dan tipe perubahan yang sama.

Tidak semua dompet menggunakan BIP-44, tetapi ini adalah cara umum untuk menyatukan bagaimana akun-akun berasal dari seed biner.

Bagaimana kunci privat dibuat dari biji biner?

Seperti yang kami sebutkan sebelumnya, kunci privat terdiri dari 64 karakter heksadesimal, yang setara dengan 32 byte. Dan, kami baru saja menghasilkan benih biner 64 byte melalui proses PBKDF2 - jadi bagaimana cara kita menggunakan nilai hash 64 byte ini untuk membuat kunci privat?

Pertama, hash tersebut dibagi menjadi dua bagian, masing-masing berukuran 32 byte:

  1. Bagian pertama adalah kunci pribadi master. Ini adalah pemetaan 1-1 langsung dari seed biner (dihasilkan menggunakan frase seed Anda) dan dompet Anda. Ini dapat digunakan dalam proses untuk membuat kunci pribadi anak.
  2. Paruh kedua adalah kode rantai. Ini digunakan untuk memastikan: Jika kunci anak dikompromikan, kunci induk tetap aman. Kunci anak dapat dibangun secara konsisten dan masing-masing unik.

Sekarang kita memahami seperti apa bentuk kunci privat, bagaimana mereka dihasilkan secara acak, dan bagaimana beberapa kunci dapat berasal dari satu frasa benih tunggal. Selanjutnya, mari jelajahi bagaimana kunci publik berasal dari kunci privat.

Bagaimana Kunci Publik-Privat Bekerja

Menggunakan kriptografi kurva eliptis (ECC), kita dapat mencari tahu kunci publik untuk kunci privat yang diberikan. Ada berbagai jenis kurva eliptis, tetapi yang digunakan baik oleh Bitcoin maupun Ethereum disebut secp256k1.

Spesifikasi untuk kurva elips ini mencakup titik dasar, G, yang digunakan sebagai titik awal bagi kita untuk membuat titik lain pada kurva. Dari titik awal ini, kita "bergerak" kurva beberapa kali (ditentukan oleh kunci pribadi kita), dengan cara tertentu. Titik pada kurva di mana kita berakhir ketika kita menghentikan proses ini akan menjadi kunci publik kita.

Cara kita "bergerak" kurva disebut perkalian skalar. Ketika bekerja dengan kurva elips, skalar mengacu pada angka yang digunakan untuk skala titik pada kurva. Kami mengambil titik dasar G dan menerapkan angka skalar untuk mencapai titik baru pada kurva dengan "membentangkan" titik itu.

Angka skalar yang kita terapkan pada titik dasar adalah kunci pribadi kita; dengan kata sederhana, kita mengambil titik awal G kita, dan mengalikannya secara skalar dengan kunci pribadi kita untuk mencapai kunci publik kita.

Sebenarnya, karena kurva didefinisikan di atas lapangan prima ℤp, itu terlihat lebih seperti sekelompok titik yang tersebar... tetapi masih memiliki sifat yang sama dari kurva elips.

Pada akhir proses pemangkatan skalar ini (melompat-lompat sejumlah kali kunci pribadi), kita akan berakhir pada titik baru di kurva, yang merupakan kunci publik kita. Anda dapat membayangkan proses ini seperti ini:

Untuk apa kunci publik digunakan di blockchain?

Kunci publik, seperti namanya, dapat dibagikan secara publik kepada siapa saja. Mereka berguna untuk:

  • Melihat siapa yang mengirimkan transaksi di blockchain
  • Menerima dana seperti ETH dari dompet lain
  • Dapat digunakan untuk memverifikasi apakah kunci pribadi menandatangani pesan atau tidak.

Mengakhiri

Dompet adalah komponen penting dari blockchain yang menggunakan kriptografi kurva eliptis untuk memungkinkan pengguna mengirimkan transaksi dan menandatangani pesan dari akun mereka.

Namun, beberapa blockchain seperti Abstract juga mendukung jenis dompet baru, yang disebut akun kontrak pintar, yang menyediakan lebih banyak fitur dan memungkinkan keamanan yang lebih kuat, mekanisme pemulihan, dan lainnya.

Penyangkalan:

  1. Artikel ini dicetak ulang dari [https://abs.xyz/blog], Teruskan Judul Asli 'Apa itu Dompet?', Semua hak cipta milik penulis asli [ Jarrod Watts ]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan cepat.

  2. Penolakan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini sepenuhnya merupakan pandangan penulis dan tidak merupakan nasihat investasi apa pun.

  3. Terjemahan artikel ke bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau meniru artikel yang diterjemahkan dilarang.

Apa itu Dompet?

Pemula10/1/2024, 6:09:44 PM
Dalam postingan ini, kami akan membahas apa itu dompet, bagaimana dompet dibuat, dan bagaimana mereka menggunakan kriptografi kurva eliptik untuk menghasilkan dan mengamankan pasangan kunci privat-publik, menurunkan frasa biji, dan memfasilitasi interaksi blockchain yang aman.

Dompet adalah alat penting yang memungkinkan pengguna untuk mengelola akun blockchain mereka, menyimpan aset mereka dengan aman, dan menandatangani transaksi untuk membuat perubahan pada status blockchain.

Dalam posting ini, kami akan membahas apa itu dompet, bagaimana dompet dibuat, dan bagaimana mereka menggunakan kriptografi kurva eliptik untuk menghasilkan dan mengamankan pasangan kunci pribadi-publik, menurunkan frasa biji, dan memfasilitasi interaksi blockchain yang aman.

Apa itu Dompet?

Dompet adalah aplikasi yang memungkinkan Anda melihat dan berinteraksi dengan akun blockchain Anda; akun-akun ini memungkinkan Anda mengirimkan transaksi untuk melakukan tindakan seperti mengirimkan token atau berinteraksi dengan kontrak pintar.

Setiap akun di blockchain terdiri dari sepasang kunci kriptografi; sekumpulan 2 kunci yang saling terhubung. Dalam konteks blockchain, jenis akun ini biasanya disebut sebagai Akun Milik Eksternal (EOA) dan terdiri dari kunci publik dan kunci pribadi:

  • Kunci publik: Alamat dompet Anda. Ini dapat dibagikan kepada siapa pun, dan orang lain (atau kontrak pintar) dapat menggunakannya untuk mengirimkan cryptocurrency kepada Anda.
  • Kunci pribadi: Kunci 'penandatanganan' yang Anda gunakan untuk menandatangani pesan atau transaksi. Siapa pun yang memiliki akses ke kunci pribadi memiliki kontrol penuh atas dana di dalam dompet.

Pasangan kunci ini memiliki fitur yang kuat, yang disebut fungsi pintu belakang; artinya itu:

  • Mudah mencari tahu kunci publik jika Anda memiliki kunci pribadi (A→B).
  • Mustahil untuk mengetahui kunci privat jika Anda memiliki kunci publik (B→A).

Untuk apa dompet digunakan?

Dompet digunakan untuk menandatangani pesan atau transaksi menggunakan kunci pribadi dompet untuk dikirim ke blockchain.

Dompet menyediakan cara untuk mengetahui pesan atau transaksi apa yang disetujui oleh dompet; karena kunci publik pengirim transaksi dapat dipulihkan dari tanda tangan transaksi. Ini penting untuk mencegah transaksi palsu / berbahaya diterima di blockchain.

Sebagai contoh, Jarrod bisa mengirimkan transaksi yang mengklaim bahwa Abril mengirimkan 5 ETH padanya bahkan jika dia tidak pernah menyetujui transaksi ini. Namun, karena blockchain memverifikasi tanda tangan setiap transaksi, itu akan segera menolak transaksi karena alamat yang dipulihkan dari tanda tangan tidak cocok dengan “pengirim” transaksi (yaitu Abril).

Blockchain seperti Ethereum menggunakan ECDSA (Elliptic Curve Digital Signature Algorithm) untuk memeriksa apakah kunci publik yang dipulihkan dari tanda tangan transaksi cocok dengan kunci publik orang yang mengirim transaksi ke jaringan.

Bagaimana dompet diciptakan?

Untuk membuat dompet, Anda perlu membuat pasangan kunci publik-privat. Namun, nilai dari pasangan kunci ini perlu mengikuti beberapa aturan agar bisa berfungsi di blockchain.

  1. Kunci privat terdiri dari 64 karakter heksadesimal (karakter 0→F).
  2. Kunci publik diperoleh dari kunci pribadi menggunakan kriptografi kurva eliptik (ECC).
  3. Kunci publik dipotong, di-hash, dan diformat menjadi alamat 42 karakter.

Proses 3 langkah ini adalah alur inti dari bagaimana akun dibuat di blockchain.

Selanjutnya, kami akan menjelajahi bagaimana kunci publik dihasilkan menggunakan kurva eliptik dan kunci pribadi. Tetapi sebelum itu, kami akan menjawab beberapa pertanyaan lain yang mungkin Anda miliki tentang dompet, seperti:

  • Bagaimana saya memastikan kunci pribadi saya secara acak dihasilkan?
  • Bagaimana jika saya mendapatkan kunci pribadi yang sama dengan orang lain?
  • Bagaimana frasa benih cocok dalam proses ini?
  • Bagaimana beberapa pasangan kunci dihasilkan dari frase biji tunggal?

Apa itu frase benih?

Meskipun memungkinkan untuk menghasilkan nilai 64-hex acak seperti yang baru saja kami tunjukkan, biasanya, kunci pribadi dihasilkan menggunakan standar tertentu yang berasal dari Bitcoin. Standar ini memungkinkan pengguna untuk mengingat frasa biji, yang merupakan frasa 12-24 kata yang dapat digunakan untuk membuat sejumlah akun baru yang terkait dengannya.

Ini memungkinkan pengguna untuk mengingat satu set kata-kata untuk mengakses semua akun mereka; masing-masing dengan pasangan kunci publik-privat individu. Sejumlah kunci privat baru dapat diturunkan dari satu frase benih tunggal menggunakan fungsi derivasi kunci tertentu (KDF).

Jadi, mari kita bahas terlebih dahulu bagaimana frase benih dihasilkan melalui entropi acak dan bagaimana kunci privat dapat diturunkan dari frase benih, sebelum akhirnya membahas kembali bagaimana kunci publik diturunkan dari kunci privat.

Bagaimana Frasa Benih Bekerja

Ketika Anda pertama kali menginstal aplikasi dompet, biasanya, itu akan meminta Anda untuk menulis dan menyimpan frasa biji dengan aman di suatu tempat; biasanya kombinasi kata 12 atau 24 kata. Anda dapat melihat contoh daftar kemungkinan kata-kata dalam bahasa Inggris di sini, yang akan Anda perhatikan memiliki panjang 2048 kata (kita akan segera membahas angka tersebut).

Apa itu BIP-39?

Konsep menyimpan frase benih mnemonik ini diperkenalkan pada tahun 2013 dengan BIP (Usulan Peningkatan Bitcoin); BIP-39. Usulan ini menyediakan cara standar untuk menghasilkan entropi acak dan menerjemahkannya menjadi serangkaian kata-kata yang mudah diingat.

Bagaimana frasa benih dihasilkan?

Pertama, kita perlu memastikan bahwa frasa biji kita dihasilkan secara acak, setelah semua, kita tidak ingin orang lain secara tidak sengaja masuk ke dompet kita dan mengakses dana kita.

Untuk melakukan ini, sebuah nomor acak dihasilkan menggunakan CSPRNG (Cryptographically secure pseudorandom number generator), yang dapat Anda lakukan di browser Anda:

Angka acak ini disebut entropi. Entropi ini digunakan untuk membuat kumpulan kata-kata yang membentuk frasa benih. Dalam kasus kami, 128 bit dipetakan ke 12 kata, tetapi juga mungkin menggunakan panjang lain, seperti:

  • 15 kata: 160 bit
  • 18 kata: 192 bit
  • 21 kata: 224 bit
  • 24 kata: 256 bit

Jadi, bagaimana kita menggunakan bit ini untuk membuat frase bibit? Apa hubungan antara bit dan kata-kata? Pertama, checksum untuk entropi dibuat dan ditambahkan ke 128 bit; ini adalah hash 4 bit dari entropi yang dibuat untuk memastikan integritasnya.

Jadi, sekarang kita memiliki 128 bit entropi + 4 bit checksum, untuk total 132 bit. Selanjutnya, 132 bit tersebut diubah menjadi biner; secara khusus, mereka dibagi menjadi potongan-potongan 11 bit.

Sekarang kita memiliki set 12 angka biner, masing-masing terdiri dari 11 bit. Petunjuk: kita memiliki 12 angka, dan frase biji kita akan berisi 12 kata!

Ingatlah bahwa kami memiliki 2048 kata dalam daftar kami dan bahwa 2048 dipilih karena 2048 adalah 2^11, karena ada 2048 kemungkinan angka biner yang berbeda yang dapat Anda buat dengan 11 bit.

Sekarang kita hanya perlu mengonversi angka biner ini menjadi kata-kata dari daftar kata kita. Ini dilakukan dengan menggunakan angka biner sebagai indeks untuk mencari kata dalam daftar kata. yaitu Jika angka biner adalah 10, kita menggunakan kata ke-9 dalam daftar (karena kita mulai dari indeks 0), sebagai contoh:

  • 000000111, (7 dalam biner) adalah item ke-8 dalam daftar, yang merupakan abstrak! 😉
  • 11111111111, (2047 dalam biner) adalah item terakhir dalam daftar (ke-2048), yang merupakan "zoo".

Ulangi ini 12 kali, satu untuk setiap nomor 11-bit untuk membentuk frase benih yang berisi 12 kata.

Dengan menghasilkan nilai entropi acak, membaginya menjadi potongan-potongan biner, dan menggunakan nilai-nilai biner tersebut sebagai indeks untuk mencari kata-kata dalam daftar kata, kita akhirnya mendapatkan frase benih acak.

Dapatkah seseorang menebak frasa benih saya?

Reaksi langsung Anda terhadap ini mungkin akan menjadi: "Jika hanya ada 2048 kata yang mungkin, tidakkah seseorang bisa menebak frase benih saya?" Yah, secara teknis iya, tapi sangat... sangat tidak mungkin. Seberapa tidak mungkin Anda tanyakan?

Bayangkan kita lupa tentang langkah pembangkitan 128-bit acak, dan hanya memilih secara manual 12 kata dari daftar. Setiap kali kita memilih kata, kita memilih satu opsi dari kolam 2048 kata.

Jadi, kita bisa mengatakan bahwa untuk orang lain juga menebak urutan kata yang sama, mereka perlu menebak kata yang sama dengan kami dengan peluang 1/2048, 12 kali berturut-turut. Saat ini, Anda mungkin berpikir, "ok itu tidak terdengar begitu sulit...", benar?Tapi, mari kita mainkan ini:

  • Kata Pertama: 2048 pilihan
  • Kata Kedua: 2048 pilihan
  • Dan seterusnya, hingga 12: 2048 pilihan

Ini adalah 2048 x 2048 x 2048 ... 12 kali. Atau, 2048^12. Yang mana... jumlah yang sangat besar. Kira-kira, 5 septillion, atau 5 kuadriliun miliaran. Itu tak terduga untuk kita pahami, tapi mari kita coba ...

Bayangkan Anda mulai menebak sekarang, menggunakan komputer yang sangat kuat yang bisa menebak 1 triliun frasa benih per detik. Mesin ini akan membutuhkan 159 triliun tahun untuk menebak satu frasa benih. Atau, (tergantung pada apa yang Anda percayai), sekitar 11.000 kali lebih lama dari usia alam semesta saat ini.

Apakah frasa biji benih 24 kata lebih baik daripada 12?

Beberapa dompet memilih 128 bit (12 kata), tetapi dompet yang lebih modern meminta Anda mengingat 24 kata untuk frasa benih Anda! Yang lagi, sangat besar.

Bagaimana kunci privat dihasilkan dari frasa benih

Sekarang kita memiliki frasa benih 12-kata, bagaimana itu digunakan untuk membuat kunci pribadi untuk akun? Untuk melakukannya, kita perlu mengonversi frasa benih kita menjadi benih biner yang dapat digunakan untuk menghasilkan dompet. Proses ini melibatkan langkah-langkah berikut:

  1. Opsional, pengguna memberikan kata sandi tambahan.
  2. Sebuah algoritma yang disebut PBKDF2 (Password-Based Key Derivation Function) mengambil: Frase benih. Kombinasi string "mnemonic" dan kata sandi opsional.

Proses ini (yang disebut fungsi derivasi kunci), menghasilkan nilai hash 64 byte, yang disebut seed biner, menggunakan algoritma lain yang disebut HMAC-SHA512 sebagai fungsi semu acak.

Nilai hash 64 byte yang dihasilkan dapat digunakan untuk menghasilkan akun menggunakan logika yang berasal dari standar Bitcoin lainnya; yaitu BIP-32 dan opsionalnya, perluasan dari BIP-32, BIP-44.

Apa itu BIP-32?

BIP-32 memperkenalkan dompet deterministik hierarkis (HD); Di mana banyak dompet dapat diturunkan dari satu biji, dan lebih banyak dompet dapat diturunkan dari dompet tersebut, menciptakan "pohon" dompet.

Apa itu BIP-44?

BIP-44 menyediakan cara standar untuk membuat hirarki struktur dompet dari satu biji biner dengan menerapkan jalur derivasi spesifik mengikuti struktur: m / tujuan' / jenis_koin' / akun' / perubahan / indeks_alamat:

  • tujuan: Mengidentifikasi standar BIP yang digunakan; untuk BIP-44, itu adalah 44’.
  • jenis_koin: Menentukan kriptocurrency; misalnya, 0 untuk Bitcoin, 60 untuk Ethereum.
  • akun: Membedakan antara akun pengguna yang berbeda.
  • change: Menunjukkan jenis alamat: 0 untuk menerima, 1 untuk perubahan.
  • address_index: Menyediakan indeks unik untuk setiap alamat di bawah akun dan tipe perubahan yang sama.

Tidak semua dompet menggunakan BIP-44, tetapi ini adalah cara umum untuk menyatukan bagaimana akun-akun berasal dari seed biner.

Bagaimana kunci privat dibuat dari biji biner?

Seperti yang kami sebutkan sebelumnya, kunci privat terdiri dari 64 karakter heksadesimal, yang setara dengan 32 byte. Dan, kami baru saja menghasilkan benih biner 64 byte melalui proses PBKDF2 - jadi bagaimana cara kita menggunakan nilai hash 64 byte ini untuk membuat kunci privat?

Pertama, hash tersebut dibagi menjadi dua bagian, masing-masing berukuran 32 byte:

  1. Bagian pertama adalah kunci pribadi master. Ini adalah pemetaan 1-1 langsung dari seed biner (dihasilkan menggunakan frase seed Anda) dan dompet Anda. Ini dapat digunakan dalam proses untuk membuat kunci pribadi anak.
  2. Paruh kedua adalah kode rantai. Ini digunakan untuk memastikan: Jika kunci anak dikompromikan, kunci induk tetap aman. Kunci anak dapat dibangun secara konsisten dan masing-masing unik.

Sekarang kita memahami seperti apa bentuk kunci privat, bagaimana mereka dihasilkan secara acak, dan bagaimana beberapa kunci dapat berasal dari satu frasa benih tunggal. Selanjutnya, mari jelajahi bagaimana kunci publik berasal dari kunci privat.

Bagaimana Kunci Publik-Privat Bekerja

Menggunakan kriptografi kurva eliptis (ECC), kita dapat mencari tahu kunci publik untuk kunci privat yang diberikan. Ada berbagai jenis kurva eliptis, tetapi yang digunakan baik oleh Bitcoin maupun Ethereum disebut secp256k1.

Spesifikasi untuk kurva elips ini mencakup titik dasar, G, yang digunakan sebagai titik awal bagi kita untuk membuat titik lain pada kurva. Dari titik awal ini, kita "bergerak" kurva beberapa kali (ditentukan oleh kunci pribadi kita), dengan cara tertentu. Titik pada kurva di mana kita berakhir ketika kita menghentikan proses ini akan menjadi kunci publik kita.

Cara kita "bergerak" kurva disebut perkalian skalar. Ketika bekerja dengan kurva elips, skalar mengacu pada angka yang digunakan untuk skala titik pada kurva. Kami mengambil titik dasar G dan menerapkan angka skalar untuk mencapai titik baru pada kurva dengan "membentangkan" titik itu.

Angka skalar yang kita terapkan pada titik dasar adalah kunci pribadi kita; dengan kata sederhana, kita mengambil titik awal G kita, dan mengalikannya secara skalar dengan kunci pribadi kita untuk mencapai kunci publik kita.

Sebenarnya, karena kurva didefinisikan di atas lapangan prima ℤp, itu terlihat lebih seperti sekelompok titik yang tersebar... tetapi masih memiliki sifat yang sama dari kurva elips.

Pada akhir proses pemangkatan skalar ini (melompat-lompat sejumlah kali kunci pribadi), kita akan berakhir pada titik baru di kurva, yang merupakan kunci publik kita. Anda dapat membayangkan proses ini seperti ini:

Untuk apa kunci publik digunakan di blockchain?

Kunci publik, seperti namanya, dapat dibagikan secara publik kepada siapa saja. Mereka berguna untuk:

  • Melihat siapa yang mengirimkan transaksi di blockchain
  • Menerima dana seperti ETH dari dompet lain
  • Dapat digunakan untuk memverifikasi apakah kunci pribadi menandatangani pesan atau tidak.

Mengakhiri

Dompet adalah komponen penting dari blockchain yang menggunakan kriptografi kurva eliptis untuk memungkinkan pengguna mengirimkan transaksi dan menandatangani pesan dari akun mereka.

Namun, beberapa blockchain seperti Abstract juga mendukung jenis dompet baru, yang disebut akun kontrak pintar, yang menyediakan lebih banyak fitur dan memungkinkan keamanan yang lebih kuat, mekanisme pemulihan, dan lainnya.

Penyangkalan:

  1. Artikel ini dicetak ulang dari [https://abs.xyz/blog], Teruskan Judul Asli 'Apa itu Dompet?', Semua hak cipta milik penulis asli [ Jarrod Watts ]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan cepat.

  2. Penolakan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini sepenuhnya merupakan pandangan penulis dan tidak merupakan nasihat investasi apa pun.

  3. Terjemahan artikel ke bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau meniru artikel yang diterjemahkan dilarang.

Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!