最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

當前位置:主頁 > 區(qū)塊鏈 > 錢包知識 > hd錢包實現(xiàn)原理

區(qū)塊鏈錢包-hd錢包的奧秘與實現(xiàn)原理

2025-03-05 01:37:16 | 來源: | 作者:佚名
HD是Hierarchical-Deterministic(分層確定性)的縮寫,這個概念是在BIP32中被首次提出,這里的分層可以理解成,一個大公司擁有一個種子,它可以為各個子部門派生子私鑰,各個子部門又可以給子子部門派生子子私鑰

錢包發(fā)展

在比特幣早期,中本聰就提出了每次交易使用一個地址這個概念,即假設(shè)你A地址上有100塊,那么你向B地址轉(zhuǎn)賬20塊之后,你剩下的80塊會轉(zhuǎn)入C地址,A地址徹底棄用,這樣意味著A私鑰也徹底棄用了。在早期的非確定性錢包,會一次性為用戶生成100個私鑰/地址對,使用完再繼續(xù)生成,可想而知,這樣管理資產(chǎn)非常麻煩。在這種背景下,有人提出了確定性錢包的概念,只要有一個種子,就能派生出海量的私鑰/地址對,妥當保管好種子,就能完全掌控整個派生樹,而HD錢包就是目前最常用的確定性錢包模型。
HD是Hierarchical-Deterministic(分層確定性)的縮寫,這個概念是在BIP32中被首次提出。這里的分層可以理解成,一個大公司擁有一個種子,它可以為各個子部門派生子私鑰,各個子部門又可以給子子部門派生子子私鑰…

這樣做有很多好處:
○ 樹狀特征非常適用于有組織結(jié)構(gòu)的公司使用
○ 每個父能看到自己派生的子的財務(wù)流向,而子不能看到父
○ 能夠在不需知道私鑰的前提下生成大量的公鑰,非常適用于只負責收款的服務(wù)

Tips!

principle of avoiding address reuse: 提倡避免地址重復(fù)使用,當數(shù)字貨幣地址已經(jīng)發(fā)生過一次轉(zhuǎn)賬就存在私鑰泄漏的可能性。
BIP: Bitcoin Improvement Proposals(比特幣改進提案),比特幣是開源項目,所有人都可以給核心開發(fā)者提出建議。詳見BIP項目地址:bips

種子與助記詞

本質(zhì)上,種子是一個數(shù)字,不方便記憶。
在BIP39中,提出了助記詞方案來試圖解決種子的存放問題。它的核心是通過隨機生成 12 ~ 24 個容易記住便于抄錄的單詞,再由該單詞序列通過 PBKDF2 與 HMAC-SHA512 函數(shù)創(chuàng)建出隨機種子作為 BIP32 的種子。它有幾個特性:

○ 規(guī)定熵的位數(shù)必須是 32 的整數(shù)倍,所以熵的長度取值位 128 到 256 之間取 32 的整數(shù)倍的值,分別為 128, 160, 192, 224, 256;
○ 校驗和的長度為熵的長度/32 位, 所以校驗和長度可為 4,5,6,7,8 位;
○ 助記詞庫有 2048 個詞,用 11 位可全部定位詞庫中所有的詞,作為詞的索引,故一個詞用 11 位表示,助記詞的個數(shù)可為 (熵+校驗和)/11,值為 12,15,18,21,24。
作為創(chuàng)建錢包的第一步,下面將以目前常用的128強度為例,簡單闡述下生成助記詞的過程:
1. 隨機生成一個16字節(jié)的熵;
2. 對熵進行哈希計算,得到一個長度為32的數(shù)組;
3. 取熵的比特位,得到一個長度為128的數(shù)組;
4. 將熵hash前4比特作為校驗位放于熵比特數(shù)組之后,得到一個長度為132的數(shù)組;
5. 以長度11切割第4步得到的數(shù)組,并轉(zhuǎn)為10進制,得到12個數(shù);
6. 以數(shù)字為序號,從助記詞庫取出對應(yīng)的單詞,得到助記詞。

以下為一個示例實現(xiàn):

在得到助記詞之后,根據(jù)BIP39,我們將使用PBKDF2函數(shù)推算出根種子,其約定的參數(shù)如下:
1. 將助記詞序列作為密碼
2. “mnemonic” + passphrase 作為鹽
3. 以 2048 為重復(fù)計算的次數(shù)
4. 以 HMAC-SHA512 為隨機算法
5. 期望得到長度為512位(64字節(jié))的密鑰作為種子

主密鑰與主鏈碼

得到種子之后,我們需要通過種子推導出主密鑰 (master key) 和主鏈碼 (master chain code)。
根種子通過不可逆 HMAC-SHA512 算法推算出 512 位的哈希串,左 256 位是 Master Private key(m), 右 256 位是 master chain code, 通過 m 結(jié)合推導公鑰的橢圓曲線算法能推導出與之對應(yīng)的 264 位 master public Key (M)。chain code 作為推導下級密鑰的熵。

Tips!

什么是擴展密鑰?
密鑰和鏈碼的結(jié)合統(tǒng)稱為擴展密鑰 (Extended keys)。即256位的密鑰和256位的鏈碼串聯(lián)起來的512位就是擴展密鑰。
包含私鑰的擴展密鑰用以推導子私鑰,從子私鑰又可推導對應(yīng)的公鑰和比特幣地址。
包含公鑰的擴展密鑰用以推導子公鑰。
擴展密鑰使用Base58Check算法加上特定的前綴編碼,編碼得到的包含私鑰的前綴為xprv,包含公鑰的擴展密鑰前綴為xpub,相比比特幣的公私鑰,擴展密鑰編碼之后得到的長度為512或513位。

路徑

當獲得了主密鑰和主鏈碼之后,我們需要設(shè)計一套規(guī)則來推導子密鑰和子鏈碼以供交易使用。其中有個重要的概念就是路徑。
路徑是一套索引規(guī)范?,F(xiàn)在我們假設(shè)整個HD錢包是一顆樹,將主密鑰視為樹干,子私鑰視為葉子,那么路徑就可以視為葉子的坐標,可以準確的描述出葉子相對于樹干的位置。
在比特幣社區(qū)的BIP44協(xié)議中,提出了目前常用的5層路徑建議,如下:
m/purpse’/coin_type’/account’/change/address_index每一層都有特別的含義,分別是:
1. purpse:目前固定為44’(或者0x8000002C),表示遵守BIP44協(xié)議。該層使用硬化衍生。
2. coin_type:幣種類型,使得一個主私鑰可以管理多幣種。其中比特幣是0。該層使用硬化衍生。
3. account:賬戶,從0開始按順序嚴格遞增。它將密鑰空間拆分為獨立的賬戶身份,從而使得各個賬戶的資產(chǎn)永遠不會攪在一起。該層使用硬化衍生。
4. change:是否為找零地址。常數(shù)0代表對外地址,常數(shù)1代表內(nèi)部可見地址。在實際使用過程中,應(yīng)當將對外地址用于收款,內(nèi)部地址用于接收交易找零。該層使用正常衍生。
5. address_index:地址索引編號,從0開始按順序嚴格遞增。該層使用正常衍生。
例如:
○ 比特幣6號賬戶22號找零地址:m/44’/0’/6’/1/22
○ 以太坊0號賬戶0號非找零地址:m/44’/60’/0’/0/0
最初,設(shè)計者出于安全考慮引入了硬化衍生。正常衍生的索引號范圍為 [0x0, 0x7FFFFFFF],而硬化衍生的索引號范圍為 [0x80000000, 0xFFFFFFFF];硬化衍生的索引號太長,一般為了便于閱讀,都是會將索引號右上角加上撇號,譬如:0x80000000 記為 0’,0x80000001 記為 1’,以此類推。

Tips!

路徑是允許不完整的。比如:如果公司總部僅僅推導到m/44’/0’/0,并將該層的密鑰和鏈碼給了財務(wù)部,那么就相當于財務(wù)部擁有了0號賬戶的衍生權(quán)。財務(wù)部就可以獨立的用0/0、0/1、0/2…作為路徑去接著推導總部HD錢包這個分支的子密鑰。甚至可以將0號賬戶作為自己的主密鑰,重新構(gòu)建一個HD錢包。

增強擴展子密鑰推導

至此,我們已經(jīng)定義好了樹干和坐標,可以準確定位到每個枝頭,每片樹葉了。根據(jù)BIP32的HKD(hardened key derivation formula)函數(shù),結(jié)合父私鑰、父鏈碼和路徑,推導出增強子私鑰和增強子鏈碼。

總結(jié)

區(qū)塊鏈錢包-私鑰與地址

私鑰

私鑰(yuè)本質(zhì)上是一個256位隨機數(shù)。
那么什么是256位隨機數(shù)呢?首先256位是指由256個0或1組成,如:1001001010001...,其次隨機是指某一位上是0或1是隨機沒有規(guī)律的。舉個例子,A想獲得一個獨屬于自己的比特幣私鑰,那么他可以通過擲硬幣來生成,正面朝上是1,反面朝上是0,擲了256次之后,他得到了一個數(shù)字序列,即為A的私鑰。
看到這里,你可能會想,私鑰的規(guī)則也太隨意了吧,我隨便寫個數(shù),只要不超過最大值,就是一個私鑰?或者萬一別人隨機出了我的私鑰,不是可以把我的資產(chǎn)拿走嗎?
你想的沒錯,以上兩個問題的答案都是肯定的…
但是,即使私鑰只是一個數(shù)字,它仍然非常非常非常難以被破解!它的安全性來自于它包含的數(shù)字集合非常大,大到難以去窮盡所有數(shù)字,并進行一一驗證。即使存在客觀的重復(fù)的概率,但我們?nèi)匀豢梢苑Q私鑰在密碼學上是安全的。如果你仍然心存疑慮,那么我們可以感性的感受下:
○ 私鑰共有2^256個可能,近似于10??。
○ 到目前為止,人類可觀測的宇宙中的原子數(shù)約為10??;
○ “雙色球”一等獎的中獎概率是8×10ˉ?;
ok,我們現(xiàn)在知道了比特幣的安全來自于非常嚴格的隨機性,可以說我們選取的隨機算法的強度影響了我們資產(chǎn)的安全性。使用一個可能會被預(yù)測的隨機算法,不如擲硬幣…

Tips!

如前文所述,私鑰的本體就是一個數(shù)字,本身是不容易記憶和抄錄的。為了便于使用,大部分錢包會對私鑰進行編碼,方便用戶進行導入導出操作。目前主流的格式有HEX、WIF、WIF-compressed等。

地址

在傳統(tǒng)銀行用戶模型中,用戶需要賬號+密碼來操控自己的資產(chǎn)。而在比特幣體系中,資產(chǎn)其實是存在每個私鑰下的,用戶只需要私鑰即可以完全操控自己的資產(chǎn)。私鑰的隱私性太強,是不可能讓別人得知的,那么如何實現(xiàn)在不暴露自己私鑰的前提下,讓別人給自己轉(zhuǎn)賬呢?地址應(yīng)運而生。
通過橢圓曲線算法(ECDSA),私鑰可以計算出一個唯一且不可逆的公鑰, 公鑰通過特定的哈希計算得到公鑰哈希,在對公鑰哈希進行編碼,即可得到地址。簡單來說,因為公鑰本身太長了,不利于交易的進行,所以通過一些變換得到地址。地址就是公鑰的一種表現(xiàn)形式。

在比特幣體系中,生成一個地址的流程大致為:

可以看出,比特幣用于公開交易的地址是由公鑰進行一系列數(shù)學計算得來的。順理成章的,如果改變其中的哈希算法或者編碼方式,就可以得到一個不同的結(jié)果,也就是一個新地址!這個特性使得一個私鑰管理多種加密貨幣變?yōu)榭赡埽?br />○ A私鑰->A公鑰-比特幣地址算法->比特幣地址
○ A私鑰->A公鑰-以太坊地址算法->以太坊地址
○ …

Tips!

為什么比特幣地址要采用Base58編碼呢?與Base64的是,Base58去掉了幾個看起來可能會產(chǎn)生歧義的字母,如0(零)、O(大寫字母O)、I(大寫的字母i) 和 l(小寫的字母L),以及兩個影響雙擊選擇的字符,如/和+。在設(shè)計層面盡可能降低地址輸錯帶來的資金損失。

到此這篇關(guān)于區(qū)塊鏈錢包-hd錢包實現(xiàn)原理的文章就介紹到這了,更多相關(guān)hd錢包實現(xiàn)原理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

免責聲明:本文只為提供市場訊息,所有內(nèi)容及觀點僅供參考,不構(gòu)成投資建議,不代表本站觀點和立場。投資者應(yīng)自行決策與交易,對投資者交易形成的直接或間接損失,作者及本站將不承擔任何責任。!
Tag:HD錢包  

幣圈快訊

  • 日經(jīng)225指數(shù)日內(nèi)大跌4%現(xiàn)報62320.32點

    2026-07-28 08:34
    據(jù)Gate行情數(shù)據(jù)顯示,日經(jīng)225指數(shù)日內(nèi)大跌4%,現(xiàn)報62,320.32點。
  • ArthurHayes再次買入3298枚ETH7月15日以來累計增持7212.6枚

    2026-07-28 08:28
    據(jù)鏈上分析師余燼監(jiān)測,ArthurHayes2小時前繼續(xù)通過FalconX和GalaxyDigital,以場外交易方式花費632萬枚USDC買入3298枚ETH。自7月15日以來,ArthurHayes已累計花費1382萬枚USDC,買入7212.6枚ETH,平均買入價約1916美元。
  • SpaceX市值較高點蒸發(fā)逾1.2萬億美元相當于整家特斯拉

    2026-07-28 08:27
    SpaceX股價周一收報113.50美元,較6月歷史高點225.64美元下跌近50%,市值累計蒸發(fā)超過1.2萬億美元,幾乎等同于馬斯克旗下另一家公司特斯拉的完整市值。該股已連續(xù)16個交易日中有13日下跌。 期權(quán)市場上,當日看跌期權(quán)成交量超過看漲期權(quán),但前五大權(quán)利金交易中有4筆為中性或看漲策略。SpaceX將于下周發(fā)布上市后首份財報,隨后第二個完整交易日(8月6日)將迎來鎖定期解禁,投資者可出售最多9.115億股,占其合格持倉的20%。市場人士認為解禁沖擊或低于普遍擔憂,但對股價走勢仍構(gòu)成壓力。
  • 日經(jīng)指數(shù)下跌3%受芯片和金屬股拖累

    2026-07-28 08:18
    7月28日,繼隔夜美國科技股下跌后,日本股市早盤走低,日經(jīng)指數(shù)下跌3%。對伊朗沖突的不確定性也令市場承壓。芯片和金屬股領(lǐng)跌。愛德萬測試下跌8.0%,MitsuiKinzoku下跌6.1%。在沙特阿拉伯表示攔截了伊拉克境內(nèi)受伊朗支持的民兵向該國石油設(shè)施發(fā)射的無人機后,投資者正密切關(guān)注原油價格和中東局勢的發(fā)展。
  • HYPEETF資金流入加速表現(xiàn)優(yōu)于BTC、SOL和XRP同周期

    2026-07-28 08:17
    據(jù)灰度發(fā)布的研究數(shù)據(jù),按資產(chǎn)市值占比計算,HYPEETF的資金流入正在加速,相對表現(xiàn)超過BTC、ETH、SOL和XRP?;叶戎赋?,比特幣的流入最為持續(xù)穩(wěn)定,以太坊曾出現(xiàn)劇烈峰值,Solana和XRP在早期呈現(xiàn)健康流入,而HYPE在同生命周期階段的啟動表現(xiàn)優(yōu)于比特幣、Solana和XRP。
  • 查看更多
更多

熱門幣種

  • 幣種
    最新價格
    24H漲跌幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 63765.24¥ 431212.43
    -2.46%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 1892.01¥ 12794.71
    -3.2%
  • tether USDT 泰達幣

    USDT

    泰達幣

    $ 0.9991¥ 6.7564
    +0%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 566.1¥ 3828.25
    -1.54%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0008¥ 6.7679
    +0%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 1.066¥ 7.2088
    -4.19%
  • solana SOL Solana

    SOL

    Solana

    $ 74.1867¥ 501.68
    -3.21%
  • tron TRX 波場

    TRX

    波場

    $ 0.325¥ 2.1978
    -2.23%
  • hyperliquid HYPE Hyperliquid

    HYPE

    Hyperliquid

    $ 56.091¥ 379.31
    -5.96%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.070414¥ 0.4761
    -4.04%
磐安县| 拜泉县| 仁怀市| 湟中县| 鄂伦春自治旗| 盐城市| 东源县| 临清市| 华安县| 楚雄市| 乡宁县| 济源市| 石楼县| 临安市| 邹城市| 偃师市| 鄂州市| 浙江省| 禹城市| 农安县| 喀喇沁旗| 吉水县| 阳信县| 福清市| 龙胜| 宜黄县| 辽宁省| 芜湖县| 五寨县| 堆龙德庆县| 南皮县| 堆龙德庆县| 广元市| 皋兰县| 宽城| 金昌市| 陆丰市| 横峰县| 汉沽区| 姚安县| 博爱县|