ASICBoost спільно використовує обчислення розкладу повідомлення SHA-256 для належно підготовлених кандидатів заголовка блока. Вони мають спільну частину повідомлення й різні проміжні стани; це не пошук двох однакових кінцевих хешів Bitcoin.
Timo Hanke описав ASICBoost у 2016 році та відзначив співпрацю із Sergio Demian Lerner. Підготовка роботи поза ASIC поєднується з організацією обчислень у чипі. SHA-256 і вимога відповідності кінцевого подвійного хешу майнінговій цілі не змінюються; усуваються повторювані операції. [Timo Hanke — AsicBoost, 2016]
Заголовок Bitcoin має 80 байтів. Перший SHA-256 ділить його на 64 байти та решту 16 байтів із padding. Merkle root охоплює обидві частини: останні 4 байти лежать у другій разом із часом, bits і nonce. Тому точна позиція змінених даних має значення. [Timo Hanke — AsicBoost, 2016]
Hanke називає відповідні завдання colliding work items: однаковий Message, але різні midstate з першої частини. Для обраного nonce можна повторно використати message schedule другої частини першого SHA-256 між цими станами. Це не колізія всього SHA-256 і не однакові перші частини заголовка: вони відрізняються. [Timo Hanke — AsicBoost, 2016]
Lerner розрізняє overt зі зміною nVersion та covert із пошуком Merkle root з однаковими останніми 4 байтами й різною першою частиною. Covert може змінювати транзакції або їхній порядок, зберігаючи валідні зобов’язання й залежності. Змінний nVersion сам по собі не доводить конкретної економії або особи оператора. [Sergio Demian Lerner — Overt and covert AsicBoost, 2017]
BIP310 використовує mining.configure і version-rolling.mask; відповідь є перетином можливостей сервера та майнера. Подання має відповідати version_bits & ~last_mask == 0. mining.set_version_mask діє негайно, а не з наступного завдання. Version rolling не дозволяє довільно змінювати біти чи ігнорувати нову маску. [BIP310 — Stratum protocol extensions]
На дату перевірки BIP320 має статус Draft і описує 16 загальних бітів nVersion; BIP323 також має Draft та пропонує заміну на 24 біти. Відрізняйте ці документи від фактичної маски й програмного забезпечення конкретного з’єднання. Номер BIP не доводить підтримки всіма пристроями або довільної зміни консенсусу. [BIP320 — General-purpose nVersion bits] [BIP323 — 24 general-purpose nVersion bits]
Модель Hanke дає x × (n − 1) / n, де x — відсоткова частка спільного розгортання, n — кількість відповідних завдань. Для x = 25% і n = 4 результат 18.75%. Це модель обчислювальної роботи за такого припущення, а не автоматично така сама економія ватів, ціни чи приріст хешрейту кожного майнера. [Timo Hanke — AsicBoost, 2016]
Документуйте підтримку чипа й прошивки, узгоджену маску, прийняту роботу та споживання за порівнянних умов. J/TH усього пристрою не можна замінити назвою функції або теоретичним відсотком. ASICBoost не є синонімом розгону й не гарантує знаходження блока чи прибутку. [Timo Hanke — AsicBoost, 2016] [BIP310 — Stratum protocol extensions]
Для повної картини прочитайте також ASIC Miner, Майнінг, Заголовок блока, Proof of Work. На цю статтю також посилаються Mining Firmware.