- +1
Comunion 區(qū)塊鏈深度學(xué)習(xí)系列|挖礦和錢包原理
本系列內(nèi)容包含:基本概念及原理、密碼學(xué)、共識算法、錢包及節(jié)點原理、挖礦原理及實現(xiàn)。
挖礦
構(gòu)成區(qū)塊頭的因素都產(chǎn)生以后,礦工會在Nonce中隨機填入一個值,比如下圖中Nonce=14202,接著對區(qū)塊頭進行哈希運算,會產(chǎn)生一個哈希值,這個哈希值會和區(qū)塊頭中的難度值進行比較。
當(dāng)計算哈希比難度值大的時候,系統(tǒng)就會判定不符合要求,此時需要返回繼續(xù)增加Nonce值,重新計算哈希值,以此不斷重復(fù)循環(huán)計算,直到計算哈希小于難度值,才會進行下一步,這就是挖出了礦。
挖出礦之后,系統(tǒng)會將Nonce值固定到區(qū)塊頭中,并將交易廣播到全網(wǎng)。

其實這里有一個問題是,既然第一個Nonce值不行的話,那為什么所有的礦工一般都是通過字征法,也就是一個一個數(shù)字相加的方式去運算呢?
有的人會認(rèn)為,既然Nonce值是隨機的,那為什么填入的時候不能隨機填入呢,比如說1不行,就填100;100不行,就填500;500不行,就填2000……這樣概率是不是應(yīng)該更大一些?
其實并不會,因為哈希運算的時候,即使Nonce值只改變了一個數(shù)字,但是其哈希計算結(jié)果的區(qū)別卻非常大。
也就是說,隨機碰撞去試Nonce值的計算哈希概率并不會比順序嘗試的概率大,并且還會增加礦機設(shè)計的難度。
所以,現(xiàn)在挖礦一般都是通過給定計算范圍的方式去計算Nonce值。
比如上圖中,14202不行,那就14203……一直到12405,這時區(qū)塊哈希小于難度值,這時也就是挖出了礦,找到了可用區(qū)塊,最后將結(jié)果廣播給全網(wǎng)。
需要說明的是,礦工挖出符合難度要求的區(qū)塊之后,會將這個區(qū)塊廣播給網(wǎng)絡(luò)中的其他節(jié)點,其他節(jié)點會驗證新收到的區(qū)塊是否符合難度要求。并且會將區(qū)塊中包含的所有交易重新驗證一遍,包括交易是否合法,交易輸入和簽名是否合法等。
如果驗證沒有問題,就會將這個區(qū)塊添加到自己本地節(jié)點的賬簿中,也就是填到鏈上,此時一筆交易完成。
數(shù)字錢包
錢包最重要的是私鑰,因為有私鑰就可以得到交易地址,并且可以通過鏈上去查詢到與交易地址相關(guān)的所有記錄以及余額。
如果私鑰丟失或者被盜了,那這個錢包就再也找不回來了。
一個錢包中也可以有多個私鑰,這取決于選用錢包的不同。
我們分析一些不同種類的錢包
不確定性錢包,這種錢包中的每個私鑰之間沒有關(guān)聯(lián)性。備份錢包的時候,需要對每個私鑰進行備份。

由于私鑰是由很長的一串無序十六進制字符串構(gòu)成的,只備份一個就很容易出錯,如果再備份很多個,其這個工作量是巨大的,并且人工備份的過程中出錯的概率也會上升,一旦備份丟失或者人工記錄錯誤,這個錢包就無法找回。
不確定性錢包由于其管理難度的原因,往往容量是有限的,即私鑰和地址的產(chǎn)生是有限的。
確定性錢包,這種錢包中所有的私鑰是由一個主私鑰按照一定規(guī)則衍生得出。備份錢包的時候,只需要把主私鑰備份下來,并且把衍生規(guī)則記錄下來。

這種錢包可以很順利的通過主私鑰種子,拿回錢包中包含的所有私鑰和地址。其中每一個私鑰是一個根,每個私鑰管理下一個,當(dāng)一個私鑰泄露的話,只要知道規(guī)則,相連的一串私鑰都會泄露,這也導(dǎo)致確定性錢包存在一定的不安全性。
錢包備份的時候,不是十六進制字符串的形式,而是采用12個或者24個助記詞(單詞或漢字)的形式,展現(xiàn)給使用者,使用者只需要備份這些助記詞就可以了。當(dāng)在一個新的錢包中重新導(dǎo)入備份的助記詞,就可以找回之前使用的錢包。
由于確定性錢包這種確定性的關(guān)系,所以可以衍生出無數(shù)的私鑰,所以錢包中的地址也是無數(shù)多個的。
分層確定性錢包,這種所有私鑰由一個主私鑰按照一定規(guī)則衍生得出,但是會分裂成很多子私鑰,子私鑰分裂成孫私鑰,以此類推會產(chǎn)生無限多私鑰。這樣即使某一個子私鑰泄露了,也不會影響其他子私鑰的安全。

這種錢包是現(xiàn)在實際應(yīng)用最多的,可以用一個主私鑰管理整個錢包,然后不同的子私鑰管理不同的數(shù)字貨幣。即使某一個鏈上的資產(chǎn)泄露了,也不會影響其他錢包的資產(chǎn)。
本文為澎湃號作者或機構(gòu)在澎湃新聞上傳并發(fā)布,僅代表該作者或機構(gòu)觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發(fā)布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。





- 報料熱線: 021-962866
- 報料郵箱: news@thepaper.cn
互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006
增值電信業(yè)務(wù)經(jīng)營許可證:滬B2-2017116
? 2014-2026 上海東方報業(yè)有限公司




