ddkoin
ddkoin
ddkoin

Menambang Bitcoin – Bitcoin Mining: Peran Dan Fungsi Penambang – Hardware – Konsumsi Energi – Pool Mining

Menambang Bitcoin adalah mekanisme penciptaan dan pendistribusian unit-unit bitcoin (BTC) baru, dengan cara yang paling adil, rasional, dan demokratis. Proses menambang bitcoin tersebut dapat memastikan bahwa pendistribusian unit-unit bitcoin baru dapat diberikan hanya kepada yang paling berhak atas kontribusinya.

Bitcoin, pertama kali diperkenalkan sebagai sebuah Sistem Pembayaran Tunai Elektronik Berbasis Peer-to-Peer. Hal ini berdasarkan pada makalah bitcoin yang dibuat oleh Satoshi Nakamoto pada tahun 2018 silam. Makalah semi formal bitcoin ini disebut dengan Whitepaper Bitcoin.

Ketika berbicara tentang sebuah sistem pembayaran elektronik, maka hal paling mendasar pertama yang harus dipersiapkan adalah “unit-unit cash”. Apa yang dimaksud dengan unit cash ini tidak lain berfungsi seperti halnya sebuah “duit tunai”. Sehingga dengan unit-unit cash inilah yang nantinya paling berperan sebagai bahan baku. Menjadi motor penggerak. Agar sistem pembayaran tersebut dapat berjalan. Tanpa itu, mustahil sebuah sistem pembayaran elektronik bisa beroperasi.

Sebut saja seperti PayPal, Perfect Money, Ovo, Dana, dan lain-lain. Semuanya juga berperan sebagai sistem pembayaran elektronik. Perbedaan mutlaknya dengan bitcoin, unit-unit cash itu ditentukan dengan cara yang lebih adil, rasional, dan tanpa monopoli.

Berbeda dengan sistem pembayaran seperti PayPal, Perfect Money, Ovo dan lain-lainnya, unit-unit cash itu diciptakan dan dikuasai sepenuhnya oleh pemilik perusahaan tersebut. Orang lain sebagai pengguna, tidak akan pernah tahu bagaimana mekanisme unit-unit tersebut diciptakan, seberapa besarnya, dan berapa jumlah unit-unit cash yang diciptakan.

Oleh sebab itu, mekanisme awal tentang penciptaan unit-unit cash di dalam Bitcoin sudah ditentukan sedari awal dengan cara yang berbeda. Unit-unit cash itu harus bisa dibuat, didistribusikan secara lebih terbuka, untuk semua orang. Tujuannya memang agar tidak ada proses yang memonopoli hal mendasar itu. Dalam hal ini, proses menambang bitcoin inilah, yang menjadi mekanisme paling jitu.

Mengapa Disebut Dengan Menambang Bitcoin?

Tidak ada yang mengetahui persis mengapa istilah menambang (mining) ini dipergunakan oleh Satoshi Nakamoto di dalam Bitcoin. Namun berdasarkan proses diskusi panjang saat pertama kali diperkenalkan, analogi “menambang” bitcoin ini memangcukup mirip dengan kondisi pertambangan logam mulia, Emas.

Asumsi yang paling mendekati, adalah karena jumlah bitcoin yang memang terbatas hanya 21 juta BTC. Jumlah yang terbatas itu juga seperti dengan emas yang terbatas di muka bumi. Jika emas sudah ditambang seluruhnya, maka emas juga akan habis.

Selain itu emas juga bisa ditambang oleh semua orang. Bitcoin juga bisa ditambang oleh siapapun yang menghendaki. Secara umum, kondisi pembentuk ekosistem antara bitcoin dan emas, memang cukup mirip.

Banyak Terjadi Kesalahpahaman Tentang Pengertian Menambang Bitcoin

Pada masa-masa awal, publik banyak yang kurang memahami tentang pengertian dan mekanisme menambang bitcoin. Banyak orang menganggap bahwa semua kegiatan “mencari Bitcoin” adalah menambang Bitcoin. Seperti mencari Bitcoin Gratis via faucet, giveaway, main game mendapat Bitcoin gratis, posting dapat bitcoin, di sebut juga menambang.

Pembahasan ini difungsikan agar dapat memberikan penjelasan lebih lengkap segala hal terkait dengan mekanisme “menambang Bitcoin” yang sesungguhnya.

Pembahasan “Penjelasan Lengkap Menambang Bitcoin” ini, dibagi menjadi 5 bagian:

1. Peran Dan Fungsi Penambang
2. Hardware Menambang Bitcoin
3. Konsumsi Energi Dan Ekologi menambang Bitcoin
4. Pengertian Mining Pool

1. Peran Dan Fungsi “Penambang (Miner)

Mekanisme menambang Bitcoin hanya dapat dilakukan dengan menggunakan perangkat tertentu. Proses menambang ini pada dasarnya dilakukan melalui proses “komputasi puzzle bitcoin”.

Baca lebih jauh tentang puzzle bitcoin ini disini: Mengerti Puzzle Bitcoin Mining.

Sudah cukup banyak beredar yang memberikan penjelasan bahwa proses menambang bitcoin disebut “memecahkan serangkaian persoalan matematis rumit”. Tidak, tidak demikian. Proses menambang bitcoin dilakukan melalui proses komputasi. Dalam dunia komputer, komputasi ini dimaknai sebagai sebuah teknik penyelesaian masalah dari input yang ada, menggunakan sebuah algoritma sebagai metodologisnya.

Komputasi, umumnya sudah menggunakan perangkat komputer. Karena dalam tahap kerjanya, harus dilakukan dalam waktu yang lebih cepat. Otak manusia jelas membutuhkan bantuan piranti keras itu dalam melakukan penghitungan yang cepat tersebut.

Dalam banyak hal, kalkulasi dan penyelesaian problem (puzzle) ini memang lebih banyak berkaitan dengan cabang ilmu matematika. Namun titik tekan mekanisme menambang adalah pada proses komputasi.

Kalimat penyederhanaan “penyelesaian matematika rumit” yang umum digunakan sudah memberikan bias makna yang jauh. Kadang, orang menjadi lebih bingung. Apakah penambang harus ujian nasional pelajaran matematika? Jika hanya menyelesaikan matematika rumit, pakar matematika jelas bakal mampu untuk menambang Bitcoin sendiri, tidak perlu menggunakan perangkat apapun.

Padahal, di dalam proses menambang Bitcoin juga di dasarkan pada “tingkat kesulitan tertentu”. Maka jelaslah dibutuhkan perangkat khusus untuk menambang bitcoin. Kegiatan inilah yang disebut dengan proses “Menambang” atau disebut juga dengan istilah “Bitcoin Mining”.

Lebih jelasnya bahwa jika seseorang menambang Bitcoin, artinya orang tersebut menggunakan perangkat tertentu dalam melakukan pertambangannya. Bisa menggunakan CPU (Central Processing Unit – Komputer), GPU (Graphics Processing Unit – perangkat kartu grafis komputer), FPGA (Field-Programmable Gate Array – IC chip digital), maupun ASIC (Application Specific Integrated Circuit). Penjelasan tentang perangkat ini akan dibahas di bagian selanjutnya. Pelaku pertambangan tersebut, selanjutnya disebut dengan “penambang (Miner)”.

Lalu apa sebenarnya yang dilakukan oleh penambang Bitcoin?

Proses menambang Bitcoin mirip dengan pertambangan logam mulia seperti emas. Perbedaannya, kalau menambang Bitcoin dilakukan secara digital dengan memecahkan atau melalui komputasi puzzle bitcoin, dan pertambangan emas melalui proses pertambangan emas secara nyata.

Antara keduanya banyak kemiripan. Penambang Bitcoin maupun penambang Emas sama-sama menggunakan perangkat. Penambang Bitcoin bisa menggunakan CPU, GPU, FPGA, maupun perangkat ASIC khusus. Sementara penambang emas bisa menggunakan panci-panci kecil untuk penyaringan, Gold Pan agar menyaring lebih halus, pinset, Trowel, alat pengerukan, hingga alat-alat berat.

Penambang emas maupun Bitcoin juga bisa rugi, karena tidak bisa dan sulit menemukan emas, dan ada juga yang berhasil. Namun, gambaran nyatanya adalah bahwa keduanya sama-sama dihadapkan pada tingkat kesulitan tertentu saat melakukan proses pertambangan tersebut.

Begitupun halnya dengan pertambangan Bitcoin. Ada sederet kesulitan dan tantangan yang dihadapi. Sedangkan untuk menjadi seorang penambang, maka kita harus terhubung ke dalam jaringan Bitcoin dengan koneksi internet yang dimiliki.

Setelah terhubung, maka penambang juga disebut menjadi “node” (simpul koneksi -klien). Istilah node ini secara umum menjelaskan tentang semua perangkat yang telah terhubung ke dalam jaringan Bitcoin.

Setelah terhubung, artinya penambang dengan simpul koneksi melalui perangkatnya, akan terkoneksi dengan node lain di dalam jaringan. Selanjutnya, melalui simpul koneksi itu, penambang akan melakukan serangkaian tugas. Tugas-tugas yang dilakukan tersebut adalah:

1. Mendengarkan Transaksi

Istilah “mendengarkan transaksi”, mungkin akan dirasa cukup aneh. Mengapa harus memakai istilah “mendengarkan”?

Ketika seseorang mengirim transaksi bitcoin, pada dasarnya orang itu mempublikasikan transaksi itu ke dalam jaringan Bitcoin. Sementara di dalam jaringan itu, sudah terdapat ribuan simpul koneksi yang saling terhubung satu sama lain. Proses mengirimkan transaksi bitcoin ini sama halnya dengan mempublikasikan transaksi. Atau disebut juga dengan istilah “Broadcast transaksi”.

Sementara seluruh simpul klien (baca: node), harus melakukan komunikasi antar node lain di dalam jaringan. Bitcoin penyebaran informasi terkait dengan publikasi atau broadcast transaksinya harus dapat diterima oleh seluruh node. Penyebaran ini dilakukan melalui Gossip Protocol.

Baca lebih Jauh: Gossip Protocol – Cara Kerja Bitcoin Di Dalam Jaringan

Di dalam jaringan, kondisi node itu memang seperti dalam posisi menunggu siaran transaksi (broadcast) di dalam jaringan. Oleh sebab itulah mengapa penambang diibaratkan harus mendengarkan seluruh transaksi yang masuk.

Setelah node mendengarkan semua transaksi yang terjadi. Dilanjutkan dengan memvalidasi transaksi yang telah didengar tersebut. Proses validasi ini dengan melakukan pemeriksaan terhadap tanda tangan digital (digital signature) yang dilampirkan pada transaksinya. Benar atau tidak tanda tangan digital yang terkait, dan memeriksa output terkait untuk memastikan bahwa jumlah itu benar-benar belum di transaksikan. Proses validasi ini memastikan bahwa tidak terjadi double spending.

2. Menjaga Blockchain dan mendengarkan block baru yang tercipta.

Seorang penambang, sebenarnya berfungsi untuk menjaga blockchain. Terkait dalam penanganan semua transaksi yang terjadi. Penambang mempertahankan validitas Blockchain yang telah menyimpan kesejarahan seluruh transaksi yang dilakukan.

Dalam proses kerjanya di jaringan, penambang dapat meminta semua sejarah block baru kepada node lain yang telah masuk, sebelum ia masuk kedalam jaringan bitcoin. Mendengarkan block baru yang di broadcast di dalam jaringan, lalu memvalidasi block yang di terima itu.

Block-block baru inilah yang menyimpan seluruh rangkaian transaksi Bitcoin. Karena di dalam setiap block terdapat serangkaian transaksi, maka setiap transaksi yang ada di dalam block itupun juga harus divalidasi, dan harus valid.

3. Membuat calon block baru

Dalam proses menambang bitcoin, penambang harus memiliki salinan lengkap “rantai block” (blockchain). Salinan data transaksi lengkap ini yang dipergunakan untuk menyusun serangkaian transaksi, dan di masukkan ke dalam sebuah block baru yang valid. Proses ini yang menggambarkan bahwa setiap penambang dalam salah satu kerjanya adalah menyusun usulan “calon block baru”.

Dalam proses menyusun block baru, penambang mengelompokkan semua transaksi yang telah didengarnya agar bisa dimasukkan ke dalam sebuah ke blok baru. Selanjutnya dari block baru itu. Jika block tersebut valid dan diterima di dalam jaringan, maka block bitcoin tersebut masuk ke deret mata rantai plock terpanjang. Namun tugas paling krusial bagi penambang, adalah saat memastikan semua transaksi dalam block itu adalah transaksi yang valid.

4. Mencari Nonce agar menjadi block yang valid

Setelah kita memvalidasi semua transaksi pada calon blok tadi, selanjutnya adalah mencari nonce agar bisa membuat blok tersebut menjadi valid. Langkah disini adalah langkah yang paling sulit yang dihadapi oleh para penambang.

Nonce ini yang terkait pada komputasi puzzle bitcoin. Secara teknis, dalam proses kerjanya, penambang melalui perangkatnya akan melakukan percobaan 2x hashing untuk mencari noce yang tepat menggunakan algoritma SHA256. Proses hashing ini dilakukan secara berulang-ulang sampai pada akhirnya node mampu menemukan nonce yang tepat.

5. Berharap Block diterima

Ini adalah kesulitan kedua yang dihadapi. Jadi, jika kita sebagai seorang penambang menemukan sebuah blok baru, tidak ada jaminan bahwa blok itu dapat diterima menjadi bagian dari konsensus blockchain Bitcoin. Penambang membutuhkan juga unsur keberuntungan. Berharap agar penambang lain menerima usulan blok baru tersebut. Sehingga kita bisa mulai menambang diatas blok tersebut. Bukan pada block penambang lain.

6. Menerima Keuntungan

Jika ternyata penambang lain menerima blok kita sebagai blok yang valid, maka inilah saat yang membuat penambang tersenyum puas setelah melakukan pekerjaan beratnya. Karena jika blok kita diterima, maka akan memperoleh block reward sebesar 12,5 Bitcoin (yang masih berlaku di saat ini, berubah menjadi 6,25 BTC di sekitar bulan Mei 2020 mendatang. Selain itu, jika beberapa transaksi di dalam blok itu dicantumkan biaya transaksi, penambang pun bisa mengumpulkan semua biaya transaksi tersebut.

Enam hal tersebut adalah hal yang menjadi tugas bagi seorang penambang. Menjadi cukup jelas, bahwa menambang bitcoin bukanlah dimaknai seperti mencari Bitcoin di faucet, giveaway atau yang lain. Menambang bitcoin sebenarnya hanya dapat dilakukan menggunakan perangkat tertentu, dengan proses dan cara kerja seperti pada penjelasan enam hal tersebut di atas.

Mari kita lanjutkan kembali. Dari keenam hal itu, dapat diklasifikasikan menjadi dua kategori besar, yakni:

  • Sebagian tugas itu untuk memvalidasi transaksi

Berfungsi untuk membantu jaringan Bitcoin sebagai sebuah fungsi yang paling penting agar sistem Bitcoin dan Blockchain bisa terus berjalan dan ada. Sehingga penambang, adalah hal utama yang akan menjalankan semua protokol Bitcoin.

  • Sebagian tugas lain untuk saling berlomba mencari blok baru dan memperoleh keuntungan

Mengapa saling berlomba? karena pada dasarnya, hal ini yang paling sulit. Selain itu, terkait juga dengan insentif reward blok yang akan diterima. Bagi yang berhasil menemukan blok baru. Makanya diibaratkan sebagai sebuah perlombaan untuk mencari dan menemukan blok baru. Dan insentif yang diberikan itu, digunakan sebagai stimulus para penambang dalam melakukan pekerjaannya.

Lalu bagaimana bisa menemukan blok yang valid? untuk menjawab pertanyaan ini, akan berkaitan dengan Nonce yang harus di temukan agar bisa menjadi blok yang valid. Yang perlu kita pahami, bahwa di setiap blok header, akan menunjuk ke header blok sebelumnya. Dan di dalam setiap blok, akan terdapat merkle tree dari semua transaksi yang ada di dalam blok itu.

Penambang, terlebih dahulu mengkompilasi satu set transaksi yang valid, yang dimiliki dari pool pending transaction (pool atau kolam khusus untuk menampung transaksi yang masih tertunda, atau yang biasa disebut dengan mempool), kemudian di masukkan kedalam merkle tree.

Nah, dalam hal ini seorang penambang bisa memasukkan banyak transaksi ke dalam 1 block baru. Hingga keseluruhan ukuran block baru itu mencapai total kurang dari 1 megabyte (batas ukuran blok yang masih berlaku saat ini). Kemudian, membuat header block yang terkait dengan blok sebelumnya.

Pada header block ini, ada ruang nonce berukuran 32 bit. Sehingga penambang bisa mencoba nonce ini berkali-kali. Tujuannya, untuk mencari satu nonce yang paling tepat. Ketentuan nonce tersebut adalah, bahwa nilai hashing yang diperoleh harus lebih rendah / dibawah target. Lebih jauh terkait dengan maksud “target” tersebut dijelaskan lebih lanjut di bawah.

Biasanya untuk memulai mencoba nonce tersebut, bisa diawali dengan nilai nonce “0” (nol). Lalu penambang pun bisa mencoba secara berturut-turut dengan kenaikan angka tersebut sampai berhasil mencari nonce yang tepat agar menjadi blok valid.

Umumnya penambang akan mencoba setiap kemungkinan nilai dari 32 bit untuk nonce tersebut. Namun mungkin juga tidak ada satupun yang bisa menghasilkan hash yang valid. Nah, pada kasuistis seperti ini, biasanya penambang akan membuat sebuah perubahan.

Perubahan itu adalah perubahan pada transaksi Coinbase, yang memungkinkan penambang untuk merubah nilai dari 32 bit. Karena ada sebuah nonce tambahan dalam transaksi coinbase. Setelah mengubah nonce tambahan di transaksi coinbase tadi, penambang bisa mulai mencari lagi nonce di header block.

Jika telah melakukan perubahan nonce dalam transaksi coinbase, maka seluruh merkle tree juga harus berubah. Mengapa demikian? Karena perubahan nonce tersebut akan menyebar ke semua jalur di merkle tree. Sehingga, bisa dikatakan pengubahan nonce tambahan tersebut, sifatnya seolah-olah lebih sulit daripada mengubah nonce di header bloknya.

Mengapa lebih sulit? karena penambang jadi banyak menghabiskan waktunya untuk mengubah nonce di header blok. Bisa jadi juga, ketika sudah selesai mengubah nonce di header blok, mereka pun belum bisa menemukan blok yang valid. Itulah mengapa justru pengubahan nonce tambahan ini justru lebih sulit. Meskipun bisa dilakukan sebagai jalan alternatif, jika belum bisa menemukan kemungkinan nilai di 32 bit tadi.

Walaupun sulit dan sebagian besar mungkin tidak akan berhasil, namun jika penambang berusaha untuk terus mencoba, mungkin akan bisa menemukan sebuah kombinasi yang tepat dari nonce tambahan di transaksi coinbase itu. Sehingga nonce di header blok bisa menghasilkan hash yang tepat dibawah target. Kalau penambang berhasil menemukan, penambang itu bisa secepatnya untuk mengumumkan, dan berharap bisa diterima untuk mendapat reward.

Lalu ada pertanyaan yang muncul:

1. Target apa sebenarnya yang menjelaskan target hash itu harus berada di bawah target?
2. Apakah semua penambang memecahkan puzzle yang sama?
3. Jika satu penambang berhasil memecahkan, apakah penambang yang tercepat itu akan selalu menang untuk menemukan blok berikutnya?

Jawaban nomor 2 dan 3 adalah “Tidak”. Tidak mungkin penambang akan bekerja pada blok yang sama persis. Karena blok satu dengan yang lain, tentu di dalamnya akan terdapat urutan transaksi yang berbeda. Jadi tentu saja puzzle nya juga tidak sama. Dan yang paling utama, jika ada dua penambang yang bekerja pada blok yang transaksinya identik sekalipun, bloknya akan tetap berbeda.

Dalam transaksi coinbase, penambang akan menentukan alamat mereka sendiri di dalam transaksi coinbase. Alamat ini yang akan membuat perubahan hingga sampai ke akar merkle tree. Sehingga bisa dipastikan bahwa tidak ada dua penambang yang sedang mengerjakan puzzle yang sama. Kecuali jika mereka berbagi (sharing) public key. Berbagi atau sharing public key ini, dalam pertambangan bisa dilakukan jika kedua penambang tersebut adalah bagian dari pool mining yang sama. Sehingga antara keduanya akan bisa berkomunikasi satu sama lain, terkait apakah mereka termasuk nonce yang berbeda di transaksi coinbase tersebut. Tujuannya juga untuk menghindari duplikasi pengerjaan.

Untuk menjawab pertanyaan nomor 1 tentang target, cukup berkaitan dengan tingkat kesulitan. Begini penjelasannya:

Tingkat Kesulitan Menambang Bitcoin

Bagaimana tingkat kesulitan untuk menemukan blok yang valid? Yang harus kita ingat adalah bahwa penambang akan berusaha untuk mendapatkan yang diiginkan. Yakni nilai hash harus lebih rendah dari target. Katakanlah, penambang berusaha untuk menemukan hash bloknya + angka acak di base16, yang nilainya lebih rendah dari target.

Target –> seperti yang dijelaskan di awal, berkaitan dengan tingkat kesulitan. Sementara target ini adalah bit 256 pada base16. Jadi target ini akan semakin rendah nilainya, sehingga tingkat kesulitannya juga akan bertambah. Maka artinya, tingkat kesulitan tersebut adalah makin rendahnya nilai dari target. Sampai di sini jelas ya? Mari kita lanjutkan kembali secara lebih detail.

Kita ambil contoh, misalkan pada satu waktu tingkat kesulitan dalam hexadesimal adalah:

0000000000000000172EC0000000000000000000000000000000000000000000 (BASE16)

atau jika dalam dikonvert jadi base10 adalah:

568436119447114618883887501211268589217582000336195813376

Jika penambang mendapatkan hashnya di dalam base10:

568436119447114618883887501211268589217582000336195813376+ 1,

maka artinya penambang itu tidak berhasil, dan harus mencoba lagi, coba lagi, dan lagi, hingga berhasil menemukan nilai yang lebih rendah dari targetnya.