Cover photo

冷錢包小分享 WIWI來救你的那些偉大事蹟 (主講人:Wiwigreen)

※ 節錄自摸摸熊DAO冷錢包AMA,部分內容有自主加水,不影響整體結構。

1.什麼是冷錢包?

冷錢包顧名思義由助記詞、私鑰用離線方式保存的錢包。 常見的為紙錢包、硬體錢包。 反之,曾經暴露在網路世界中的私鑰或助記詞,為一般所說的熱錢包。

早期MyEtherWallet生成的錢包,可透過列印的方式離線儲存。
早期MyEtherWallet生成的錢包,可透過列印的方式離線儲存。
 Ledger是目前泛用的硬體錢包。
Ledger是目前泛用的硬體錢包。

備註:

目前的MyEtherWallet或者Metamask,都可以透過生成頁面前頁中,拔網路線造成離線效果生成錢包地址的(目前用電腦生成較為方便)。

2.為什麼要用冷錢包?

其實幣圈一直有句話說:「當你自己沒有幣的時候那些資產都不是你的」從2022 / 11月的FTX事件中可知,保存在中心化交易所的用戶資產,在突發意外發生時, 用戶投入的心力可能在幾個分鐘內付之一炬,然後就啪!沒了!

保存到冷、熱錢包中,資產轉移到鏈上,只要承受部位歸零的風險,用戶不至於腳麻,熱錢包還要加上因為頻繁授權DApp(去中心化應用程式)的智能合約,可能會有被他人轉移資產的風險,在這個「資產的保存、管理全由自己來」的環境中,突顯了冷錢包的重要性。

3.冷錢包的生成

冷錢包生成的原理狀圖
冷錢包生成的原理狀圖

大概念為: 最上面的Seed Phrase,也就是一般說的助記詞, 助記詞可以生成無限多個私鑰,私鑰根據派生路徑的不同,產生出各種地址。 所以某種程度上來說,助記詞比私鑰還重要,私鑰被洩漏是單獨該地址上的資產暴露在風險中,而助記詞洩漏是全部地址中的資產都能被動用,不管載體是硬體錢包或者Metamask應用程式。
可以在這個網頁體驗助記詞生成的概念: BIP39 - Mnemonic Code (iancoleman.io)

補充:

助記詞為2048個詞彙庫排列組合而成,理論上的無限值約為10的79次方數量級的數字,並不是不可能被別人猜到,只是機率太小太小了。 目前生成的方式還有24+1和12+1的方式,這個+1為自訂單字,就算別人知道其他的24個單字,也無法存取用戶的錢包,因為+1後,派生路徑改變,產生與原24單字的地址不一樣的地址。

4.錢包的交易過程與常見的攻擊手法

post image

這張圖說明了整個交易的流程, Sender就是用戶,不管用戶送出交易或者送出合約,私鑰會和智能合約執行一些已加密的互動行為,互動成功後,錢包會跳出一個讓用戶簽名的提示視窗,不管用硬體錢包或者Metamask都一樣,只差別在裝置上或者是在電腦頁面做,**用戶都必須自我批准簽署或交易。**簽完名之後,送出驗證上鏈,交易行為就送出去了。

有一些常見的攻擊行為是:

用戶不小心裝到假的Metamask,送出交易的時候,交易的對象可能已經與預設對象不同。 與盜版網站互動送出交易,送出的對象與網站所述不同。 瞎簽署DApp智能合約讓對方獲得資產控制權。

所以不管是用何種形式的錢包,用戶一定要在交易前確認交易內容時,注意內容代碼是不是與顯示的相同,如果一概無腦簽署(補充於QA),那用冷錢包或者是熱錢包一點意義都沒有。

5.用冷錢包的需知

再來錢包在簽名的行為中,簽名的當下一定要有私鑰去和智能合約做互動,私鑰如果是在熱錢包中,可能是存在瀏覽器上面的Metamask,如果今天電腦被攻擊了,或者不小心點到釣魚網站、奇怪的套件他就有機會把錢偷走。

用冷錢包,他的私鑰跟助記詞都是存在硬體錢包中加上與網路隔絕,所以冷錢包的重點是不能連網路。 那你會想說你用Ledger你還是要插到電腦上阿,如果用到假的Metamask,從應用程式送到冷錢包的時候那麼這筆交易還是有問題的。

不管怎樣用戶的使用習慣一定是最重要的,第一個是一定要保存好助記詞,不要上一些奇奇怪怪的網站,有些人的做法是瀏覽器是分開來的,或者是電腦是分開來的,這些看用戶的使用習慣,讓錢包處置於多少安全的環境中。 不是說用冷錢包就不會被盜,用冷錢包只是更好保存助記詞,但是助記詞被偷走或者亂簽交易也是會造成一樣的後果,不是說用了冷錢包就無敵。

簡單說有助記詞必然產生私鑰,私鑰會產生出地址。 只要有助記詞跟私鑰就可以去打包任何交易,不管用冷、熱錢包,決定用戶資產是否安不安全最終還是看用戶習慣。 冷錢包只是另外一個保護用戶資產的手段,例如說電腦被駭客入侵或者是有木馬軟體,因為助記詞不存在於網路環境上所以資產是安全的。

然後助記詞和冷錢包一定要保存好,因為他不見就是不見了。 用戶不能用忘記密碼之類的服務救回助記詞,之前有討論一個議題, 我的地址去鎖幣,鎖了好幾年之後可能忘了或者硬體被偷走了,要拿回控制權,這到目前沒有一個很好的解決方式。

那再來冷錢包的有很多種簽署方式,第一個是可能是插電腦去Metamask簽名,另一種是直接隔離的,它的硬體錢包沒有藍芽、沒有Wifi、沒有USB Port可以接電腦,那到底要怎麼簽名? 大部分的方向是透過掃QRCode的方式去簽名。

模式約為,先用你的冷錢包去掃描手機App上面的QRCode,再用你的App去掃冷錢包上面顯示的去做簽名。

所以講這麼多冷錢包的必要因素就是就是不連網路,不管你今天是買一個硬體錢包或者用舊手機不連網路當成一個離線裝置都是可行的。

那接下來,要怎麼更加保護我的資產安全? 有很多人在說,把錢包分功能 像是有的人分一個單純存幣的,他只把幣一丟進去他不會去做交易 第二種可能是他會做交易,但是他的交易都是安全類型的交易 第三種可能是他會去亂玩的,那就會採用熱錢包,反正根據用途做錢包分級也算是一個很好的保護方式。

6.助記詞的保存方式

  • 寫在紙上

  • 刻在金屬板上

  • 買兩個同樣硬體錢包使用同一組助記詞

  • 將字元拆成3等分放在不同地方

買兩個硬體錢包的話,務必要確認兩台裝置產生出來的地址是不是一樣的,是有可能不一樣的,有可能是預設生成路徑不一樣或者是買到來源有問題的冷錢包。

預設生成路徑不一樣的詳見PTT討論文

如硬體錢包壞掉,假若助記詞生成標準、選用詞彙庫都是一樣的,使用不同廠牌的硬體錢包去回復私鑰理論上是可行的。

那剛剛有提到一個是說你的助記詞可以產生很多組私鑰 那產生的私鑰他理論上來說雖然數量很多,但是產生的順序都是一樣的,第一個產生、第二個產生、第三個產生,他產生的東西都是一樣的,他是有規則的, 如果說你用的錢包是有照規則的,基本上他產生的順序是一樣的,比如說在Ledger產生的順序是這樣那在Metamask也是一樣的。

硬體錢包如果要購買的話,建議還是到官網購買,第三方管道可能會被動過手腳。

QA環節:

Q1:Ledger , Trezor 怎麼選 A:還是要問問自己本身的習慣與常態用途在哪裡去選擇。

Q2:有沒有辦法從簽署交易畫面看出什麼資訊,避免簽到詐騙交易? A:如何從簽署過程看出問題,其實是很困難的。 其實很多錢包app其實簽署顯示做得不明不白,用戶其實也很難判讀正確性, 讓使用者去學習Json在門檻基礎上太高了。 所以最好的方式還是只能蒐集正確網址並且加入書籤去規避, google搜尋的風險在於,有些人會投放google廣告讓假網頁顯示在廣告前幾名讓用戶去誤點進而達到釣魚的目的

Q3:好奇講者助記詞保存的方式 A:部分OnePassword部份寫在紙上 Q3-1:OnePassword 就是交給別人管了 A:密碼管理員軟體有很多啦,OnePassword是用別人的,另外一個可以用別人的也可以自建保存環境 也有一種方式是助記詞明文,用加密的方式弄成亂碼保存,用文本的方式也是相同概念。

碩佬分享:方法基本上是把助記詞加密保存沒錯,但這個加密方法很關鍵 我用的是 veracrypt。 助記詞放在 veracrypt 的加密檔案裡,然後放到多個雲,自動同步,還有版本控制。

Q4:鏈上PoS質押會有安全性問題嗎? A:還是取決於鏈本身給人的信任度如何,如果停鏈了那資產一樣是消失了。

補充:

其實還有一種錢包叫做託管錢包 他們的方式是幫你保管seed提供 web 或 app 讓你用帳號密碼登入,使用上跟一般 web2 應用很像但就不是自己保管 seed,那種錢包我會建議就拿來玩就好大筆的還是放自己的冷錢包。

那也是一個方式不過這還是回歸到一樣的問題

  • 你的多簽錢包是不是用不同的註記詞生成 ?

  • 你的多簽是 3/5 還是 1/5 ?

  • 有些 defi 項目會擋合約操作,但你如果只是單純要保存資產就無所謂

市面上有很多這類型的託管錢包,市面上有很多這類型。 用戶就只能相信他們的保護機制夠好,那種錢包我會建議拿來玩就好,大筆的還是放自己的冷錢包。

補充閱讀:

2-Party BIP32:更安全的 HD-Wallet

https://tinyurl.com/mrx5z9sb

【加密貨幣錢包】從 BIP32、BIP39、BIP44 到 Ethereum HD Wallet

https://tinyurl.com/bdfmnzc9