09 / 7362016

Difficulty Adjustment

penyesuaian kesulitan penambangan

Cara Bitcoin menyesuaikan pekerjaan penambangan agar dalam jangka panjang blok baru muncul rata-rata sekitar setiap sepuluh menit.

Difficulty Adjustment mengubah kesulitan menemukan blok secara otomatis. Saat penambang menemukan blok terlalu cepat, aturan membuat pencarian lebih sulit; saat terlalu lambat, pencarian dipermudah. Dengan begitu, Bitcoin dapat menjaga laju yang kurang lebih stabil meskipun daya komputasi berubah besar. Setiap simpul yang memvalidasi seluruh aturan memeriksa penyesuaian dengan cara yang sama; tidak ada administrator yang menentukan nilainya.

Bayangkan banyak mesin baru ikut menambang. Bersama-sama mereka mencoba lebih banyak perhitungan setiap detik, sehingga pada kesulitan yang sama blok ditemukan lebih cepat secara rata-rata. Blok adalah kumpulan transaksi yang telah dikonfirmasi, dan pembuatannya juga dapat menerbitkan bitcoin baru. Tanpa penyesuaian, mesin yang lebih kuat akan mempercepat penerbitan itu. Penambang berulang kali menghitung hash, sidik jari numerik dari header blok. Mereka berhasil ketika hasilnya cukup kecil. Ambang yang lebih ketat memperkecil peluang keberhasilan tiap percobaan, sehingga rata-rata dibutuhkan lebih banyak pekerjaan. [3]

Di jaringan utama Bitcoin, yang disebut mainnet, kesulitan dihitung ulang setiap 2 016 blok. Dengan rata-rata sepuluh menit per blok, itu sekitar dua minggu. Namun tidak ada alarm waktu: penyesuaian dipicu saat nomor urut blok, atau ketinggiannya, mencapai angka yang ditentukan. Jika banyak penambang tiba-tiba mematikan mesin, blok-blok yang tersisa bisa membutuhkan waktu lebih lama. Jaringan menyelesaikan periode dengan kesulitan lama terlebih dahulu; mainnet tidak memiliki penurunan darurat seketika. [1] [2]

Misalkan waktu yang dipakai dalam perhitungan adalah 10 hari, bukan sasaran 14 hari. Periode berikutnya menjadi lebih sulit: kesulitan naik kira-kira dengan perbandingan 14 terhadap 10, atau sebesar 40%. Sebaliknya, jika periode terukur berlangsung 28 hari, kesulitan turun kira-kira menjadi separuh. Contoh sederhana ini mengabaikan pembulatan dan mengasumsikan batas kesulitan terendah yang diizinkan tidak membatasi perhitungan. Jika daya komputasi kemudian tetap, pengaturan baru mendekatkan perkiraan waktu antarblok kembali ke sepuluh menit. [1] [2]

Sepuluh menit adalah rata-rata jangka panjang, bukan janji waktu tunggu. Dua blok bisa muncul berdekatan, sementara blok lain memerlukan penantian jauh lebih lama. Transaksi Anda juga belum tentu masuk ke blok berikutnya: biaya yang ditawarkan dan transaksi lain yang menunggu ikut menentukan. Penyesuaian tidak mengendalikan harga BTC atau menjamin keuntungan penambang. Jumlah bitcoin baru yang boleh diterbitkan per blok juga tidak berubah karena penyesuaian ini. Pengurangan berkala jumlah tersebut menjadi separuh, Halving, mengikuti aturan tersendiri. [2] [3]

Aturan menggunakan ambang numerik bernama target. Target yang lebih kecil berarti penambangan lebih sulit; angka yang disebut kesulitan menyatakan hubungan itu secara terbalik. Target baru sama dengan target lama dikalikan waktu terukur, lalu dibagi waktu sasaran sebesar 1 209 600 detik. Sebelum dihitung, waktu terukur dibatasi antara seperempat dan empat kali waktu sasaran, agar besarnya satu penyesuaian tetap dibatasi. Target juga tidak boleh melebihi nilai maksimum yang diizinkan, powLimit. Di header, nilainya disimpan dalam bentuk ringkas nBits dengan presisi terbatas. Itulah sebabnya persentase dalam contoh bersifat perkiraan. [1] [2]

Bitcoin Core membandingkan cap waktu pada header blok terakhir dalam periode yang telah selesai dengan cap waktu blok pertamanya. Di antara 2 016 blok ada 2 015 selang waktu; aturan mempertahankan kekhasan historis ini. Penambang mengisi cap waktu dalam batas aturan jaringan. Angka itu bukan pengukuran tepat saat blok ditemukan, dan bukan Median Time Past, nilai waktu lain yang dihitung dari blok-blok sebelumnya. Detail ini tidak diperlukan untuk memahami tujuan penyesuaian, tetapi penting ketika mengulangi perhitungannya secara tepat. [1]

Situs web sering menampilkan perkiraan perubahan kesulitan berikutnya. Selama periode belum selesai, blok baru terus datang dan perkiraan itu bisa berubah. Penyesuaian yang sudah selesai dapat diperiksa melalui simpul Anda sendiri: bandingkan cap waktu blok pada batas periode, ubah nBits menjadi target numerik, lalu ulangi perhitungan beserta batas dan pembulatannya. Setiap Full Node, yakni simpul yang memeriksa aturan Bitcoin secara mandiri, memeriksa target yang diwajibkan saat menerima blok. Prosedur ini berlaku untuk mainnet; jaringan pengujian bisa memakai aturan berbeda. [1] [2]

Untuk gambaran yang lebih utuh, baca entri ini bersama Proof of Work, Penambangan, Timechain / Blockchain, Block Subsidy. Entri ini juga dirujuk dari Timechain / Blockchain, Proof of Work, Penambangan, Halving.

DOC · 001Bitcoin Core v29.0: retargetSumber primer DOC · 002Bitcoin Core v29.0: network parametersSumber primer DOC · 003Bitcoin Developer Guide — Proof of Work and difficultySumber primer
Direvisi: Utamakan sumber · Bukan nasihat investasi