Segregated-Witness

Bitcoin Unlimited 與 segwit 相比是否保持 ASICBOOST 完整?

  • June 22, 2018

根據比特大陸關於 ASICBOOST 的新發現。讓隔離見證禁用 ASICBOOST,這是否意味著 Bitcoin Unlimited 保留了這個 ASICBOOST 功能?讓隔離見證禁用了這個 ASICBOOST 功能,Bitcoin Unlimited 也做了同樣的事情嗎?

ASICBoost 是如何工作的

ASICBoost 依賴於查找在最後 16 個字節中匹配的多個塊頭。由於 SHA-256 需要 64 字節的輸入塊,這允許將部分計算重用於第二個塊。

塊頭的最後 16 個字節由

  • 交易的 Merkle 根的最後四個字節
  • 時間戳
  • 難度陳述
  • 隨機數。

因此,最後 12 個字節是任意的,唯一困難的部分是要匹配 Merkle 根的 4 個字節。這可以通過實際使用相同的 Merkle 根來完成,但是(因為前一個塊的雜湊是固定的)頭部中唯一剩下的引入變化的欄位是版本欄位!具有不同版本欄位的探勘塊非常明顯,並且對應於 ASICBoost 的公開應用。

有關 ASICBoost 的全面說明,請參閱:Jeremy Rubin 的 ASICBoost 筆記 [PDF]

隱蔽ASICBoost

另一方面,隱蔽應用程序依賴於找到在最後四個字節中發生衝突的多個 Merkle 根。眾所周知,Merkle根源於在所有交易上形成 Merkle 樹。這樣做的直接方法是研磨 coinbase 交易的額外隨機數空間。但是,每次更改 coinbase 交易時,都必須重新計算 Merkle 樹的完整左分支,對於最多 2048 或 4096 個交易的塊,這需要額外的 11 到 12 個額外雜湊。顯然,在空塊上找到 Merkle 根的部分碰撞會快 12 倍。

找到 Merkle 根的部分碰撞的更有效方法是擁有一個固定的左側樹,即不變的 coinbase 交易,並將其與樹的各個右側組合。這將只需要一個雜湊來生成一個新的 Merkle 根,並且您可以立即檢查您是否找到了所需的衝突。

在實踐中,您可以通過以不同方式組合從 Merkle 根向下幾個分支的幾個兼容的候選樹來有效地生成右側樹。這就是為什麼亂序交易費用和缺乏依賴交易對可能是使用隱蔽 ASICBoost 使用的指標。這個過程是高度可並行的。

隔離見證如何影響 ASICBoost

這種更有效的方法被 SegWit 和許多其他 BIP 打破了,因為它在 coinbase 交易中需要一個 Merkle 根承諾,該承諾是從區塊中的所有其他交易中以順序敏感的方式計算出來的。這意味著無論何時更新塊中的任何交易,由於更新的 coinbase 交易,都需要重新計算 Merkle 樹的整個左分支。

……還有比特幣無限?

回到你的問題:AFAIK,**Bitcoin Unlimited 不需要在 coinbase 中的承諾,**因此將與 ASICBoost 的隱蔽應用程序兼容。

非常感謝David Harding,他在聊天中解釋了上述更詳細的內容,我從中改編了上述一些段落。

引用自:https://bitcoin.stackexchange.com/questions/52637