1Ren's blog.

發布日期 - 科普研究

關於加密貨幣冷錢包,所有你想知道的。

整理了適用各階段加密貨幣使用者的基礎知識、錢包疑難雜症、安全提醒與開放性討論。

img of 關於加密貨幣冷錢包,所有你想知道的。

冷錢包的基礎知識

什麼是冷錢包?

「冷錢包」是一種不聯網,能物理隔離並獨立冷儲存私鑰的硬體裝置,常常也被稱為「硬體錢包」。

雖然稱為「錢包」,但與一般認知的錢包有些不同。比起錢,冷錢包中所存放的更像是「鑰匙」。在加密貨幣的世界中,擁有了鑰匙,等同擁有了區塊鏈上資產的操作權。

為什麼需要冷錢包。

大部分的新韭菜是從中心化交易所(如:Binance、OKX、Bitfinex… 等等)入門。但呈上一題所述,使用者並沒有擁有中心化交易所帳號的私鑰,也就是說,無法完全掌控自己在交易所中的資產。2014 年的 Mt. Gox、2022 年的 FTX 都是當時號稱「大到不能倒」的中心化交易所,但一出了問題,使用者資產便直接被禁提卡死。

接下來再進階一點的使用者,為了嘗試鏈上各種去中心化應用程式,或尋找更多的 alpha,從而接觸了自託管的軟體錢包(或說熱錢包),自此真正踏上了區塊鏈加密貨幣的不歸路。這是一個好的開始,但需要注意的是,軟體錢包的私鑰可能以明碼的形式存放在你的裝置上,一旦裝置連上了網際網路,就有可能以任何形式外洩。例如將私鑰存放於瀏覽器快取,或明碼上傳至軟體錢包的伺服器。

而冷錢包不聯網的特性,在轉帳、與智能合約互動等鏈上操作時,簽署都是在冷錢包中執行,不會讓私鑰離開冷錢包,大幅降低了被遠端攻擊的可能性。此外,冷錢包通常有其他如拆機自毀、韌體檢驗等安全機制,以減少被暴力破解或變造的風險。

在幣圈使用冷錢包是必需的嗎?

並不是,這只是一個相較安全的選項。

事實上,熱錢包在進行鏈上操作時,比起冷錢包更加的方便快速;而冷錢包則是協助降低了許多風險,但在操作時也會有比較多繁瑣的確認步驟。

使用者完全可以在便利性與安全性中權衡,找到最適合自己的使用方式。但我覺得不使用冷錢包的前提是,使用者對於自己的資安習慣有百分之百的信心,同時也相信裝置上的各種軟體不會出包。

個人建議,若有意長時間待在幣圈,還是購買冷錢包來使用吧,況且以保護資產的角度來看,一個冷錢包的價格真的不貴。

韌體開源、安全晶片與 AirGap 比較。

  • 韌體開源:讓全人類共同審閱程式碼,且有能力的使用者也能自己學習與編寫。有些冷錢包商也會配合安全審計公司進行審計。
  • 安全晶片:常見的是用來生成和儲存私鑰,以抵禦攻擊和泄漏。不過也有人詬病使用者需要信任晶片製造商,於是有的冷錢包商會在裝置中使用複數、且來自不同公司的晶片來處理不同的功能。
  • AirGap:此類冷錢包不搭載藍牙和 Wi-Fi,甚至會除去 USB 連線功能,以此降低遠程攻擊的風險。通常會以 QR code 進行簽名,並以記憶卡進行裝置的韌體更新。

我忘記了冷錢包的 PIN 碼,怎麼辦?

冷錢包為了防範暴力破解,通常具備密碼輸入太多次則自動重置硬體的功能。若使用者真的忘記了冷錢包的 PIN 碼,可以多嘗試幾次直到設備重置,便能以助記詞還原錢包。

若助記詞已經遺失或沒有進行備份,那誰也幫不了你(包含冷錢包製造商)。

如果冷錢包壞掉,我的資產會不見嗎?

不會。使用者的資產是記錄以及儲存在區塊鏈上,而不是真的存在於冷錢包中。 所以當原有的冷錢包壞掉時,買新的並輸入助記詞即可還原錢包。

交易所壞掉,你的資產才會不見。

助記詞相關

助記詞和私鑰一樣嗎?

助記詞不等於私鑰,一組助記詞可以生成多組私鑰與公鑰,但助記詞與私鑰都很重要,都能用以還原錢包。

生成關係大概是:助記詞→私鑰→公鑰→錢包地址。

同一份助記詞可以在不同品牌的冷錢包恢復嗎?

可以,不需要擔心手上的冷錢包因為廠商倒閉而成為孤兒。

現今通用的助記詞單字來自 BIP39 定義的單字表,其中包含了 2048 個單字,並且通常以 12 或 24 個字組成一組助記詞短語。

如果助記詞沒錯,但還原出錯誤的錢包,那可能是還原 HD Wallet 時的路徑(BIP44)選錯了。

什麼是密碼短語(Passphrase)?

Passphrase 常指的是獨立於 12 個或 24 個單字之外的,第 13 或第 25 個單字。這個詞不需要符合 BIP39 標準,可以是任意英文字母、數字甚至符號,如同為你的助記詞加上一組大鎖。

大部分的冷錢包品牌都有這個功能,所以不同品牌間也能無縫還原出同一組錢包。

如果擔心自己的助記詞有一天會被碰撞到,那就加上一組自定義的 passphrase 吧。

如何安全的生成與保存助記詞?

助記詞生成與還原時的環境很重要,非常不建議在公共環境中操作,最好在自己的房間或家中進行,且不要靠近窗邊。極端點的也可以避一下周遭的攝影機或鏡頭。

曾經看過一個笑話,有人在窗邊生成助記詞,結果被鄰居看見並抄走。這個人大概一輩子都想不透助記詞是怎麼外洩的。

另外,建議使用類比的方式隔離保存助記詞,絕對不要存放在 Evernote、Line Keep 之類的筆記和通訊軟體中,這做法形同與軟體公司共享你的助記詞,好歹也抄寫在紙上。而更進階一點可以使用金屬板備份,是不錯的防水、防火,且成本較低的方法。

什麼是分片助記詞(Shamir Backup)?

分片助記詞是進階的錢包生成方式。它將錢包拆分成多組助記詞,需要輸入符合的助記詞組數才能還原,例如:分成五組助記詞,需要滿足輸入五分之三組才能還原。運作方式與多簽錢包類似,但只有在還原錢包時需要多組助記詞,簽署交易時則不需要。

目前支援的冷錢包商不多,除非有特殊需求,個人不建議使用。

關於冷錢包的使用安全

冷錢包不建議跟智能合約進行互動嗎?

如果你追求的是極致的安全,那確實不建議以冷錢包和智能合約互動,可以在有鏈上合約操作需求時,再從冷錢包轉移資產到另外的熱錢包進行。

但基本上,如果你在進行任何簽名時都看仔細,並充分了解執行的內容,我覺得使用冷錢包進行合約互動是沒問題的。與要不要使用冷錢包同理,是個選擇。現今有許多軟體錢包具備了合約解析,以及資產變動預演的功能,例如 Rabby.io,與冷錢包搭配使用能提高安全性。

軟體錢包會偷走冷錢包的私鑰嗎?

不會。私鑰儲存於冷錢包裝置中,簽名也是在冷錢包中簽署後才送出,助記詞和私鑰不會離開硬體裝置。

助記詞也只能在冷錢包中覆核確認,軟體錢包無法顯示。

Approve、Permit、Permit2

  • Approve:鏈上簽名,對代幣授權給智能合約使用權,是傳統的授權方式。簽名時需注意大部分專案授權預設是無限,以安全考量則建議手動改成當下要使用的額度。
  • Permit:鏈下簽名,可以節省 gas fee ,且可同時進行合約使用權的授權和代幣轉移,並記錄授權到期時限。但需要把相關函數寫入 ERC-20 代幣中,所以不適用於舊代幣。
  • Permit2:先鏈上簽名 approve 授予使用權給 permit2 合約;接著鏈下簽名 permit2 允許讓 permit2 進行代幣使用;最後再和項目合約互動,讓 permit2 動用代幣。授權一樣有時效性,且解決 permit 舊代幣不適用的問題。

關於 EVM 的 4-byte 與函數。

以太坊的函數經過雜湊運算後,獲得的雜湊值前 4-byte( 兩個 16 進位數字 = 1 byte,總共有八個 16 進位數字)。也就是 input data 中的 Method ID。 從 4-byte 可以查到相關的函數。 Ethereum Signature Database (4byte.directory)

但 Method ID 是有可能重複的,因此有可能被用來詐騙,所以在做任何操作前,務必謹慎瞭解智能合約內容。目前也有一些錢包和解析工具,能協助使用者判斷是否要進行簽名。

其他

冷錢包能 DIY?

以下舉兩個例子讓讀者參考。

交代給最親近的人。

區塊鏈、加密貨幣的應用,乃至於冷錢包的操作都極為複雜,倘若希望自己不幸離世時能讓親近的家人順利繼承,建議盡早教會給親屬,或是整理好資料與教學,讓遺產與相關知識能順利傳承。