第0章 弁言
在11月份BCH的硬分叉晉級(jí)時(shí),產(chǎn)生了兩個(gè)幣,BCH和BSV。abc開(kāi)發(fā)組為BCH添加了一個(gè)叫Checkpoint的東西,BSV社區(qū)種種挖苦。本文表明Checkpoint畢竟是什么。
第1章 比特幣節(jié)點(diǎn)怎樣驗(yàn)證一個(gè)區(qū)塊
任何一個(gè)下載并安裝運(yùn)轉(zhuǎn)的完備節(jié)點(diǎn)都市從比特幣網(wǎng)絡(luò)中獲取區(qū)塊,并驗(yàn)證區(qū)塊,以此更新節(jié)點(diǎn)的賬本。當(dāng)一個(gè)節(jié)點(diǎn)經(jīng)過(guò)p2p網(wǎng)絡(luò)取得一個(gè)新區(qū)塊時(shí),都市實(shí)行驗(yàn)證步驟,以識(shí)別這個(gè)區(qū)塊是不是好效的區(qū)塊。比特幣區(qū)塊的驗(yàn)證標(biāo)準(zhǔn)如下:
1、驗(yàn)證事情量證實(shí),即驗(yàn)證區(qū)塊頭的哈希值小于如今目標(biāo)值。
2、驗(yàn)證MerkleRoot對(duì)否是由區(qū)塊體中的買(mǎi)賣(mài)取得的,即重構(gòu)區(qū)塊Merkle樹(shù)取得的樹(shù)根,看對(duì)否和區(qū)塊頭中的hashMerkleRoot值相稱(chēng)。
3、驗(yàn)證區(qū)塊大,即看區(qū)塊輕重對(duì)否在設(shè)定范圍之內(nèi)。(BTC是數(shù)據(jù)區(qū)塊體不克不及大于1M,斷絕驗(yàn)證區(qū)塊不克不及大于3M;BCH是區(qū)塊不克不及大于32M;BSV如今是不克不及大于128M)
4、驗(yàn)證對(duì)否僅有一個(gè)Coinbase買(mǎi)賣(mài),即一個(gè)區(qū)塊,礦工只能給本人嘉獎(jiǎng)一次。
5、驗(yàn)證一切的買(mǎi)賣(mài),即遍歷區(qū)塊內(nèi)一切的買(mǎi)賣(mài),反省對(duì)否是合法的買(mǎi)賣(mài)。以上就是比特幣節(jié)點(diǎn)(BTC、BCH、BSV都一樣)標(biāo)準(zhǔn)的驗(yàn)證區(qū)塊步驟,這局部代碼叫CheckBlock函數(shù)。
第2章 增長(zhǎng)Checkpoint反省點(diǎn)驗(yàn)證端正
比特幣節(jié)點(diǎn)在絕大大多情況下都是按外表的標(biāo)準(zhǔn)的驗(yàn)證區(qū)塊步驟舉行驗(yàn)證區(qū)塊的,但可以到場(chǎng)分外的端正,就是到場(chǎng)一個(gè)Checkpoint。
Checkpoint就是節(jié)點(diǎn)驗(yàn)證區(qū)塊中的一個(gè)增補(bǔ)端正。這個(gè)增補(bǔ)端正是:
Checkpoint就是指定一個(gè)區(qū)塊高度的區(qū)塊哈希必需即是某個(gè)哈希值。
Checkpoint是一個(gè)數(shù)據(jù),這個(gè)數(shù)據(jù)就是一個(gè)區(qū)塊高度值和對(duì)應(yīng)的哈希值構(gòu)成,一切Checkpoint會(huì)被存儲(chǔ)在一個(gè)叫CheckpointData的數(shù)據(jù)塊里。底下是BCH網(wǎng)絡(luò)上的汗青Checkpoint值。
我們可以看到,在11111高度就有一個(gè)Checkpoint,這是在2009年4月16日挖出來(lái)的,這估測(cè)是中本聰他們最早的幾一局部挖的。
上圖中最初那一個(gè)Checkpoint就是11月15日BCH硬分叉時(shí)添加的,區(qū)塊高度556767就是BCH和BSV崩潰后BCH挖出的第一個(gè)區(qū)塊高度,這個(gè)區(qū)塊被BSV回絕了。
Checkpoint是由開(kāi)發(fā)組寫(xiě)入節(jié)點(diǎn)軟件的,也可以是開(kāi)發(fā)編寫(xiě)一個(gè)函數(shù)指定顯現(xiàn)某種情況后就由函數(shù)添加一個(gè)Checkpoint。節(jié)點(diǎn)軟件在驗(yàn)證區(qū)塊時(shí),就會(huì)搜刮CheckpointData數(shù)據(jù),以確定某一區(qū)塊高度對(duì)否必要到場(chǎng)Checkpoint這個(gè)驗(yàn)證端正。
Checkpoint里指定的區(qū)塊高度那一定是在寫(xiě)入之前就以前挖出來(lái)的。
當(dāng)節(jié)點(diǎn)軟件搜刮CheckpointData發(fā)覺(jué)了某個(gè)區(qū)塊高度是一個(gè)Checkpoint時(shí),那這個(gè)節(jié)點(diǎn)在驗(yàn)證這一個(gè)區(qū)塊時(shí),就會(huì)在上一章的5條驗(yàn)證端正中到場(chǎng)第6條,即這個(gè)區(qū)塊的hash值必需即是Checkpoint里指定的哈希值。假如不相稱(chēng),那就是一個(gè)廢塊,會(huì)被丟棄掉。
第3章 Checkpoint有什么用?
一個(gè)節(jié)點(diǎn)只需供認(rèn)了Checkpoint的區(qū)塊為合法的區(qū)塊,那就可以制止這個(gè)高度以之前的一切的區(qū)塊被其他力氣重組,特別是可以制止被51%上風(fēng)算力打擊重組區(qū)塊。
我們必需確認(rèn)的是一個(gè)區(qū)塊的哈希是無(wú)法偽造的。當(dāng)指定一個(gè)區(qū)塊高度就是某一個(gè)哈希值,這意味著這個(gè)區(qū)塊高度的區(qū)塊就是無(wú)法變動(dòng)了。哪怕是你擁有凌駕51%的算力,也是不克不及讓這些擁有Checkpoint的節(jié)點(diǎn)軟件聽(tīng)從你變動(dòng)這個(gè)區(qū)塊。
任何一個(gè)區(qū)塊中又包含了前一個(gè)區(qū)塊的哈希值,如此就相當(dāng)于實(shí)行Checkpoint的節(jié)點(diǎn)認(rèn)定了指定的區(qū)塊,也就認(rèn)定了此區(qū)塊之前的一切區(qū)塊。
Checkpoint在一定水平上改動(dòng)了最長(zhǎng)鏈為好效鏈的準(zhǔn)則,改成了僅有包含了Checkpoint的最長(zhǎng)鏈才是好效鏈。
Checkpoint可以用來(lái)擺設(shè)協(xié)議分叉,一切節(jié)點(diǎn)都一致運(yùn)轉(zhuǎn)帶有Checkpoint的完備節(jié)點(diǎn)軟件,然后一旦Checkpoint的區(qū)塊被挖出,那今后一切的協(xié)議就可以被一致變動(dòng)。這也是UAHF的原理,這是BCH從2017年8月1日崩潰出來(lái)后每一次分叉晉級(jí)都使用Checkpoint來(lái)擺設(shè)。
帶有Checkpoint的協(xié)議厘革,就是明白報(bào)告整個(gè)生態(tài)在此區(qū)塊高度后協(xié)議就會(huì)有厘革了,你們要注意晉級(jí)。
第4章 Checkpoint有什么不佳?
必要廓清的是,很多人以為Checkpoint給了開(kāi)發(fā)者更高的權(quán)利,我以為沒(méi)有。由于節(jié)點(diǎn)軟件都是開(kāi)發(fā)者寫(xiě)的,Checkpoint只是創(chuàng)始造確標(biāo)志了一個(gè)接下去協(xié)議會(huì)怎樣改。這相當(dāng)于我們寫(xiě)文章的人,使用加粗標(biāo)紅高亮來(lái)標(biāo)注一個(gè)重點(diǎn)內(nèi)容。Checkpoint是用來(lái)報(bào)告礦工和其他生態(tài)節(jié)點(diǎn),我們要明白改一些什么東西,并且改的這些東西還不允許經(jīng)過(guò)51%算力來(lái)舉行鏈上反對(duì)。
請(qǐng)注意,外表講的是“鏈上反對(duì)”,就是一旦有算力選擇認(rèn)同了Checkpoint的節(jié)點(diǎn)軟件,那無(wú)論這局部算力是多大,那這條帶Checkpoint的鏈都是可以獨(dú)立挖下去的,不成能會(huì)被更大的算力經(jīng)過(guò)51%打擊的辦法重組掉這個(gè)Checkpoint之前的區(qū)塊。只能重組之后的區(qū)塊。
這就意味著,Checkpoint本身是一個(gè)鏈下的辦理東西。各位經(jīng)過(guò)鏈下討論對(duì)否承受Checkpoint以及之后的一切協(xié)議端正變動(dòng),假如承受,并且擺設(shè),那就沒(méi)有轉(zhuǎn)頭路了。
以是Checkpoint有什么不佳?那只能是針對(duì)熱愛(ài)地道的經(jīng)過(guò)鏈上算力投票的礦工來(lái)說(shuō)是不佳的,信算力有決定權(quán)的人會(huì)以為Checkpoint不佳,而熱愛(ài)鏈下辦理的人則會(huì)以為Checkpoint是一個(gè)好東西。
(作者:閃電HSL,內(nèi)容來(lái)自鏈得得內(nèi)容開(kāi)放平臺(tái)“得得號(hào)”;本文僅代表作者看法,不代表鏈得得官方態(tài)度)
版權(quán)聲明:本文來(lái)自互聯(lián)網(wǎng)整理發(fā)布,如有侵權(quán),聯(lián)系刪除
原文鏈接:http://m.avtt22014.comhttp://m.avtt22014.com/wangluozixun/42224.html