硬體錢包的安全晶片有什麼作用?(上)

買賣虛擬貨幣

撰文 | Cobo金庫大掌櫃

掌櫃最近一直有強調安全晶片的重要性,今天就正兒八經的盤一盤安全晶片到底在保護什麼。

對數字貨幣原理稍有了解的人,可能都聽說過“非對稱加密”、“雜湊演算法”之類的加密學名詞,但並不是所有人都知道,這些加密演算法背後最重要的核心(沒有之一)——隨機數。

大家“隨機”選擇一把私鑰,就可以透過私鑰用密碼學計算出地址,有了地址就能收取數字貨幣,私鑰就能支配這個地址上的數字貨幣。所以,誰擁有私鑰,誰就擁有對應地址在鏈上的資產。

那麼,私鑰會不會有一天耗盡?

要解答這個問題,先要看看私鑰到底有多少“把”。理論上來說,私鑰總共有大約 2 的 256 次方的可能性。這個數大約是 1 後面跟了 77 個零。與之對比,目前可見的宇宙,總共的原子數大概是 1 後面跟了 80 個零。

私鑰的可能性有這麼多,看來是不會被耗盡了。

可是,會不會碰巧兩個人選到同一把私鑰?從而 A 轉到對應地址的錢,被 B 轉走了?

這就引出了私鑰隨機性的重要性,也就是隨機數的重要性。系統都是先得到隨機數,然後從隨機數再推匯出私鑰。

目前,林林總總的數字貨幣錢包,在隨機數生成這件事上,逃不出兩種方案——偽隨機數生成器真隨機數生成器。

偽隨機數生成器(pseudo-random number generator,PRNG)在維基百科上有一個更令人擔憂的名字,確定性隨機數生成器(deterministic-random bit generator ,DRBG)。為什麼隨機數還會有“確定性”這一說呢?因為偽隨機數都來自於“隨機種子”(Random Seed),而隨機種子是由計算機自帶的計數器或者其它數字邏輯產生。這些計數器或者數字邏輯是有一定概率分佈的(可能性不是平均分佈在 1 到 2 的 256 次方這個區間內)。

所以,在一定程度上,偽隨機數是可預測的。

與之相對的,真隨機數是由安全晶片透過物理方式生成的,其隨機性是不可預測的。

來自維基百科的定義:真隨機數生成器(True Random Number Generator, TRNG)是一種透過物理過程而不是計算機程式來生成隨機數的裝置。這樣的裝置通常是基於一些能生成低等級、統計學隨機的“噪聲”訊號的微觀現象,如熱力學噪聲、光電效應和量子現象等。這些物理過程在理論上是完全不可預測的,並且已經得到了實驗的證實。

由此,我們得到了安全晶片的核心保護物件:私鑰的真隨機性。安全晶片可以生成真隨機數,隨機性(安全性)大於非安全晶片生成的偽隨機數。

我們前面有反覆提到的一個片語——“物理方式生成”。有些同學可能會問,能用“擲骰子”這種“物理”方法嗎?答案是可以的。

基於以上,在選購數字貨幣硬體錢包時,仍有兩個知識點需要普及:

  • 除了要關注是否有安全晶片以外,還要關注安全晶片是否得到了相關機構的認證。常見的認證體系有兩套:FIPS 和 AIS。
  • 安全晶片的韌體程式碼是否開源,也是要考察的點。目前已知的硬體錢包中,只有 Cobo 金庫和 ColdCard 開源了安全晶片韌體程式碼。Coldcard 的安全晶片韌體程式碼甚至支援使用者自行燒錄,適合比較硬核的玩家,但是同時也放大了供應鏈攻擊的可能性。出於供應鏈攻擊等方面的考慮,Cobo 金庫暫不支援使用者自行燒錄安全晶片韌體。

總結,選擇硬體錢包時,建議如下:

  • 應用安全晶片(保證私鑰的真隨機性)
  • 且安全晶片得到相關機構的認證
  • 且安全晶片韌體開源

下篇文章會講安全晶片可以抵禦哪些物理攻擊,請持續關注呀!

參考連結:

[1] https://en.wikipedia.org/wiki/Random_number_generation

[2] https://en.wikipedia.org/wiki/Pseudorandom_generator

[3] https://en.wikipedia.org/wiki/Hardware_random_number_generator

[4] https://github.com/bitcoinbook/bitcoinbook

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;