區(qū)塊鏈(Blockchain)是比特幣的一個(gè)重要概念,它本身是一種新型的分布式系統(tǒng),并且極大的促進(jìn)了分布式計(jì)算領(lǐng)域的發(fā)展。了解分布式系統(tǒng)的工作原理,了解共識(shí)機(jī)制如何使人們?cè)诜稚⒌木W(wǎng)絡(luò)上達(dá)成共識(shí),我們才能真正了解區(qū)塊鏈技術(shù)的創(chuàng)新和未來(lái)發(fā)展的方向。
一、什么是分布式系統(tǒng)?
分布式系統(tǒng)是一種通過(guò)網(wǎng)絡(luò)進(jìn)行通信使用多臺(tái)服務(wù)器來(lái)協(xié)同完成計(jì)算任務(wù)的系統(tǒng),是一種提高業(yè)務(wù)承載量的基本手段,通過(guò)利用更多的服務(wù)器,來(lái)解決單個(gè)服務(wù)器無(wú)法同時(shí)承載大量的用戶(hù)使用的問(wèn)題。

二、分布式系統(tǒng)的優(yōu)勢(shì)和面臨的挑戰(zhàn)
分布式系統(tǒng)的優(yōu)勢(shì)
與集中式系統(tǒng)相比,分布式系統(tǒng)有4個(gè)方面的優(yōu)勢(shì):
1.???? 性?xún)r(jià)比更高
隨著技術(shù)的發(fā)展,小型CPU越來(lái)越廉價(jià),這使得分布式系統(tǒng)使用多個(gè)廉價(jià)CPU的方式比使用單個(gè)大型CPU性?xún)r(jià)比更高。
2.???? 總計(jì)算能力更強(qiáng)
單個(gè)CPU的性能目前還是有一定極限的,但使用分布式系統(tǒng)我們則能夠獲得比單個(gè)CPU更強(qiáng)的總計(jì)算能力。
3.???? 固有的分布性
有一些應(yīng)用本身就是具有分布性的,所以需要分布式系統(tǒng)來(lái)滿(mǎn)足需求。
4.???? 系統(tǒng)更可靠
單一CPU一旦故障就會(huì)100%停機(jī),但分布式系統(tǒng)有一臺(tái)機(jī)器故障其他機(jī)器并不受影響,因而分布式系統(tǒng)更為可靠。

盡管分布式系統(tǒng)有諸多優(yōu)點(diǎn),但也面臨著諸多的挑戰(zhàn):
1.???? 異構(gòu)的機(jī)器與網(wǎng)絡(luò)難以協(xié)調(diào)
分布式系統(tǒng)中的機(jī)器,有可能配置不同,其上運(yùn)行的語(yǔ)言,架構(gòu)也不相同,因此各節(jié)點(diǎn)處理能力不一,同時(shí)由于各節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接,不同運(yùn)營(yíng)商的網(wǎng)絡(luò)情況也不一樣,導(dǎo)致如何協(xié)調(diào)眾多機(jī)器共同完成目標(biāo)成為不小的挑戰(zhàn)。
2.???? 獨(dú)立進(jìn)程故障
在現(xiàn)實(shí)中,每個(gè)進(jìn)程都有一定的概率發(fā)生故障,雖然單一進(jìn)程的故障概率較低,但分布式系統(tǒng)由于節(jié)點(diǎn)數(shù)目較多,故障概率就隨著節(jié)點(diǎn)的增多而變高了。
因此分布式系統(tǒng)需要挑戰(zhàn)如何監(jiān)控每一個(gè)節(jié)點(diǎn),保障故障時(shí)將該節(jié)點(diǎn)的任務(wù)轉(zhuǎn)移,從而避免獨(dú)立進(jìn)程故障對(duì)整個(gè)系統(tǒng)的影響。
3.???? 不可靠的網(wǎng)絡(luò)
在分布式計(jì)算機(jī)系統(tǒng)中,時(shí)間和事件順序是一大障礙。
不同節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接,但網(wǎng)絡(luò)并不可靠,我們無(wú)法確定網(wǎng)絡(luò)是否會(huì)有延時(shí),亂序等問(wèn)題,而這些問(wèn)題很大程度會(huì)影響最終的結(jié)果。
總的來(lái)說(shuō),分布式系統(tǒng)的挑戰(zhàn)來(lái)自于各種不確定因素,流程和節(jié)點(diǎn)的增加導(dǎo)致了不確定性概率的增加,如何保證在諸多的不確定下系統(tǒng)還能正常運(yùn)作是分布式系統(tǒng)必須要解決的問(wèn)題。
三、分布式系統(tǒng)中的共識(shí)問(wèn)題
為了保障分布式系統(tǒng)的不同節(jié)點(diǎn)能夠得到統(tǒng)一,我們需要引入共識(shí)機(jī)制。
所謂“共識(shí)機(jī)制”,是通過(guò)特殊節(jié)點(diǎn)的投票,在很短的時(shí)間內(nèi)完成對(duì)交易的驗(yàn)證和確認(rèn);對(duì)一筆交易,如果利益不相干的若干個(gè)節(jié)點(diǎn)能夠達(dá)成共識(shí),我們就可以認(rèn)為全網(wǎng)對(duì)此也能夠達(dá)成共識(shí),也就是說(shuō),處于不同情況下的各個(gè)節(jié)點(diǎn)能夠得到統(tǒng)一。

四、常見(jiàn)的共識(shí)機(jī)制
共識(shí)機(jī)制是區(qū)塊鏈技術(shù)的重要組件,區(qū)塊鏈技術(shù)正是運(yùn)用一套基于共識(shí)的數(shù)學(xué)算法,在機(jī)器之間建立“信任”網(wǎng)絡(luò),從而通過(guò)技術(shù)背書(shū)而非中心化信用機(jī)構(gòu)來(lái)進(jìn)行全新的信用創(chuàng)造。
現(xiàn)今區(qū)塊鏈的共識(shí)機(jī)制可分為三大類(lèi):工作量證明機(jī)制、權(quán)益證明機(jī)制、股份授權(quán)證明機(jī)制。
工作量證明機(jī)制PoW(Proof of Work):
工作量證明機(jī)制即對(duì)于工作量的證明,在基于工作量證明機(jī)制構(gòu)建的區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點(diǎn)通過(guò)計(jì)算隨機(jī)哈希散列的數(shù)值解爭(zhēng)奪記賬權(quán),求得正確的數(shù)值解以生成區(qū)塊的能力是節(jié)點(diǎn)算力的具體表現(xiàn)。就像“按勞取酬”,你提供了多少算力,就能夠獲得多少回報(bào)。
PoW的優(yōu)勢(shì):
具有完全去中心化的優(yōu)點(diǎn),理論上實(shí)現(xiàn)了相對(duì)公平,每個(gè)節(jié)點(diǎn)自由進(jìn)出,都有做出貢獻(xiàn)和獲得回報(bào)的機(jī)會(huì),同時(shí)破壞系統(tǒng)需要付出極大的成本。
PoW的不足:
基于工作量證明機(jī)制的挖礦行為造成了大量的資源浪費(fèi),目前達(dá)成共識(shí)所需要的周期也較長(zhǎng),不適合商業(yè)應(yīng)用。
同時(shí)由于市場(chǎng)的趨利性,為了獲取更多收益,人們開(kāi)始建立中心化的礦池礦場(chǎng),背離了去中心化的初衷,網(wǎng)絡(luò)安全也逐漸受到威脅。

權(quán)益證明機(jī)制PoS(Proof of Stake):
與要求證明人執(zhí)行一定量的計(jì)算工作不同,權(quán)益證明要求證明人提供一定數(shù)量Token的所有權(quán)即可。權(quán)益證明機(jī)制的運(yùn)作方式是,當(dāng)創(chuàng)造一個(gè)新區(qū)塊時(shí),礦工需要?jiǎng)?chuàng)建一個(gè)“幣權(quán)”交易,交易會(huì)按照預(yù)先設(shè)定的比例把一些Token發(fā)送給礦工本身。
也就是,你的挖礦收益,取決于你Token的多少與持有的時(shí)間,你持有的越多你的收益就越大。
PoS的優(yōu)勢(shì):
相對(duì)于PoW更加節(jié)能,不需要耗費(fèi)大量能源去挖礦。
PoS根據(jù)每個(gè)節(jié)點(diǎn)擁有Token的比例和時(shí)間,依據(jù)算法等比例地降低節(jié)點(diǎn)的挖礦難度,從而加快了尋找隨機(jī)數(shù)的速度,能在一定程度上縮減達(dá)成共識(shí)的時(shí)間。
同時(shí)和PoW一樣,破壞系統(tǒng)的成本較高。
PoS的不足:
PoS模式下,Token只能通過(guò)融資方式發(fā)行,無(wú)法保障持有者不因受利益誘惑而拋售,同時(shí)這種模式的信用基礎(chǔ)不夠牢固,也并沒(méi)有從根本上解決難以應(yīng)用于商業(yè)領(lǐng)域的問(wèn)題。

股份授權(quán)證明機(jī)制DPoS(Delegated Proof of Stake):
股份授權(quán)證明機(jī)制是一種新的保障網(wǎng)絡(luò)安全的共識(shí)機(jī)制。與董事會(huì)投票類(lèi)似,該機(jī)制擁有一個(gè)內(nèi)置的實(shí)時(shí)股權(quán)人投票系統(tǒng),全體節(jié)點(diǎn)投票選舉出一定數(shù)量的節(jié)點(diǎn)代表,由他們來(lái)代理全體節(jié)點(diǎn)確認(rèn)區(qū)塊、維持系統(tǒng)有序運(yùn)行。同時(shí),區(qū)塊鏈中的全體節(jié)點(diǎn)具有隨時(shí)罷免和任命代表的權(quán)力。
DpoS的優(yōu)勢(shì):
大大縮減了參與驗(yàn)證記賬的節(jié)點(diǎn)數(shù)量,能耗更低,同時(shí)極大的縮短了共識(shí)驗(yàn)證需要的時(shí)間。
同時(shí)由全體節(jié)點(diǎn)投票選擇節(jié)點(diǎn)代表的機(jī)制理論上比PoW,PoS更加去中心化,不容易被操縱。
DPoS的不足:
DpoS理論上更加去中心化,但由于大部分節(jié)點(diǎn)因?yàn)榉N種原因投票積極性不高或不便投票,共識(shí)掌握在少數(shù)的節(jié)點(diǎn)代表手中,對(duì)于一些節(jié)點(diǎn)代表作惡的行為也不能夠及時(shí)的響應(yīng),有較大的安全隱患。

結(jié)合以上內(nèi)容我們可以發(fā)現(xiàn),目前的共識(shí)機(jī)制都不是完美的,在應(yīng)用場(chǎng)景上都有一定的限制。
融數(shù)鏈認(rèn)為:區(qū)塊鏈共識(shí)機(jī)制,仍在不斷地發(fā)展進(jìn)化當(dāng)中,現(xiàn)在的我們需要結(jié)合實(shí)際的應(yīng)用場(chǎng)景來(lái)選擇適合的共識(shí)算法,并且根據(jù)實(shí)際的需要進(jìn)行改進(jìn),逐步解決區(qū)塊鏈難以運(yùn)用于商業(yè)領(lǐng)域的問(wèn)題。