助記詞是 12 或 24 個普通的英文單詞,加密貨幣錢包的全部鑰匙就壓在這些單詞裏。誰有這串詞,誰就有錢:不需要密碼,不需要手機,連錢包應用本身都不需要。下面講:它是怎麼生成的,為什麼最後一個詞不能自己挑,為什麼在網頁上生成的助記詞不能用來放真錢,以及怎麼保存才能既不丟、又不交出去。

助記詞是什麼
形式從 2048 個詞的詞表裏取 12 或 24 個
裏面裝的一個隨機密鑰
最後一個詞校驗位
這串詞等於整個錢包,不要密碼也不要手機

它是怎麼生成的

標準叫 BIP-39。錢包取一個隨機數,12 個詞對應 128 位,24 個詞對應 256 位,再把它翻譯成一張固定詞表裏的單詞,詞表一共 2048 個詞。每個詞編碼 11 位,所以從單詞能唯一還原出那個數,錢包再從這個數推出自己所有的密鑰和地址。

最後一個詞不是隨便挑的。隨機數的尾巴上會接一段校驗和 (用同一個數算出的 SHA-256 的前幾位,用來查筆誤),最後一個詞裝的正是它。任意改一個詞,校驗就對不上,錢包就是這樣知道你輸錯了。你可以在這裏檢查自己的助記詞有沒有筆誤:助記詞:校驗,校驗在瀏覽器裏算,單詞不會發到任何地方。

12 個詞還是 24 個?差別在餘量,不在實際安全性。128 位的隨機性已經超出任何暴力破解的能力。24 個詞用在合規要求和長遠餘量重要的場合。真正的危險不在助記詞多長,而在它寫在了哪兒。

為什麼不能在瀏覽器裏生成

我們頁面上的工具能生成助記詞,它對你説的第一句話就是:別用它放真錢。不是因為我們會發送什麼,頁面什麼都不發。而是因為瀏覽器旁邊同時跑着擴展、剪貼板同步、自動填充,還有你背後的眼睛。任何一樣都可能看到螢幕上的單詞。被人看過一次的助記詞就永遠暴露了,它不像密碼那樣能換掉。

真正的錢包,助記詞由硬件錢包 (一台獨立設備,密鑰永遠不離開它)生成,或者由一台沒聯網的設備上的錢包應用生成。我們的生成器是讓你看明白這東西怎麼運作,以及給已有的助記詞做校驗。

怎麼保存:兩個方向相反的危險

保存助記詞有一個天生的矛盾。只有一份會丟:泡了水、燒了、搬家時扔了。份數多了,每一份都是多一分風險:任何一份都可能落到錯的人手裏,而每一份裏都是完整的助記詞。

幾條簡單規則,蓋住大多數情況:

  • 寫在紙上或金屬上,不要存成檔案。 檔案會進雲端、進備份、進剪貼板,設備一泄露它就跟着泄露。相冊裏的一張助記詞截圖,是丟掉它最常見的方式。
  • 不要和設備放在一起。 手機和那張紙在同一個包裏,包只需要被偷一次。
  • 不要發給「檔案傳輸助手」或自己。 那還是雲端裏的一個檔案,只多了一層私隱的錯覺。
  • 不要往任何要求「驗證助記詞」的地方輸入。 錢包只在恢復時問一次助記詞,MetaMask、imToken、TP 錢包都一樣。除此之外任何讓你輸助記詞的,都是偷。
助記詞不該在的地方
電腦裏的檔案跟着備份泄露
相冊裏的截圖跟着雲端泄露
「發給自己」還是那個雲端
手機旁邊偷一個包就夠了
「請驗證助記詞」的網站那是偷
正確做法紙上,離開設備,放兩個地方

怎麼拆分,讓任何一份都不危險

「一份會丟、多份危險」這個矛盾有一條出路:把秘密切開,任意 K 份能拼回來,少於 K 份則對秘密一無所知。這叫 Shamir 秘密共享,已經四十多年了,它是一個數學性質,不是承諾。

打個比方:一把鎖配了三把鑰匙,規定要同時插兩把才能開。一把丟了,另外兩把照樣開;一把被偷了,小偷靠一把什麼都開不了。

這麼做。把助記詞拆成幾份,比如拆成三份、門限為二。三份放在三個親近的人那兒,或者三個地方。任意兩份就能還原完整的助記詞。單獨一份,被偷了或被撿到了,什麼也給不出去:連原文有多長都無法確定。丟了一份,剩下兩份照樣能恢復。

這比直接把助記詞切成三段、每段四個詞強在哪兒:普通助記詞的一段已經是答案的一部分。有了十二個詞裏的八個,剩下四個可以窮舉。而這裏的一份單獨看不含任何關於秘密的資訊。

一個坑:門限等於份數很危險。三份取三,意味着丟任何一份就永遠丟了秘密。家用通常是三份、門限二。全部在瀏覽器裏算,秘密和各份都不會發到任何地方,並且上面那條警告同樣適用:在網頁上拆真的助記詞,只能在你信任、沒有多餘擴展的設備上做。

我自己怎麼做

説實話。真錢包的助記詞,我會在硬件設備上生成,抄兩遍在紙上,放在兩個不同的地方,都不在手機所在的地方。如果金額大到丟了心疼、託付給一個人也心慌,我會拆成三份、門限二,分給互相不來往的人。而且永遠不會以任何形式把它存成檔案。

保存,簡版
生成不在瀏覽器裏
載體紙,不是檔案
份數兩份,兩個地方
位置離開設備
大額三份,門限二
記住助記詞不能像密碼一樣換

助記詞解決不了什麼

助記詞防不住你自己把它輸進一個假網站。有人讓你「驗證助記詞」、你照做了,什麼保存方案都救不了。這是把一切都丟掉的最常見方式,而且它不是技術問題。

助記詞也和別人看不看得到你的轉賬無關。鏈上的地址和交易是公開的,助記詞守的只是動用它們的權利。怎麼查轉賬到沒到,為什麼幣會「消失」在另一條鏈上,在加密貨幣轉賬一直待確認裏;怎麼把助記詞本身或它的一份安全地交給另一個人,在怎麼安全地把密碼或檔案發給別人裏。

翻出一串舊助記詞、不知道拿它怎麼辦,可以問 AI,但不要輸入助記詞本身。

給 AI 的提示詞
幫我理清一串助記詞該怎麼處理。助記詞本身我不會
給你看,也不會輸入到任何地方。

幾個詞:(12 / 24 / 其他)。
從哪兒來:(我的舊錢包 / 撿到的 / 別人給的)。
現在存在哪兒:(紙上 / 檔案 / 截圖 / 聊天記錄)。

告訴我怎麼在不暴露它的前提下確認它是完整的,
接下來怎麼保存,以及絕對不能做什麼。

一句話總結

  • 助記詞就是整個錢包,12 或 24 個詞,最後一個詞校驗其餘的。
  • 在網頁上生成來放真錢是不行的:不是因為發送,而是因為一切能看到螢幕的東西。
  • 寫在紙上,放兩個地方,離開設備。
  • 大額用 Shamir 拆分:三份、門限二,任何一份單獨都沒有意義。