One More生態之本地錢包
本地錢包
錢包用來存錢的,在區塊鏈中,我們的數字資產都會對應到一個账戶地址上, 只有擁有账戶的鑰匙(私鑰)才可以對資產進行消費(用私鑰對消費交易籤名)。
私鑰通過橢圓曲线生成公鑰, 公鑰通過哈希函數生成地址,這兩個過程都是單向的。
因此實際上,數字錢包實際是一個管理私鑰(生成、存儲、籤名)的工具,注意錢包並不保存資產,資產是在鏈上的。
one more 是去中心化錢包,账號祕鑰的管理,交易的籤名,都是在客戶端完成, 即私鑰相關的信息都是在用戶手中,錢包的开發者接觸不到私鑰信息。
創建账號
創建账號關鍵是生成一個私鑰, 私鑰是一個32個字節的數, 生成一個私鑰在本質上在1到2^256之間選一個數字。因此生成密鑰的第一步也是最重要的一步,是要找到足夠安全的熵源,即隨機性來源,只要選取的結果是不可預測或不可重復的,那么選取數字的具體方法並不重要。
比如可以擲硬幣256次,用紙和筆記錄正反面並轉換為0和1,隨機得到的256位二進制數字可作為錢包的私鑰。
從編程的角度來看,一般是通過在一個密碼學安全的隨機源(不建議大家自己去寫一個隨機數)中取出一長串隨機字節,對其使用SHA256哈希算法進行運算,這樣就可以方便地產生一個256位的數字。
實際過程需要比較下是否小於n-1(n = 1.158 * 10^77, 略小於2^256),我們就有了一個合適的私鑰。否則,我們就用另一個隨機數再重復一次。這樣得到的私鑰就可以根據上面的方法進一步生成公鑰及地址。
BIP32
錢包也是一個私鑰的容器,按照上面的方法,我們可以生成一堆私鑰(一個人也有很多账號的需求,可以更好保護隱私),而每個私鑰都需要備份就特別麻煩的。
為了解決這種麻煩,就有了BIP32 提議: 根據一個隨機數種子通過分層確定性推導的方式得到n個私鑰,這樣保存的時候,只需要保存一個種子就可以,私鑰可以推導出來,如圖:
上圖中的孫祕鑰就可以用來籤發交易
來分析下這個分層推導的過程,第一步推導主祕鑰的過程:
根種子輸入到HMAC-SHA512算法中就可以得到一個可用來創造主私鑰(m) 和 一個主鏈編碼( a master chain code)這一步生成的祕鑰(由私鑰或公鑰)及主鏈編碼再加上一個索引號,將作為HMAC-SHA512算法的輸入繼續衍生出下一層的私鑰及鏈編碼,如下圖:
衍生推導的方案其實有兩個:一個用父私鑰推導(稱為強化衍生方程),一個用父公鑰推導。同時為了區分這兩種不同的衍生,在索引號也進行了區分,索引號小於2^31用於常規衍生,而2^31到2^32-1之間用於強化衍生,為了方便表示索引號i',表示2^31+i。
因此增加索引(水平擴展)及 通過子祕鑰向下一層(深度擴展)可以無限生成私鑰。
注意, 這個推導過程是確定(相同的輸入,總是有相同的輸出)也是單向的,子密鑰不能推導出同層級的兄弟密鑰,也不能推出父密鑰。如果沒有子鏈碼也不能推導出孫密鑰。現在我們已經對分層推導有了認識。
一句話概括下BIP32就是:為了避免管理一堆私鑰的麻煩提出的分層推導方案。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
XRP 漲至 7.5 美元?分析師告訴 XRP 大軍為純粹的煙火做好准備!
加密貨幣分析師 EGRAG 表示,XRP 即將迎來關鍵時刻,價格可能大幅上漲,這取決於能否突破關鍵...
今晚ETH迎來暴漲時代 op、arb、metis等以太坊二層項目能否跑出百倍幣?
北京時間7月23日晚上美股开盤後 ETH 的ETF开始交易。ETH的裏程碑啊,新的時代开啓。突破前...
Mt Gox 轉移 28 億美元比特幣 加密貨幣下跌 ETH ETF 提前發行
2014 年倒閉的臭名昭著的比特幣交易所 Mt Gox 已向債權人轉移了大量比特幣 (BTC),作...