236 / 691BOOST

ASICBoost

Opakované využití části výpočtu mezi kandidáty hlaviček

ASICBoost šetří opakovanou práci uvnitř těžebního výpočtu. Neobchází cílový hash ani pravidla platnosti; přínos závisí na návrhu čipu, přípravě úloh a skutečně povoleném prostoru změn hlavičky.

ASICBoost je optimalizace těžby, která sdílí výpočet rozvrhu zprávy SHA-256 mezi vhodně připravenými kandidáty blokové hlavičky. Kandidáti mají společnou část zprávy a různé mezistavy; nejde o nalezení dvou shodných výsledných bitcoinových hashů.

Timo Hanke popsal ASICBoost v práci z roku 2016 a uvedl spolupráci se Sergiem Demianem Lernerem. Návrh kombinuje přípravu práce mimo ASIC s uspořádáním výpočtu uvnitř čipu. Nemění SHA-256 ani požadavek, aby výsledný dvojitý hash hlavičky splnil těžební cíl; šetří některé opakované operace. [Timo Hanke — AsicBoost, 2016]

Bitcoinová hlavička má 80 bajtů. Při prvním SHA-256 se rozdělí na část o 64 bajtech a zbývajících 16 bajtů doplněných paddingem. Merkle root zasahuje do obou částí: poslední 4 bajty leží ve druhé spolu s časem, bits a nonce. Rozdělení vysvětluje, proč záleží na konkrétních pozicích měněných dat. [Timo Hanke — AsicBoost, 2016]

Hanke označuje vhodné úlohy jako colliding work items: mají stejné Message a různé midstate z první části. Pro zvolený nonce lze opakovaně použít message schedule druhé části prvního SHA-256 napříč těmito mezistavy. Nejde o kolizi celého SHA-256 ani o shodné první části hlaviček; ty se naopak liší. [Timo Hanke — AsicBoost, 2016]

Lerner rozlišuje overt, které mění nVersion, a covert, které hledá Merkle root se stejnými posledními 4 bajty při odlišné první části. Covert může využívat změny transakcí nebo jejich pořadí, ale musí zachovat platnost závazků a závislostí. Samotný proměnlivý nVersion neprokazuje konkrétní úsporu ani identitu provozovatele. [Sergio Demian Lerner — Overt and covert AsicBoost, 2017]

BIP310 používá mining.configure a version-rolling.mask; odpověď je průnik možností serveru a těžaře. Pro odevzdání platí version_bits & ~last_mask == 0. Zpráva mining.set_version_mask platí okamžitě, nikoli až od další úlohy. Ani podpora version rolling tedy nedovoluje měnit libovolné bity nebo ignorovat novou masku. [BIP310 — Stratum protocol extensions]

K datu revize má BIP320 stav Draft a popisuje 16 obecných bitů nVersion; BIP323 má také Draft a navrhuje nahrazení rozsahem 24 bitů. Tyto dokumenty odlišujte od skutečně používané masky a softwaru konkrétního spojení. Číslo BIP samo neprokazuje podporu všech zařízení ani libovolnou změnu konsenzu. [BIP320 — General-purpose nVersion bits] [BIP323 — 24 general-purpose nVersion bits]

Hankeho model dává úsporu x × (n − 1) / n, kde x je procentní podíl sdílené expanze a n počet vhodných úloh. Pro x = 25% a n = 4 vychází 18.75%. Jde o model výpočetní práce za daného předpokladu, nikoli automaticky stejnou úsporu wattů, cenu nebo zvýšení hashratu každého mineru. [Timo Hanke — AsicBoost, 2016]

Pro posouzení konkrétního zařízení doložte podporu čipu a firmwaru, vyjednanou masku, přijímanou práci i spotřebu při srovnatelném provozu. J/TH měřené na celém zařízení nelze nahradit samotným názvem funkce či teoretickým procentem. ASICBoost není synonymem přetaktování a nezaručuje nález bloku ani zisk. [Timo Hanke — AsicBoost, 2016] [BIP310 — Stratum protocol extensions]

Pro nejúplnější obraz čtěte toto heslo společně s ASIC Miner, Těžba, Hlavička bloku, Proof of Work. Opačným směrem na něj odkazují také Mining Firmware.

DOC · 001Timo Hanke — AsicBoost, 2016Primární zdrojDOC · 002Sergio Demian Lerner — Overt and covert AsicBoost, 2017Primární zdrojDOC · 003BIP310 — Stratum protocol extensionsSpecifikaceDOC · 004BIP320 — General-purpose nVersion bitsSpecifikaceDOC · 005BIP323 — 24 general-purpose nVersion bitsSpecifikace
Primární zdroje · Nejde o investiční doporučení