簡單的量子抗性簽名和清晰的升級路徑

作者:Matt Corallo

來源:https://groups.google.com/g/bitcoindev/c/8O857bRSVV8/m/4cM-7pf4AgAJ

原帖發表於 2024 年 12 月 16 日。

關於在比特幣交易的簽名方案中實現量子計算抗性,過去幾年已經出現了一些粗略的想法,但其中不少想法都有幾個重大缺陷。

首先,我們確定幾個基礎假設:

(a)能夠打破橢圓曲線的量子計算機,還要很長時間才能開發出來(可能需要十年甚至二十年,而不是僅僅幾年)。這跟 NSA(美國國家安全局)以及其他機構的建議是一致的。我們是有時間來升級的,但我們可以考慮一個選項:在今天就為錢包軟件設計一個應對量子計算的安全層。

(b)這是完全有可能的:出現根本性的擴容約束,使得能夠打破橢圓曲線的量子計算機永遠不會出現。我們也許不想賭這種可能性,但這是有可能的。

(c)在攻破橢圓曲線的量子計算就緒之前,我們會發現一些顯著的警告 —— 量子計算機的開發需要大量資源,多到世界上只有少數幾個組織能夠負擔得起人才和實驗室的開銷。這種類型的開發工作,已經並且很可能會隨著進展出現而發佈公告,所以即使量子計算機越來越接近現實,我們也會提前幾年獲得警告。

(d)目前的後量子密碼學的安全性假設(比如格密碼學以及 “Supersingular Elliptic Curve Isogeny”)都不足以保護今天的錢幣,而且對於比特幣的共識來說是糟糕的候選者(鑑於未來的密碼學研究的可能性)。這就意味著,在當下,比特幣後量子簽名安全性的唯一候選就是基於哈希函數的簽名(基本上就是 SPHINCS/SPHINCS+)。

(e)不值得為此而等待加入 OP_CAT 或其它更加通用的腳本操作碼,因為這些項目似乎都深陷泥潭,就不用提圍繞 MEVil(惡意的礦工可抽取價值)和比特幣未來的種種疑問了。此外,使用專門的操作碼,可以簡化錢包軟件的採用步驟 —— 錢包軟件開發者們是在為一種不會立即推向用戶的特性付出額外的工作,這已經夠麻煩的了。

給定這些假設,讓錢包軟件從 今天 開始就將資金鎖定到特殊的地址、支付額外的手續費並留下區塊鏈足跡來獲得後量子安全性,似乎是沒道理的。但與此同時,考慮到比特幣的升級週期耗時,不為錢包軟件提供一些 “緊急通道” 選項,似乎也是不明智的。

幸運的是,taproot 提供了一種開發這樣的方案的好辦法!因為 taproot 的腳本路徑花費(script-path spend)是嚴格受到約束的(taproot 腳本路徑的哈希值 t 中承諾了該 taproot 地址的內部公鑰),未來的量子計算機可以計算出(內部公鑰的)私鑰,也能知道腳本路徑的默克爾根值,卻無法偽造出腳本路徑的另一個默克爾根。

這為抗量子安全性提供了一個切入點:在直接加入一種 OP_SPHINCS 操作碼來驗證 SPHINCS(或者等價的抗量子非一次性簽名,Lamport/Winternitz 簽名就不行)(就像今天的 OP_CHECKSIG)之後,錢包只需要總是包含一個替代性的腳本路徑花費條件來構造 taproot 輸出,就能獲得緊急通道了。當量子計算機問世時,taproot 的密鑰路徑花費可以通過軟分叉來禁用,迫使錢幣使用量子安全的腳本路徑來花費。

這個方案顯然存在一個大缺點:未升級的地址中的資金在量子計算機問世時會被 “沒收”,但是:

(a)我們可以要求顯式選擇這個方案。這樣做有個缺點就是會留下另一種鏈上蹤跡,而且需要一種新的腳本公鑰格式(可以保留現有的 bech32m 地址編碼格式,估計絕大部分錢包都已經支持了,不需要變更任何代碼)。當然,如果我們作出這樣的要求,許多本來不太可能被花費的比特幣也會轉移,可能導致流通量衝擊,以另一種方式傷害比特幣的效用;

(b)或者,我們可以允許密鑰路徑花費,前提是錢包證明其腳本路徑是一個 NUMS 點(無人知曉私鑰的公鑰)(通過一些新的 密鑰路徑 + 證據 的花費操作變種)。我懷疑今天的許多錢包都不會費心為它們的 taproot 輸出公鑰承諾一個 NUMS 點,所以這可能會打破現有的錢包軟件,但這可以作為一種自選退出(opt-out)的方案。

這種方案有一個非常好的屬性:幾乎完全不會影響現有的用法(只需要加入一個額外的 taproot 腳本花費分支,但這總的來說不是什麼很難的事)。

這裡還有一些問題需要討論:首先,是要求用戶自選進入呢,還是提供自選退出的選項呢?其次,是否也要讓所有觸發 ECDSA 簽名驗證的腳本路徑花費失敗?(真的有可能哦。)

我猜這個想法在別的地方已經有人說過了,但我沒找到。這其中絕大部分想法都來自 not_nothingmuch,我只是把它寫下來,冒領榮譽而已。

這個想法沒有解決 PoW 在一個量子計算機出現後的世界中如何存在的問題,但在我們看到量子計算機的更多實際的侷限性(比如,一個量子計算機門電路的最小延遲是多少)之前,這個問題可能是無法回答的。如果這個延遲非常低,我們能否增加比特幣的 PoW 哈希函數的複雜性、從而推遲量子計算機算出結果的時間、讓傳統的硬件還能挖出區塊?

Luke Dashjr 回覆:

只補充一個點:這種抗量子腳本路徑不需要軟分叉來添加,只要它有完整的定義。也就是說,只要其規範敲定了,錢包軟件可以立即開始實現這種後備路徑,無需等待 任何 軟分叉激活。這將需要保護這個後量子腳本,就像它自身是一個私鑰一樣,所以對硬件簽名器來說可能是個問題,但我懷疑也有辦法能夠解決 ……

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論