Langsung ke konten utama

Mengenal BIP39 (Bitcoin Improvement Proposal 39)

 BIP39 (Bitcoin Improvement Proposal 39) adalah sebuah proposal yang berfokus pada standar pembuatan frase pemulihan (recovery phrase) atau yang lebih dikenal dengan seed phrase yang terdiri dari 12 hingga 24 kata. BIP39 merupakan bagian dari upaya untuk membuat wallet cryptocurrency lebih mudah digunakan dan lebih aman, serta menyediakan cara yang lebih nyaman untuk mengelola dan memulihkan dompet tanpa perlu menyimpan data sensitif seperti private key.

Berikut adalah penjelasan tentang BIP39 dan bagaimana proses pembuatan seed phrase bekerja:

1. Apa Itu BIP39?

BIP39 adalah standar yang digunakan untuk menghasilkan mnemonic phrase atau seed phrase yang terdiri dari serangkaian kata yang mudah diingat, yang digunakan untuk menghasilkan private key untuk dompet cryptocurrency, seperti Bitcoin, Ethereum, dan lain-lain. Frase ini memungkinkan pengguna untuk mengakses dana mereka tanpa perlu menyimpan private key yang panjang dan rumit.

2. Fungsi BIP39

Fungsi utama dari BIP39 adalah untuk menyediakan metode bagi pengguna untuk membuat dan mengelola dompet cryptocurrency mereka dengan cara yang lebih sederhana dan aman. Dengan menggunakan mnemonic phrase (frase kata), pengguna dapat dengan mudah mengingat dan menyimpan dompet mereka.

  • Seed Phrase adalah representasi manusiawi dari sebuah kunci privat. Kunci privat ini kemudian dapat digunakan untuk mengakses cryptocurrency di dalam dompet.
  • Seed phrase biasanya terdiri dari 12 atau 24 kata yang dihasilkan secara acak dari daftar kata yang telah ditentukan sebelumnya. Ini mempermudah penyimpanan dan pemulihan dompet cryptocurrency.

3. Proses Pembuatan Seed Phrase

Proses pembuatan seed phrase berdasarkan BIP39 melibatkan beberapa langkah:

  1. Pengambilan Entropi (Randomness):

    • Sebuah entropi acak (biasanya 128-bit atau 256-bit) dihasilkan menggunakan sumber entropi yang aman. Entropi ini adalah data acak yang digunakan untuk menghasilkan seed phrase.
  2. Menggunakan Entropi untuk Membuat Seed Phrase:

    • Entropi yang dihasilkan kemudian diubah menjadi binary sequence.
    • Setiap bit dari entropi ini diterjemahkan ke dalam kata-kata dari daftar yang telah ditentukan dalam BIP39 word list. Daftar kata ini berisi 2048 kata yang dipilih dengan hati-hati untuk menghindari kesalahan penulisan dan kesalahan pengucapan.
    • Setiap kata dalam seed phrase mewakili 11 bit data dari entropi asli.
  3. Checksum:

    • Untuk memastikan integritas seed phrase, BIP39 menambahkan checksum ke entropi. Checksum adalah hash dari entropi yang dihasilkan, dan sebagian kecil dari hash ini ditambahkan ke akhir entropi yang dihasilkan untuk memberikan verifikasi jika seed phrase ditulis dengan benar.
  4. Menulis Seed Phrase:

    • Setelah proses ini selesai, 12 atau 24 kata yang dihasilkan membentuk seed phrase yang dapat disalin atau dicetak oleh pengguna. Seed phrase ini digunakan untuk mengakses dompet atau memulihkan dompet jika diperlukan.

4. Keamanan dan Penyimpanan Seed Phrase

Karena seed phrase dapat digunakan untuk menghasilkan kembali private key dan mengakses seluruh dana dalam dompet, sangat penting untuk menyimpannya dengan aman. Beberapa cara untuk menyimpan seed phrase dengan aman termasuk:

  • Menulisnya pada selembar kertas dan menyimpannya di tempat yang aman (misalnya, brankas).
  • Menyimpannya dalam hardware wallet yang menyimpan seed phrase secara offline.
  • Menggunakan perangkat keras atau media penyimpanan aman lainnya yang dapat menjaga kerahasiaannya.

Jangan pernah menyimpan seed phrase dalam bentuk digital yang mudah diakses, seperti di cloud atau di perangkat yang terhubung dengan internet, karena dapat menjadi sasaran peretasan.

5. Pemulihan Dompet

Jika perangkat atau wallet yang berisi cryptocurrency hilang atau rusak, pengguna dapat memulihkan dompet mereka menggunakan seed phrase. Proses pemulihan melibatkan:

  • Menggunakan seed phrase untuk mengakses kembali kunci privat melalui proses yang terstandarisasi, seperti yang diatur dalam BIP39.
  • Setelah kunci privat dihasilkan kembali, pengguna dapat mengakses cryptocurrency mereka dan melakukan transaksi seperti biasa.

6. Daftar Kata BIP39

Daftar kata BIP39 berisi 2048 kata yang dapat dipilih secara acak untuk membentuk seed phrase. Setiap kata dipilih untuk meminimalkan risiko kesalahan penulisan atau pengucapan. Beberapa contoh kata dari daftar tersebut adalah:

abandon, ability, able, about, above, absent, abstract, academy, access, accident, dll.

BIP39 juga mendukung berbagai bahasa, sehingga pengguna dapat memilih daftar kata dalam bahasa yang mereka kuasai, seperti bahasa Inggris, Spanyol, Prancis, Jerman, dan lainnya.

7. Keterkaitan dengan Standar Lain

BIP39 berfungsi bersama dengan standar lain yang sering digunakan dalam ekosistem dompet cryptocurrency, seperti:

  • BIP32: Digunakan untuk membuat dompet deterministik (HD wallets) yang memungkinkan penciptaan kunci privat secara hierarkis berdasarkan seed phrase.
  • BIP44: Mengatur standar untuk dompet multi-asset dan multi-currency, yang memungkinkan pengguna untuk menyimpan berbagai jenis cryptocurrency dalam satu dompet.

Kesimpulan

BIP39 menyediakan cara yang lebih mudah dan aman untuk membuat dompet cryptocurrency dengan menggunakan seed phrase (frase kata). Dengan menggunakan entropi acak dan daftar kata yang telah ditentukan, BIP39 memungkinkan pengguna untuk menyimpan dan memulihkan dompet mereka dengan cara yang lebih praktis daripada menggunakan private key panjang. Keamanan dan pengelolaan seed phrase sangat penting untuk melindungi dana pengguna dalam dunia cryptocurrency.

Komentar

Postingan populer dari blog ini

Membuat Aplikasi Web ASP.NET Core di Visual Studio 2022

Artikel ini membahas langkah-langkah membuat aplikasi ASP.NET Core menggunakan Visual Studio 2022 dan framework .NET 8. 1. Membuka Visual Studio 2022 Buka Visual Studio 2022 dan klik "Create a new project" di layar awal. 2. Memilih Template Proyek Di jendela "Create a new project" , pilih template ASP.NET Core Empty . Template ini memberikan struktur dasar tanpa konfigurasi awal seperti controller, view, atau API. Setelah itu, klik Next . 3. Konfigurasi Proyek Baru Isi informasi proyek seperti berikut: Project Name : Masukkan nama proyek, misalnya FirstCoreWebApplication . Location : Tentukan lokasi folder untuk menyimpan proyek, misalnya D:\Projects . Solution Name : Biasanya sama dengan nama proyek, tetapi bisa diubah jika diperlukan. Centang "Place solution and project in the same directory" jika solusi dan proyek ingin disimpan dalam satu folder. Klik Create untuk melanjutkan. 4. Pengaturan Tambahan Pada jendela "Additional Information...

Remix IDE: Solusi Praktis untuk Menulis dan Deploy Kontrak Pintar

Remix IDE  adalah lingkungan pengembangan terintegrasi berbasis web yang dirancang untuk menulis, mengompilasi, dan menyebarkan smart contract menggunakan bahasa pemrograman  Solidity  di blockchain Ethereum. Alat ini banyak digunakan oleh pengembang blockchain karena kemudahannya dalam menyediakan fitur lengkap untuk pengembangan, pengujian, dan debugging kontrak pintar. Fitur Utama Remix IDE Berbasis Web dan Gratis Tidak perlu diunduh atau diinstal. Anda dapat mengakses Remix langsung melalui browser di  remix.ethereum.org . Karena berbasis web, Remix dapat digunakan di berbagai perangkat selama ada akses internet. Editor Kode Mendukung penulisan kode Solidity dengan penyorotan sintaks, autocompletion, dan validasi kesalahan. Fitur penyorotan kesalahan (error highlighting) memudahkan pengembang untuk menemukan bug pada kode. Compiler Solidity Remix menyediakan compiler bawaan untuk mengonversi kode Solidity menjadi bytecode yang dapat dijalankan di Ethereum Virtual...

Perlu dicatat Built-in Global Variable pada Solidity

Solidity, sebagai bahasa pemrograman untuk membuat smart contract di Ethereum dan blockchain lainnya, menyediakan beberapa variabel global bawaan . Variabel ini memungkinkan akses mudah ke informasi tentang blockchain, transaksi, dan konteks eksekusi. Dengan menggunakan variabel ini, pengembang dapat berinteraksi dengan lingkungan blockchain tanpa perlu menulis banyak kode tambahan. Berikut penjelasan kategori dan variabel global yang umum digunakan: 1. Informasi Blockchain Variabel-variabel ini menyediakan informasi terkait blockchain, seperti blok saat ini dan propertinya. block.number Mengembalikan nomor blok saat ini. Contoh: uint nomorBlokSaatIni = block.number; block.timestamp Waktu pembuatan blok saat ini dalam format detik sejak Unix epoch. Biasanya digunakan untuk mendapatkan waktu saat ini. Contoh: require(block.timestamp >= waktuMulai, "Terlalu awal untuk eksekusi!"); block.difficulty Tingkat kesulitan penambangan pada blok saat ini. Contoh: uin...