Blockchain/Tahap II · Mekanisme/2.3 Blok dan rantaian/Pelajaran 5
Penyesuaian kesukaran setiap 2016 blok
Pengawal atur dua minggu yang memastikan jam terus berdetik
BahanAntaramuka peneroka blok yang menunjukkan sejarah kesukaranKalkulator untuk pengiraan nisbah
Ingin tahu
- Mengapa rangkaian menyesuaikan tahap kesukaran setiap dua minggu dan bukannya selepas setiap blok?
- Bagaimanakah sistem terdesentralisasi dapat bersetuju mengenai pembetulan matematik tanpa pihak berkuasa pusat yang mengeluarkan kemas kini?
- Apa yang berlaku terhadap kelajuan pengeluaran blok dalam hari-hari sejurus selepas penurunan mendadak dalam kuasa hashing global?
Teroka
- Model keselamatan Bitcoin bergantung pada irama tetap kira-kira sepuluh minit bagi setiap blok. Rentak ini mengimbangi kemuktamadan transaksi dengan kesesakan rangkaian dan penggunaan sumber. Namun, perkakasan perlombongan berkembang pesat; ASIC menjadi semakin cekap secara eksponen dari semasa ke semasa. Tanpa campur tangan, kesukaran pengiraan yang tetap bermakna blok akan ditemui dalam beberapa saat dan bukannya minit apabila kuasa meningkat. Ketidaktentuan sebegini akan menggugat sifat keselamatan rantaian dan merumitkan jangkaan pengguna tentang masa pengesahan.
- Untuk mengekalkan irama ini, Bitcoin melaksanakan gelung maklum balas automatik yang dikenali sebagai retargeting. Setiap 2,016 blok—tempoh yang secara purata mengambil empat belas hari—setiap nod mengira semula sasaran bukti kerja secara bebas. Nombor 2,016 diperoleh daripada 14 hari didarab dengan 144 selang sepuluh minit sehari. Kekerapan ini mencapai keseimbangan: cukup singkat untuk bertindak balas terhadap perubahan ketara dalam kadar hash, namun cukup panjang untuk melicinkan turun naik sementara atau anomali dalam penyertaan rangkaian.
- Pengiraan ini membandingkan masa sebenar yang diambil untuk melombong 2,016 blok sebelumnya dengan 20,160 minit yang dijangkakan. Formulanya ialah New Target = Old Target × (Actual Time / Target Time). Jika pelombong menemui blok lebih pantas daripada sepuluh minit secara purata, masa sebenar menjadi lebih kecil, menghasilkan pecahan kurang daripada satu yang merendahkan sasaran dan meningkatkan kesukaran. Sebaliknya, jika blok mengambil masa lebih lama, sasaran dinaikkan untuk memudahkan teka-teki. Penyesuaian berkadar ini memastikan purata kembali ke arah sepuluh minit.
- Untuk mengelakkan turun naik melampau akibat kejutan jangka pendek, penyesuaian dihadkan kepada faktor empat dalam mana-mana arah bagi setiap kitaran. Walau sebesar mana pun perubahan kadar hash, satu penyesuaian paling banyak hanya boleh mendarab kesukaran dengan empat atau membahaginya dengan empat. Had ini membataskan kerosakan akibat cap masa yang diherotkan dan memastikan perubahan berlaku secara beransur-ansur semasa peristiwa pasaran yang dramatik atau peralihan perkakasan.
- Contoh yang ketara berlaku pada Julai 2021 selepas China mengharamkan perlombongan kriptowang. Kadar hash global jatuh mendadak, menyebabkan blok ditemui jauh lebih perlahan daripada sepuluh minit. Penyesuaian kesukaran yang berikutnya merupakan perubahan menurun terbesar dalam sejarah Bitcoin, jatuh hampir 28% bagi mencerminkan kuasa pengiraan yang berkurangan. Pembetulan pantas ini mengembalikan purata masa blok ke arah sasarannya dalam satu kitaran sahaja, menunjukkan betapa responsifnya mekanisme ini terhadap kejutan ekonomi dan kawal selia di dunia sebenar.
- Di antara penyesuaian, rangkaian beroperasi dengan kesukaran tetap. Jika kadar hash berubah dalam tempoh dua minggu ini, masa blok akan menyimpang daripada sepuluh minit sehingga retargeting seterusnya. Kelewatan ini ialah pertukaran yang sedia wujud dalam penyesuaian berkala; sesetengah rantaian lain pula menetapkan semula sasaran pada setiap blok, mengorbankan kesederhanaan dan kebolehramalan Bitcoin demi tindak balas yang lebih pantas. Pengguna dan pelombong boleh memantau kitaran ini melalui mana-mana peneroka blok, yang memaparkan bilangan blok yang tinggal sebelum penyesuaian seterusnya serta anggaran peratus perubahan berdasarkan kelajuan perlombongan semasa.
Fakta utama
- Kesukaran ditetapkan semula setiap 2,016 blok, kira-kira dua minggu.
- Formula penyesuaian menskalakan sasaran lama mengikut nisbah masa sebenar yang berlalu kepada 20,160 minit yang dijangkakan.
- Perubahan tahap kesukaran terhad kepada faktor empat setiap kitaran untuk mengelakkan turun naik yang melampau.
- Ralat “off-by-one” dalam kod asal bermakna pengiraan menggunakan 2,015 selang, yang menghasilkan kecenderungan yang boleh diabaikan ke arah tahap kesukaran yang lebih tinggi.
- Penyesuaian pada Julai 2021 merupakan penurunan terbesar dalam sejarah Bitcoin, hampir 28%.
- Setiap nod melakukan pengiraan ini secara bebas, memastikan konsensus tanpa koordinasi pusat.
Latihan sembilan, enam, tiga, satu
9KumpulSenaraikan 9 penyesuaian kesukaran sebelum ini daripada sejarah peneroka blok, dengan mencatatkan setiap tarikh dan perubahan peratusan.
6KelompokkanKumpulkan 9 penyesuaian tersebut kepada 6 mengikut saiz dan arah: kenaikan besar, kenaikan sederhana, kenaikan kecil, penurunan kecil, penurunan sederhana, penurunan besar.
3SaringKurangkan 6 kumpulan itu kepada 3 jenis peristiwa yang mendorong penyesuaian paling besar.
1KristalkanTulis 1 ayat tentang bagaimana kitaran dua minggu Bitcoin mengimbangi keresponsifan dengan kestabilan dalam persekitaran terdesentralisasi.
Semakan fakta
Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.
- Bitcoin Core source code, pow.cpp (CalculateNextWorkRequired)
- A. M. Antonopoulos & D. A. Harding, Mastering Bitcoin, 3rd ed. (2023), ch. 12
- Bitcoin difficulty history, block 689,472 (July 2021)