Di inti kemandirian Bitcoin terletak pada kontrol atas kunci pribadi Anda. Tanpa ini, Anda pada dasarnya menyerahkan kendali atas dana Anda kepada orang lain. Seperti kata pepatah, “Bukan kunci Anda, bukan koin Anda.” Bagi mereka yang tidak familiar dengan dasar-dasar teknis Bitcoin, aspek yang kontraintuitif adalah “di mana” Bitcoin Anda sebenarnya berada. Ketika orang berpikir tentang dompet, mereka membayangkan “tempat di mana saya menyimpan uang saya.” Pada kenyataannya, dompet Bitcoin Anda tidak “mengandung” Bitcoin Anda; ia hanya menyimpan kunci pribadi Anda. Bitcoin Anda ada sebagai entri data di blockchain, yang dipelihara oleh semua peserta jaringan. Ketika Anda menghabiskan bitcoins Anda, Anda mengusulkan pembaruan pada data blockchain. Kunci pribadi adalah cara protokol untuk memastikan bahwa hanya Anda yang dapat mengotorisasi pembaruan blockchain yang menghabiskan Bitcoin Anda.
Jadi, apa itu kunci pribadi Anda? Mereka hanyalah angka yang sangat besar. Berikut adalah kunci pribadi dalam biner:
256 angka 1 dan 0 secara acak. Angka acak ini adalah yang pada akhirnya melindungi Bitcoin Anda. Ini mungkin tidak terlihat banyak, tetapi keacakannya menjamin keamanan dompet Anda. Ada hampir sebanyak kemungkinan kunci pribadi Bitcoin seperti jumlah atom di alam semesta yang terlihat. Itu adalah jumlah angka yang harus dihitung komputer untuk menghasilkan dan mengkatalogkan semua kunci pribadi yang mungkin. Selama proses yang digunakan untuk menghasilkan kunci benar-benar acak, kunci Anda akan aman.
Inilah bagaimana kunci pribadi terlihat dalam heksadesimal (biner menggunakan dua digit untuk mengkodekan sebuah angka, 1 dan 0, heksadesimal menggunakan 16 digit, 0-9 dan A-F):
Format WIF adalah cara semua orang berinteraksi dengan kunci privat mereka di masa awal Bitcoin. Di era ini, Anda dapat menghasilkan satu kunci privat pada satu waktu dan kemudian menghasilkan kunci publik dari itu. Proses menghasilkan kunci publik pada dasarnya hanya menggandakan angka-angka yang sangat besar, tetapi ada sedikit lebih dari itu. Semua kunci publik adalah titik x dan y pada grafik yang menunjukkan kurva yang sangat, sangat besar yang melingkar kembali pada dirinya sendiri.
Pada kurva grafik, dalam kasus Bitcoin Secp256k1, ada sebuah titik yang disebut “titik generator.” Titik generator ini dapat dianggap sebagai “titik dasar” dari kurva Secp256k1. Ini sangat penting dalam proses menghasilkan kunci dan menandatangani dengan mereka. Ini adalah titik generator dari kurva Bitcoin:
Untuk menghasilkan kunci publik dari kunci privat Anda, Anda mengambil kunci privat yang Anda hasilkan dan mengalikannya dengan titik generator. Itu saja. Ini sekarang menetapkan sebuah titik pada grafik dengan hubungan matematis ke kunci privat yang Anda hasilkan yang hanya Anda ketahui.
Ini adalah kunci publik yang tidak terkompresi yang menunjukkan titik x dan y:
Sangat umum untuk “mengompresi” kunci publik dalam kasus langka ketika Anda berinteraksi dengan mereka untuk sekadar menyimpan koordinat x dengan satu byte untuk memberitahu apakah koordinat y negatif atau positif. Itu memperpendeknya secara signifikan:
Ketika Anda pergi untuk menandatangani transaksi dengan kunci pribadi Anda, sekali lagi ini pada dasarnya merujuk pada perkalian sederhana. Dengan menghasilkan angka acak ( nonce ) dan menggunakannya bersama dengan kunci pribadi Anda untuk pada dasarnya mengalikan hash dari transaksi yang Anda tandatangani, ini menghasilkan tanda tangan ( yang terdiri dari dua nilai, r dan s ). Ini memungkinkan seseorang untuk menjalankan algoritma untuk memverifikasi bahwa pesan tersebut ditandatangani dengan kunci pribadi yang tepat tanpa mengungkapkan kunci tersebut. Apa yang memastikan bahwa hanya Anda yang dapat mengotorisasi pengeluaran Bitcoin Anda pada dasarnya adalah perkalian dari angka-angka yang sangat, sangat besar.
Jika Anda tidak sangat familiar dengan konsep-konsep ini sebelum membaca ini, semua ini mungkin terasa agak menakutkan. Biner? Heksadesimal? Titik grafik? Bagaimana cara mencadangkan WIF?
Sejak cara yang lebih intuitif untuk menangani data ini dikembangkan, sebagian besar pengguna tidak akrab dengan format yang rumit ini. Anda mungkin lebih berpengalaman dengan kata kunci, yang juga dikenal sebagai frasa benih.
BIP 39 Benih Mnemonic
Benih mnemonik, atau frasa benih, dibuat untuk mengatasi masalah pengalaman berinteraksi dengan kunci pribadi Anda.
Seperti yang telah kita diskusikan sebelumnya, kunci privat pada akhirnya hanyalah rangkaian panjang angka satu dan nol yang dihasilkan secara acak. Bayangkan mencoba membuat salinan ini dan memastikan Anda tidak membuat kesalahan dalam mentranskripsikannya:
Satu kesalahan dalam menyalin satu digit saja dapat membuat cadangan kunci Anda menjadi tidak berguna. Di sinilah benih mnemonik menjadi berguna. 256 angka 1 dan 0 secara berturut-turut bukanlah cara yang ramah bagi manusia untuk berinteraksi dengan informasi sensitif. Mencatat angka ini dengan salah berarti kehilangan akses ke akun Anda.
truk perbarui kemarahan keledai ingat laptop reformasi detail bagi rasa sakit karena gemuk
Itu jauh lebih mudah untuk dihadapi, bukan? Hanya 12 kata. Jadi bagaimana cara kerjanya, dari sekumpulan 1 dan 0 acak menjadi rangkaian kata yang benar-benar berarti bagi Anda? Sebuah skema pengkodean, seperti biner atau heksadesimal!
Setiap dari 12 kata dalam benih mnemonik sebelumnya adalah angka biner dalam skema pengkodean yang memetakan string tertentu dari satu dan nol ke kata. Jika kita melihat kembali contoh sebelumnya dari kunci pribadi WIF, itu hanyalah sebuah angka yang dikodekan dalam skema pengkodean tertentu, dalam hal ini base 58, yang menggunakan semua angka dan huruf alfabet kecuali 0 dan 1, serta O dan l ( itu peka huruf ). Pengecualian karakter tersebut dilakukan khusus untuk membuat kesalahan transkripsi tidak mungkin dengan membingungkan 1 dengan l atau 0 dengan O. bech32 dan bech32m yang digunakan oleh Segwit dan Taproot membawa ini ke tingkat berikutnya dengan hanya menggunakan set karakter ini (qpzry9x8gf2tvdw0s3jn54khce6mua7l).
Bitcoin Improvement Proposal 39 (BIP 39) memperkenalkan skema pengkodean standar di mana setiap kata dalam kamus yang dirancang khusus dipetakan secara alfabetis ke angka biner dari 00000000001 hingga 11111111111. Demo seed dari sebelumnya dipetakan ke ini:
Dalam biner, itu terlihat seperti ini:
11101001001 10110110001 01011110011 01000001001 10110101110 01111101000 10110100010 00111100010 11010010001 01100110100 00010011110 01010011011
Ada 2048 kata, masing-masing dipetakan ke string 11-digit khusus yang terdiri dari 1 dan 0, khususnya untuk memudahkan orang berinteraksi dengan kunci pribadi mereka. Ketika Anda menghasilkan angka acak untuk kunci pribadi Anda, dompet Anda memecah angka itu menjadi potongan-potongan angka biner 11-digit dan memetakannya ke dalam kamus mnemonik BIP 39. Ini masih angka besar yang sama, tetapi sekarang Anda dapat membacanya sebagai kata-kata dalam bahasa Inggris. Karena otak Anda jauh lebih terbiasa dengan format ini dibandingkan dengan rangkaian panjang 1 dan 0, ini secara drastis mengurangi kemungkinan Anda menulis sesuatu dengan salah dan kehilangan Bitcoin Anda dalam prosesnya.
Anda mungkin telah memperhatikan bahwa dalam pengkodean biner mentah dari kata seed di atas, terdapat empat digit ( yang berdiri sendiri, dan “kata” terakhir sebenarnya hanya terdiri dari 8 digit. Ini adalah checksum untuk memastikan frasa seed valid. Ketika Anda menghasilkan nomor acak Anda, tidak ada cukup digit untuk memetakan tepat ke 12 ) atau 24( kata. Dompet mengenkripsi digit yang ada yang dihasilkannya dan mengambil digit pertama dari hash untuk ditambahkan ke akhir nomor acak Anda. Ini memberi Anda cukup digit untuk memetakan ke kata terakhir.
Kata terakhir ini memungkinkan Anda melakukan pemeriksaan keamanan pada salinan benih Anda. Jika Anda memasukkan benih mnemonik Anda dengan salah ke dalam dompet, checksum tidak akan cocok. Setiap benih yang terdiri dari 12 atau 24 kata memiliki beberapa kata checksum yang valid, tetapi jika kata terakhir tidak cocok dengan checksum dari benih yang benar, dompet Anda akan memberi tahu bahwa itu tidak valid. Ini memberikan orang cara intuitif tetapi tetap matematis untuk memastikan cadangan mereka benar, tidak seperti proses rumit mentranskripsikan dan mencadangkan angka biner mentah.
Pemilihan kata-kata spesifik dari daftar bahkan dilakukan sedemikian rupa sehingga tidak ada satu pun dari 2048 kata yang memiliki empat huruf pertama yang sama. Ini dilakukan untuk mengurangi kemungkinan orang membuat kesalahan transkripsi dengan membingungkan kata-kata yang mirip dan berujung pada cadangan kunci pribadi mereka yang salah.
Menerjemahkan kata-kata ini menjadi sekumpulan kunci publik/privat adalah cukup sederhana. Seed mnemonik Anda diambil dan di-hash menggunakan SHA512, yang menghasilkan hash dari 512 individu 1 dan 0. Setengah dari output tersebut digunakan sebagai kunci privat yang sebenarnya dan setengah lainnya digunakan sebagai input untuk SHA512 dengan nomor indeks dan kunci publik atau privat yang ada untuk menghasilkan sepasang kunci baru. Anda dapat melakukan ini sebanyak yang Anda inginkan untuk menghasilkan kunci publik/privat baru yang dapat dipulihkan dari frasa mnemonik tunggal Anda.
Ini memastikan Anda dapat mengelola kunci privat Anda dengan cara yang paling mudah dan aman mungkin dengan peluang terendah untuk membuat kesalahan yang menyebabkan Anda kehilangan uang Anda. Dan semua ini dilakukan menggunakan matematika! Semoga Anda sekarang memiliki pemahaman yang baik mengapa orang-orang mengatakan Bitcoin adalah uang “dijamin oleh matematika.”
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
Memahami Kunci Bitcoin Anda: Kata Seed Bip39
Di inti kemandirian Bitcoin terletak pada kontrol atas kunci pribadi Anda. Tanpa ini, Anda pada dasarnya menyerahkan kendali atas dana Anda kepada orang lain. Seperti kata pepatah, “Bukan kunci Anda, bukan koin Anda.” Bagi mereka yang tidak familiar dengan dasar-dasar teknis Bitcoin, aspek yang kontraintuitif adalah “di mana” Bitcoin Anda sebenarnya berada. Ketika orang berpikir tentang dompet, mereka membayangkan “tempat di mana saya menyimpan uang saya.” Pada kenyataannya, dompet Bitcoin Anda tidak “mengandung” Bitcoin Anda; ia hanya menyimpan kunci pribadi Anda. Bitcoin Anda ada sebagai entri data di blockchain, yang dipelihara oleh semua peserta jaringan. Ketika Anda menghabiskan bitcoins Anda, Anda mengusulkan pembaruan pada data blockchain. Kunci pribadi adalah cara protokol untuk memastikan bahwa hanya Anda yang dapat mengotorisasi pembaruan blockchain yang menghabiskan Bitcoin Anda.
Jadi, apa itu kunci pribadi Anda? Mereka hanyalah angka yang sangat besar. Berikut adalah kunci pribadi dalam biner:
110001011011001011110111100000101000100000010001001111010111011010101110111001111111111110101011101001011101001110100111001110010100110111101000110000111110101111001101001011110011011101000001101101101110001101000110001111010001001001111011010101011001101101010
256 angka 1 dan 0 secara acak. Angka acak ini adalah yang pada akhirnya melindungi Bitcoin Anda. Ini mungkin tidak terlihat banyak, tetapi keacakannya menjamin keamanan dompet Anda. Ada hampir sebanyak kemungkinan kunci pribadi Bitcoin seperti jumlah atom di alam semesta yang terlihat. Itu adalah jumlah angka yang harus dihitung komputer untuk menghasilkan dan mengkatalogkan semua kunci pribadi yang mungkin. Selama proses yang digunakan untuk menghasilkan kunci benar-benar acak, kunci Anda akan aman.
Inilah bagaimana kunci pribadi terlihat dalam heksadesimal (biner menggunakan dua digit untuk mengkodekan sebuah angka, 1 dan 0, heksadesimal menggunakan 16 digit, 0-9 dan A-F):
E2D97BC144089EBB5773FFABA5D3A729BD187D79A5E6E836DC68C7A24F6AB36A
Dan inilah bagaimana kunci privat muncul dalam Format Impor Dompet yang tidak terkompresi (WIF):
5KYC9aMMSDWGJciYRtwY3mNpeTn91BLagdjzJ4k4RQmdhQvE98G
Format WIF adalah cara semua orang berinteraksi dengan kunci privat mereka di masa awal Bitcoin. Di era ini, Anda dapat menghasilkan satu kunci privat pada satu waktu dan kemudian menghasilkan kunci publik dari itu. Proses menghasilkan kunci publik pada dasarnya hanya menggandakan angka-angka yang sangat besar, tetapi ada sedikit lebih dari itu. Semua kunci publik adalah titik x dan y pada grafik yang menunjukkan kurva yang sangat, sangat besar yang melingkar kembali pada dirinya sendiri.
Pada kurva grafik, dalam kasus Bitcoin Secp256k1, ada sebuah titik yang disebut “titik generator.” Titik generator ini dapat dianggap sebagai “titik dasar” dari kurva Secp256k1. Ini sangat penting dalam proses menghasilkan kunci dan menandatangani dengan mereka. Ini adalah titik generator dari kurva Bitcoin:
G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798
Untuk menghasilkan kunci publik dari kunci privat Anda, Anda mengambil kunci privat yang Anda hasilkan dan mengalikannya dengan titik generator. Itu saja. Ini sekarang menetapkan sebuah titik pada grafik dengan hubungan matematis ke kunci privat yang Anda hasilkan yang hanya Anda ketahui.
Ini adalah kunci publik yang tidak terkompresi yang menunjukkan titik x dan y:
04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED
Sangat umum untuk “mengompresi” kunci publik dalam kasus langka ketika Anda berinteraksi dengan mereka untuk sekadar menyimpan koordinat x dengan satu byte untuk memberitahu apakah koordinat y negatif atau positif. Itu memperpendeknya secara signifikan:
02C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158
Ketika Anda pergi untuk menandatangani transaksi dengan kunci pribadi Anda, sekali lagi ini pada dasarnya merujuk pada perkalian sederhana. Dengan menghasilkan angka acak ( nonce ) dan menggunakannya bersama dengan kunci pribadi Anda untuk pada dasarnya mengalikan hash dari transaksi yang Anda tandatangani, ini menghasilkan tanda tangan ( yang terdiri dari dua nilai, r dan s ). Ini memungkinkan seseorang untuk menjalankan algoritma untuk memverifikasi bahwa pesan tersebut ditandatangani dengan kunci pribadi yang tepat tanpa mengungkapkan kunci tersebut. Apa yang memastikan bahwa hanya Anda yang dapat mengotorisasi pengeluaran Bitcoin Anda pada dasarnya adalah perkalian dari angka-angka yang sangat, sangat besar.
Jika Anda tidak sangat familiar dengan konsep-konsep ini sebelum membaca ini, semua ini mungkin terasa agak menakutkan. Biner? Heksadesimal? Titik grafik? Bagaimana cara mencadangkan WIF?
Sejak cara yang lebih intuitif untuk menangani data ini dikembangkan, sebagian besar pengguna tidak akrab dengan format yang rumit ini. Anda mungkin lebih berpengalaman dengan kata kunci, yang juga dikenal sebagai frasa benih.
BIP 39 Benih Mnemonic
Benih mnemonik, atau frasa benih, dibuat untuk mengatasi masalah pengalaman berinteraksi dengan kunci pribadi Anda.
Seperti yang telah kita diskusikan sebelumnya, kunci privat pada akhirnya hanyalah rangkaian panjang angka satu dan nol yang dihasilkan secara acak. Bayangkan mencoba membuat salinan ini dan memastikan Anda tidak membuat kesalahan dalam mentranskripsikannya:
110001011011001011110111100000101000100000010001001111010111011010101110111001111111111110101011101001011101001110100111001110010100110111101000110000111110101111001101001011110011011101000001101101101110001101000110001111010001001001111011010101011001101101010
Satu kesalahan dalam menyalin satu digit saja dapat membuat cadangan kunci Anda menjadi tidak berguna. Di sinilah benih mnemonik menjadi berguna. 256 angka 1 dan 0 secara berturut-turut bukanlah cara yang ramah bagi manusia untuk berinteraksi dengan informasi sensitif. Mencatat angka ini dengan salah berarti kehilangan akses ke akun Anda.
truk perbarui kemarahan keledai ingat laptop reformasi detail bagi rasa sakit karena gemuk
Itu jauh lebih mudah untuk dihadapi, bukan? Hanya 12 kata. Jadi bagaimana cara kerjanya, dari sekumpulan 1 dan 0 acak menjadi rangkaian kata yang benar-benar berarti bagi Anda? Sebuah skema pengkodean, seperti biner atau heksadesimal!
Setiap dari 12 kata dalam benih mnemonik sebelumnya adalah angka biner dalam skema pengkodean yang memetakan string tertentu dari satu dan nol ke kata. Jika kita melihat kembali contoh sebelumnya dari kunci pribadi WIF, itu hanyalah sebuah angka yang dikodekan dalam skema pengkodean tertentu, dalam hal ini base 58, yang menggunakan semua angka dan huruf alfabet kecuali 0 dan 1, serta O dan l ( itu peka huruf ). Pengecualian karakter tersebut dilakukan khusus untuk membuat kesalahan transkripsi tidak mungkin dengan membingungkan 1 dengan l atau 0 dengan O. bech32 dan bech32m yang digunakan oleh Segwit dan Taproot membawa ini ke tingkat berikutnya dengan hanya menggunakan set karakter ini (qpzry9x8gf2tvdw0s3jn54khce6mua7l).
Bitcoin Improvement Proposal 39 (BIP 39) memperkenalkan skema pengkodean standar di mana setiap kata dalam kamus yang dirancang khusus dipetakan secara alfabetis ke angka biner dari 00000000001 hingga 11111111111. Demo seed dari sebelumnya dipetakan ke ini:
truck: 11101001001 perbarui: 10110110001 fury: 01011110011 donkey: 01000001001 ingat: 10110101110 laptop: 01111101000 reform: 10110100010 detail: 00111100010 bagi: 11010010001 pain: 01100110100 karena: 00010011110 fat: 01010011011
Dalam biner, itu terlihat seperti ini: 11101001001 10110110001 01011110011 01000001001 10110101110 01111101000 10110100010 00111100010 11010010001 01100110100 00010011110 01010011011
Ada 2048 kata, masing-masing dipetakan ke string 11-digit khusus yang terdiri dari 1 dan 0, khususnya untuk memudahkan orang berinteraksi dengan kunci pribadi mereka. Ketika Anda menghasilkan angka acak untuk kunci pribadi Anda, dompet Anda memecah angka itu menjadi potongan-potongan angka biner 11-digit dan memetakannya ke dalam kamus mnemonik BIP 39. Ini masih angka besar yang sama, tetapi sekarang Anda dapat membacanya sebagai kata-kata dalam bahasa Inggris. Karena otak Anda jauh lebih terbiasa dengan format ini dibandingkan dengan rangkaian panjang 1 dan 0, ini secara drastis mengurangi kemungkinan Anda menulis sesuatu dengan salah dan kehilangan Bitcoin Anda dalam prosesnya.
Anda mungkin telah memperhatikan bahwa dalam pengkodean biner mentah dari kata seed di atas, terdapat empat digit ( yang berdiri sendiri, dan “kata” terakhir sebenarnya hanya terdiri dari 8 digit. Ini adalah checksum untuk memastikan frasa seed valid. Ketika Anda menghasilkan nomor acak Anda, tidak ada cukup digit untuk memetakan tepat ke 12 ) atau 24( kata. Dompet mengenkripsi digit yang ada yang dihasilkannya dan mengambil digit pertama dari hash untuk ditambahkan ke akhir nomor acak Anda. Ini memberi Anda cukup digit untuk memetakan ke kata terakhir.
Kata terakhir ini memungkinkan Anda melakukan pemeriksaan keamanan pada salinan benih Anda. Jika Anda memasukkan benih mnemonik Anda dengan salah ke dalam dompet, checksum tidak akan cocok. Setiap benih yang terdiri dari 12 atau 24 kata memiliki beberapa kata checksum yang valid, tetapi jika kata terakhir tidak cocok dengan checksum dari benih yang benar, dompet Anda akan memberi tahu bahwa itu tidak valid. Ini memberikan orang cara intuitif tetapi tetap matematis untuk memastikan cadangan mereka benar, tidak seperti proses rumit mentranskripsikan dan mencadangkan angka biner mentah.
Pemilihan kata-kata spesifik dari daftar bahkan dilakukan sedemikian rupa sehingga tidak ada satu pun dari 2048 kata yang memiliki empat huruf pertama yang sama. Ini dilakukan untuk mengurangi kemungkinan orang membuat kesalahan transkripsi dengan membingungkan kata-kata yang mirip dan berujung pada cadangan kunci pribadi mereka yang salah.
Menerjemahkan kata-kata ini menjadi sekumpulan kunci publik/privat adalah cukup sederhana. Seed mnemonik Anda diambil dan di-hash menggunakan SHA512, yang menghasilkan hash dari 512 individu 1 dan 0. Setengah dari output tersebut digunakan sebagai kunci privat yang sebenarnya dan setengah lainnya digunakan sebagai input untuk SHA512 dengan nomor indeks dan kunci publik atau privat yang ada untuk menghasilkan sepasang kunci baru. Anda dapat melakukan ini sebanyak yang Anda inginkan untuk menghasilkan kunci publik/privat baru yang dapat dipulihkan dari frasa mnemonik tunggal Anda.
Ini memastikan Anda dapat mengelola kunci privat Anda dengan cara yang paling mudah dan aman mungkin dengan peluang terendah untuk membuat kesalahan yang menyebabkan Anda kehilangan uang Anda. Dan semua ini dilakukan menggunakan matematika! Semoga Anda sekarang memiliki pemahaman yang baik mengapa orang-orang mengatakan Bitcoin adalah uang “dijamin oleh matematika.”