Bitcoin-Core-Development
為什麼從 Bitcoin Core 中刪除 Schnorr 程式碼?
我正在尋找比特幣核心中的 Schnorr 實現,並驚訝地發現它在 2016 年 11 月被刪除(送出
e06e878fd7dcc99825025fa99aedb86bc7d5c29f
)。為什麼從比特幣核心中完全刪除原始碼?它是否已移至其他開發儲存庫?
Schnorr 實現從未出現在比特幣核心中。相反,它位於作為 Bitcoin Core 的子樹的 libsecp256k1 庫中。您引用的送出實際上是該庫中的送出,它出現在 Core 的送出歷史中,因為 Core 中的子樹會定期使用 libsecp256k1 上游原始碼進行更新。
刪除它的拉取請求中解釋了刪除的原因:
該模組實現了一個樸素的自定義 Schnorr 簽名方案,儘管此後發現了一些缺陷(缺乏對公鑰的承諾、第三方將簽名適應相關密鑰的能力,以及容易受到取消攻擊的多重簽名 API,重新啟動將私鑰洩露給共同簽名者的攻擊)。
我一直在製定一個更好的計劃,但我認為這不應該在上游進行,直到以更徹底的方式進行審查。人們認為它被包含在儲存庫中表明它是最終的,所以我將其刪除以避免任何混淆。