日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MOAC区块链助记词

發(fā)布時(shí)間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MOAC区块链助记词 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

1.什么是助記詞

?

擁有數(shù)字貨幣資產(chǎn)的人都知道,私鑰的備份是非常重要的,有私鑰就擁有該私鑰對(duì)應(yīng)賬戶上的所有資產(chǎn)。一般來說私鑰都有 256 位,以 64 個(gè)字母數(shù)字構(gòu)成的 16 進(jìn)制字符串表示。直接抄錄這 64 個(gè)字母數(shù)字是很容易搞錯(cuò)的。

?

助記詞是明文私鑰的另一種表現(xiàn)形式, 最早是由BIP39提案提出, 其目的是為了幫助用戶記憶復(fù)雜的私鑰 (64位的哈希值)。助記詞一般由12、15、18、21、24個(gè)單詞構(gòu)成, 這些單詞都取自一個(gè)固定詞庫(kù), 其生成順序也是按照一定算法而來, 所以用戶沒必要擔(dān)心隨便輸入 12 個(gè)單詞就會(huì)生成一個(gè)地址。

?

雖然助記詞和 Keystore 都可以作為私鑰的另一種表現(xiàn)形式, 但與 Keystore 不同的是, 助記詞是未經(jīng)加密的私鑰, 沒有任何安全性可言, 任何人得到了你的助記詞, 可以不費(fèi)吹灰之力的奪走你的資產(chǎn)。

?

2.BIP

?

要弄清楚助記詞與私鑰的關(guān)系,得清楚BIP協(xié)議,是Bitcoin Improvement Proposals的縮寫,意思是Bitcoin 的改進(jìn)建議,用于提出 Bitcoin 的新功能或改進(jìn)措施。BIP協(xié)議衍生了很多的版本,主要有BIP32、BIP39、BIP44。

?

BIP32

?

BIP32是 HD錢包的核心提案,通過種子來生成主私鑰,然后派生海量的子私鑰和地址,種子是一串很長(zhǎng)的隨機(jī)數(shù)。

?

BIP39

?

由于種子是一串很長(zhǎng)的隨機(jī)數(shù),不利于記錄,所以我們用算法將種子轉(zhuǎn)化為一串12 ~ 24個(gè)的單詞,方便保存記錄,這就是BIP39,它擴(kuò)展了 HD錢包種子的生成算法。

?

BIP44

?

BIP44 是在 BIP32 和 BIP43 的基礎(chǔ)上增加多幣種,提出的層次結(jié)構(gòu)非常全面,它允許處理多個(gè)幣種,多個(gè)帳戶,每個(gè)帳戶有數(shù)百萬個(gè)地址。

?

在BIP32路徑中定義以下5個(gè)級(jí)別:

m/purpse'/coin_type'/account'/change/address_index

?

purpose:在BIP43之后建議將常數(shù)設(shè)置為44'。表示根據(jù)BIP44規(guī)范使用該節(jié)點(diǎn)的子樹。

?

Coin_type:幣種,代表一個(gè)主節(jié)點(diǎn)(種子)可用于無限數(shù)量的獨(dú)立加密幣,如比特幣,Litecoin或Namecoin。此級(jí)別為每個(gè)加密幣創(chuàng)建一個(gè)單獨(dú)的子樹,避免重用已經(jīng)在其它鏈上存在的地址。開發(fā)人員可以為他們的項(xiàng)目注冊(cè)未使用的號(hào)碼。

?

Account:賬戶,此級(jí)別為了設(shè)置獨(dú)立的用戶身份可以將所有幣種放在一個(gè)的帳戶中,從0開始按順序遞增。

?

Change:常量0用于外部鏈,常量1用于內(nèi)部鏈,外部鏈用于錢包在外部用于接收和付款。內(nèi)部鏈用于在錢包外部不可見的地址,如返回交易變更。

?

Address_index:地址索引,按順序遞增的方式從索引0開始編號(hào)。

?

BIP44的規(guī)則使得 HD錢包非常強(qiáng)大,用戶只需要保存一個(gè)種子,就能控制所有幣種,所有賬戶的錢包,因此由BIP39 生成的助記詞非常重要,所以一定安全妥善保管,那么會(huì)不會(huì)被破解呢?如果一個(gè) HD 錢包助記詞是 12 個(gè)單詞,一共有 2048 個(gè)單詞可能性,那么隨機(jī)的生成的助記詞所有可能性大概是5e+39,因此幾乎不可能被破解。

?

HD錢包

?

通過BIP協(xié)議生成賬號(hào)的錢包叫做HD錢包。這個(gè)HD錢包,并不是Hardware Wallet硬件錢包,這里的 HD 是Hierarchical Deterministic的縮寫,意思是分層確定性錢包 。

?

以太坊對(duì)BIP的支持

BIP是用于提出 Bitcoin 的新功能或改進(jìn)措施,那么對(duì)于以太坊來說如何支持呢?

以太坊在EIPs/issues/85中討論的結(jié)果,也采用了 BIP32 的做法,提議 HD 路徑為 :m/44'/60'/0'/0/n,n 是第 n 次生成地址。

?

3.助記詞到私鑰的步驟

?

3.1 從熵到助記詞

隨機(jī)生成一個(gè)128到258位的數(shù)字,叫做熵; 熵通過SHA256哈希得一個(gè)值,取前面的幾位(熵長(zhǎng)/32),記為y; 熵和y組成一個(gè)新的序列,將新序列以11位為一部分,已經(jīng)預(yù)先定義2048個(gè)單詞的字典做對(duì)應(yīng); 生成的有順序的單詞組就是助記詞。

?

3.2 從助記詞生成種子

助記詞表示長(zhǎng)度為128至256位的熵。?通過使用密鑰延伸函數(shù)PBKDF2,熵被用于導(dǎo)出較長(zhǎng)的(512位)種子。

?

PBKDF2的基本原理是通過一個(gè)偽隨機(jī)函數(shù)(例如HMAC函數(shù)),把明文和一個(gè)鹽值作為輸入?yún)?shù),然后重復(fù)進(jìn)行運(yùn)算,并最終產(chǎn)生密鑰。如果重復(fù)的次數(shù)足夠大,破解的成本就會(huì)變得很高。而鹽值的添加也會(huì)增加“彩虹表”攻擊的難度。

?

比特幣錢包中,PBKDF2函數(shù)的第一個(gè)參數(shù)是助記詞,第二個(gè)參數(shù)鹽,由字符串常數(shù)“助記詞”與可選的用戶提供的密碼字符串連接組成。使用HMAC-SHA512算法,使用2048次哈希來延伸助記符和鹽參數(shù),產(chǎn)生一個(gè)512位的值作為其最終輸出。?這個(gè)512位的值就是種子。

?

3.3 從種子到母密鑰

512位分成平均分成兩部分,左邊的256位為母私鑰,右邊的256位為鏈碼。母私鑰、鏈碼和索引號(hào),CKD(child key derivation)函數(shù)去從母密鑰衍生出子密鑰。

?

3.4 從母密鑰到子密鑰

母密鑰、鏈碼、索引合并在一起并且用HMAC-SHA512函數(shù)散列之后可以產(chǎn)生512位的散列。所得的散列可被拆分為兩部分。散列右半部分的256位產(chǎn)出可以給子鏈當(dāng)鏈碼。左半部分256位散列以及索引碼被加載在母私鑰上來衍生子私鑰。在圖中,我們看到這個(gè)說明——索引集被設(shè)為0去生產(chǎn)母密鑰的第0個(gè)子密鑰(第一個(gè)通過索 引)。

?

3.5 擴(kuò)展密鑰

母密鑰和鏈碼結(jié)合叫做擴(kuò)展密鑰,擁有擴(kuò)展私鑰可以推導(dǎo)出子私鑰,擴(kuò)展公鑰可以推導(dǎo)出子公鑰。擁有擴(kuò)展公鑰就可以推導(dǎo)出子公鑰,在服務(wù)器不需要母私鑰也可以,這樣就更安全更方便。但是還有一個(gè)問題,那就是擴(kuò)展公鑰包含有鏈碼,如果子私鑰被知道或者被泄漏的話,鏈碼就可以被用來衍生所有的其他子私鑰。簡(jiǎn)單地泄露的私鑰以及一個(gè)母鏈碼,可以暴露所有的子密鑰。更糟糕的是,子私鑰與母鏈碼可以用來推斷母私鑰。

基本流程見下圖:

?

?

4.生成助記詞

生成不同個(gè)數(shù)的助記詞代碼:

?

運(yùn)行結(jié)果:

?

5.助記詞編解碼

5.1 編碼

運(yùn)行結(jié)果:

?

5.2 解碼

?

運(yùn)行結(jié)果:

?

5.3 驗(yàn)證助記詞

運(yùn)行結(jié)果:

?

6.生成隨機(jī)數(shù)種子

?

運(yùn)行結(jié)果:

?

這里是個(gè)異步過程,因此代碼修改為:

運(yùn)行結(jié)果:

?

7.生成私鑰

?

運(yùn)行結(jié)果:

?

總結(jié)

以上是生活随笔為你收集整理的MOAC区块链助记词的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。