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.
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).
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.
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:
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.
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:
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:

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.
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:
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.


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.

Pertama, hash tersebut dibagi menjadi dua bagian, masing-masing berukuran 32 byte:
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:

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.
Penolakan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini sepenuhnya merupakan pandangan penulis dan tidak merupakan nasihat investasi apa pun.
Terjemahan artikel ke bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau meniru artikel yang diterjemahkan dilarang.





