比特幣如何達(dá)成共識(shí) - 最長(zhǎng)鏈的選擇

最新內(nèi)容會(huì)更新在主站深入淺出區(qū)塊鏈社區(qū)
原文鏈接:比特幣如何達(dá)成共識(shí) - 最長(zhǎng)鏈的選擇

比特幣沒(méi)有中心機(jī)構(gòu),幾乎所有的完整節(jié)點(diǎn)都有一份公共總帳本,那么大家如何達(dá)成共識(shí):確認(rèn)哪一份才是公認(rèn)權(quán)威的總賬本呢?

為什么要遵守協(xié)議

這其實(shí)是一個(gè)經(jīng)濟(jì)問(wèn)題,在經(jīng)濟(jì)活動(dòng)中的每個(gè)人都是自私自利的,追求的是利益的最大化,一個(gè)節(jié)點(diǎn)工作量只有在其他的節(jié)點(diǎn)認(rèn)同其是有效的(打包的新區(qū)塊,其他的節(jié)點(diǎn)只有驗(yàn)證通過(guò)才會(huì)加入到區(qū)塊鏈中,并在網(wǎng)絡(luò)上傳播),才能夠過(guò)得收益,
而只有遵守規(guī)則才會(huì)得到其他的節(jié)點(diǎn)認(rèn)同。
因此,基于逐利,節(jié)點(diǎn)就會(huì)自發(fā)的遵守協(xié)議。共識(shí)就是數(shù)以萬(wàn)計(jì)的獨(dú)立節(jié)點(diǎn)遵守了簡(jiǎn)單的規(guī)則(通過(guò)異步交互)自發(fā)形成的。

共識(shí):共同遵守的協(xié)議規(guī)范

去中心化共識(shí)

工作量證明一篇,我們了解通過(guò)工作量證明來(lái)競(jìng)爭(zhēng)記賬,權(quán)威的總帳本是怎么達(dá)到共識(shí)的,沒(méi)有完全說(shuō)清楚,今天補(bǔ)上,
實(shí)際上,比特幣的共識(shí)由所有節(jié)點(diǎn)的4個(gè)獨(dú)立過(guò)程相互作用而產(chǎn)生:

  1. 每個(gè)節(jié)點(diǎn)(挖礦節(jié)點(diǎn))依據(jù)標(biāo)準(zhǔn)對(duì)每個(gè)交易進(jìn)行獨(dú)立驗(yàn)證
  2. 挖礦節(jié)點(diǎn)通過(guò)完成工作量證明,將交易記錄獨(dú)立打包進(jìn)新區(qū)塊
  3. 每個(gè)節(jié)點(diǎn)獨(dú)立的對(duì)新區(qū)塊進(jìn)行校驗(yàn)并組裝進(jìn)區(qū)塊鏈
  4. 每個(gè)節(jié)點(diǎn)對(duì)區(qū)塊鏈進(jìn)行獨(dú)立選擇,在工作量證明機(jī)制下選擇累計(jì)工作量最大的區(qū)塊鏈

共識(shí)最終目的是保證比特幣不停的在工作量最大的區(qū)塊鏈上運(yùn)轉(zhuǎn),工作量最大的區(qū)塊鏈就是權(quán)威的公共總帳本。

第1 2 3步在比特幣如何挖礦-工作量證明一篇有提到過(guò),下面著重講第4步。

最長(zhǎng)鏈的選擇

先來(lái)一個(gè)定義,把累計(jì)了最多難度的區(qū)塊鏈。在一般情況下,也是包含最多區(qū)塊的那個(gè)鏈稱(chēng)為主鏈
每一個(gè)(挖礦)節(jié)點(diǎn)總是選擇并嘗試延長(zhǎng)主鏈。

分叉

當(dāng)有兩名礦工在幾乎在相同的時(shí)間內(nèi),各自都算得了工作量證明解,便立即傳播自己的“獲勝”區(qū)塊到網(wǎng)絡(luò)中,先是傳播給鄰近的節(jié)點(diǎn)而后傳播到整個(gè)網(wǎng)絡(luò)。每個(gè)收到有效區(qū)塊的節(jié)點(diǎn)都會(huì)將其并入并延長(zhǎng)區(qū)塊鏈。
當(dāng)這個(gè)兩個(gè)區(qū)塊傳播時(shí),一些節(jié)點(diǎn)首先收到#3458A, 一些節(jié)點(diǎn)首先收到#3458B,這兩個(gè)候選區(qū)塊(通常這兩個(gè)候選區(qū)塊會(huì)包含幾乎相同的交易)都是主鏈的延伸,分叉就會(huì)產(chǎn)生,這時(shí)分叉出有競(jìng)爭(zhēng)關(guān)系的兩條鏈,如圖:


block_branch.jpg

兩個(gè)塊都收到的節(jié)點(diǎn),會(huì)把其中有更多工作量的一條會(huì)繼續(xù)作為主鏈,另一條作為備用鏈保存(保存是因?yàn)閭溆面湆?lái)可能會(huì)超過(guò)主鏈難度稱(chēng)為新主鏈)。

分叉解決

收到#3458A的(挖礦)節(jié)點(diǎn),會(huì)立刻以這個(gè)區(qū)塊為父區(qū)塊來(lái)產(chǎn)生新的候選區(qū)塊,并嘗試尋找這個(gè)候選區(qū)塊的工作量證明解。同樣地,接受#3458B區(qū)塊的節(jié)點(diǎn)會(huì)以這個(gè)區(qū)塊為鏈的頂點(diǎn)開(kāi)始生成新塊,延長(zhǎng)這個(gè)鏈(下面稱(chēng)為B鏈)。
這時(shí)總會(huì)有一方搶先發(fā)現(xiàn)工作量證明解并將其傳播出去,假設(shè)以#3458B為父區(qū)塊的工作量證明首先解出,如圖:


block_branch2.jpg

當(dāng)原本以#3458A為父區(qū)塊求解的節(jié)點(diǎn)在收到#3458B, #3459B之后,會(huì)立刻將B鏈作為主鏈(因?yàn)?3458A為頂點(diǎn)的鏈已經(jīng)不是最長(zhǎng)鏈了)繼續(xù)挖礦。

節(jié)點(diǎn)也有可能先收到#3459B,再收到#3458B,收到#3459B時(shí),會(huì)被認(rèn)為是“孤塊“(因?yàn)檫€找不到#3459B的父塊#3458B)保存在孤塊池中,一旦收到父塊#3458B時(shí),節(jié)點(diǎn)就會(huì)將孤塊從孤塊池中取出,并且連接到它的父區(qū)塊,讓它作為區(qū)塊鏈的一部分。

比特幣將區(qū)塊間隔設(shè)計(jì)為10分鐘,是在更快速的交易確認(rèn)和更低的分叉概率間作出的妥協(xié)。更短的區(qū)塊產(chǎn)生間隔會(huì)讓交易確認(rèn)更快地完成,也會(huì)導(dǎo)致更加頻繁地區(qū)塊鏈分叉。與之相對(duì)地,長(zhǎng)的間隔會(huì)減少分叉數(shù)量,卻會(huì)導(dǎo)致更長(zhǎng)的確認(rèn)時(shí)間。

深入淺出區(qū)塊鏈 - 系統(tǒng)學(xué)習(xí)區(qū)塊鏈,打造最好的區(qū)塊鏈技術(shù)博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,489評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,290評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,776評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,510評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,866評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,036評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,585評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,331評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,536評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,754評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,154評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,469評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,273評(píng)論 3 399
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,505評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容