如何讓錢包變得安全又便捷?——理解 CKB 應用層優勢二

640?wx_fmt=gif

在上一篇《理解 CKB 應用層優勢一:自由的手續費模型》中,王博爲我們講解了 CKB 如何通過巧妙的設計,爲區塊鏈網絡提供了更加自由和靈活的手續費解決方案。這一次,王博將和我們講解 CKB 應用層的另一個優勢:如何讓錢包的設計實現安全與便捷兼得。CKB 抽象了簽名算法層,這極大地增加了錢包設計的靈活性,我們期待未來會有更多的錢包應用創新出現在 CKB 上。


數字貨幣錢包遇到的難題



錢包是用戶訪問區塊鏈最重要的入口。但如何實現一個方便用戶使用,同時又足夠安全的錢包一直是區塊鏈世界的難題。軟件錢包的問題在於:爲了保證一定的安全性,必須採用高強度密碼加密,這就要求用戶必須記憶複雜的密碼。


很多用戶忘記了 Keystore 的複雜密碼,導致不必要的財產損失。硬件錢包除了成本問題之外,使用麻煩也是很大的弊端,很難想象使用硬件錢包高頻調用 DApps。

在生物識別大行其道的今天,人們很希望能夠用指紋或 FaceID 等簡單的安全認證方式使用區塊鏈錢包。然而遺憾的是,通常情況下生物識別在 App 中只是簡單的程序跳轉,在攻擊者面前沒有提供任何安全屏障。


640?wx_fmt=png
標準的軟件錢包加生物識別授權的程序流程


可以看到,密鑰的保存和加解密都是在應用層實現的,攻擊者很容易截取私鑰數據,或者繞開生物識別認證。


硬件安全



密鑰的硬件管理可以爲數字貨幣錢包提供極高的安全性。一個硬件密鑰設備通常具備如下幾個特性:


  • 密鑰在硬件內部生成,且無法通過任何方式導出

  • 硬件設備對外提供公鑰導出接口和私鑰簽名接口


常見的硬件錢包如 Trezor、Nano Ledger 等都符合上述要求。

事實上,iOS 和 Android 也都支持基於硬件的加密保護。其中 iOS 提供基於 Secure Enclave 的安全芯片加密服務,Android 從 7.0 之後提供基於 Secure Element 的安全加密 API。

通常情況下,智能手機的生物識別模塊與安全芯片模塊是緊耦合的,意味着授權、簽名過程由安全芯片託管,簽名授權不會被攻擊者截取或僞造。


640?wx_fmt=png

這種模式的用戶體驗會非常好,用戶只需要按壓指紋或者進行人臉識別,即可簽名交易。此外,這種模式的安全性與硬件錢包一致。私鑰一直保存在硬件設備中,攻擊者無法通過任何手段獲取用戶私鑰。且授權過程與簽名過程同步,授權安全性由硬件保證,攻擊者也無法進行截取或插入攻擊。


實現並不完美



這麼好的模式爲什麼數字貨幣錢包沒有采用呢?因爲不論是 iOS 還是 Android,其硬件安全的簽名算法只支持有限的幾種,並不支持 BTC、以太坊採用的 Secp256k1 算法。前段時間 Apple 宣佈推出 CryptoKit 密碼學 API 擴展,就有區塊鏈開發者吐槽難以用在數字貨幣錢包裏面。


640?wx_fmt=png

確實有區塊鏈採用了硬件友好的簽名算法,例如 Tezos,它爲用戶提供了三種可選的交易簽名算法, Secp256k1、Ed25519以及Secp256r1(後兩者被 iOS 和 Android 的硬件加密模塊支持)。所以 Tezos 的移動錢包可以利用到最新的智能手機安全特性,方便快捷地進行交易簽名。


但還有問題:


640?wx_fmt=png

由於安全性限制,智能手機內的硬件錢包無法備份,就意味着一旦手機丟失,你的數字資產再也無法找回。


Good News from Nervos CKB



和幾乎所有的公鏈項目不同,Nervos CKB 將密碼學算法作爲抽象的原語與底層剝離。用戶可以指定自己的資產或合約採用任意預定義的密碼學算法驗證授權。這就意味着用戶交易的簽名算法可以採用智能設備支持的 Secp256r1 算法或者 Ed25519 算法。

那麼如何解決私鑰無法備份的問題呢?我們可以將交易授權算法設置成 1-of-2 多籤算法,其中一個簽名由硬件設備生成,另一個簽名由標準的助記詞方式生成。二者之一就可以成功地發起交易。首次初始化的時候用戶生成助記詞和硬件私鑰,並將助記詞備份後從設備刪除。這樣一旦設備丟失,用戶可以使用助記詞恢復對資產的控制權。

通過這樣的設計,用戶在正常情況下可以非常安全便捷地使用生物識別技術操作自己的錢包。在特殊情況下也可以使用助記詞恢復。考慮到進一步的安全性,CKB 也支持對兩個密鑰不同的操作權限管理。例如設置助記詞密鑰只能每天轉賬總資產的 5% 等。


CKB 抽象了簽名算法層,意味着用戶可以將大量授權的邏輯和密碼學原語在應用層描述,極大地增加了錢包設計的靈活性。相信未來會有更多錢包應用創新出現在 CKB 上。


640


關於 Nervos

640?


Nervos Network 是由 Nervos 基金會發起並維護的網絡協議標準。


Nervos Network 包含以區塊鏈技術爲核心、相互兼容的一組分層協議,通過一層公有鏈協議保證網絡的安全性與去中心化,二層協議提供具有可擴展性的交易和計算服務,以及多個應用層協議銜接商業場景,以此構建下一代加密經濟網絡的公用基礎設施。


關於 CKB

640?


Nervos Common Knowledge Base(CKB)是一個無需許可鏈,它是 Nervos Network 的基礎層,並在設計上提出了一些理念:


  • CKB 共識協議 NC-MAX 使用兩階段提交節約帶寬,並根據網絡情況調整自身參數,提升了 Nakamoto Consensus 的可擴展性

  • CKB 虛擬機採用底層 CPU 指令集架構 RISC-V 開發,提供更高的開發彈性與運行的穩定性

  • CKB Cell Model 是比特幣 UTXO 模型的通用化,能夠驗證和存儲任何類型的數據

  • CKB 經濟模型用貨幣政策限制狀態存儲的增長,並實現智能合約平臺的價值存儲功能


關注我們

640?

官網:https://www.nervos.org

論壇:https://talk.nervos.org

電報:http://t.me/nervosnetwork



👇點擊閱讀原文,查看更多詳情~

640?wx_fmt=gif

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章