236 / 691BOOST

ASICBoost

Memakai ulang sebagian perhitungan antarcalon header

ASICBoost menghemat pekerjaan berulang dalam perhitungan penambangan. Teknik ini tidak melewati hash target atau aturan validitas; manfaatnya bergantung pada chip, persiapan pekerjaan, dan perubahan header yang benar-benar diizinkan.

ASICBoost membagikan perhitungan jadwal pesan SHA-256 di antara calon header blok yang disiapkan dengan tepat. Calon tersebut memiliki bagian pesan bersama dan keadaan antara berbeda; ini bukan pencarian dua hash akhir Bitcoin yang identik.

Timo Hanke menjelaskan ASICBoost dalam makalah 2016 dan menyebut kerja sama dengan Sergio Demian Lerner. Rancangan menggabungkan persiapan pekerjaan di luar ASIC dan pengaturan perhitungan di dalam chip. SHA-256 serta kewajiban hash ganda akhir memenuhi target tidak berubah; sebagian operasi berulang dihemat. [Timo Hanke — AsicBoost, 2016]

Header Bitcoin berukuran 80 byte. SHA-256 pertama membaginya menjadi 64 byte dan sisa 16 byte yang ditambah padding. Merkle root melintasi keduanya: 4 byte terakhir berada di bagian kedua bersama waktu, bits, dan nonce. Karena itu, posisi tepat data yang diubah penting. [Timo Hanke — AsicBoost, 2016]

Hanke menyebut pekerjaan yang sesuai colliding work items: Message sama tetapi midstate dari bagian pertama berbeda. Untuk nonce tertentu, message schedule bagian kedua dari SHA-256 pertama dapat dipakai ulang di antara keadaan tersebut. Ini bukan benturan seluruh SHA-256 atau kesamaan bagian pertama header; bagian pertama justru berbeda. [Timo Hanke — AsicBoost, 2016]

Lerner membedakan overt yang mengubah nVersion dan covert yang mencari Merkle root dengan 4 byte terakhir sama tetapi bagian pertama berbeda. Covert dapat mengubah transaksi atau urutannya, tetapi harus mempertahankan komitmen dan ketergantungan yang valid. nVersion yang berubah saja tidak membuktikan penghematan tertentu atau identitas operator. [Sergio Demian Lerner — Overt and covert AsicBoost, 2017]

BIP310 memakai mining.configure dan version-rolling.mask; jawabannya merupakan irisan kemampuan server dan penambang. Pengiriman harus memenuhi version_bits & ~last_mask == 0. mining.set_version_mask berlaku segera, bukan baru pada pekerjaan berikutnya. Dukungan version rolling tidak mengizinkan perubahan bit sembarang atau pengabaian mask baru. [BIP310 — Stratum protocol extensions]

Pada tanggal peninjauan, BIP320 berstatus Draft dan menjelaskan 16 bit umum nVersion; BIP323 juga Draft dan mengusulkan penggantian dengan 24 bit. Bedakan dokumen ini dari mask serta perangkat lunak yang benar-benar digunakan pada koneksi tertentu. Nomor BIP tidak membuktikan dukungan semua perangkat atau perubahan konsensus sembarang. [BIP320 — General-purpose nVersion bits] [BIP323 — 24 general-purpose nVersion bits]

Model Hanke memberi x × (n − 1) / n, dengan x persentase pekerjaan ekspansi bersama dan n jumlah pekerjaan yang sesuai. Untuk x = 25% dan n = 4, hasilnya 18.75%. Ini model pekerjaan komputasi berdasarkan asumsi tersebut, bukan otomatis penghematan watt atau harga, atau kenaikan hashrate yang sama pada setiap mesin. [Timo Hanke — AsicBoost, 2016]

Catat dukungan chip dan firmware, mask yang dinegosiasikan, pekerjaan yang diterima, serta konsumsi daya dalam operasi sebanding. J/TH perangkat lengkap tidak dapat diganti hanya dengan nama fitur atau persentase teoretis. ASICBoost bukan sinonim overclocking dan tidak menjamin penemuan blok maupun laba. [Timo Hanke — AsicBoost, 2016] [BIP310 — Stratum protocol extensions]

Untuk gambaran yang lebih utuh, baca entri ini bersama ASIC Miner, Penambangan Bitcoin, Header blok, Proof of Work. Entri ini juga dirujuk dari Mining Firmware.

DOC · 001Timo Hanke — AsicBoost, 2016Sumber primer ↗DOC · 002Sergio Demian Lerner — Overt and covert AsicBoost, 2017Sumber primer ↗DOC · 003BIP310 — Stratum protocol extensionsSpesifikasi ↗DOC · 004BIP320 — General-purpose nVersion bitsSpesifikasi ↗DOC · 005BIP323 — 24 general-purpose nVersion bitsSpesifikasi ↗
Utamakan sumber · Bukan nasihat investasi