之前我們已經(jīng)有過(guò)了解:區(qū)塊鏈技術(shù)是為了同步比特幣的賬本。那么,曠工是怎么記賬的呢?
繼續(xù)我們的比特村的故事。
首先我們了解幾個(gè)名詞
身份與簽名機(jī)制(公鑰加密系統(tǒng)):在這套機(jī)制下,任何人都使用代號(hào)交易,并通過(guò)保密章證明是代號(hào)本人操作,保密章之后可以被系統(tǒng)識(shí)別出來(lái)。
虛擬礦工組織(挖礦群體):曠工可以根據(jù)“挖礦”的績(jī)效獲得對(duì)應(yīng)的報(bào)酬。礦工可以隨時(shí)退出,也可以隨時(shí)有新的礦工加進(jìn)來(lái)。
建立初始賬本(創(chuàng)世塊):每個(gè)村民可以根據(jù)自己的黃金數(shù)量,從系統(tǒng)處獲得對(duì)應(yīng)的比特幣,以此作為比特幣賬本的第一頁(yè)。
接著說(shuō)說(shuō)比特幣交易的步驟
以老張付給老李10個(gè)比特幣為例:
1、為了支付10個(gè)比特幣,老張首先要詢(xún)問(wèn)老李的代號(hào),例如是“ABCDEFG”,同時(shí)老張也有一個(gè)代號(hào)比如是“HIJKLMN”,然后老張寫(xiě)一張支付的單子,簽上自己的保密章。
2、老李用系統(tǒng)掃描這個(gè)保密章,證實(shí)是“HIJKLMN”這個(gè)人(也就是老張)簽署的交易單,于是把這個(gè)交易單發(fā)給曠工。
3、曠工根據(jù)這個(gè)交易單,計(jì)算新的賬本。第一個(gè)算出來(lái)的曠工把更新后的賬本同步給所有曠工。
4、交易完成。

在這篇文章里,我們著重介紹整個(gè)系統(tǒng)中復(fù)雜性最高的地方——在第三個(gè)步驟里,曠工是怎么計(jì)算新的賬本的。
曠工的工具:
最新的賬本:每個(gè)曠工一開(kāi)始都有一本初始賬本,隨著交易的增多,每個(gè)曠工都需要及時(shí)更新最新的賬本。
空賬本紙:每個(gè)礦工都有一些空賬本紙方便記賬。按照規(guī)定的要求填入了內(nèi)容之后就可以生效。
編碼生成器(哈希函數(shù)):生成器會(huì)在賬簿紙的“本賬單編號(hào)”一欄自動(dòng)打印一串由“0”和“1”組成的編號(hào),共256個(gè)。
編號(hào)生成器有如下功能:
內(nèi)容相同的賬本紙生成的編號(hào)總是相同,但是如果內(nèi)容哪怕只改一個(gè)字符,編號(hào)就會(huì)面目全非
這個(gè)編號(hào)無(wú)法偽造。將一張賬本紙放入,機(jī)器會(huì)判定編號(hào)是否是有效,并且判定編號(hào)和內(nèi)容是否一致

(空賬本紙)
礦工的工作:
礦工們收到交易單后,馬上填寫(xiě)新的賬本。他們把交易單的內(nèi)容填寫(xiě)到“交易清單”一欄,把自己最新賬本的最后一頁(yè)的編號(hào)抄寫(xiě)到“上一張賬單編號(hào)一欄”。 注意還有個(gè)“幸運(yùn)數(shù)字”,可以隨便填上一個(gè)數(shù)字,如12345。然后,將這樣賬本紙放入編號(hào)生成器,打印好編號(hào),一張賬本就算完成了。
如果你以為礦工的工作就這么簡(jiǎn)單,那就大錯(cuò)特錯(cuò)了。中本聰有個(gè)變態(tài)的規(guī)定:只有編號(hào)的前10個(gè)數(shù)均為0,這頁(yè)賬本紙才算有效。
根據(jù)之前對(duì)編號(hào)生成器的描述,要修改編號(hào),只能修改賬本紙的內(nèi)容,而“交易清單”和“上一張賬單編號(hào)”是不能修改的,那么只能改幸運(yùn)數(shù)字了。于是為了生成有效的賬本紙,小組里的礦工就不斷更改幸運(yùn)數(shù)字,然后不斷地生成編號(hào),直到生成一串有效的編號(hào)。
這就奇怪了,這些礦工為什么要拼命干這看似無(wú)意義的事情呢?還記得之前說(shuō)過(guò)礦工有報(bào)酬吧,這就是礦工的動(dòng)力了。中本聰規(guī)定:每一張賬本紙的交易清單第一條交易為“系統(tǒng)給這個(gè)小組支付50個(gè)比特幣”。也就是說(shuō),如果你生成了一張有意義的賬本紙,并且被所有挖礦小組接受了,那么就意味著這條交易也被接受了,你的挖礦小組獲得了50個(gè)比特幣。
這就是礦工被叫做礦工的原因,也是為什么之前說(shuō)隨著交易和礦工的活動(dòng),比特幣的數(shù)量會(huì)不斷增多。例如下面是一個(gè)挖礦過(guò)程,這個(gè)小組的公共比特幣帳號(hào)為“UVWXYZ”。

(在幸運(yùn)數(shù)字嘗試到“533”時(shí),系統(tǒng)生成了一頁(yè)有效賬本)
當(dāng)某挖礦小組幸運(yùn)的生成了一張有意義的賬本,為了得到獎(jiǎng)勵(lì),必須立刻請(qǐng)其它小組確認(rèn)自己的工作。
當(dāng)某個(gè)小組接到其他小組送來(lái)的賬本紙時(shí),需要確認(rèn)的信息有三個(gè):
·賬本的編號(hào)有效
·賬本的前一頁(yè)賬本有效
·交易清單有效
第一點(diǎn)把賬本紙放入編碼生成器進(jìn)行驗(yàn)證即可;第二點(diǎn)需要對(duì)比自己小組的最新賬本的最后一頁(yè)編號(hào)即可;第三點(diǎn)確認(rèn)當(dāng)前每筆交易的付款人有足夠余額即可。如果三點(diǎn)都確認(rèn)成功,該小組會(huì)承認(rèn)這一頁(yè)賬本并更新自己的賬本。
PS:
1、故事只表達(dá)關(guān)鍵原理,細(xì)節(jié)并不完全相同。
2、交易平臺(tái)做中間代理時(shí),與該機(jī)制有出入。
|
新聞熱點(diǎn)
疑難解答
圖片精選