Memahami Cara Kerja Bitcoin

Bagus Aji Santoso 11 Juli 2017

Memahami Cara Kerja Bitcoin

Bitcoin adalah mata uang digital yang mulai populer pada tahun 2013. Mata uang ini tidak dikontrol Bank atau lembaga lain. Mata uang yang terdesentralisasi ini didesain untuk menjaga uang kita dari mereka yang ingin mengambil keuntungan. Tapi bagaimana cara kerja sebuah mata uang digital? Bagaimana bisa mata uang ini berlaku jika tidak ada orang yang bisa mengatakan mereka menyimpannya.

Bitcoin terdiri atas tiga bagian yaitu: block chain, mining network, dan wallet. Untuk dapat memahami cara kerja Bitcoin, kita harus memahami cara kerja tiap bagiannya. Buatlah segelas kopi/teh dan nikmati artikel ini.

Block Chain

Block chain adalah daftar tiap transaksi Bitcoin yang pernah terjadi. Sebelum transaksi masuk ke block chain, maka transaksi itu belum selsai. Sesuai namanya, block chain merupakan rangkaian/rentetan sebuah blok. Blok tersebut berisi sekumpulan transaksi baru dan terhubung dengan blok sebelumnya. Semua orang dapat memvalidasi block chain dengan mengikuti seluruh catatan yang merekam setiap transaksi sampai dengan transaksi pertama saat Satoshi Nakamoto membuat Bitcoin.

Sampai disini, kamu mungkin berpikir keras, siapa yang bertugas mengelola block chain ini. Jawabannya adalah: tidak ada. Tidak ada satu organisasi atau perseorangan pun yang memegang salinan block chain sendiri. Bitcoin dibuat agar terdistribusi dengan baik, sehingga tidak ada titik kesalahan yang dapat merusak block chain baik secara sengaja maupun tidak disengaja. Block chain dipegang oleh setiap komputer yang menambang Bitcoin.

Image

Menambang Bitcoin

Orang-orang yang menambang Bitcoing (miner), adalah orang-orang yang menjaga transaksi lama serta memastikan transaksi baru tercatat. Tugas mereka adalah membuat (atau menambang) blok baru. Blok-blok ini menyimpan transaksi baru yang terjadi. Sebagai kompensasi telah menambang blok-blok baru ini, mereka diberikan beberapa Bitcoin. Insentif seperti ini memastikan ada cukup orang untuk melakukan penambangan sehingga sistem jaringan Bitcoin terus berjalan.

Wallet

Wallet adalah bagian Bitcoin yang sering dilihat oleh pengguna. Istilah wallet (dompet) sendiri kurang tepat karena wallet sebetulnya tidak menyimpan Bitcoin. Wallet hanya menyimpan private key yang mengijinkan sang pemilik untuk menambah transaksi ke block chain disebuah alamat berupa public key. Bitcoin-nya tersimpan sebagai sebuah catatan transaksi di dalam block chain tersebut.

Paragraf-paragraf sebelumnya memberikan garis besar tentang cara kerja Bitcoin dan kita dapat mulai menambang atau menggunakan Bitcoin. Meskipun begitu, ada kemungkinan kamu tidak mempercayai mata uang ini karena cara kerjanya yang agak aneh.

Kehebatan mata uang ini adalah teknik kriptografi yang melindungi pengguna. Mari kita lihat secara lebih mendalam bagaimana cara teknik ini bekerja.

Keamanan Bitcoin sebagian besar datang dari hashing, dan hash inilah yang digunakan untuk menautkan blok yang satu dengan blok lainnya di block chain. Setiap blok menyimpan hash blok sebelumnya, dan nilai hash tersebut tidak dapat diganti tanpa mengubah nilai hash blok sekarang (yang juga perlu diubah di blok berikutnya, dst.). Semua orang bisa memeriksa bahwa tidak ada transaksi yang pernah mengubah nilai hash karena, jika hal itu dilakukan maka nilai hash berikutnya akan terpengaruh dan tidak lagi tertaut.

Bertransaksi dengan Bitcoin

Saat melakukan transaksi dengan Bitcoin, kita mengirimkan transaksi tersebut ke jaringan miner. Untuk menjaga bahwa tidak ada orang yang dapat melakukan transasi menggunakan wallet kita tanpa diketahui, terdapat beberapa keamanan yang diberlakukan.

Transaksi Bitcoin terjadi antara dua wallet atau lebih. Seperti yang telah dijelaskan sebelumnya, kedua wallet ini hanyalah pasangan public/private key yang digunakan untuk mengenkrip data. Cara kerja kedua pasangan key ini memastikan bahwa semua data yang dienkripsi dengan public key dapat dibaca dengan private key, dan begitu pula sebaliknya.

Di Bitcoin, kita tidak memiliki tumpukan uang yang bisa naik turun seperti di Bank. Sebagai gantinya, kita memiliki sekumpulan Bitcoin yang dapat ditelusuri hingga miner pertamanya. Saat melakukan transaksi, kita harus mereferensi transaksi saat mendapatkan Bitcoin tersebut (bisa mereferensikan lebih dari satu). Selanjutnya, kita harus menandai secara digital setiap transaksi yang direferensikan. Artinya, kita meng-hash-kan detail dari transaksi dan mengkripsinya dengan private key. Karena public key akan selalu terhubung dengan alamat kita (juga transaksi yang direferensikan), maka akan dipastikan bahwa hanya kita yang memiliki otorisasi untuk melakukan transaksinya.

(Untuk penjelasan lebih lengkap, kunjungi https://en.bitcoin.it/wiki/Transactions)

Perhatikan bahwa tidak ada data fisik yang keluar dari wallet selain pesan ke block chain. Jumlah Bitcoin di dalam sebuah wallet dikalkulasi dengan melihat transaksi yang ada di block chain. Artinya siapapun dapat memeriksa jumlah Bitcoin yang ada di wallet manapun. Namun, bukan berarti siapapun dapat mengetahui siapa yang memiliki wallet tertentu karena tidak mudah untuk menentukan pemilik dari tiap wallet tersebut.

Saat transaksi ini sampai ke tangan miner, transaksi ditambahkan ke block berikutnya. Seperti yang telah kita pahami bahwa tiap block chain dapat dibagi lagi (dan seorang miner dengan computing power yang besar dapat membaginya secara berkelanjutan). Tidak ada garansi transaksi akan langsung masuk block chain, tapi dilihat dari jumlah block yang ada. Jika hanya ada satu blok, maka seorang penyerang yang beruntung dapat mengacaukan keseluruhan mining network. Dengan bertambahnya blok yang masuk ke block chain, kerjaan penyerang akan makin banyak dan lebih menyulitkan.

Enam blok biasanya dianggap cukup untuk memastikan sebuah transaksi ditambah dengan benar ke dalam block chain. Dengan laju satu blok setiap sepuluh menit, maka proses penambahan transaksi dapat terjadi dalam waktu satu jam. Untuk transaksi dengan nominal besar, kamu mungkin akan menunggu sedikit lebih lama sebelum transaksi sudah selesai di-transfer.

Block chain merupakan catatan tiap transaksi yang dapat diverfikasi secara publik. Setiap detail transaksi akan disebarluaskan ke semua miner yang ada di jaringan bitcoin dengan permintaan agar dimasukkan ke blok berikutnya.

Agar seorang miner dapat dibayar atas pekerjaannya menambah sebuah blok, ada dua hal yang harus terjadi: mereka harus memastikan hash-nya valid dan blok tersebut tercatat di block chain. Syarat pertama murni tantangan yang bersifat teknis, sedangkan syarat yang kedua akan memaksa mereka untuk memeriksa semua kemungkinan. Jika block chain mengandung transaksi yang tidak valid (misal, seseorang melakukan transaksi dengan coin yang tidak mereka miliki), maka miner berikutnya yang mendapatkan kiriman dari miner tersebut akan menolak sehingga ia tidak mendapat bayaran. Oleh karena itu miner akan memeriksa setiap transaksi untuk memastikan kevalidannya sebelum ditambahkan ke dalam sebuah blok.

Image

Saat seorang miner menerima sebuah blok dari miner lainnya, mereka akan mendapatkan insentif saat menemukan kesalahan karena dua hal. Pertama, jika mereka menolak sebuah blok, itu artinya mereka masih memiliki kesempatan untuk menambangnya untuk diri mereka sendiri. Kedua, jika mereka menerima blok yang oleh miner lain ditolak karena tidak valid, maka penambangan yang mereka lakukan akan sia-sia karena blok ini tidak akan masuk ke block chain.

Diwaktu yang sama mereka akan mendapatkan insentif saat menerima blok yang valid, karena jika mereka menolak sebuah blok yang diterima oleh miner lain, maka blok selanjutnya yang mereka tambang akan ditolak oleh miner-miner lain.

Hashtag

Hashing – sering dikenal juga sebagai enkripsi satu arah – adalah sebuah metode untuk mengubah suatu data dengan satu cara yang tidak dapat dibalik tapi bisa diverifikasi. Mari kita lihat sebuah contoh hashing yang sangat sederhana dengan operator modulus 10. Dicontoh ini, kita membagi suatu angka dengan 10 dan sisa hasil bagi ini adalah hash-nya – sehingga angka 45 memiliki hash 5.

Ada dua fungsi krusial yang harus dimiliki oleh hash. Yang pertama adalah mudah untuk diverfikasi. Tiap kali dilakukan, prosesnya haruslah cepat dan menghasilkan hasil yang sama. Fungsi kedua adalah tidak bisa dibalik. Jika seseorang mengatakan nilai sebuah hash adalah 5, seharusnya kita tidak tahu bahwa nilai aslinya adalah 45.

Meskipun begitu modulo 10 adalah teknik algoritma hashing yang buruk karena memungkinkan adanya nilai hash yang sama dari sumber data yang berbeda. Hash yang bagus harus memiliki dua elemen tadi. Sedikit perubahan pada nilai awal akan membuat nilai hash-nya berubah drastis.

Hash sering dipakai dalam keamanan komputer. Contohnya yaitu penyimpanan password di Linux. Sistem Linux tidak pernah menyimpan password, tetapi yang disimpan adalah nilai hash-nya. Kita bisa melihat nilai-nilai hash password di Linux dengan mengetikan:

sudo cat /etc/shadow

Setiap kali log in, komputer akan merumuskan nilai hash dari password yang dimasukkan dan membandingkannya dengan hash yang tersimpan. Jika kedua hash memiliki nilai yang sama, maka log in berhasil. Meskipun bisa melihat semua hash yang ada di sistem, bukan berarti standar keamannya rendah karena sangat sulit untuk membalikkan nilai hash menjadi nilai asal.

Dalam sistem Bitcoin, hash dipakai untuk memverifikasi integritas block chain, dan menjadi bukti bahwa seorang miner sudah menambang sebuah blok. Tugas hash di block chain adalah memastikan tidak ada blok yang diubah sejak mereka ditambang.

Ada sebuah masalah yang mungkin terjadi yaitu dua miner dapat membuat block yang sama pada waktu yang bersamaan dan mengirimkannya ke miner lain. Saat hal ini terjadi, akan ada sebuah perpecahan di block chain. Beberapa miner dapat bekerja di salah satu blok, dan miner yang lain di blok satunya. Aturan Bitcoin menyatakan bahwa block chain valid yang lebih panjang yang akan dipakai. Salah satu dari perpecahan dua perpecahan tadi salah satunya akan masuk ke blok berikutnya lebih dulu, sehingga miner akan melewatkan chain yang lebih pendek agar mendapat bayaran untuk menambang *chain yang lebih panjang.

Aturan ini memastikan bahwa sebuah jaringan miner yang ingin memaksimalkan keuntungan pribadi tetap menjaga integritas mata uang ini. Sekelompok miner yang ingin mengakali sistem akan membutuhkan computing power yang lebih besar dari kombinasi semua miner yang benar (agar mereka dapat menambang blok dengan rate yang lebih cepat dan memiliki block chain lebih panjang). Hashcash selanjutnya mengamankan jaringan Bitcoin melalui raw computing power.

Ini lah alasan mengapa penambangan Bitcoin harus tetap untung. Saat ini, jaringan Bitcoin memiliki performa sebesar 15 peta hash per detik dan terus naik. Untuk membeli computing power yang lebih besar untuk mengalahkan angka di atas akan membutuhkan sekitar 150 juta poundsterling dan akan terus bertambah. Harga ini belum termasuk listrik, ruang penyimpanan, pendinginan, gaji orang yang menjalankannya, dll.

Hashcash

Hashcash adalah sistem yang digunakan oleh miner untuk memverifikasi bahwa mereka telah menambah sebuah blok sebelum blok tersebut dimasukkan ke block chain. Fungsi dasarnya adalah membuat block chain menjadi tidak memungkinkan untuk diubah.

Proses ini bergantung pada proses hashing, terutama fungsi hash SHA256. Fungsi ini menerima sebuah input dan mengeluarkan output sebuah angka 256-bit. Angka yang dimasukkan ke fungsi hash adalah header block (didalamnya terdapat sebuah counter) dan semua hash dari transaksi lain. Tugas miner adalah mencari nilai untuk counter dimana output dari fungsi hash berada di bawah nilai tertentu. Batas nilai ini akan menyesuaikan dengan pengaturan kesulitan saat ini, yang normalnya berubah tiap 2016 blok.

Satu-satunya cara untuk mendapatkan nilai hash yang dibutuhkan adalah dengan computing power yang besar. Dengan makin banyaknya nilai hash yang didapatkan dalam waktu yang lebih cepat akan memperbesar kemungkinan mendapatkan nilai yang memenuhi. Saat nilai hash ditemukan, itu artinya kita sudah menambah blok tersebut dan dapat mengirimkannya ke miner lain di jaringan.

Kecepatan sebuah jaringan atau sebuah komputer penambang Bitcoin dilihat dari berapa banyak hash yang dapat dicoba dalam satuan waktu (biasanya dihitung dalam juta hash perdetik atau GHs).

Miner tidak perlu khawatir pekerjaan mereka diambil orang karena didalamnya ada hash dari semua transaksi dan salah satu transaksi itu adalah bayaran untuk miner itu sendiri karena menambang blok. Hasil ini tidak bisa diambil orang tanpa mengubah nilai hash-nya.

Perlu dicatat bahwa algoritma hashcash yang digunakan oleh Bitcoin sedikit berbeda dengan algoritma yang digunakan untuk mendeteksi pesan spam, meskipun cara kerja keduanya hampir mirip.

Image

Pencegahan Penipuan

Keuntungan menambang Bitcoin dikontrol oleh dua faktor: kesulitan dalam menambang tiap blok, dan jumlah Bitcoin yang didapatkan oleh miner di tiap blok. Kedua hal ini harus diimbangi dengan memperhitungkan computing power dan nilai Bitcoin yang terus meningkat di pasar.

Jumlah Bitcoin yang diberikan tiap blok berubah dalam nilai yang pas: bermula di 50,5 tiap 210.000 blok (kurang lebih empat tahun) sampai 21 juta Bitcoin sudah ditambang, dan tidak ada lagi Bitcoin yang dapat diberikan untuk menambang blok-blok selanjutnya.

Tingkat kesulitannya bervariasi setiap 2.016 blok. Jaringan Bitcoin didesain untuk membuat blok baru rata-rata setiap 10 menit. Waktu ini dipilih karena dua hal: waktu yang lebih singkat akan membuat transaksi lebih cepat terjadi, namun waktu yang terlalu singkat juga dapat membuat lebih dari satu miner membuat blok baru di saat yang bersamaan sehingga akan ada sumber daya yang terbuang karena ada dua block chain yang saling berkompetisi menjadi yang lebih panjang.

Kamu mungkin bisa melihat sedikit kekurangan dari penjelasan sebelumnya. Pertama, penulis menyatakan bahwa keamanan sistem bergantung pada computing power yang dimiliki pada akhirnya bergantung pada profitabilitas penambangan. Namun kemudian penulis menyatakan bahwa suatu saat nanti di masa yang akan datang saat 21 juta Bitcoin sudah telah ditambang, tidak akan ada lagi upah untuk penambangan.

Hal ini tidak sepenuhnya benar. Meskipun tidak ada lagi bitcoin baru sebagai upah menambang, namun saat melakukan transaksi kita dapat menambahkan biaya transaksi yang akan masuk ke kantong miner. Biaya transaksi jarang dilakukan saat ini karena proses penambangan masih cukup menguntungkan sehingga orang tidak tambahan uang receh, selain itu volume transaksi juga masih sedikit.

Tiap blok memiliki batasan ukuran sebesar 1MB (keputusan untuk mengubah angka ini masih diperdebatkan). Artinya, ada sebuah batasan jumlah transaksi untuk tiap blok. Jika seorang miner menemukan situasi dimana ada lebih banyak transaksi dibanding ruang dalam blok, mereka akan memutuskan transaksi mana yang akan ditambahkan. Tentunya, miner akan memilih transaksi yang memiliki biaya transaksi lebih besar. Transaksi lain tidak akan hilang, mereka hanya akan disimpan untuk dimasukkan di blok berikutnya. Makin besar biaya transaksi akan mempercepat transaksi masuk ke block chain.

Sebagian besar transaksi Bitcoin pada hari ini belum memiliki biaya transaksi. Belum dapat ditentukan apakah biaya transaksi ini akan menjadi satu-satunya cara atau akan ada fitur lain.

Satoshi Nakamoto

Bitcoin kini sudah sangat terkenal dan nilainya mencapai miliaran pounds, tetapi untuk semua ketenaran itu, ada satu rahasia yang tersimpan begitu rapat: identitas penciptanya. Pencipta Bitcoin dikenal dengan nama Satoshi Nakamoto. Tidak diketahui apakah Satoshi ini seorang laki-laki atau perempuan, apakah terdiri dari satu orang saja atau kelompok.

Satoshi menambang cukup banyak Bitcoin di masa-masa awalnya (kemungkinan mencapai satu jutaan), sehingga dengan nilai tukar saat ini, dia sudah kaya raya. Meski memiliki kekayaan dengan nilai yang cukup besar, hingga saat ini Satoshi belum pernah membelanjakannya sama sekali.

Ada beberapa spekulasi tentang siapa saja yang mungkin dapat membuat mata uang ini. Peneliti dan jurnalis telah menunjuk beberapa nama, namun semua membantah tuduhan itu. Mungkin di masa depan saat warnanya berubah menjadi hijau, sang pembuat misterius ini akan menunjukkan jati dirinya. Mari kita tunggu saja tanggal mainnya ...

Transaksi Anonim

Bitcoin menjadi terkenal sebagai mata uang pilihan dalam melakukan transaksi online, terutama untuk toko online ilegal seperti Silk Road. Walaupun begitu, Bitcoin tidak didesain sebagai mata uang anonim, dan faktanya memang tidak dapat dilakukan karena cara kerja block chain yang mencatat semua transaksi Bitcoin dan memperbolehkan siapapun untuk melihat alur Bitcoin manapun.

Satu-satunya faktor yang membuat Bitcoin populer sebagai sarana transaksi anonim adalah karena kita dapat membuat wallet Bitcoin tanpa memberitahu identitas siapa kita. Dalam pengertian ini, wallet akan tetap bersifat pribadi, namun mata uangnya akan tetap terpublikasi. Ini artinya jika kita mendapatkan koin secara anonim (misalnya, kita menambangnya atau membeli lewat jalan yang tak terlacak), membelanjakannya lewat cara yang tak terlacak (misalnya, membayar untuk sesuatu yang tidak dikirimkan atau terkait secara pribadi dengan cara apapun), dan tidak menghubungkan wallet dengan lokasi fisik (misalnya, hanya menggunakan wallet melalui Tor) maka seharusnya transaksi ini akan bersifat anonim. Namun keanoniman ini harus dilakukan dengan benar. Satu saja gagal, maka transaksi dapat dilacak sampai ujung.

Meski transaksi anonim memungkinkan untuk dilakukan dengan Bitcoin, namun tunai tetap cara paling aman. Block chain merupakan tambang emas untuk analis big-data dan kemungkinan akan ada hukum yang mengaturnya di masa depan.

Menggunakan Bitcoin

Manfaat sebuah mata uang, bagi kebanyakan orang, adalah bagaimana menggunakannya. Sebagian besar mata uang dunia digunakan dengan melibatkan lingkaran logam atau selembar kertas, tapi tidak ada hal seperti itu untuk Bitcoin.

Untuk melakukan transaksi, hal pertama yang dibutuhkan adalah sebuah wallet Bitcoin. Wallet ini hanya pasangan public/private key yang dipakai untuk menandai transaksi. Akan tetapi, kita memerlukan tempat yang aman untuk menyimpan key ini karena jika hilang semua coin itu akan turut lenyap dari muka bumi. Tingkat keamanan bergantung pada jumlah uang yang ingin disimpan. Ada berbagai jenis wallet untuk hampir semua perangkat komputer termasuk gawai alias smartphone. Patut diingat bahwa tidak ada biaya untuk membuat sebuah wallet, jadi tidak ada yang membatasi kita untuk membuat beberapa.

Semua wallet Bitcoin memiliki cara kerja yang sama, dan menyimpan semua informasi yang dibutuhkan untuk menerima dan mengirim Bitcoin serta melihat transaksi yang pernah dilakukan.

Setelah membuat wallet, kita perlu mendapatkan coin. Untuk sebagian besar orang, artinya kita perlu membeli dari tempat penukaran seperti Coinbase. Sayangnya, opsi ini tidak semudah membeli sebagian besar barang, dan jarang pula yang menggunakan kartu kredit atau Paypal dalam transaksi jual beli coin. Hal ini terjadi karena banyak oknum yang telah membeli menggunakan metode ini komplain kepada perusahaan penyedia kartu kredit ini bahwa mereka tidak pernah menerima coin yang dibeli dan kemudian meminta uang kembali uang yang telah diterima oleh penjual. Perusahaan kartu kredit dapat dengan mudah memeriksa block chain, tapi dulu mereka lebih memilih untuk berpihak pada pembeli dan hasilnya sekarang sebagian besar tempat penukaran tidak menerima kartu kredit. Saat ini cara paling umum untuk membeli coin ialah dengan transfer antar bank.

Saat membeli Bitcoin kita akan dimintai alamat wallet. Saat transfer bank telah dilakukan, tempat penukaran akan mengirimkan koin ke wallet tersebut.

Membelanjakan coin jauh lebih mudah dibanding membelinya. Semakin banyak perusahaan yang menerima pembayaran lewat Bitcoin. Dibagian checkout akan ada alamat wallet untuk mengirimkan coin. Perlu diingat bahwa kita tidak mengirimkan transaksi ke penjual, namun ke jaringan. Penjual akan menerima block chain dari jaringan dan memeriksa transaksi yang dikirimkan ke wallet tertentu.

Perusahaan yang menerima uang biasanya akan menunggu sampai transaksi mencapai enam blok atau lebih, yang akan memakan waktu hingga satu jam. Saat transaksi selesai, kita akan mendapatkan produk yang diinginkan.