比特幣具有3個(gè)特點(diǎn):去中心化介汹、不可篡改和不可偽造,上一節(jié)我們講了比特幣最重要的特性:去中心化舶沛。比特幣的去中心化是用非對(duì)稱加密技術(shù)和分布式存儲(chǔ)實(shí)現(xiàn)的嘹承。
這一節(jié)我們繼續(xù)講比特幣的第2個(gè)特性(即不可篡改特性)及其技術(shù)實(shí)現(xiàn)的來(lái)源。
不可篡改特點(diǎn)
比特幣的區(qū)塊鏈賬本具有不可篡改特點(diǎn)叹卷,這一點(diǎn)是用工作量證明機(jī)制和最長(zhǎng)鏈機(jī)制來(lái)保障的柱彻。
01、工作量證明機(jī)制
首先哟楷,篡改是指網(wǎng)絡(luò)中為了弄虛作假而對(duì)賬本進(jìn)行惡意修改。比特幣使用的共識(shí)機(jī)制是 “工作量證明(PoW)”卖擅,英文是proof of work墨技,簡(jiǎn)單來(lái)說(shuō)就是一份證明挎狸,用來(lái)確認(rèn)你做過(guò)一定量的某種工作扣汪。
比如現(xiàn)實(shí)生活中的畢業(yè)證锨匆、駕駛證等,也是通過(guò)檢驗(yàn)?zāi)阃瓿闪艘欢康闹R(shí)學(xué)習(xí)或者駕駛過(guò)一定時(shí)間的汽車茅主,來(lái)證明你擁有此項(xiàng)技能的。
也就是說(shuō)通過(guò)這個(gè)結(jié)果證明你曾經(jīng)耗費(fèi)時(shí)間和精力诀姚,即工作量來(lái)做過(guò)這件事玷禽。
工作量證明系統(tǒng)可以看成是兩個(gè)步驟,一個(gè)是工作矢赁;另一個(gè)是對(duì)工作的驗(yàn)證。這分別對(duì)應(yīng)兩個(gè)主體撩银,一個(gè)是工作者;另一個(gè)是驗(yàn)證者稠炬。
系統(tǒng)約定好工作內(nèi)容,驗(yàn)證者給出工作量咪啡,工作者完成工作量首启,驗(yàn)證者檢驗(yàn)工作量是否達(dá)標(biāo)。工作量證明的設(shè)計(jì)需要達(dá)到:工作者是一定要花費(fèi)一定的時(shí)間才能完成工作撤摸,但驗(yàn)證者卻可以瞬間完成檢驗(yàn)毅桃。
比特幣里的工作量證明函數(shù)叫SHA256准夷,中文名叫安全散列算法。具體是什么數(shù)學(xué)公式我們先不用管了衫嵌,可以理解成一個(gè)很高難度的擲色子游戲---把3個(gè)色子扔出4點(diǎn)。這是一種隨機(jī)性很強(qiáng)楔绞,實(shí)現(xiàn)起來(lái)很難唇兑,驗(yàn)證起來(lái)很容易的游戲桦锄。誰(shuí)能第一個(gè)扔出4點(diǎn),會(huì)第一時(shí)間在全網(wǎng)廣播---老子成功了留夜!其他節(jié)點(diǎn)一看,果然是4點(diǎn)香伴,于是驗(yàn)證寫入賬本記錄具则。然后繼續(xù)下一次的擲色子游戲具帮。
POW的共識(shí)機(jī)制得到全網(wǎng)的認(rèn)可,它依賴完成任務(wù)進(jìn)行數(shù)學(xué)運(yùn)算來(lái)獲取記賬權(quán)蜂厅,用一個(gè)極其復(fù)雜的數(shù)學(xué)游戲,保證了獲取記賬權(quán)的公平性掘猿。
比特幣是高度去中心化的記賬系統(tǒng),如果要篡改記賬信息衬衬,就要篡改全網(wǎng)51%節(jié)點(diǎn)的數(shù)據(jù)改橘。也就說(shuō)你必須控制全網(wǎng)51%以上的算力才能做到這個(gè)事情。從目前全球的算力發(fā)布來(lái)看飞主,貌似可能:
很多人對(duì)51%攻擊憂心重重碌识,而中本聰在比特幣誕生之初就已經(jīng)考慮到這個(gè)問(wèn)題
If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins.
-------比特幣白皮書
如果攻擊者有能力比其他誠(chéng)實(shí)節(jié)點(diǎn)聚集更多算力,他將面臨一個(gè)選擇:到底是用欺詐手段拿回已支付的幣筏餐,還是應(yīng)該使用算力獲取更多幣。
目前(1Mar2018)比特幣全球算力前4加一起已經(jīng)超過(guò)51%眼姐,要聯(lián)手篡改記賬貌似存在現(xiàn)實(shí)可能性。但是這些算力都是私營(yíng)自利的众旗,最終,礦工們發(fā)現(xiàn)贡歧,按規(guī)矩老老實(shí)實(shí)地挖礦更劃算,因?yàn)?1%攻擊只要發(fā)生一次律想,比特幣系統(tǒng)的可信度就蕩然無(wú)存绍弟。要聯(lián)合4家巨頭做一件砸大家飯碗的事情技即,必定不得人心樟遣,不符合利益最大化。
所以葵陵,礦池聯(lián)手做51%攻擊的事件不僅沒(méi)有發(fā)生瞻佛,而且曾經(jīng)還發(fā)生過(guò)這樣的事情:當(dāng)某一礦池算力接近40%時(shí)脱篙,礦工們自動(dòng)切換至其他礦池伤柄。看起來(lái)他們?cè)诰S護(hù)算力均衡考抄,但礦工們的實(shí)際想法是:如何不讓自己挖的幣貶值蔗彤。
所以,多年來(lái)51%的攻擊未曾實(shí)現(xiàn)過(guò)然遏,只要自利的人性不改變,比特幣51%攻擊就很難發(fā)生待侵。
02、最長(zhǎng)鏈機(jī)制
保證比特幣不被篡改的還有另一條護(hù)城河--最長(zhǎng)鏈機(jī)制怨酝。
比特幣記賬權(quán)確認(rèn)驗(yàn)證,必須經(jīng)過(guò)6個(gè)區(qū)塊確認(rèn)农猬。后續(xù)記賬節(jié)點(diǎn)會(huì)驗(yàn)證當(dāng)前區(qū)塊正確后,基于該區(qū)塊出塊慷垮。
每一次后續(xù)區(qū)塊的疊加就相當(dāng)于對(duì)前面塊的一個(gè)認(rèn)可。比特幣白皮書規(guī)定料身,節(jié)點(diǎn)永遠(yuǎn)認(rèn)為最長(zhǎng)鏈?zhǔn)钦_的區(qū)塊鏈衩茸,并將持續(xù)在它上面延長(zhǎng)。所有礦工都在最長(zhǎng)鏈上挖礦楞慈,有利于區(qū)塊鏈賬本的唯一性,最大限度保障了比特幣記賬不被篡改。
最長(zhǎng)的鏈包含了最大的工作量议惰。如果大多數(shù)的CPU為誠(chéng)實(shí)的節(jié)點(diǎn)控制,那么誠(chéng)實(shí)的鏈條將以最快的速度延長(zhǎng)俯萎,并超越其他的競(jìng)爭(zhēng)鏈條。如果想要對(duì)業(yè)已出現(xiàn)的區(qū)塊進(jìn)行修改夫啊,攻擊者必須重新完成該區(qū)塊的工作量外加該區(qū)塊之后所有區(qū)塊的工作量辆憔,并最終趕上和超越誠(chéng)實(shí)節(jié)點(diǎn)的工作量。
小結(jié)
比特幣最重要的特性是去中心化虱咧,比特幣的去中心化是用非對(duì)稱加密技術(shù)和分布式存儲(chǔ)實(shí)現(xiàn)的。比特幣第2個(gè)特性是不可篡改玄坦,這是用工作量證明機(jī)制和最長(zhǎng)鏈機(jī)制來(lái)保障的。