量子安全的 Lamport 簽名

作者:BitMEX Research

來源:https://blog.bitmex.com/quantum-safe-lamport-signatures/

摘要:我們介紹了 “Lamport 簽名”,一種誕生於 1979 年、基於哈希函數的、量子安全的數字簽名方案。我們用它來解釋,何以量子安全簽名可以非常簡單、不需要很複雜也不需要新的數學。我們主張,這種基於哈希函數的簽名可能正是我們應該選擇的道路,如果比特幣要採用一種量子安全的簽名方案的話。沒有確切的理由可以支持量子計算對比特幣構成了迫在眉睫的威脅(在未來一段時間內都不能)。不過,我們認為,緩解表面上的量子計算威脅的第一步是,給用戶提供花費比特幣的量子安全方法。一旦這樣的選擇可得,一般用戶的採用自然會推動下一步。

ll-1536x862

- 美國數學家和計算機科學家 Lesslie Lamport -

概述

“比特幣暴露在量子計算機威脅中” 是近期的熱門話題。最近甚至有一場會議,發生在 San Francisco 的 Presidio Bitcoin ,是專門討論這個問題的。我們認為,人應該儘可能理性行事。我們不理解量子計算,我們也還沒有看到任何量子計算硬件實現任何令人印象非常深刻的成果,因此,似乎沒什麼好擔心的。不過,我們也理解,我們的想法對一些人來說可能很可怕;量子計算的發展(在理論上)可能非常迅速。一種普遍的擔心是,比特幣可能需要升級到一種新的、非常複雜的、有風險的後量子密碼學數字簽名方案中。你可以讀到一大堆聽起來非常時髦的方案,包括 HAWKSQIFalconCRYSTALS 。這些新方案也可能有自身的風險,如果我們選擇了錯誤的方案呢?在 2023 年,有報告說一種新的後量子密碼方案 “SIKE 算法” 被傳統的非量子計算破解。而且,如果量子計算發展迅猛,以至於幾乎沒有人理解量子計算,誰能斷定這些方案真的是安全的呢?

不過,如果比特幣要升級到一種後量子的電子簽名方案中,我們完全不需要複雜的、有風險的新技術。回憶一下,比特幣的電子簽名方案 “橢圓曲線數字簽名算法(ECDSA)” 可能是量子脆弱的,因為使用 “Shor 算法” 可以快速分解質因數。但是,哈希函數,在量子計算面前是非常安全的。SHA256 這樣的哈希函數的弱點在於,因為 “Grover 算法” ,其安全性會下降一個平方級,也就是它將沒有 256 比特的安全性,而只有 128 比特的安全性。這似乎基本上沒問題了,而且有需要的話,你總是可以使用一個帶有足夠長輸出的哈希函數。

實際上,有一種簽名方案是完全依賴於哈希函數的。比如 “Lamport 簽名”,誕生於 1979 年。這種方案非常簡單,相較於比特幣所用的基於橢圓曲線的方案簡單很多很多。而且,因為它只依賴於哈希函數,它是量子安全的。因此,如果比特幣要加入一種量子安全的簽名方案,那不需要依賴於時髦的新型數學,相反,我們只需選擇一種基於哈希函數的方案。然後,比特幣可以在所有事情上使用哈希函數,挖礦工作量證明和簽名,讓比特幣更加簡單。在本文剩下的部分,我們來看看 Lamport 簽名的概念以及它是如何工作的。

Lamport 簽名如何工作?

在下面的案例中,我們假設 Lamport 簽名使用 SHA256 哈希算法,但是,使用幾乎任何哈希函數都可以,不影響它的工作原理。在 Lamport 簽名中,一個私鑰不像 ECDSA 簽名那樣是一個 256 比特的隨機數,而是兩組隨機數,每一組都包含 256 個 256 位的隨機數。在我們的案例中,我們管這兩個集合叫做 “集合 A” 和 “集合 B”。因此,在 Lamport 簽名中,一個私鑰是 2 * 256 * 256 = 131072 bits = 16.3 KB。這 512 個 256 位的隨機數,每一個都被哈希,以其結果作為對應的公鑰,所以公鑰的體積也是 16.3 KB 。一個比特幣地址可以是所有構成公鑰的字符串的拼接的一個 SHA256 哈希值。下圖展示了私鑰和公鑰的對應關係。

d1-1024x876

要簽名一條消息的時候,第一步是哈希這條消息,這時候也使用 SHA256 ,並將輸出(哈希值)轉為二進制。基於這個二進制數的每一位的數字,決定在簽名中包含哪一個私鑰 —— 0 對應集合 A、1對應集合 B 。哈希值的第一個比特(第一位)就對應於私鑰中的第一個隨機數、哈希值的第二位就對應於私鑰中的第二個隨機數,以此類推。因此,這個簽名完全是在整個私鑰中隨機挑選出 50% 而產生的。

d2-1024x524

要驗證這條消息的時候,所有驗證者只需哈希這條消息,然後用哈希值的二進制表示的每一位來確定要用哪一個公鑰來驗證。再然後,驗證者哈希簽名中的每一個數字,看看它是否與對應的公鑰相匹配。如果完全匹配,那就表明這個簽名是有效的。這個簽名者需要知道所有的私鑰,因為哈希函數是隨機的,你沒法預測簽名需要集合 A 和 集合 B 的哪一塊,直到待簽名的消息確定。因此,很容易能看出這個方案何以是安全的;驗證過程在計算上也非常直接。

一次性

Lamport 簽名的一個重要弱點是,公鑰/私鑰 只能使用一次。一旦一筆交易得到簽名、發佈到了區塊鏈上,50% 的私鑰就暴露了。如果再次使用相同的公鑰,那麼剩餘未暴露的私鑰中又會有 50% 暴露。從統計學上來說,這意味著整個私鑰的 75% 已經暴露了。容易看出,其安全性會隨著私鑰複用的次數而急劇下降。這意味著,人們可能無法複用地址,這對隱私是好事,但也有一些問題:

  • 人們習慣於複用地址
  • 如果有人把資金髮到了一個已經用過的地址中,會怎麼樣?
  • 該如何實現 RBF ?可以通過加入一個額外的輸入、並且只簽名這個額外的輸入來實現,但這也會帶來 UTXO 挑選問題。

沒有靈活的數學

另一個缺點是,無法像 ECDSA 那樣使用靈活的數學技巧。比如,BIP-32 確定性層級錢包,就利用了 ECDS 的特性來允許使用 “xpub(拓展公鑰)”;這在只有哈希函數的系統中是無法做到的。

體積

另一頭房間力的大象是 Lamport 簽名的公鑰和簽名的巨大體積。一個公鑰是 16 KB,一個簽名是 8 KB,加起來就是 24 KB 。一個比特幣區塊只能包含幾十筆交易,而我們今天一個區塊可以包含幾千筆交易。不過,所有的量子安全方案似乎在一定程度上都有這個問題。

SPHINCS+

我們剛剛分析原始版本的 Lamport 簽名方案,只是為了演示,為了說明何以一種只依賴於哈希函數的簽名方案也能夠工作、還能做到量子安全。如果比特幣要加入一種基於哈希函數的簽名方案,還有一種先進得多的選擇。在 1982 年,Winternitz 出版了 Lamport 方案的一個變體。Winternitz 方案設計將消息的哈希值分成兩半,並將這兩個數字映射到私鑰的不同部分;會用到更多輪的哈希運算。在 2011 年,更新的變種 XMSS 出現;再到 2015 年,另一種基於哈希函數的簽名方案的變體 SPHINCS 出現。

SPHINCS+ 可以使用小得多的簽名體積,私鑰也可以多次使用。這些方案都使用了默克爾樹構造,樹的頂部是一個 “全局公鑰”,因此一般來說,其體積只是 32 字節。如果比特幣要採用一種後量子簽名方案,可以選用這些帶有默克爾樹的哈希函數簽名方案。因為比特幣已經廣泛使用了默克爾樹,在簽名中使用它們也是很方便的。

Lightning Labs 的聯合創始人 Olaoluwa Osuntokun 在最近 San Francisco 的量子安全會議上介紹了 SPHINCS+ 簽名。在演講中,他解釋了在使用 SPHINCS+ 的時候面臨的幾種取捨、如何根據我們的優先級實現我們想要的特性。可以調整的參數包含生成簽名的哈希開銷、驗證簽名的哈希開銷、安全的可複用次數,以及簽名的體積。Olaoluwa 表示,參數的調整最終可以讓簽名降低到 2 KB 大小,似乎是合情合理的。當然,這比當前比特幣鏈上的簽名(大約是 70 字節)還是大得多。

pres-1024x412

- 來源:https://x.com/PresidioBitcoin/status/1945877820657508650 -

結論

我們對 ECDSA 所面臨的量子威脅並沒有很深入的理解,但也找不到要去理解的切實理由。在我們看來,比特幣所用的 ECDSA 方案,可能還能保持安全數十年,所以理性的決策可能是按兵不動,直到出現更多能展示量子計算機能耐的具體例子。不過,思考如何能讓比特幣變得量子安全,可能是有意義的。第一步是創造一種以量子安全的方式花費比特幣的方法,這可以是一種基於哈希函數的簽名方案。在我們看來,在量子安全的花費方式變得可用、並且被廣泛使用之前,討論凍結易受攻擊的資金的計劃沒有任何嚴肅意義。如果一種量子安全的花費方法可用並且真的被許多用戶採用,那才有參與這種辯論的意義。

當然,如果要添加一種基於哈希函數的簽名方案,還有許多工作要做。給定大這麼多的簽名體積,也就是說,其交易手續費將貴這麼多,該怎麼讓這種量子安全簽名方案獲得採用?我們又要在區塊重量折扣和區塊體積限制上故技重施?或者,我們可以用價值的大小而非 交易/UTXO 的數量來統計採用的程度。也許這些量子安全方案會首先被那些持有幾千個比特幣的實體採用,比如 ETF 供應商和比特幣儲備公司,他們幾乎不發交易。對這些實體來說,額外的交易手續費開銷也沒什麼大不了。個人用戶可以將自己的儲蓄存放在這些需要 2KB 的簽名才能花費的量子安全輸出中,而將日常開支放在量子脆弱的輸出中。這些日常開支可以通過使用 P2WPKH 輸出、避免地址複用來獲得相對安全;P2WPKH 也使用哈希函數作為量子防禦措施,用戶只在交易未確認的時候才會面臨風險。

如果量子安全的簽名方案能獲得足夠多的採用,那麼討論緩解量子風險的下一步就會變得容易很多。在我們看來,一旦量子安全的贖回選項存在,最終來說,理性的用戶會引導前進的道路。如果他們叔醇素量子安全的輸出,那也沒什麼問題,這是他們的選擇。如果採用真的很普遍,我們可以再討論其他有爭議的步驟,比如凍結資金、改變區塊重量限制、 BIP-39 種子詞量子安全復原方案,以及人們認為有必要的無論什麼措施。就讓持幣人來決定。

(完)

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