Multi-Signature

為什麼冗餘拆分錢包種子不好?

  • July 2, 2021

我已經閱讀了很多關於錢包安全的內容,這似乎被普遍認為是一個壞主意(例如,參見這個影片這個答案),但我很難理解為什麼在某些情況下它不是一個好的選擇。

假設我有三個可以儲存資訊的中等安全位置——也許是我自己的家和某個近親的家。我想安排一些事情,以便訪問其中任何兩個位置的資訊允許我訪問我的比特幣,以防一個位置遭受自然災害或盜竊,但我不希望任何人能夠訪問我的硬幣只是擁有訪問這些位置之一。

我創建了一個帶有 24 字種子的錢包。我不使用 Shamir 的秘密共享算法,因為我看到這被廣泛反對(例如參見本文)並且是我不完全理解的密碼學的潛在風險來源。相反,我使用了一個可以完全手動執行的簡單方案,對於種子中的每組三個單詞,我將它們拆分如下:

所以三個位置中的每一個都有2/3的單詞,即16個單詞。很容易確認(如有必要,通過實驗)我可以從三個位置中的任何兩個位置重建完整的種子。

如果攻擊者可以訪問單個位置的單詞,他們只需要猜測八個單詞就可以訪問資金。這表面上是 8*11=88 位的熵,但由於種子包含一些校驗和位,我將在實踐中手動將其降低到 80 位。

我的理解是 80 位並不被認為是非常安全的,但破解也不是一件容易的事。如果我認為我的儲存位置相當安全並且不期望有針對性的盜竊(“我們知道他有很多比特幣,我們會闖入以從一個位置竊取單詞,我們有一組機器待命以進行暴力破解- 強制遺漏單詞”)但我只是想保護自己免受機會主義盜竊(“我們闖入盜竊家用電子產品和周圍的任何現金,但我們還發現了這些比特幣種子詞!”),考慮一下是不是很荒謬這可以接受嗎?

顯而易見的替代方案似乎是 2-of-3 多重簽名方案。如果這些錢包中的每一個都使用 12 個單詞的種子,那麼訪問單個位置的攻擊者必須猜測 12 個單詞或 128 位的熵,這顯然更強。另一方面,使用 2-of-3 多重簽名:

  • 訪問單個位置的攻擊者將獲得我必須儲存在每個位置的主公鑰的副本,因此可以查看錢包餘額和交易,這可能會激勵有針對性的攻擊或以其他方式損害我的隱私。
  • 在每個位置儲存主公鑰的需要增加了備份的複雜性和風險。無論我選擇何種方案,與攻擊者的行為相比,我可能更有可能因錯誤而失去我的比特幣。如果任何地方的紙張受到輕微損壞,我可能仍然能夠辨認出一個種子詞——畢竟它是英語,而且我知道它來自某個單詞列表——而亂碼的字元串是主公鑰沒有這種額外的冗餘。

感覺這種種子分裂方案有自己的一套權衡,但對我來說並不明顯它是完全糟糕的。我錯過了什麼?

你的分析是正確的。該方案的弱點是,如果一個位置受到威脅,則只剩下 80 位的安全性。但是 80 位對於實際目的來說就足夠了,而且假設一個資源豐富的攻擊者願意投入大量資源來破解它,可能至少需要十年才能破解。

這假設原始種子是以無偏見的方式選擇的。如果用於生成原始種子的方案存在任何缺陷,如果 2/3 的密鑰被洩露,則可能沒有足夠的安全性。

顯然,用一個 12 字的種子來做這件事將是一場徹底的災難。

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