區塊鏈錢包開發


 區塊鏈錢包技術原理

區塊鏈錢包實現的技術原理用一句話表示就是:錢包助記詞生成了種子(Seed),種子(Seed)生成了私鑰,私鑰推導出公鑰,公鑰節選部分成了錢包地址。同時錢包提供了 keystore,它也是私鑰加密后的文件,可以配合正常的密碼使用,便捷了用戶的錢包使用。

區塊鏈錢包並不是存儲着大家的 cryptocurrency,它是在鏈上存儲的,錢包主要存儲的是私鑰,它是用戶對鏈上 cryptocurrency 的所有權憑證,這是一個不記名、不可掛失的憑證。從開發者的角度看,錢包的作用就是管理用戶的私鑰、通過私鑰簽名交易管理用戶在區塊鏈上的數字貨幣 Cryptocurrency
Address + Private key = Cryptocurrency Wallet。 

【區塊鏈錢包基本類型和特點】

區塊鏈錢包本質特點划分

區塊鏈錢包和區塊鏈一樣,也可以分為去 onchain 錢包和 offchain 錢包,它們本質區別在於錢包私鑰的存儲方式和地點,私鑰存儲在用戶手中,錢包商無獲取途徑,用戶可以實時使用鏈上資產的稱之為 onchain 錢包;而私鑰存儲在錢包商或者交易所手中,用戶不能直接使用鏈上資產而需要通過第三方才能動的稱之為 offchain 錢包。具體來講: 

1.onchain 錢包——全節點錢包

私鑰存儲在用戶手中,同時全節點錢包還保存了所有區塊的數據,這樣就可以在本地直接驗證交易數據的有效性。大部分全節點錢包也具備挖礦功能,它自身也是區塊鏈網絡中的一個節點,如 BTC 的 Bitcoin
Core;ETH 的 Mist,Parity 等。

優點:

一般屬於官方為區塊鏈設計的錢包,直接 onchain,不需要經過第三方發起交易,保證了基本安全性;由於前節點下載到本地,所以會更快驗證交易信息。

缺點:

也因為下載了所有節點,所以占用很多硬盤空間(Mist 現在達到了 80G,筆者下了好幾天也失敗了;Bitcoin Core 據說是 150G);每次使用前需要同步數據;新手的使用體驗不夠好;不支持多種數字資產;往往都是電腦版本。

2.onchain 錢包——SPV 輕錢包

私鑰存儲在用戶手中,但不保存所有區塊的數據,只保存跟自己相關的數據,所以體積很小,可以運行在電腦,手機,網頁等地方。如 Blockchain,imtoken 等

優點:

用戶體驗很好,尤其對於新手;很多輕錢包都支持多種數字資產;體積小,不占空間

缺點:

交易驗證會稍微慢一點 

3.offchain 錢包——通過中心服務器訪問區塊鏈網絡的錢包

該類型錢包的划分有一定爭議,主要在於錢包數據傳輸的方式是可以擴展選擇區塊鏈節點還是必須通過錢包服務方的服務器,如果是后者就存在私鑰存儲在中心化服務器的風險,目前有很多區塊鏈錢包體驗都很不錯,甚至很流暢,由於不開源無法排除該類風險。筆者推斷比特購錢包應該屬於此類。

優點:

同 SPV 輕錢包 用戶體驗會比 onchain 錢包好

缺點

存在安全風險(雖然真正致力做區塊鏈的錢包企業哪怕即使通過自己的服務器將交易信息發送到節點上,即不會作惡,但是不能排除可能有作惡的人可以使用這種方式獲得用戶密鑰);會比 onchain 錢包交易驗證更慢,但是用戶可能體會不到。 

4.offchain 錢包——第三方托管錢包

完全依賴運行這個錢包的公司和服務器,存在某個組織或者個體的錢包地址里,中心化交易所里的 Cryptocurrency 就是在 offchain 錢包(交易所)里保存的。

優點:私鑰忘記了可以找回;平台會把私鑰安全做的不錯;一般以企業作為信用背書;

缺點:你的私鑰控制在平台手上,平台“做壞事”你是無法阻止的,即作惡風險;平台關閉后你的幣就沒有了,即跑路風險 

 

區塊鏈錢包表現形式划分

這種划分理解就比較簡單了,電腦單機版的錢包,如前面提到的全節點錢包基本以此類為主;手機錢包和在線錢包以 SPV 輕錢包為主,前者以手機 APP 為主要表現形式,后者是網頁插件,如 MyEtherWallet,
MetaMask 等。硬件錢包是為了增強安全性,通過專門設計的安全硬件來離線保存儲私鑰,隔絕黑客入侵。

所以,電腦錢包、手機錢包、在線錢包一般體現的都是實時可用性,它們更多被稱之為熱錢包,即實時在線,這樣就存在被黑客攻擊的風險;於是硬件錢包作為常年離線保存,更多稱之為冷錢包,即離線保存。

但是硬件錢包往往需要購置單獨的硬件設備,所以在成本上會付出更多,同時使用的便利性也不如熱錢包,因為實時在線可用。當然也有使用優盤來自己制作硬件錢包的,一方面制作過程比較繁瑣,同時每次轉賬支出時會比較繁瑣,適用於比較有基礎的人士。 

優點:

安全,私鑰不觸網,黑客無法通網絡攻擊。另外設備都有 PIN 碼保護,即使在物理環境中設備被盜走,也無法打開你的錢包;

易備份,設備在初始化配置的時候會生成助記詞(一般為 12 個或者 24 個單詞),而助記詞就是你私鑰的備份,當你的設備丟失或者損壞以后,可以夠買新的設備然后通過助記詞來恢復私鑰;

多幣種同時管理,現在絕大多數的硬件錢包,不僅僅可以管理比特幣,像萊特幣、以太坊、比特現金等數字貨幣都可以同時管理。

缺點:

不免費,你要為硬件付費;

無法獨立使用,硬件錢包都是隔絕網絡的,所以需要配合聯網的客戶端(Chrome
插件、桌面客戶端、手機客戶端等)來完成收幣和發幣。不過為了安全犧牲一些方便些也是值得的,畢竟一個比特幣 8000 刀,丟半個都疼。 

【區塊鏈錢包實現技術原理】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM