基于對(duì)其它加密數(shù)字貨幣項(xiàng)目的觀察,近期的爭(zhēng)議說(shuō)明了51%攻擊是有可能發(fā)生的,至少它會(huì)廣泛地引發(fā)市場(chǎng)上的未知與恐懼。
什么是51%挖礦攻擊?
在某個(gè)礦工的哈希算力超過(guò)其他所有礦工的哈希算力的總和時(shí),51%挖礦攻擊就有可能發(fā)生。在這種情況下,這位占據(jù)主導(dǎo)地位的礦工可以支配和否決其他礦工開(kāi)挖的區(qū)塊——他只要忽略其他礦工開(kāi)挖的區(qū)塊,并且只在自己的區(qū)塊上開(kāi)挖新的區(qū)塊就可以了。
礦工可以公開(kāi)地完成上述操作,不過(guò),由此造成的異乎尋常的高孤塊率會(huì)引發(fā)關(guān)注。礦工還可以私下完成操作,在這種情況下,礦工不必逐一公告自己開(kāi)挖的區(qū)塊,而是在某一時(shí)間段(例如幾個(gè)小時(shí)或幾天后)再悄悄地公布。如果礦工私下完成操作,那么網(wǎng)絡(luò)會(huì)首先認(rèn)定一切正常,并在之后突然完成深度的重組。
遵照上述流程,礦工可以通過(guò)多種方式攻擊網(wǎng)絡(luò)。他可以在公共區(qū)塊鏈上公布交易資訊的同時(shí)秘密地開(kāi)挖新的區(qū)塊,并將挖礦所得中飽私囊(在共識(shí)規(guī)則的框架下,這是有效和成立的)?;蛘?,他可以只開(kāi)挖秘密區(qū)塊鏈上的空區(qū)塊,并且同時(shí)恢復(fù)公共區(qū)塊鏈上的已確認(rèn)的交易。這些交易很有可能會(huì)在稍后(即誠(chéng)信的礦工開(kāi)挖新區(qū)塊的時(shí)候)再次得到確認(rèn)。不過(guò),我們目前還無(wú)法真正確保這些區(qū)塊的再次確認(rèn)。此外,大家都應(yīng)當(dāng)意識(shí)到這樣一個(gè)可能性——即使這些區(qū)塊得到重新確認(rèn),上述攻擊仍有可能再次發(fā)生,因?yàn)榫有牟涣嫉牡V工可能已經(jīng)準(zhǔn)備好在下一個(gè)秘密的區(qū)塊鏈上作案了。
上述例子只是進(jìn)行51%挖礦攻擊的幾個(gè)途徑。51%攻擊還有可能通過(guò)更多的方式來(lái)發(fā)動(dòng)襲擊并造成實(shí)質(zhì)性的傷害。
發(fā)生51%挖礦攻擊的可能性有多大?
只要工作量證明的基本設(shè)定成立,那么51%挖礦攻擊就有可能發(fā)生。我們常見(jiàn)的一項(xiàng)假設(shè)是,誠(chéng)信經(jīng)營(yíng)比惡意攻擊更加有利可圖。而另一項(xiàng)假設(shè)則是,大多數(shù)哈希算力是由遵循第一項(xiàng)假設(shè)的理性的參與者提供的。即使網(wǎng)絡(luò)由于某些原因出現(xiàn)了惡意攻擊,理性的礦工仍然可以憑借占據(jù)相對(duì)優(yōu)勢(shì)的哈希算力總和壓制居心不良的參與者。
然而,在某些情況下,上述假設(shè)可能會(huì)不成立。舉個(gè)例子,如果ASIC硬件的進(jìn)步?jīng)]有公開(kāi),那么某些個(gè)體就有可能壟斷技術(shù)進(jìn)步,并通過(guò)惡意行為牟利或者至少將損失降低到可以接受的水平。
此外,諸如比特幣現(xiàn)金等幣種的哈希算力不足以維持具體某種哈希算法,因此它們往往承擔(dān)著被掌握一定哈希算力的實(shí)體機(jī)構(gòu)所攻擊的風(fēng)險(xiǎn)。舉個(gè)例子,比特幣現(xiàn)金和比特幣都使用SHA256D,但比特幣現(xiàn)金的算力僅相當(dāng)于比特幣的10%。
上述情況導(dǎo)致人們對(duì)工作量證明產(chǎn)生了一定程度的不信任和不確定,這一點(diǎn)在比特幣現(xiàn)金社區(qū)內(nèi)部爆發(fā)的哈希算力之爭(zhēng)中表現(xiàn)得尤為明顯。在這次紛爭(zhēng)當(dāng)中,多個(gè)團(tuán)體聯(lián)合起來(lái)在比特幣現(xiàn)金網(wǎng)絡(luò)之外創(chuàng)建了新的分叉,因此對(duì)原有網(wǎng)絡(luò)構(gòu)成了51%挖礦攻擊的威脅。
雖然此類(lèi)攻擊迄今為止還沒(méi)有成功地襲擊各大加密數(shù)字貨幣,但市場(chǎng)已經(jīng)對(duì)此作出了消極的反應(yīng),并進(jìn)而導(dǎo)致市場(chǎng)低迷和多家交易平臺(tái)終止貨幣交易??紤]到加密數(shù)字貨幣的長(zhǎng)期目標(biāo)是實(shí)現(xiàn)廣泛應(yīng)用,發(fā)生51%攻擊的可能性也是不可接受的。
達(dá)世幣如何應(yīng)對(duì)上述難題?
迄今為止,達(dá)世幣和其它基于工作量證明的幣種一樣脆弱,因此,很多社區(qū)成員已經(jīng)紛紛向團(tuán)隊(duì)咨詢(xún)要怎樣解決上述難題。之前就曾經(jīng)出現(xiàn)一個(gè)題為《抵押挖礦》的提案,致力于在一定程度上防范51%挖礦攻擊。不過(guò),由于這個(gè)方案要求對(duì)挖礦的經(jīng)濟(jì)原理進(jìn)行大規(guī)模的改動(dòng),因此它的執(zhí)行本來(lái)就很成問(wèn)題。
長(zhǎng)效主節(jié)點(diǎn)仲裁鏈也稱(chēng)LLMQs,它的推出使達(dá)世幣能夠運(yùn)行防范51%挖礦攻擊的新保護(hù)機(jī)制——ChainLocks。這項(xiàng)機(jī)制最早出現(xiàn)在達(dá)世幣優(yōu)化提案8中(即DIP8)。這個(gè)提案已經(jīng)執(zhí)行好幾個(gè)月了,我們?cè)诖藳Q定予以公布,并借此解答社區(qū)成員有關(guān)如何應(yīng)對(duì)51%挖礦攻擊的提問(wèn)。它不僅能解答疑難,還意味著《抵押挖礦》提案已經(jīng)過(guò)時(shí)了。
基于長(zhǎng)效主節(jié)點(diǎn)仲裁鏈的ChainLocks
ChainLocks的創(chuàng)想是對(duì)“先被發(fā)現(xiàn)的”規(guī)則進(jìn)行全網(wǎng)絡(luò)范圍內(nèi)的評(píng)估和投票。在各個(gè)區(qū)塊上,長(zhǎng)效主節(jié)點(diǎn)仲裁鏈將在數(shù)百個(gè)主節(jié)點(diǎn)中被挑選而出,而每個(gè)以參與者都會(huì)對(duì)參與活躍區(qū)塊鏈的拓展的第一個(gè)區(qū)塊進(jìn)行簽名確認(rèn)。如果足夠數(shù)量的參與者(以60%或以上為例)將同一個(gè)區(qū)塊簽名確認(rèn)為第一個(gè)區(qū)塊,那么他們就可以創(chuàng)建一條P2P信息(下文簡(jiǎn)稱(chēng)CLSIG)并將它公布到網(wǎng)絡(luò)的所有節(jié)點(diǎn)上。這一過(guò)程還涉及諸多細(xì)節(jié),尤其是在多個(gè)礦工同時(shí)發(fā)現(xiàn)一個(gè)區(qū)塊的情況下。達(dá)世幣優(yōu)化提案8對(duì)相關(guān)細(xì)節(jié)進(jìn)行了描述。
只有在足夠數(shù)量的仲裁鏈成員同意的前提下,CLSIG信息才得以創(chuàng)建。這是因?yàn)殚L(zhǎng)效主節(jié)點(diǎn)仲裁鏈?zhǔn)褂玫氖荁LS M-of-N門(mén)限簽名機(jī)制,因此CLSIG需要取得一定數(shù)量的有效簽名。門(mén)限簽名和常規(guī)的BLS簽名相似,可以由所有節(jié)點(diǎn)驗(yàn)證且無(wú)需知會(huì)簽名者的身份。BLS M-of-N門(mén)限簽名機(jī)制只要求用到長(zhǎng)效主節(jié)點(diǎn)仲裁鏈的公鑰,這個(gè)公鑰可以在區(qū)塊鏈數(shù)據(jù)中檢索取得?;陂L(zhǎng)效主節(jié)點(diǎn)仲裁鏈簽名的申請(qǐng)和會(huì)話(huà)原理,有效的CLSIG信息要么只有一個(gè),要么無(wú)法創(chuàng)建。因此,長(zhǎng)效主節(jié)點(diǎn)仲裁鏈可以消除因沖突而產(chǎn)生的不確定性。
有效的CLSIG信息的出現(xiàn)說(shuō)明長(zhǎng)效主節(jié)點(diǎn)仲裁鏈的多數(shù)成員(例如成員總數(shù)的60%)已經(jīng)將某一個(gè)具體的區(qū)塊確認(rèn)為第一個(gè)區(qū)塊。由于長(zhǎng)效主節(jié)點(diǎn)仲裁鏈?zhǔn)窃谶_(dá)世幣主節(jié)點(diǎn)中(當(dāng)前共有4900多個(gè))隨機(jī)抽取的,因此,發(fā)現(xiàn)第一個(gè)區(qū)塊的眾多節(jié)點(diǎn)也是隨機(jī)分布在整個(gè)達(dá)世幣網(wǎng)絡(luò)上的,從統(tǒng)計(jì)學(xué)的角度看,這些節(jié)點(diǎn)在長(zhǎng)效主節(jié)點(diǎn)仲裁鏈上的分布也是隨機(jī)的。換句話(huà)說(shuō),如果有60%的長(zhǎng)效主節(jié)點(diǎn)仲裁鏈成員首先發(fā)現(xiàn)了第一個(gè)區(qū)塊,那么,整個(gè)達(dá)世幣網(wǎng)絡(luò)上的60%的成員也會(huì)首先發(fā)現(xiàn)這第一個(gè)區(qū)塊。
如果節(jié)點(diǎn)收到了有效的CLSIG消息,它應(yīng)當(dāng)駁回與消息中指定的區(qū)塊相沖突的所有區(qū)塊及其以它們?yōu)榛A(chǔ)創(chuàng)建的所有區(qū)塊。這不僅使針對(duì)活躍區(qū)塊鏈的決策變得快速、簡(jiǎn)單而明確,還消除了在這個(gè)區(qū)塊下進(jìn)行重組的可能性。
ChainLocks對(duì)網(wǎng)絡(luò)的影響
ChainLocks將對(duì)整個(gè)網(wǎng)絡(luò)和經(jīng)濟(jì)原理產(chǎn)生重大的影響。對(duì)于普通用戶(hù)和商家而言,它帶來(lái)的最大的影響就是,當(dāng)ChainLocks鎖定的區(qū)塊完成初次鏈上確認(rèn)后,相關(guān)交易就被視作完全確認(rèn)了。由于無(wú)法重組已簽名或已鎖定的區(qū)塊,因此,交易不會(huì)從區(qū)塊鏈上消失。這就意味著,用戶(hù)和商家不必等待至少六重確認(rèn)才能確認(rèn)交易已經(jīng)安全地完成。
同時(shí),ChainLocks也會(huì)對(duì)挖礦活動(dòng)產(chǎn)生影響。它消除了礦工在區(qū)塊鏈上進(jìn)行重組的所有激勵(lì)。以秘密或私自挖礦為前提的許多攻擊將變得不可行,因?yàn)檫@些活動(dòng)都依賴(lài)于礦工長(zhǎng)時(shí)間隱瞞秘密的區(qū)塊鏈。依據(jù)當(dāng)前的共識(shí)規(guī)則,秘密的區(qū)塊鏈可以覆蓋公共的區(qū)塊鏈,并在公布時(shí)觸發(fā)區(qū)塊鏈的重組。然而,在ChainLocks的激勵(lì)下,哪怕礦工們理論上有足夠的算力駁回其他礦工的區(qū)塊,他們也會(huì)立即公布新挖區(qū)塊。這是因?yàn)楣紖^(qū)塊時(shí)的失敗會(huì)給心懷惡意的礦工帶來(lái)了巨大的風(fēng)險(xiǎn)——如果另一位誠(chéng)信的礦工在他之前就公布了接收到CLSIG消息的有效區(qū)塊,那么他所公布的任何秘密的區(qū)塊鏈及其以此為基礎(chǔ)的多達(dá)數(shù)千個(gè)的區(qū)塊都會(huì)立即失效。
最長(zhǎng)鏈規(guī)則會(huì)受到怎樣的影響?
在以工作量證明為基礎(chǔ)的共識(shí)機(jī)制中,最長(zhǎng)鏈規(guī)則是最重要的一個(gè)方面。它認(rèn)為,每個(gè)節(jié)點(diǎn)都應(yīng)當(dāng)將累計(jì)工作量最多的區(qū)塊鏈視作最活躍的鏈,但前提是這個(gè)區(qū)塊鏈必須遵守所有的共識(shí)規(guī)則。它存在的理由是就拓展哪條區(qū)塊鏈達(dá)成共識(shí)。節(jié)點(diǎn)需要基于有限的信息達(dá)成共識(shí),并且唯一可靠的信息就是從區(qū)塊鏈源頭取得的。僅參考從區(qū)塊源頭累積的工作確保了每個(gè)節(jié)點(diǎn)都可以斷開(kāi)連接并重新連接,并且還可以隨時(shí)達(dá)成共識(shí)。
在引入ChainLocks之后,最長(zhǎng)鏈規(guī)則仍然有效,但它將服從CLSIG消息的約束。實(shí)際上,只有長(zhǎng)效主節(jié)點(diǎn)仲裁鏈的成員才能完全遵守最長(zhǎng)鏈規(guī)則,因?yàn)樗麄兛梢月?lián)合創(chuàng)建CLSIG消息。由于只有在足夠數(shù)量的仲裁鏈成員同意的前提下,CLSIG信息才得以創(chuàng)建,因此它的出現(xiàn)就可以證明對(duì)應(yīng)的區(qū)塊曾是或者仍是最長(zhǎng)鏈上的區(qū)塊。
這樣的機(jī)制需要礦工對(duì)CLSIG消息和主節(jié)點(diǎn)網(wǎng)絡(luò)傾注信任,但我們認(rèn)為這是可以接受的。這一機(jī)制以主節(jié)點(diǎn)網(wǎng)絡(luò)的大部分成員都是誠(chéng)信可靠的為前提,正如工作量證明系統(tǒng)以大部分礦工都是誠(chéng)信可靠的為前提。
ChainLocks的與眾不同之處在于,只有各個(gè)網(wǎng)絡(luò)層級(jí)中的礦工和主節(jié)點(diǎn)中的51%聯(lián)合起來(lái)才能發(fā)動(dòng)攻擊。即使攻擊成功,攻擊者仍然無(wú)法進(jìn)行深度重組,因?yàn)楣粽邿o(wú)法令之前的CLSIG消息失效。在最糟糕的情況下,攻擊者還可能發(fā)布不具備簽名確認(rèn)的區(qū)塊,并且被所有節(jié)點(diǎn)注意到。此外,如果具備多數(shù)誠(chéng)信主節(jié)點(diǎn)的長(zhǎng)效主節(jié)點(diǎn)仲裁鏈早在攻擊發(fā)生之時(shí)簽名確認(rèn)了一個(gè)區(qū)塊,那么之前所有未經(jīng)簽名的區(qū)塊都將會(huì)被完全確認(rèn),從而打消了重組的可能性。
至于其它的共識(shí)規(guī)則?
其它共識(shí)規(guī)則不會(huì)受到ChainLocks的影響。在一個(gè)區(qū)塊獲得認(rèn)可之前,它必須通過(guò)所有節(jié)點(diǎn)的驗(yàn)證,其中包括雙花支付驗(yàn)證、簽名驗(yàn)證和工作量證明(哈希《難度目標(biāo))。
有效的CLSIG消息不能強(qiáng)制礦工接受其他無(wú)效的區(qū)塊。
其它幣種為什么沒(méi)有ChainLocks?
確保ChainLocks的安全的主要先決條件之一就是由半托管狀態(tài)下的節(jié)點(diǎn)構(gòu)成的可防范Sybil攻擊的網(wǎng)絡(luò)。不具備這類(lèi)節(jié)點(diǎn)的加密數(shù)字貨幣將無(wú)法以安全的方式實(shí)現(xiàn)ChainLocks的功能。以比特幣為例,任何依托單個(gè)節(jié)點(diǎn)的投票而進(jìn)行的活動(dòng)都有可能因?yàn)楣粽呖梢暂p松地創(chuàng)建數(shù)千個(gè)不良節(jié)點(diǎn)而受到干擾。在這種情況下,唯一的可行方案就是在人為選取的節(jié)點(diǎn)中創(chuàng)建信任機(jī)制,但這需要大規(guī)模的集中化管理。
對(duì)于達(dá)世幣來(lái)說(shuō),它可以通過(guò)要求主節(jié)點(diǎn)持有人存入1000達(dá)世幣作為保證金來(lái)防范Sybil攻擊。具體來(lái)說(shuō),由于主節(jié)點(diǎn)持有人必須存入這筆保證金,因此持有足夠數(shù)量的主節(jié)點(diǎn)就意味著攻擊者需要投入大量的資金,這樣一來(lái),發(fā)動(dòng)Sybil攻擊將會(huì)變得風(fēng)險(xiǎn)巨大且弊大于利。以長(zhǎng)效主節(jié)點(diǎn)仲裁鏈為前提和當(dāng)前的參數(shù)為依據(jù),攻擊者需要購(gòu)置主節(jié)點(diǎn)總數(shù)的60%才有可能成功地發(fā)動(dòng)攻擊。
在我看來(lái),上述特點(diǎn)正是達(dá)世幣主節(jié)點(diǎn)網(wǎng)絡(luò)最被低估的屬性之一。防范Sybil攻擊的實(shí)用功能正是ChainLocks和其它基于仲裁鏈的決策得以存在的主要先決條件。
未來(lái),這一獨(dú)特而強(qiáng)大的網(wǎng)絡(luò)基礎(chǔ)設(shè)施將幫助達(dá)世幣在長(zhǎng)效主節(jié)點(diǎn)仲裁鏈的基礎(chǔ)上穩(wěn)妥地引入各項(xiàng)新功能,從而將達(dá)世幣打造成更安全、便捷且用戶(hù)友好的加密數(shù)字貨幣。
評(píng)論