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