• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 區塊鏈生態 查看內容
    • 100394
    • 0
    • 分享到

    火幣區塊鏈產業專題報告:錢包篇

    2018-8-8 15:40

    來源: 火幣研究院

    數字資產錢包技術實現原理



    第三章 數字資產錢包技術實現原理


    3.1技術總覽


    數字資產錢包技術實現主要包含三個部分:1.錢包自身設計,如何生成助記詞,keystore和密碼等;2.私鑰、公鑰和地址產生的方法;3.錢包提供商遠程調用各公鏈RPC接口設計;如下圖所示,可總體概括數字資產錢包實現的技術流程:

    眾所周知,私鑰為一串無規律字符串,非常不便于記憶,使用更是不方便,所以從錢包設計的角度,為簡化操作同時又不失安全性,就出現了助記詞的方法。一般情況下,助記詞由一些單詞組成,只要記住這些單詞,按照順序在錢包中輸入,就能打開錢包,下文將詳細闡述其中的原理和方法。

    根據密鑰之間是否有關聯可把錢包分為兩類:


    非確定性錢包(nondeterministic wallet):每個密鑰都是從隨機數獨立生成,密鑰彼此之間無關聯,這種錢包也被稱為“Just a Bunch Of Keys(一堆密鑰)”,簡稱JBOK錢包。


    確定性錢包(deterministic wallet):所有密鑰都是從一個主密鑰派生出來,這個密鑰即為種子(Seed)。該類型錢包中所有密鑰都相互關聯,通過原始種子可以找到所有密鑰。確定性錢包中使用了很多不同的密鑰推導方法,最常用的是使用樹狀結構,稱為分級確定性錢包或者HD (hierarchical deterministic)錢包。


    比特幣錢包(Bitcoin Core)生成密鑰對之間沒有直接關聯,屬于nondeterministic wallet,這種類型的錢包如果想備份導入是比較麻煩的,用戶必須逐個操作錢包中的私鑰和對應地址,如下圖包含的為松散結構的隨機密鑰集合的非確定性錢包:



    Deterministic wallet基于BIP32(Bitcoin Improvement Proposal32)/BIP39/BIP44標準實現,通過一個共同的種子維護n多私鑰,種子推導私鑰采用不可逆哈希算法,在需要備份錢包私鑰時,只備份這個種子即可(大多數情況下的種子是通過BIP44生成了助記詞,方便抄寫),在支持BIP32,BIP39,BIP44標準的錢包只需導入助記詞即可導入全部的私鑰,如下圖種子派生密鑰的確定性錢包:



    上面提到了BIP32,BIP39,BIP44標準,概括來說BIP32標準定義了種子使用HMAC-SHA512生成根私鑰,并導出子私鑰,這是HD錢包的主要標準;BIP39 標準定義了錢包助記詞和種子生成規則; BIP44標準定義了節點布局,用于多幣種和多賬戶錢包;除此之外,還有BIP43標準用于定義多用途HD錢包結構。具體可以前往https://github.com/bitcoin/bips學習。


    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频