Blockchain/Tahap II · Mekanisme/2.3 Blok dan rantaian/Pelajaran 4
Bukti kerja (PoW) dan sasaran
Tiket loteri yang memerlukan tenaga untuk dibeli dan hash untuk disahkan
BahanAntaramuka peneroka blokKalkulator heksadesimal atau persekitaran pengaturcaraan yang mampu melakukan SHA-256Dokumen Rujukan Pembangun Bitcoin
Ingin tahu
- Mengapa sasaran numerik yang lebih rendah menjadikan pencarian hash yang sah lebih sukar?
- Bagaimanakah nilai empat bait dapat mengenkod nombor yang cukup besar untuk membataskan 2^256 kemungkinan?
- Apa yang berlaku pada masa blok yang dijangkakan apabila kuasa hashing meningkat dua kali ganda tetapi sasaran kekal tidak berubah?
Teroka
- Sebuah blok hanya diterima jika ia menyelesaikan satu teka-teki pengiraan. Pelombong perlu mencari kepala blok 80 bait yang hash SHA-256 bergandanya secara numerik kurang daripada atau sama dengan ambang tertentu yang dikenali sebagai sasaran. Kekangan ini mengubah proses penciptaan blok menjadi pencarian satu nombor yang jarang ditemui dalam ruang yang sangat besar, iaitu 2^256 kemungkinan hash. Kesahan mana-mana blok calon bergantung sepenuhnya pada ketaksamaan matematik yang tunggal ini.
- Sasaran itu sendiri tidak disimpan dalam bentuk penuh 32 bait kerana ia akan menggunakan terlalu banyak ruang kepala blok. Sebaliknya, ia dimampatkan menjadi empat bait yang dipanggil ‘nBits’ menggunakan skema pengekodan mantissa-eksponen. Format ini bersifat lossy dan hanya menyimpan mantissa tiga bait, jadi sasaran dibundarkan sedikit, namun perkara ini tidak mendatangkan sebarang kos dalam amalan. Menyahkod empat bait ini membina semula nombor 256-bit yang sangat besar yang menentukan had atas bagi nilai hash yang boleh diterima.
- Untuk mencari hash yang sah, pelombong mencuba pelbagai variasi medan kepala blok. Pembolehubah utama ialah nonce 32-bit, yang menawarkan kira-kira 4.3 bilion nilai berbeza bagi setiap kitaran percubaan. Apabila kelajuan perkakasan menghabiskan semua kombinasi ini serta-merta, pelombong mengubah extra-nonce dalam transaksi coinbase atau melaraskan cap masa untuk menjana akar Merkle dan konfigurasi kepala blok yang baharu. Setiap perubahan menghasilkan output hash yang sama sekali berbeza, sekali gus mewujudkan tiket loteri baharu.
- Kerja yang dijangkakan meningkat secara berkadar langsung dengan kesukaran, manakala sasaran bergerak ke arah bertentangan: apabila rangkaian menetapkan semula sasaran selepas kuasa hashing meningkat, sasaran akan turun, lalu memerlukan lebih banyak sifar di hadapan dalam perwakilan binari untuk penyelesaian yang sah. Jangkaan bilangan hash untuk mencari satu blok adalah lebih kurang kesukaran didarab dengan 2^32. Penskalaan ini memastikan bahawa sama ada perlombongan dilakukan pada komputer riba atau ladang industri, purata selang masa antara blok kekal stabil pada kira-kira sepuluh minit.
- Pengesahan bersifat tidak simetri berbanding penciptaan. Walaupun mencari hash yang sah mungkin memerlukan berbilion percubaan, menyemaknya hanya memerlukan satu double-SHA-256 ke atas kepala blok dan satu perbandingan dengan sasaran. Oleh itu, semakan bukti kerja berlaku serta-merta, walaupun pengesahan penuh sesebuah blok masih bermakna menyemak setiap transaksi di dalamnya. Model keselamatan bergantung pada perbezaan ini: menghasilkan kerja itu mahal, tetapi mempercayai kerja itu murah.
- Blok genesis dilombong pada kesukaran 1, tahap paling mudah yang dibenarkan oleh peraturan; walaupun begitu, hash yang sah memerlukan kira-kira 32 bit sifar di hadapan, iaitu lebih kurang satu kejayaan dalam 4.3 bilion percubaan. Blok terkini memerlukan jauh lebih banyak sifar di hadapan, kerana kuasa hashing global telah meningkat sebanyak beberapa tertib magnitud. Membandingkan perwakilan heks hash blok 1 dengan hash blok semasa mendedahkan peralihan dramatik ini daripada medan terbuka kepada ruang carian yang sangat terhad.
Fakta utama
- Hash kepala blok Bitcoin yang sah mesti secara numerik lebih kecil daripada atau sama dengan sasaran kesukarannya.
- Sasaran disimpan secara padat dalam empat bait sebagai ‘nBits’ menggunakan pengekodan mantissa-eksponen.
- Pelombong mengubah nonce 32-bit, extra-nonce dalam coinbase dan cap masa untuk menghasilkan calon hash baharu.
- Kesukaran ditakrifkan sebagai sasaran maksimum yang mungkin dibahagikan dengan sasaran semasa.
- Mengesahkan bukti kerja sesebuah blok memerlukan satu double-SHA-256 ke atas kepala blok dan satu perbandingan.
- Blok genesis dilombong pada kesukaran 1.
Latihan sembilan, enam, tiga, satu
9KumpulSenaraikan 9 komponen atau pembolehubah berbeza yang terlibat dalam pengiraan bukti kerja bagi kepala blok Bitcoin.
6KelompokkanKumpulkan 9 item ini kepada 6 kategori berdasarkan sama ada ia tetap, berubah setiap percubaan, berubah setiap kitaran, dikodkan secara padat, diperoleh daripada transaksi, atau digunakan untuk pengesahan.
3SaringKurangkan 6 kumpulan tersebut kepada 3 prinsip asas yang mengatur bagaimana tahap kesukaran berubah mengikut kuasa hashing rangkaian.
1KristalkanTulis 1 ayat yang menerangkan mengapa bukti kerja sukar dihasilkan tetapi mudah disahkan.
Semakan fakta
Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.