摘要:第二個被稱為懲罰協(xié)議。這些協(xié)議將沒收那些可疑的區(qū)塊的獎勵。第二個稱為不可預(yù)測的確定性平局打破協(xié)議。在共識中,這兩個指標(biāo)指鏈質(zhì)量和激勵相容度是相等的。
在秘猿科技區(qū)塊鏈小課堂 26/27 期中,我們分享了研究員 Ren Zhang 對于主流共識協(xié)議的分析(Ren Zhang 來自于前比特幣技術(shù)實(shí)現(xiàn)公司 Blocksteam)。這一期小課堂,我們將會深入分析 PoW 共識協(xié)議的安全性,指出三種攻擊 PoW 鏈的方法,以及解決方案。并且提出衡量協(xié)議安全性的共同指標(biāo)!(PS:前排提示,理解本文需要一定共識方面背景知識,如果看不懂。那么,只需要了解結(jié)論:1/公鏈更適合 PoW 共識;2/PoW 共識性能能夠被突破)
秘猿科技區(qū)塊鏈小課堂第 28 期
在 Nakamoto 共識協(xié)議(Nakamoto Consensus 圖片中簡稱 NC)中,為解決分叉問題,礦工們被要求在可能的情況下選擇最長的鏈;在沒有最長鏈時,礦工選擇第一個接收到的區(qū)塊加入到主鏈中。在發(fā)放獎勵方面,主鏈區(qū)塊會獲得全部獎勵,而孤塊什么也得不到。
這樣是否足夠安全?
Nakamoto 共識的原始分析傾向于認(rèn)為區(qū)塊鏈本身具備完美的鏈質(zhì)量,即低于全網(wǎng) 50% 算力的攻擊者是無法修改區(qū)塊鏈的。然而實(shí)際上攻擊者完全可以有非常高的成功率去修改區(qū)塊鏈。
有三種攻擊方式會修改區(qū)塊鏈:自私挖礦(Selfish Mining)、雙花(Double Spending)和審查攻擊(Censorship Attack)。其中,自私挖礦的攻擊者可以獲得與其算力不成正比的、不公平的區(qū)塊獎勵。他們可以將挖礦算力集中起來去獲得更高的相對區(qū)塊獎勵,從而破壞區(qū)塊鏈的去中心化特性;在雙花攻擊中,攻擊者可以逆轉(zhuǎn)已確認(rèn)的交易,將自己利益最大化;審查攻擊情況下,攻擊者阻止交易被確認(rèn),造成誠實(shí)礦工的經(jīng)濟(jì)損失。
三種攻擊 自私挖礦紅色方塊表示塊被傳播到網(wǎng)絡(luò)的時間,然后橙色圓圈表示攻擊者的區(qū)塊,三角形表示被誠實(shí)礦工挖出的區(qū)塊。攻擊者很幸運(yùn)地找到了第一個區(qū)塊,但沒有將其發(fā)布到網(wǎng)絡(luò)上,而是選擇了扣留這個區(qū)塊。
當(dāng)誠實(shí)礦工找到一個塊時,攻擊者會在這時候搶在誠實(shí)礦工之前廣播之前扣留的區(qū)塊,則之后所有的礦工都將在攻擊者的區(qū)塊而不是誠實(shí)礦工的區(qū)塊上挖礦。
如果攻擊者足夠幸運(yùn),能夠連續(xù)找到多個區(qū)塊,那么攻擊者就可以毫無風(fēng)險地孤立一個誠實(shí)區(qū)塊。在這種情況下,攻擊者的的鏈變得更長,并且全網(wǎng)的算力會到它的鏈上挖礦。通過這種方式,攻擊者成功地增加了在整體區(qū)塊獎勵中獲得的相對比例。
雙花攻擊雙花攻擊與自私挖礦攻擊非常相似,是通過秘密挖礦來獲得額外獎勵。如比特幣中,按照慣例有 6 個區(qū)塊確認(rèn)交易后基本是完全確認(rèn)了。如果攻擊者秘密地扣留了 6 個區(qū)塊,并一次性將它們廣播到網(wǎng)絡(luò)中,他就能夠在收到商品或者服務(wù)之后逆轉(zhuǎn)這個交易。
審查攻擊審查攻擊試圖孤立所有不符合審查要求的塊,即我要廣播我要審查的這些交易,如果你不聽從我的命令,我會盡力孤立你的塊。
兩種解決方法下面我們來說說解決 Nakamoto 共識安全問題的兩種方法。
第一大類我們稱之為「更佳鏈質(zhì)量」協(xié)議。如圖所示這一大類中有很多協(xié)議,這些協(xié)議聲稱它們可以提高鏈的質(zhì)量。這次我將重點(diǎn)介紹「最小哈希平局打破協(xié)議(Smallest hash tie-breaking protocol ,簡稱 SHTB)」 和 「不可預(yù)測的確定性平局打破協(xié)議(Unpredictable deterministic tie-breaking,簡稱 UDTB)」。
第二大類稱為「抗攻擊」(Attack-resistant protocols)協(xié)議。這些協(xié)議聲稱,他們可以在鏈的質(zhì)量并不完美的情況下抵御攻擊,因此他們不需要提高鏈的質(zhì)量。
抗攻擊協(xié)議的三種類型第一種是「全部獎勵」(Reward-all)協(xié)議。這類協(xié)議給大多數(shù)最近做了工作量證明的以獎勵, 符合要求的塊無論如何都會獲得獎勵,如此攻擊者無法進(jìn)行自私挖礦攻擊來迫使誠實(shí)礦工的獎勵無效,從而攻擊者沒有動機(jī)進(jìn)行自私挖礦攻擊。
第二個被稱為「懲罰」(Punishment)協(xié)議。這些協(xié)議將沒收那些可疑的區(qū)塊的獎勵。懲罰規(guī)則希望通過損失厭惡, 讓所有人不得不遵守協(xié)議。
第三個被稱為「幸運(yùn)獎勵」(Reward-lucky)協(xié)議。這些協(xié)議根據(jù)區(qū)塊內(nèi)容對某些幸運(yùn)區(qū)塊進(jìn)行獎勵,希望這些幸運(yùn)區(qū)塊作為穩(wěn)定網(wǎng)絡(luò)的「錨點(diǎn)」。
接下來讓我們更深入地了解這些協(xié)議。
首先我們分析 「更佳鏈質(zhì)量」這一類協(xié)議,首先是「最小哈希平局打破協(xié)議」。在這個協(xié)議中,每當(dāng)有平局時,協(xié)議都要求所有礦工選擇哈希最小的塊,不管它首先接收的是誰。
第二個稱為「不可預(yù)測的確定性平局打破協(xié)議」。該協(xié)議規(guī)定,每當(dāng)有平局時,每個人都使用不可預(yù)知的確定性偽隨機(jī)函數(shù)來計算所有參與競爭鏈的順序,而不管首先接收哪一個塊。不可預(yù)測的確定性協(xié)議背后的原理是,由于攻擊者無法預(yù)測他是否會以超過 50% 的幾率贏得整塊競爭,進(jìn)行自私挖礦攻擊是不明智的(因此不會選擇這么做)。
對于抗攻擊協(xié)議,我會從每種技術(shù)方法中選擇一種協(xié)議來分析。對于「全部獎勵」協(xié)議我們來分析水果鏈。在水果鏈中,對兩種不同的產(chǎn)品使用了相同的挖礦程序。如果一個候選區(qū)塊的哈希值最前面的 k bits 小于某個閾值,那么就判斷它是一個塊;如果某個候選區(qū)塊的哈希值最后的 k bits 小于某個閾值,那么就判斷它是水果。因此,當(dāng)你運(yùn)行哈希算法時,你可能會得到一個區(qū)塊,也可能是得到一個水果。
該協(xié)議和 Nakamoto 共識一樣,遵循最長鏈原則,并且根據(jù)最先收到的區(qū)塊打破平局。
對于所有抵抗攻擊協(xié)議,我們使用 Nakamoto 共識作為其分叉解決的規(guī)則。因此,當(dāng)我們分析他們的攻擊抗性時,他們被置于同一規(guī)則下。
水果是嵌入在區(qū)塊中的。你可以把水果想象成 Nakamoto 共識中的交易,這個交易只是被嵌入到了水果中。
每個水果都有一個指針塊,這是一個最近的塊,水果礦工不會被孤立 。圖中香蕉塊的指針就是這樣一個案例,如果指針塊在主鏈中,則水果是有效的。如果指針塊是孤塊,就像圖上的番茄一樣,那么這個水果不再是有效的水果。
還有一個額外的規(guī)則,即水果出塊的間隔需要小于預(yù)定義的超時閾值。間隔定義為主區(qū)塊和指針區(qū)塊之間的區(qū)塊高度差。
比如,香蕉的間隔就是 2,這是因?yàn)橹鲄^(qū)塊比指針區(qū)塊晚 2 個區(qū)塊。因此有效水果獲得全額獎勵,而區(qū)塊則沒有獲得任何獎勵。
對于懲罰協(xié)議,我們選擇 DECOR 協(xié)議修改版本作為案例來講解。在我們的修改版本中,我們將其稱為「獎勵分配」(Reward-Splitting ,簡稱 RS)協(xié)議,顧名思義,獎勵在所有相同高度的競爭區(qū)塊之間平分。這個協(xié)議允許一個區(qū)塊引用之前的孤塊為叔塊,如果其間隔是低于超時閾值的,那么這個叔塊就是有效的(也會獲得一定的獎勵)。
這是在獎勵分配協(xié)議中間隔的定義和水果鏈類似。不同在于,在此協(xié)議中,間隔被定義為主區(qū)塊和叔塊的高度差,而不是主區(qū)塊和指針區(qū)塊的高度差。所以我們不考慮區(qū)塊的親緣關(guān)系,只考慮該區(qū)塊本身的高度。每個區(qū)塊獎勵在相同高度的競爭區(qū)塊和叔塊之間平均分配。例如,在這個圖中,區(qū)塊 B 和區(qū)塊 C 分別得到了一半的區(qū)塊獎勵,區(qū)塊 A 和區(qū)塊 D 則獲得全部的區(qū)塊獎勵。
最后一個是子鏈。子鏈也是采用相同的挖礦程序,但是是兩種不同的產(chǎn)品。子鏈中的出塊規(guī)則和比特幣相同,如果候選區(qū)塊的哈希低于某個特定閾值,那判斷這個塊有效。如果候選區(qū)塊的哈希值大于塊閾值但小于另一個閾值,我們將其視為弱塊(Weak Block)。弱塊也計入鏈長度,也執(zhí)行交易確認(rèn)的功能。但是,弱塊不會收到任何塊獎勵。只有區(qū)塊能獲得塊獎勵。
衡量協(xié)議安全性的共同指標(biāo)我非常激動,因?yàn)橄旅嫖覀円黄鹪O(shè)定一些衡量協(xié)議安全性的共同指標(biāo)。你聲稱這是最安全的協(xié)議,你要向我證明它,就需要從這幾個指標(biāo)的維度來衡量你的協(xié)議有多安全。
在這個研究中共有四個指標(biāo),我們來分析一下。
第一個指標(biāo)我們稱之為鏈質(zhì)量(Chain Quality),是指主鏈上誠實(shí)礦工的區(qū)塊的最小百分比。在這個例子中,鏈質(zhì)量是六分之三,因?yàn)橹麈溨杏辛鶄€區(qū)塊,其中三個來自誠實(shí)礦工。
第二個稱之為激勵相容度(Incentive Compatibility),用來衡量對自私挖礦攻擊的抗性,被定義為誠實(shí)礦工區(qū)塊獎勵的最小百分比。
在這種情況下,由于六個主鏈區(qū)塊中有三個區(qū)塊來自于誠實(shí)礦工,因此激勵相容度是 50%。在 Nakamoto 共識中,這兩個指標(biāo)(指鏈質(zhì)量和激勵相容度)是相等的。但是,對于其他協(xié)議,這兩個指標(biāo)并不相同。鏈質(zhì)量只是用來評估拜占庭敵手(也就是作惡節(jié)點(diǎn)),但激勵相容度則把獎勵也考慮在內(nèi)。
第三個指標(biāo)是另一個攻擊抗性的指標(biāo),稱為「作惡收益」(Subversion Gain),衡量抗雙花攻擊的性能。它被定義為「平均每個出塊間隔能夠獲得的區(qū)塊獎勵加上雙花獎勵的最大值」。
在這種情況下,假設(shè)每隔 10 分鐘能找到一個塊,如果總共有 8 個塊,那么總共需要 80 分鐘(其中攻擊者有 3 個塊)。在這個例子里,平均每 10 分鐘,攻擊者獲得 3/8 個區(qū)塊獎勵。雙花獎勵為 0,因?yàn)殡p花獎勵需要連續(xù)孤立六個塊。
因?yàn)樵诳闺p花攻擊中沒有完整的百分比獎勵,因此指標(biāo)設(shè)定為「平均每個出塊間隔獲得區(qū)塊獎勵的最大值」。在這張圖上,沒有雙花攻擊獎勵,因?yàn)槟阈枰B續(xù)出孤立至少 6 個區(qū)塊才能獲得雙花獎勵。
最后一個指標(biāo)稱為「審查敏感性」(Censorship Susceptibility),即因?yàn)榫芙^審查者的要求,導(dǎo)致誠實(shí)礦工的獎勵損失的最大百分比。因?yàn)槿绻揖芙^審查請求,攻擊者將開始孤立我的區(qū)塊。此指標(biāo)用來衡量我的區(qū)塊可以被孤立的百分比。在這個案例中,有 5 個誠實(shí)的塊,其中 2 個是孤塊,所以審查敏感性是 2/5。
評估結(jié)果現(xiàn)在我們來看看評估結(jié)果。在這次分享中我分析了 5 個協(xié)議,我們來看看第一個指標(biāo)鏈質(zhì)量。
我們先定義一個變量 γ ,它是在平局情況下,在攻擊者的鏈上挖礦的誠實(shí)礦工算力占所有誠實(shí)礦工算力的百分比。
如果 γ 等于零,那么所有誠實(shí)礦工的算力都會用在挖誠實(shí)礦工的鏈上,沒有誠實(shí)礦工的算力在攻擊者的鏈上挖礦。如果 γ 等于1,則所有誠實(shí)礦工的算力將在攻擊者鏈上挖礦,并且沒有人會在誠實(shí)礦工的鏈上挖礦。
這是是用來評估 Nakamoto 共識的通用參數(shù)。這里有五個情況,分別是在 γ = 0,0.5,1 情況下的 Nakamoto 共識、最小哈希平局打破協(xié)議(SHTB)和 不可預(yù)測的確定性平局打破協(xié)議(UDTB) ,哪一個是鏈質(zhì)量最佳的?
在這五個協(xié)議中,最小哈希平局打破協(xié)議(SHTB) 和 不可預(yù)測的確定性平局打破協(xié)議(UDTB) 僅關(guān)注如何打破平局。所以你并不能比 γ = 0 的平局的情況下的 Nakamoto 共識做的更好。因?yàn)楫?dāng) γ = 0 的時候,所有的挖礦算力將會在誠實(shí)的鏈上。并且你不能比 γ = 1 的情況下的 Nakamoto 共識更差了,攻擊者在這種情況下可以贏得所有的平局。
所以在剩下的三個協(xié)議里(SHTB、UDTB、γ = 0.5 的 Nakamoto 協(xié)議)哪一個是表現(xiàn)最差的?其實(shí)是最小哈希平局打破協(xié)議。那么對于剩下兩個協(xié)議(UDTB、γ = 0.5 的 Nakamoto 協(xié)議)哪一個更好呢?
我來揭開這個答案。γ = 0.5 的 Nakamoto 共識是更好的。為什么?舉例來說,在不可預(yù)測的確定性平局打破協(xié)議(UDTB)中,當(dāng)一個攻擊者找到了一個區(qū)塊,但是此時誠實(shí)的礦工打包了這個區(qū)塊并且先于攻擊者將它廣播了出去,那么有可能這個攻擊者會計算偽隨機(jī)函數(shù)并意識到如果他發(fā)布了他的區(qū)塊,是沒有人會繼續(xù)在他的區(qū)塊之上挖礦的,因?yàn)樗诔鰤K競爭的平局中失敗了。那么這個攻擊者能夠做什么?
在 Nakamoto 共識中,攻擊者注定會失敗,因?yàn)樽钕仁盏降膮^(qū)塊打破平局的規(guī)則,如果你不盡快把區(qū)塊發(fā)布出去,沒有人會在你的區(qū)塊上面挖礦。但是在 UDTB 中則不同,即使下一個區(qū)塊都被挖出來了,攻擊者還是能夠在這個區(qū)塊之上繼續(xù)挖礦,只要攻擊者能夠贏得下一個出塊權(quán),那么成功之后這個攻擊者就能夠在誠實(shí)礦工的區(qū)塊之后同時發(fā)布兩個區(qū)塊。
如果這個偽隨機(jī)函數(shù)表明攻擊者贏得了出塊競賽,攻擊者就能拿到出塊獎勵。因?yàn)?UDTB 允許一個稱為“后發(fā)制人“的特殊攻擊行為,因此 UDTB 的安全性會比 γ = 0.5 的 Nakamoto 共識更差。
那為什么最小哈希平局打破協(xié)議安全性那么差?因?yàn)楫?dāng)攻擊者找到一個區(qū)塊并且這個哈希值的確非常小的時候,攻擊者會有大約 99% 的可能性,不論其他人的哈希是多少,他都能夠贏得這個出塊權(quán)。不論我先廣播哪一個區(qū)塊,我都能準(zhǔn)確的預(yù)測出我能夠贏得這個平局的可能性。這就允許攻擊者在他足夠幸運(yùn)的時候能夠發(fā)動扣塊攻擊。
當(dāng)誠實(shí)的礦工找到下一個區(qū)塊的時候,因?yàn)楣粽邊^(qū)塊的哈希是足夠小的,他有很高的可能性能夠贏得出塊權(quán),因此他能夠發(fā)布區(qū)塊并且獲得這個出塊權(quán)。下一次當(dāng)攻擊者沒有這么幸運(yùn)的時候,他拿到的區(qū)塊的哈希相對來說比較大,攻擊者能夠發(fā)布這個區(qū)塊并直接獲得獎勵。
更佳鏈質(zhì)量協(xié)議的一般性結(jié)論下面是我們研究更佳鏈質(zhì)量協(xié)議的一些一般性結(jié)論。
當(dāng)攻擊者所占算力 α > 1/4 時,沒有一個協(xié)議能夠達(dá)到一個理想的區(qū)塊鏈的質(zhì)量。只要攻擊者的算力超過了全網(wǎng)算力的 1/4,它的收益就能夠比它按照算力份額計算的正常收益更高。
只要攻擊者的算力超過了全網(wǎng)算力的 1/4 ,它的收益就能夠比它按照算力份額計算的正常收益更高。
對于任何一個 α 的值,在 γ = 0 的情況下,沒有一個協(xié)議在安全性上表現(xiàn)比 Nakamoto 共識更好。
可能對于某一特定情況,某個協(xié)議在安全性上會比 Nakamoto 共識更好,但是在整體上 Nakamoto 共識在安全性上是最好的。
這是為什么?因?yàn)閰f(xié)議并不能區(qū)分誠實(shí)的區(qū)塊和攻擊者的區(qū)塊。
為什么協(xié)議不能區(qū)分這些區(qū)塊?
這是因?yàn)樾畔⒌牟粚ΨQ。攻擊者是基于所有可得信息來行動的,也就是說他知道他發(fā)布了多少個區(qū)塊,有多少個扣留的區(qū)塊,我什么時候發(fā)布這些區(qū)塊等等,攻擊者是都知道的。然而誠實(shí)的礦工僅基于有限的公開信息來行動。
這又是為什么?
這是因?yàn)?PoW 的安全假設(shè)較弱。他們試圖異步操作,規(guī)定所有的礦工只對非常有限的公開信息采取行動/進(jìn)行操作。
那么現(xiàn)在我們來針對 Nakamoto 共識、水果鏈、獎勵分配(Reward-Splitting,RS)協(xié)議、和子鏈來分析一下他們攻擊抗性,首先是激勵相容性。
其中獎勵分配協(xié)議(執(zhí)行)表現(xiàn)最好,因?yàn)閼土P總是激勵正確行為的最有效方式。子鏈表現(xiàn)最差。
水果鏈表現(xiàn)有時比 Nakamoto 共識好,有時更糟。子鏈允許攻擊者使用無價值的弱區(qū)塊來使誠實(shí)的區(qū)塊失效。如果所有東西都是有價值的,那么攻擊者扣留區(qū)塊則是有風(fēng)險的。但是弱區(qū)塊本身毫無價值,攻擊者可以扣留這個弱區(qū)塊,而不會有失去區(qū)塊獎勵的風(fēng)險。既然無風(fēng)險,那么為什么不嘗試更大膽的扣留區(qū)塊的行為?
更多的弱區(qū)塊,協(xié)議行為越糟糕。所以更多的弱區(qū)塊實(shí)際上使事情變得更糟。最好的情況就是不去使用弱區(qū)塊。
當(dāng)水果鏈的超時值小的時候,它的表現(xiàn)比 Nakamoto 共識差。攻擊者可以使用無用的區(qū)塊使他的水果失效。這也有類似的問題出現(xiàn),因?yàn)閰^(qū)塊在水果鏈中沒有任何獎勵,所以攻擊者沒有發(fā)布區(qū)塊的動機(jī),因?yàn)榭哿魠^(qū)塊也并無風(fēng)險,結(jié)果是攻擊者可以嘗試更大膽的扣留區(qū)塊行為。
結(jié)果是攻擊者可以嘗試更大膽的持有行為。
如果有更多的水果,那么情況會稍微好一點(diǎn)。有一個著名的 Newton-Pepys 問題,它是說一個概率問題,即
A. 6 個正常的骰子獨(dú)立投擲,至少出現(xiàn) 1 個 6
B. 12 個正常的骰子獨(dú)立投擲,至少出現(xiàn) 2 個 6
如果你擲 6 次骰子,得到 1 個 6 的概率比你擲 12 次骰子得到 2 個 6 的概率要大。
在水果鏈中有四種挖礦產(chǎn)品:誠實(shí)水果,誠實(shí)區(qū)塊,攻擊水果,攻擊區(qū)塊。
我們可以將「攻擊者比誠實(shí)礦工擁有 1 個超時區(qū)塊」——即攻擊者可以成功地孤立一些水果——看作是一個條件事件。此事件完全獨(dú)立于水果生成(fruit generation),因?yàn)樗鼉H考慮區(qū)塊。我們可以把它作為 Newton-Pepy"s 問題中的條件去看待——因?yàn)樗仟?dú)立的,所以我們可以直接把它扔掉。但當(dāng)條件滿足時,如果水果較少,則“攻擊者有更多水果”的概率非常低。
更多的水果意味著更多的攻擊者水果。因?yàn)楣粽呤巧贁?shù)派,如果水果的總數(shù)更多,這意味著攻擊者的水果的總占比會比實(shí)際上多一些。這里用賭博來做類比更好理解,因?yàn)槲覀冇懈嗟乃?,這意味著當(dāng)攻擊者有更多的水果, 那么他就會更少參與賭博。 人們更愿意在沒有什么可失去的情況下賭博, 但如果有更多的資本可能會失去, 他就不想賭, 這意味著更多的水果稍微有助于提高激勵相容性。
接下來在攻擊抵抗性中我們分析攻擊「作惡收益」,這個指標(biāo)是越小越好的,如圖所示,獎勵分配協(xié)議優(yōu)于 Nakamoto 共識,優(yōu)于水果鏈,優(yōu)于子鏈。
我們分析了另一個有趣的衡量方法,稱為「作惡賞金」。我們定義其為最低雙花獎勵,來研究激勵偏差。(也就是說,在雙花攻擊的獎勵大于作惡賞金時,攻擊者才有動力作惡)。( 圖中右下角的表格,分別是 Nakamoto 共識和獎勵分配協(xié)議在區(qū)塊確認(rèn)數(shù) 3 或 6 , α (攻擊者算力占比在 0.1 ~ 0.4 的情況下,計算出來的作惡賞金)。
通過計算各個協(xié)議的「作惡賞金」可以發(fā)現(xiàn),基本上可以零成本破壞水果鏈和子鏈,甚至可以嘗試無獎勵雙花,因?yàn)楹翢o風(fēng)險。
我們可以看到,隨著交易確認(rèn)次數(shù)的增加,對于一個弱攻擊者,作惡賞金的增長幾乎呈指數(shù)增長。這意味著更多的交易確認(rèn)確實(shí)有助于抵抗雙花,但是對于強(qiáng)攻擊者來說效果就不那么明顯了。
對于抗審查能力, 我們計算所有的數(shù)字和排名如下:
對于小 α,也就是攻擊者算力占比較低的情況下, 水果鏈?zhǔn)亲詈玫? 然后是 Nakamoto 共識, 再然后是獎勵分配協(xié)議和子鏈。
對于大 α,也就是攻擊者算力占比較高的情況下,獎勵分配協(xié)議變成了最好的, 然后是水果鏈, Nakamoto 共識, 和子鏈。
顯而易見的是,對于水果鏈來說, 如果你想使其他塊無效, 要比其他協(xié)議要困難得多, 因?yàn)樗鼈兪窃诙鄠€條件下獲得獎勵, 即使你是孤塊也是如此。
為什么當(dāng) α 足夠大的時候, 也就是攻擊者算力占比較高的時候,獎勵分配協(xié)議會比水果鏈更好呢?因?yàn)樵谒溕? 間隔被定義為主區(qū)塊和指針塊之間的區(qū)塊高度差。而在獎勵分配協(xié)議中, 間隔被定義為主區(qū)塊和區(qū)塊本身之間的區(qū)塊高度差。
因此在水果鏈中,若攻擊者在長期的出塊競爭中都獲勝了,那么誠實(shí)的水果的獎勵都會被拿走因?yàn)樗麄兊闹羔槈K都被孤立了。也就是說如果你把他們的指針都孤立了,那么對他們來說就玩完了。然而在獎勵分發(fā)協(xié)議中,最后的幾個誠實(shí)的區(qū)塊還是能夠獲得一些獎勵。如果想要讓誠實(shí)礦工失去所有獎勵,將他們的指針孤立是不夠的,你需要將大量連續(xù)的區(qū)塊孤立起來才行。(這給攻擊者增加了阻礙)。
這些圖片能夠說明這些問題。
在水果鏈中,如果你孤立了指針,那么你能夠安心地獲得所有的獎勵。然而在獎勵分配協(xié)議中,即使你在出塊競爭中長期孤立了這些區(qū)塊,但是這些區(qū)塊還是會指向回主鏈。因?yàn)殛P(guān)鍵關(guān)系并沒有考慮進(jìn)去,這個區(qū)塊仍會分走攻擊者一半的出塊獎勵,這讓它更能抵抗審查攻擊。(因?yàn)榫退惚粚彶?,誠實(shí)礦工還是能獲得一部分獎勵。)
抵抗攻擊協(xié)議的通用結(jié)論下面談一下研究中對于抵抗攻擊協(xié)議的一些通用結(jié)論。
合理的設(shè)置更長的區(qū)塊確認(rèn)時間和更大的帶寬會增加安全性。
有一個兩難困境,我們稱為“獎勵壞人,懲罰好人”的機(jī)制。這對于大家來有點(diǎn)顛覆對協(xié)議獎勵的認(rèn)知。因?yàn)樵谶@里即使你分叉你仍然能夠獲得出塊獎勵,你分叉是沒有風(fēng)險的。所以這反而激勵了攻擊者去分叉和發(fā)動雙花攻擊。
在懲罰性協(xié)議中,因?yàn)閷彶楣粽卟辉诤跛麄冏约旱某鰤K獎勵,你的懲罰規(guī)則反而給攻擊者另一個工具,來讓誠實(shí)的礦工放棄出塊獎勵。
而對于幸運(yùn)獎勵協(xié)議,如果你不打破信息不對稱,那么幸運(yùn)并不意味著好。有時候幸運(yùn)的塊反而是壞的塊,讓事情變得更糟。
結(jié)論就是,想要解決所有的攻擊,我們需要在底層規(guī)則中超越獎勵。(獎勵規(guī)則并不能很好解決攻擊的問題)
具體怎么做?我提出一些想法和大家討論一下。
我們不應(yīng)該設(shè)計一個太復(fù)雜、太難分析的協(xié)議。我們需要設(shè)計一個設(shè)計者能夠分析的協(xié)議。簡單就是好的,復(fù)雜是安全的敵人。
僅針對單一攻擊策略的安全性分析是很危險的。對于很多協(xié)議來說,它們的設(shè)計者經(jīng)過模擬說他們的協(xié)議能夠抵抗某種特定的攻擊方式,但是這樣的協(xié)議卻啟發(fā)了攻擊者去研究其他的攻擊策略。僅針對單一攻擊動機(jī)的安全性分析也是很危險的。
攻擊者可能會著眼于短期利益,長期利益或者損害其他礦工的利益。為了抵抗某一種攻擊,你就可能啟發(fā)了攻擊者基于另一個目標(biāo)發(fā)動另一種形式的攻擊。在你的模型中你需要考慮到所有不同動機(jī)的攻擊者。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24744.html
摘要:近日,研究員張韌發(fā)表的被接收,這也是中國大陸的區(qū)塊鏈團(tuán)隊第一次在區(qū)塊鏈行業(yè)核心會議上發(fā)表相關(guān)論文。關(guān)于論文張韌是魯汶大學(xué)在讀博士,前研究員,長期專注于區(qū)塊鏈共識協(xié)議安全和隱私研究。 showImg(https://segmentfault.com/img/bVbpmou?w=2779&h=1179); 近日,Nervos & Cryptape 研究員張韌發(fā)表的《Lay Down the...
摘要:基于可行性的考慮,張韌博士選取了個共識協(xié)議在此做講解。第二個被稱為懲罰協(xié)議。這些協(xié)議將沒收那些可疑的區(qū)塊的獎勵。第二個稱為不可預(yù)測的確定性平局打破協(xié)議。在共識中,這兩個指標(biāo)指鏈質(zhì)量和激勵相容度是相等的。 showImg(https://segmentfault.com/img/bVbnGxG?w=1881&h=801); Nervos 研究員張韌博士在 Master Workshop ...
摘要:基于可行性的考慮,張韌博士選取了個共識協(xié)議在此做講解。第二個被稱為懲罰協(xié)議。這些協(xié)議將沒收那些可疑的區(qū)塊的獎勵。第二個稱為不可預(yù)測的確定性平局打破協(xié)議。在共識中,這兩個指標(biāo)指鏈質(zhì)量和激勵相容度是相等的。 Nervos 研究員張韌博士在 Master Workshop 中發(fā)表了題為「Lay Down the Common Metrics:Evaluating Proof-of-Work ...
摘要:比特幣和以太幣屬于一類區(qū)塊鏈,我們將其歸類為公共無許可的區(qū)塊鏈技術(shù)。例如,在單個企業(yè)中部署時,或由受信任的權(quán)威機(jī)構(gòu)運(yùn)作,完全拜占庭容錯的共識可能被認(rèn)為是不必要的,并且對性能和吞吐量造成過度的拖累。 介紹 一般而言,區(qū)塊鏈?zhǔn)且粋€不可變的交易分類賬,維護(hù)在一個分布式對等節(jié)點(diǎn)網(wǎng)絡(luò)中。這些節(jié)點(diǎn)通過應(yīng)用已經(jīng)由共識協(xié)議驗(yàn)證的交易來維護(hù)分類帳的副本,該交易被分組為包括將每個塊綁定到前一個塊的散列的塊...
摘要:最后,在中采用了一個的變體作為共識協(xié)議,擁有更高的吞吐量。知識點(diǎn),在比特幣改進(jìn)協(xié)議中提出,能夠減少網(wǎng)絡(luò)節(jié)點(diǎn)廣播區(qū)塊所需的帶寬數(shù)量。下面我們來進(jìn)一步分析這些協(xié)議的安全性功能性和吞吐量。當(dāng)這些安全性假設(shè)被違反,會為這些協(xié)議帶來災(zāi)難性的后果。 帶寬實(shí)際上是區(qū)塊鏈吞吐量的最大限制,在美國舊金山舉辦的 Scaling Bitcoin Meetup 中,Nervos & Cryptape 研究員...
閱讀 1028·2023-04-26 02:26
閱讀 2133·2021-09-26 10:16
閱讀 1543·2019-08-30 12:57
閱讀 3460·2019-08-29 16:10
閱讀 3213·2019-08-29 13:47
閱讀 1181·2019-08-29 13:12
閱讀 2134·2019-08-29 11:11
閱讀 1330·2019-08-26 13:28