Bagaimana Menyimpan Bitcoin?
Menyimpan Bitcoin. Pada saat pengguna Bitcoin akan melakukan sebuah transaksi, maka yang perlu diketahui adalah beberapa hal tentang adanya sebuah informasi publik dan informasi rahasia. Lebih jauh, kita akan mengetahui kedua hal tersebut sebagai public key (bersifat informasi publik), dan secret key (bersifat informasi rahasia).
Dalam Bitcoin, informasi yang bersifat publik itu adalah segala hal yang terjadi di dalam rantai blok. Yang berfungsi sebagai identitas atas koin tersebut. Salah satunya, menyebutkan berapa banyak koin yang dimiliki, dan lain sebagainya. Sedangkan pada informasi yang bersifat rahasia, adalah sebuah secret key yang dimiliki oleh pemilik Bitcoin.
Pada public key, meskipun informasi tersebut bersifat publik, namun tidak ada yang perlu dikhawatirkan. Karena pengguna akan selalu bisa mendapatkan kembali hal itu jika suatu saat diperlukan kembali.
Berbeda halnya dengan secret key. Karena secret key ini harus disimpan dan jangan sampai diketahui oleh orang lain. Dari penjelasan diatas, maka akan bisa kita ketahui, bahwa untuk menyimpan Bitcoin, pada dasarnya tentang bagaimana mengelola kedua key anda tersebut.
Ada tiga tujuan pada fungsi penyimpanan dan pengelolaan key dalam Bitcoin.
1. Ketersediaan
Anda tentu juga harus mempunyai balance sejumlah Bitcoin, sehingga dengan saldo tersebut, anda bisa menggunakannya pada suatu saat jika diinginkan.
2. Keamanan
Memastikan bahwa saldo Bitcoin yang anda miliki tidak bisa dipergunakan oleh orang lain.
3. Kenyamanan
Memberikan kemudahan untuk bisa digunakan oleh para pengguna Bitcoin.
Pengelolaan key tersebut, bisa menggunakan pada sebuah perangkat yang kita miliki. Seperti pada perangkat komputer, laptop, ponsel, atau gadget lain yang kita miliki. Sehingga kita sendirilah yang nantinya bisa mengontrol, dan menggunakan key tersebut.
Kemudahan-kemudahan ini, tentu akan bisa memberikan pengguna kenyamanan tersendiri. Bahwa pengguna pun bisa mengelolanya melalui perangkat apapun yang dimiliki. Namun ada resiko dalam hal keamanan. Jika suatu saat perangkat seperti gadget, mobile phone, ataupun smartphone tersebut hilang, atau mungkin rusak, maka anda juga harus menghapus atau melakukan flashing ulang yang berarti menghapus keseluruhan file yang terdapat di dalamnya.
Jika itu terjadi, maka key dan bahkan sejumlah Bitcoin yang dimiliki pun akan hilang juga. Sementara jika ada seseorang yang berhasil menerobos perangkat anda tersebut, entah dengan malware ataupun yang lain, cukup memungkinkan untuk menyalin key anda, dan mengambil seluruh Bitcoin anda.
Sehingga bisa diumpamakan menyimpan secret key pada perangkat lokal seperti handphone, seperti halnya membawa uang di dalam dompet atau tas. Jika kehilangan tas, atau ada orang yang mencurinya, maka uang anda pun akan hilang.
Yang biasanya dilakukan, adalah kita tentu akan membawa uang secukupnya didalam dompet, dan menyimpan yang lainnya di tempat lain bukan? Begitupun halnya di dalam Bitcoin. Hal ini bisa juga dilakukan. Dengan menyimpan sedikit informasi yang dibutuhkan di dalam key, lalu menaruh sebagian besar lain di tempat yang lain juga. Untuk melakukannya, kita akan membutuhkan sebuah wallet, atau dompet Bitcoin.
Wallet (Dompet Bitcoin)
Sebagai langkah pembuka pembahasan tentang wallet Bitcoin ini, bisa dibaca artikel pengertian wallet Bitcoin, macam dan bentuk wallet, memulai Bitcoin, dan juga cara mengamankan wallet. Jika sudah membacanya, mari kita lanjutkan kembali.
Jika kita menyimpan Bitcoin secara lokal atau sebuah perangkat yang kita miliki, maka biasanya kita menggunakan sebuah software wallet. Software wallet ini adalah sebuah perangkat lunak yang berfungsi untuk terus melacak jumlah Bitcoin, dan mengelola rincian key kita. Dengan sebuah interface yang menarik, dan memberikan banyak kemudahan penggunanya.
Misalkan kita ingin untuk mengirim sejumlah uang dalam bentuk Bitcoin kepada seseorang, software wallet ini akan memberikan kemudahan untuk bisa melakukan transaksi pengiriman ini. Menggunakan software wallet juga cukup berguna. Karena kita juga bisa mengirimkannya dengan memakai alamat yang berbeda, dengan key yang berbeda pula. Sehingga yang perlu diingat bahwa, membuat pair public key maupun private key bisa dilakukan dengan mudah.
Karena hal tersebut jugalah, ada sebuah fungsi anonimitas, yang meningkatkan privasi penggunanya di dalam Bitcoin. Selain memberikan informasi berapa jumlah Bitcoin yang dimiliki, pada saat melakukan transaksi, wallet juga menangani detail key yang sedang digunakan, bagaimana generate alamat (address) baru, dan yang lainnya.
Pengkodean Key (Encoding keys)
Untuk mentransaksikan Bitcoin yang kita miliki. Dibutuhkan cara agar kita bisa bertukar alamat Bitcoin kita dengan orang lain. Alamat (address) tersebut lalu dikodekan, sehingga bisa dikomunikasikan antara pengirim dan penerima sebagai teks string ataupun dalam bentuk QR Code.
Base58
Dalam pengkodean alamat sebagai teks string, kita mengambil bit dari key, mengubahnya ke bilangan biner, menjadi deret base58. Selanjutnya, menggunakan 58 karakter tersebut untuk mengkodekan setiap digit karakternya. Dan proses ini disebut dengan notasi base58.
Mengapa harus 58 disini? Jumlah tersebut diambil dari sejumlah huruf besar, huruf kecil, dan sejumlah angka. Namun ada beberapa karakter yang tidak dipakai untuk menghindari kemiripan yang sama dengan karakter lainnya. Seperti pada huruf kapital “O” dan angka “0” yang hampir mirip.
Karena kemiripan yang bisa mengakibatkan adanya kesalahan tersebut sudah dimodifikasi dan tidak digunakan di Base58, maka akan memudahkan pengguna untuk bisa menyalin alamat tersebut. Baik secara manual, copy paste, ataupun di cetak di selembar kertas.
Berikut adalah contoh alamat Bitcoin yang menggunakan pengkodean base58.
1 D 3 z S 1 e P 5 Q G e f i 2 D M P K f T L 5 S O m v 7 f 2 n 3 N a
QR Code
Langkah kedua untuk mengkodekan alamat Bitcoin adalah dengan QR Code. Yang dimaksud dengan QR Code ini adalah sebuah barcode dalam bentuk dua dimensi. Manfaat QR Code ini, bisa mengambil gambar barcode itu melalui smartphone, lalu software wallet akan membaca barcode terseebut menjadi sebuah urutan bit yang mewakili alamat Bitcoin.
QR Code ini sering kita jumpai pada sejumlah merchant yang menerima pembayaran dengan Bitcoin. Sehingga pengguna yang hendak membayar sesuatu, bisa melakukan scan barcode tersebut, lalu mengirimkan pembayaran kepada alamat tersebut.
Vanity Address
Setelah kita mengetahui pengkodean address Bitcoin, sekarang kita coba melihat satu hal unik pada sebuah alamat Bitcoin. Kita mungkin pernah mendengar tentang istilah Vanity Address. Address dengan tipikal ini, berisi kata yang unik, yang biasanya terdapat dalam deret address Bitcoin, misalnya di digit 2-6 di address tersebut.
Misalnya ada kata “bento” dalam sebuah address seperti contoh di bawah ini.
1 b e n t o 8 e T c c 3 P j 2 z A b 1 V k F g y S Y 6 R q u 3 s G
Kadangkala, seseorang maupun merchant menginginkan untuk bisa mempunyai alamat Bitcoin yang mengandung kata-kata unik seperti pada contoh tersebut. Angka 1 di digit pertama address tersebut umumnya menunjukkan pay-to-pubkey-hash. Namun, tentu saja, contoh diatas adalah hanya contoh belaka. Menggunakan kata “bento” diatas juga jadi teringat salah satu lagu karya Iwan Fals.
Kembali ke pembahasan. Apakah mungkin alamat Bitcoin yang unik tersebut bisa didapat? Yang perlu diingat, bahwa address, adalah juga merupakan hasil atau output dari sebuah fungsi hash. Mengapa demikian? Karena address dihasilkan dari proses generate data secara acak. Masih ingat bukan, pembahasan di public key sebagai identitas?
Di pembahasan tersebut, dijelaskan bagaimana Bitcoin bisa mencapai sebuah cara untuk menghasilkan generate key secara acak. Dan keacakannya ini bisa dikatakan cukup bagus. Mengapa demikian? Karena cukup kecil kemungkinan generate key akan menghasilkan sebuah address yang sama. Karena Address ini merupakan sebuah hasil dari proses generate key tadi, maka itulah mengapa disebut bahwa address adalah output dari fungsi hash. Karena memang proses hash dalam generate key juga menggunakan proses hashing. Sifat keacakan dari proses generate key, menjadi sangat penting dan krusial.
Mari kita kembali ke vanity address tadi. Karena address dilakukan dengan hashing melalui generate key, maka untuk bisa menghasilkan kata seperti “bento” di contoh, tentu akan membutuhkan jutaan proses generate address yang menghasilkan jutaan address juga bukan? Itulah mengapa memakai istilah vanity address (alamat sombong).
Jadi akan cukup beruntung jika ada orang yang bisa menghasilkan dan menemukan address yang unik ini. Padahal pada setiap karakternya saja akan ada 58 kemungkinan. Maka untuk bisa membentuk kemungkinan munculnya kata “bento” pun juga akan membutuhkan generate key sebanyak jutaan kali.
Dalam Bitcoin, ada juga pengembang yang berusaha mewujudkan hal ini sebagai sebuah alat khusus. Salah satunya yang disebut dengan Vanitygen. Alat ini adalah sebuah alat generate Bitcoin address, yang konon bisa generate address secara personal dan unik. Bahkan pada Vanitygen, proses generate addressnya bisa juga digunakan meski dalam kondisi ofline.