區(qū)塊鏈的政策規(guī)則和共識(shí)規(guī)則以及軟分叉藝術(shù)介紹
掃描二維碼
隨時(shí)隨地手機(jī)看文章
軟分叉是修正和引入新的比特幣共識(shí)規(guī)則的主要方式。
共識(shí)規(guī)則和軟分叉
共識(shí)規(guī)則決定著每個(gè)交易或每個(gè)區(qū)塊的有效性。比特幣網(wǎng)絡(luò)上的每個(gè)用戶(hù)和礦工都遵守著同一套共識(shí)規(guī)則,代表著他們都愿意接受和同意一個(gè)賬本。
當(dāng)大多數(shù)用戶(hù)和/或礦工決定采用更嚴(yán)格的共識(shí)規(guī)則時(shí),軟分叉就可能出現(xiàn),這使一些以前有效的交易/區(qū)塊將變?yōu)闊o(wú)效,而不是相反。如果大多數(shù)人執(zhí)行新的規(guī)則的話(huà),其他任何違規(guī)分叉(統(tǒng)計(jì)上)都不會(huì)在工作量證明方面趕上新的更嚴(yán)格的共識(shí)分叉。遵守舊規(guī)則的少數(shù)人將始終遵循更長(zhǎng),更嚴(yán)格的分叉,使得網(wǎng)絡(luò)上的每個(gè)人都會(huì)最終接受和同意一個(gè)賬本。
政策規(guī)則和共識(shí)規(guī)則
雖然共識(shí)規(guī)則是確定交易有效性的唯一標(biāo)準(zhǔn),但是傳播節(jié)點(diǎn)或挖礦節(jié)點(diǎn)可能偏好某種交易。例如:
作為垃圾郵件控制機(jī)制,費(fèi)用非常低的或 “微產(chǎn)量”(輸出值很低)的交易將被拒絕。
一些礦工拒絕將 “鏈上DU場(chǎng)” 交易包括在內(nèi),這些交易被認(rèn)為是垃圾郵件。
未知版本的交易被拒絕(目前只有版本 1 和 2 是 “已知的” )。
非常規(guī)的腳本(即不是 P2PKH , P2SH , v0 segwit 或其他一些情況)和未知的 NOPx 代碼(目前僅知道 OP_NOP2 和 OP_NOP3 )的交易將被拒絕。
更換費(fèi)用( Replace-by-fee )和母費(fèi)子付( child-pay-for-parent )也屬于政策規(guī)定,因?yàn)樗麄兇_定了哪些是礦工首選的交易。
根據(jù)定義,政策規(guī)則必須至少與共識(shí)規(guī)則一樣嚴(yán)格。很明顯,礦工們不希望在一個(gè)區(qū)塊中包含無(wú)效交易(這會(huì)導(dǎo)致采礦獎(jiǎng)勵(lì)的喪失),或者將其傳播(這將被同行排斥)。
雖然政策規(guī)定可能比共識(shí)規(guī)定更嚴(yán)格,但要注意,政策規(guī)定并不決定交易的有效性。一旦交易被包含在有效的區(qū)塊中,即使它違反了一些政策規(guī)則,所有的網(wǎng)絡(luò)節(jié)點(diǎn)也將會(huì)接受并承認(rèn)它。
同樣要注意的是政策規(guī)則是區(qū)域性的,而共識(shí)性規(guī)則是普遍性的。這意味著不同的網(wǎng)絡(luò)節(jié)點(diǎn)可能有不同的策略規(guī)則。只要運(yùn)行相同的共識(shí)規(guī)則,他們?nèi)匀粫?huì)一致同意區(qū)塊鏈賬本。
違反政策規(guī)則的交易有時(shí)被稱(chēng)為“非標(biāo)準(zhǔn)交易”,我們需要將其與 “無(wú)效交易” 區(qū)分開(kāi)。
政策規(guī)則和軟分叉
理想情況下,所有的礦工都應(yīng)該在軟分叉激活之前升級(jí)到新的更嚴(yán)格的規(guī)則版本。在經(jīng)濟(jì)利益上,他們有強(qiáng)烈的動(dòng)力去做這件事,因?yàn)橥诰蛞粋€(gè)無(wú)效區(qū)塊(就新規(guī)則而言)會(huì)形成重大的財(cái)務(wù)成本。但是,像比特幣這樣的去中心化系統(tǒng),礦工的行為是不能保證的。
雖然礦工們理論上應(yīng)該關(guān)注所有規(guī)則變化的提案并及時(shí)采取行動(dòng),但是一旦礦工挖掘無(wú)效區(qū)塊便會(huì)導(dǎo)致市場(chǎng)中斷和普通用戶(hù)的經(jīng)濟(jì)損失。因此,任何計(jì)劃良好的軟分叉都應(yīng)該考慮到這一點(diǎn),并將風(fēng)險(xiǎn)降至最低。
訣竅是,軟分叉的內(nèi)容應(yīng)該限制在現(xiàn)有并廣泛采用的政策規(guī)定所涵蓋的范圍內(nèi)。擁有政策規(guī)定,但不了解新的共識(shí)規(guī)則的礦工,將會(huì)自動(dòng)拒絕這些交易,因此,他們絕不會(huì)將新交易規(guī)則中的交易包括在內(nèi)。這在比特幣歷史上的一些案例中有詳細(xì)闡述。
在上述圖像中,工人在一條無(wú)法使用的道路上擺放 “道路封閉” 的標(biāo)示牌,該障礙物在工人放置標(biāo)示牌之前已經(jīng)存在。新的交通標(biāo)示牌只能防止一些 “非標(biāo)準(zhǔn)” 的行為,因此造成的影響很有限。
政策保護(hù)不是萬(wàn)能的
讀至此時(shí),讀者可能會(huì)發(fā)現(xiàn),上述的政策保護(hù)手段只會(huì)阻止未升級(jí)的礦工在軟分叉激活后主動(dòng)產(chǎn)出第一個(gè)無(wú)效塊。然而,如果這個(gè)無(wú)效塊被創(chuàng)造出來(lái),那么未經(jīng)升級(jí)的礦工會(huì)接受它,同時(shí)如果得到更多工作證明的支持,那么這個(gè)區(qū)塊鏈就會(huì)越來(lái)越長(zhǎng)。所以這只是一種減少而不是完全消除在軟分叉激活中發(fā)生意外區(qū)塊鏈分叉的方法。如果在大量礦工正在通過(guò)不同的完整節(jié)點(diǎn)運(yùn)行不同的政策規(guī)則的情況下,那么這個(gè)政策保護(hù)也是存在問(wèn)題的。