區(qū)塊鏈中的各種信任與不信任治理分析
在比較區(qū)塊鏈技術(shù)時(shí),我們并不需要花費(fèi)很多時(shí)間就可以發(fā)現(xiàn)這種技術(shù)中存在部落主義。 自2009年以來(lái),我一直在從事區(qū)塊鏈技術(shù)的研究,我發(fā)現(xiàn)一件有幫助的事情是思考人們可以做出的所有設(shè)計(jì)權(quán)衡。 這不像“最快”,“最具擴(kuò)展性”,“最去中心化”或“最佳治理”那么簡(jiǎn)單。 在選擇哪種區(qū)塊鏈技術(shù)最適合您的應(yīng)用時(shí),本文將探討一些不太常見(jiàn)的問(wèn)題。
信任與不信任治理
各種區(qū)塊鏈上有許多不同類型的治理系統(tǒng),并且并非所有治理系統(tǒng)都適合建立信任。 例如,委托工作量證明(例如,比特幣和以太坊)是一種投票系統(tǒng),通過(guò)該系統(tǒng),礦池可以確定哪些有效交易的子集可以包含在區(qū)塊中。 不能假定生成區(qū)塊的節(jié)點(diǎn)比任何其他節(jié)點(diǎn)具有“更高的信任度”,因此,它們可以通過(guò)生產(chǎn)一個(gè)區(qū)塊鏈表示“無(wú)害”。
在委托權(quán)益證明系統(tǒng)中,區(qū)塊生產(chǎn)者由代幣持有人投票選舉產(chǎn)生。 假定可以使用某些東西來(lái)信任這些選定的節(jié)點(diǎn),如果違反了該信任,這些東西可能會(huì)使網(wǎng)絡(luò)癱瘓。 EOS的兩個(gè)重要例子包括:
成為計(jì)算運(yùn)行時(shí)的oracle數(shù)據(jù)庫(kù)(1個(gè)壞角色可能會(huì)因缺乏無(wú)限循環(huán)或計(jì)費(fèi)不足而使網(wǎng)絡(luò)癱瘓)。
部署系統(tǒng)合約更新(?+會(huì)損害網(wǎng)絡(luò))。
在任何人都可以提出一個(gè)區(qū)塊的網(wǎng)絡(luò)中,所有驗(yàn)證器都必須具有客觀的CPU計(jì)費(fèi)時(shí)間度量。 以太坊就是這樣工作的,但是,如果模擬目標(biāo)計(jì)費(fèi)與實(shí)際CPU時(shí)間之間不匹配,則并非沒(méi)有性能下降和攻擊媒介的后果。
其他權(quán)益證明系統(tǒng),例如Ouroboros,允許任何帳戶通過(guò)模擬挖礦和Staking來(lái)生產(chǎn)區(qū)塊。 這從根本上限制了他們的智能合約系統(tǒng)像以太坊具有客觀資源計(jì)數(shù)一樣運(yùn)行。 如果您擁有開(kāi)放的區(qū)塊生產(chǎn)者集合而沒(méi)有“信任門(mén)”,那么您的代碼必須在性能上做出妥協(xié),而這可以通過(guò)DPOS之類的“有信任但可驗(yàn)證”的系統(tǒng)來(lái)避免。
您對(duì)共識(shí)算法的選擇所產(chǎn)生的影響遠(yuǎn)不只是達(dá)成共識(shí)的方式。
抵抗審查
所有區(qū)塊鏈面臨的挑戰(zhàn)是用戶如何確保他們的“有效交易”能夠真正記錄在鏈上而不會(huì)受到其他人的干擾。 原則上,生產(chǎn)和確認(rèn)的實(shí)體越“獨(dú)立”和“非共謀”,就越有機(jī)會(huì)找到其中一個(gè)包括交易在內(nèi)的實(shí)體。 最壞的情況下,您可能必須生產(chǎn)自己的區(qū)塊。
抗審查的故事并沒(méi)有以“如果您愿意購(gòu)買(mǎi)挖礦硬件,就不會(huì)受到審查”這一敘述而結(jié)束。 避免受到交易審查的唯一確定的方法是擁有51%的挖礦權(quán)。 沒(méi)有51%的挖礦能力,礦池運(yùn)營(yíng)商可以簡(jiǎn)單地忽略任何要審核交易的區(qū)塊。 這意味著比特幣治理產(chǎn)生了固有的“信任”,硬件所有者(又名選民)選擇了不太可能受到審查的礦池。
在這方面,委托工作量證明和委托權(quán)益證明都實(shí)現(xiàn)了一種“受信任的治理”形式,在一定程度上,算力和代幣可以廣泛分布在足夠多的獨(dú)立選民中。 但是,一旦選民投票,只需3到4個(gè)代表(池,區(qū)塊生產(chǎn)者)即可審查一筆比特幣或以太坊交易,而抗議一個(gè)特定的有效交易則需要8個(gè)或更多的區(qū)塊生產(chǎn)者才能停止DPOS鏈。
客觀與主觀最終確定性
工作量證明區(qū)塊鏈以及一些權(quán)益證明區(qū)塊鏈缺乏客觀的最終確定性。 相反,它們呈現(xiàn)出隨著時(shí)間的推移而增長(zhǎng)的“最終確定性很高的可能性”。 我們可以說(shuō)以下鏈具有主觀最終性:
比特幣/以太坊(委托工作量證明)
Bitshares / Steem(委托權(quán)益證明)
卡爾達(dá)諾(Ouroboros)
以下鏈具有客觀最終確定性:
EOSIO(BFT DPOS和BOS)
某些超級(jí)賬本
哈希圖
瑞波
拜占庭容錯(cuò)算法需要一組封閉的已知驗(yàn)證器才能達(dá)到最終性,結(jié)果,如果關(guān)閉了該已知組的1/3,則它們將無(wú)法達(dá)到最終確定性。 有了主觀確定性,總會(huì)有人產(chǎn)生更好鏈條的證據(jù),這會(huì)導(dǎo)致您放棄當(dāng)前鏈。
開(kāi)放式進(jìn)入系統(tǒng)往往缺乏最終性和某種形式的“贏得的信任”,因此它們受到性能,治理和延遲的限制。
輕松的區(qū)塊鏈間通信(IBC)
您對(duì)區(qū)塊鏈技術(shù)和共識(shí)算法的選擇可能會(huì)影響哪種IBC具有可能性以及這種IBC的速度。要查看實(shí)際情況,請(qǐng)考慮嘗試在EOSIO上編寫(xiě)智能合約以處理比特幣header并驗(yàn)證比特幣交易。您的智能合約在什么時(shí)候可以考慮比特幣交易的最終性?在許多情況下,即使在100個(gè)區(qū)塊之后,區(qū)塊鏈也可能會(huì)重組。您選擇的任何數(shù)量的確認(rèn)都帶有可能被撤消的風(fēng)險(xiǎn)。
現(xiàn)在,假設(shè)您對(duì)另一條鏈進(jìn)行了不可變的操作,該鏈具有基于IBC的最終性,而該鏈沒(méi)有最終性。在實(shí)踐中,具有缺乏客觀最終性的鏈的IBC必須等待很長(zhǎng)時(shí)間,以減少因無(wú)效假設(shè)而導(dǎo)致的鏈重組的風(fēng)險(xiǎn)。如果存款經(jīng)過(guò)6次以上的確認(rèn)后撤消,則該或您的比特幣存款智能合約必須具有某種減輕損害的方法。
可以在主觀最終性的鏈中使用IBC,但如果通信是雙向的,那么上帝會(huì)幫助您。彼此通信的兩個(gè)主觀最終性鏈需要的延遲類似于與深空探測(cè)器通信的時(shí)延,往返時(shí)間以小時(shí)或天為單位。
可以在幾秒鐘內(nèi)完成具有客觀最終性的鏈中的IBC。
最后,僅僅因?yàn)槔碚撋蟽蓚€(gè)鏈之間可以進(jìn)行通訊并不意味著這很容易。 通訊的便捷性部分取決于將智能客戶端建立到另一個(gè)鏈作為智能合約的難易程度。 這又取決于header和Merkle證明的復(fù)雜性和數(shù)量以及智能合約語(yǔ)言的魯棒性和性能。 智能合約中過(guò)多的開(kāi)銷或太少的電力會(huì)殺死IBC的潛力。
例如,考慮一下EOS模擬以太坊要比以太坊模擬EOSIO要容易得多!
結(jié)論
隨著關(guān)于共識(shí)算法和去中心化的爭(zhēng)論日益激烈,當(dāng)務(wù)之急是聰明的觀察者要求考慮所有技術(shù)妥協(xié)的全部代價(jià)。 如果“去中心化的開(kāi)放式共識(shí)算法”意味著您擁有的區(qū)塊鏈具有主觀的確定性和高延遲的區(qū)塊鏈間通信(IBC),并且無(wú)法在治理層中利用“信任但可驗(yàn)證”的優(yōu)化,那有什么好處?
另一方面,提供最終性的算法也存在風(fēng)險(xiǎn)。
請(qǐng)記住“區(qū)塊鏈背后的取舍之道(All Blockchain Magic comes with a Price)”,在將組織委托給任何特定的智能合約平臺(tái)之前,請(qǐng)確保已閱讀細(xì)則。