摘要:來做一個詳細的介紹協議協議原英文地址地址定義簡稱,是一個系統可以從單一個產生一樹狀結構儲存多組私鑰和公鑰。第二層的特指幣種并且允許多元貨幣錢包中的貨幣在第二個層級下有自己的亞樹狀結構。每個賬戶都是它自己亞樹的根。
我們知道HD(分層確定性)錢包,基于 BIP-32;多幣種和多帳戶錢包,基于 BIP-44;最近比原社區的錢包開發者對比原的BIP-32和BIP-44協議有疑問,所以我今天就專門整理了一下該協議的內容以及在比原中涉及的代碼。來做一個詳細的介紹!
BIP-32協議 BIP32協議原英文地址:地址:https://github.com/bitcoin/bi...
BIP32:定義 Hierarchical Deterministic wallet (簡稱 “HD Wallet”),是一個系統可以從單一個 seed 產生一樹狀結構儲存多組 keypairs(私鑰和公鑰)。好處是可以方便的備份、轉移到其他相容裝置(因為都只需要 seed),以及分層的權限控制等。具體的內容細節可以翻閱文檔。
那么下面我列出了在比原鏈中BIP-32協議的具體實現,具體的實現的代碼邏輯可以在:https://github.com/Bytom/byto... 找到下面的方法。研究代碼實現過程.
比原鏈中BIP32協議的代碼實現: BIP-44協議 BIP-44原英文協議地址地址: https://github.com/bitcoin/bi...
BIP-44協議是基于BIP-0032和BIP-0043中描述的目的方案中描述的算法定義確定性錢包的邏輯層級。賦予樹狀結構中的各層特殊的意義。讓同一個 seed 可以支援多幣種、多帳戶等。各層定義如下:
m / purpose" / coin_type" / account" / change / address_index //purporse": 固定值44", 代表是BIP44 //coin_type": 這個代表的是幣種, 可以兼容很多種幣, 比如BTC是0", ETH是60,BTM是99" //btc一般是 m/44"/0"/0"/0 //eth一般是 m/44"/60"/0"/0 //btm一般是 m/44"/99"/0"/0
HD(分層確定性)錢包樹狀結構提供了極大的靈活性。每一個母擴展密鑰有 40 億個子密鑰:20 億個常規子密鑰和 20 億個強化子密鑰。而每個子密鑰又會有 40 億個子密鑰并 且以此類推。只要你愿意,這個樹結構可以無限類推到無窮代。但是,又由于有了這個靈活性,對無限的樹狀結構進行導航就變得異常困難。尤其是對于在不同的HD錢包之間進行轉移交易,因為內部組織到內部分支以及亞分支的可能性是無窮的.
BIP-43 提出使用第一個強化子索引作為特殊的標識符表示 樹狀結構的“purpose”。基于BIP-43,HD(分層確定性)錢包應該使用且只用第一層級的樹的分 支,而且有索引號碼去識別結構并且有命名空間來定義剩余的樹的目的地。舉個例子,HD(分層確定性)錢包只使用分支 m/i’/是為了表明那個被索引號“i”定義的特殊為目地。
在BIP-43 標準下,為了延長的那個特殊規范,BIP-44提議了多賬戶結構作為 “purpose”。所有遵循BIP-44的HD(分層確定性)錢包依據只使用樹的第一個分支的要求而被定 義:m/44’/。 BIP-44 指定了包含5個預定義樹狀層級的結構:
完整注冊數字資產類型列表: https://github.com/satoshilab...
被HD(分層確定性)錢包衍生的可用的地址是第四層級的子級,就是第五層級的樹的“address_index”。比如,第三個層級的主賬戶收到比原支付的地址就是 M/44’/99’/0’/0/2。
下面介紹一下比原鏈中BIP-44協議的實現,我們在 :https://github.com/Bytom/byto... 找到下面的方法。可以研究具體的代碼實現過程。
比原鏈中BIP44協議的實現: 比原中用BIP-44生成錢包地址在項目中找到 CreateAddress 方法,這個方法會用到BIP-44協議來創建地址:
比原現在會默認使用BIP-44協議,所以在下面的switch語句中,會默認到BIP0044.
到此BIP-32協議和BIP-44協議已經介紹完,并且在比原的代碼中的實現也已經列出來了。感興趣的小伙伴可以讀代碼研究詳細的實現過程,如果有什么問題,歡迎在比原技術社區提問!
比原項目倉庫:
Github地址:https://github.com/Bytom/bytom
Gitee地址:https://gitee.com/BytomBlockc...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24567.html
摘要:當使用構建完成一筆交易并簽名后,若沒有全節點的幫助,也需要自己實現網絡協議將交易廣播到其他節點。其中,第一個依賴是的封裝,可用于查詢可用的以及提交交易第二個依賴用于構建交易以及對交易進行離線簽名。 嚴格來說,tx-signer并不屬于SDK,它是bytomd中構建交易、對交易簽名兩大模塊的java實現版。因此,若想用tx-signer對交易進行離線簽名,需要由你在本地保管好自己的私鑰。...
摘要:本文首發于深入淺出區塊鏈社區原文鏈接理解開發錢包涉及的原文已更新,請讀者前往原文閱讀如果你還在被錢包搞的一頭霧水,來看看這邊文章吧。所以我們要開發以太坊錢包同樣需要對比特幣的錢包提案有所了解。 本文首發于深入淺出區塊鏈社區原文鏈接:理解開發HD錢包涉及的BIP32、BIP44、BIP39原文已更新,請讀者前往原文閱讀 如果你還在被HD錢包、BIP32、BIP44、BIP39搞的一頭霧水...
摘要:本文首發于深入淺出區塊鏈社區原文鏈接理解開發錢包涉及的原文已更新,請讀者前往原文閱讀如果你還在被錢包搞的一頭霧水,來看看這邊文章吧。所以我們要開發以太坊錢包同樣需要對比特幣的錢包提案有所了解。 本文首發于深入淺出區塊鏈社區原文鏈接:理解開發HD錢包涉及的BIP32、BIP44、BIP39原文已更新,請讀者前往原文閱讀 如果你還在被HD錢包、BIP32、BIP44、BIP39搞的一頭霧水...
摘要:錢包概述中文可以翻譯為分層錢包,錢包可以在不需要私鑰情況下運用橢圓曲線算法生成大量公鑰。概念是由提出,解決難以抄寫記憶問題,規范各個幣種路徑規范達成業界共識。這個規范的目的是設定一個分層錢包標準,能在不通客戶之間交換。 前序:相信各位區塊鏈大佬,對公鑰和私鑰概念已經爛熟于心,對私鑰重要性也諱莫如深。私鑰可以給交易簽名,有了私鑰就有了全部權限,但原始私鑰沒什么規律可循,特別不放記憶轉移,...
摘要:本文首發于深入淺出區塊鏈社區原文鏈接以太坊安卓錢包系列通過助記詞創建賬號原文已更新,請讀者前往原文閱讀上周我開源了一款錢包,反映很好,一周時間不到已經快到。的功能和類似,它是比特幣協議的實現,他實現了及相關協議。 本文首發于深入淺出區塊鏈社區原文鏈接:以太坊(安卓)錢包系列1 - 通過助記詞創建賬號原文已更新,請讀者前往原文閱讀 上周我開源了一款錢包,反映很好,一周時間不到已經快到10...
閱讀 768·2021-11-23 09:51
閱讀 834·2021-11-23 09:51
閱讀 2502·2021-11-15 18:01
閱讀 3861·2021-10-11 11:07
閱讀 2396·2021-09-22 15:30
閱讀 1074·2021-09-22 14:59
閱讀 1556·2019-08-30 15:55
閱讀 1752·2019-08-30 15:52