本文中,我們簡要地討論關于PoS協議里,大家公認最大的一朵烏云——長程攻擊;內容還涵蓋了兩種目前現行的或預想的解決辦法:弱主觀性和前向安全密鑰。最后,我們提出了一種新的分叉選擇規則,使得長程攻擊成本更加高昂;這種分叉選擇可以結合現有的幾種方案,作為預防長程攻擊的額外舉措。本文是區塊鏈協議及相關主題的系列文章之一,我們持續致力于高質量的區塊鏈技術內容創作;欲了解更多當前技術現狀的全面概況,請參閱我們關于Layer2方法、隨機性、分片論文等相關文章。另外請關注我們的推特或加入NearProtocol頻道,避免錯過內容更新。
長程攻擊
在PoW中,使用最長鏈選擇規則可以獲得令人非常滿意的屬性:除非惡意攻擊者控制了全網超過50%的算力,不然無法逆轉已確認一段時間的區塊。但是在PoS中沒有這種特性。尤其是當區塊生產者建完塊且拿回質押的代幣后,對他們來說,用于創建區塊的密鑰再也沒有價值了;這時候攻擊者可以嘗試以遠低于創建區塊時質押的代幣金額去購買這些密鑰。與PoW不同,因為PoS沒有出塊之間強制延時的機制,所以買到密鑰后,攻擊者能夠在數分鐘內造出一條長于主鏈的偽鏈,并被分叉選擇規則所接受。有兩種方法能夠避免上述問題:
BCH在2分鐘內跌幅超過1.00%:據火幣全球站數據顯示,BCH/USDT在2分鐘內出現劇烈波動,跌超1.00%,當前報價為290.98美元,行情波動較大,請注意風險控制。[2020/8/19]
弱主觀性要求全網節點周期性地檢查最新的區塊,并拒收那些“重組了過分久遠的記錄”的區塊。只要足夠頻繁地檢查區塊,使得在釋放質押代幣的時間段中,肯定包含一次以上的檢查,那么節點就永遠不會選擇攻擊者創建的最長鏈,因為敵手從取出保證金的驗證者處購買的私鑰,必定只能從“過于久遠”處開始創建區塊。弱主觀性方法的不足之處在于,雖然已經存在于網絡中的節點不會被攻擊者欺騙,但是對于首次加入網絡的節點來說,他們沒有足夠的信息來判斷哪條鏈是先被創建的,因此新節點會傾向選擇攻擊者創建的較長鏈。為了避免這種情況,新節點需要以某種方式在鏈下了解關于主鏈的知識,這在本質上就是要求他們選擇信任網絡中的某個主體。
BCH在2分鐘內漲幅超過1.00%:據火幣全球站數據顯示,BCH/USDT在2分鐘內出現劇烈波動,漲超1.00%,達到1.00%。當前報價為 223.06 美元,行情波動較大,請注意風險控制。[2020/6/29]
前向安全密鑰還有一種方法是要求區塊創建者在出塊后,在極短的時間內或立刻銷毀他們用來建塊的密鑰;可以在每次建塊時創建新的密鑰對,或是通過前向安全密鑰結構來完成。這個方法仰賴于節點是誠實的,并且嚴格遵守協議。因為一旦區塊創建者知道未來的某個時間點,可能會有人要買他們的密鑰,則密鑰價值不為零,區塊創建者就沒有動機去銷毀密鑰。且不說要求在某個特定時間點,會有大比例的區塊創建者愿意修改他們的文件且移除私鑰并不現實;這種仰賴大多數參與者誠實配合的協議,與仰賴大多數參與者是理性的協議,兩者間所帶來的安全保障并不不同。PoW就是建立在大多數參與者是理性的且不會進行勾結的前提之上的,其分叉選擇規則和抗女巫攻擊也都依賴這個假設。
BCH在2分鐘內漲幅超過1.00%:據火幣全球站數據顯示,BCH/USDT在2分鐘內出現劇烈波動,漲超1.00%。當前報價為257.89美元,行情波動較大,請注意風險控制。[2020/6/2]
我們提議的分叉選擇規則
參考下圖:區塊B在主鏈上足夠前段的位置,所以產生B時大多數的在位驗證者都已經把保證金取出來了。攻擊者能夠接觸這些區塊生產者,并取得其中~2/3的私鑰;因為這時候密鑰對于區塊產生者來說已經沒有價值,所以攻擊者能以遠低于實際建塊質押的金額來買到這些密鑰。因為PoS系統沒有所謂稀缺資源,攻擊者能夠在非常短的時間內創建一條長于主鏈的偽鏈。我們需要一種分叉選擇規則,使得用戶不會將攻擊者創建的鏈視作主鏈——不論攻擊者構建出多長的偽鏈,以及有多少惡意驗證者為其簽名背書。本文建議的分叉選擇規則步驟是:從創世區塊開始,針對每個區塊通過以下規則選擇其子塊作為下一個合法區塊:
EOS在2分鐘內漲幅超過1.00%:據火幣全球站數據顯示,EOS/USDT在2分鐘內出現劇烈波動,漲超1.00%,達到1.04%。當前報價為 2.70 美元,行情波動較大,請注意風險控制。[2020/4/23]
當前區塊被主鏈采用后,對狀態進行快照。
列出當前時刻,持有代幣的所有賬戶,并做成對照表。
對于每個候選子塊,根據對照表,找出子塊及其各自子樹中簽署過至少一筆交易的公鑰,并驗證之。
算出每個候選子塊及其各自子樹中,簽署過至少一筆交易的公鑰所轉移的代幣總量;選擇轉移代幣總量最多的子塊作為合法的下一個區塊。
從圖中的例子來說,當前區塊是B,候選子塊是C1和C2;C1的子樹是所有合規主鏈上的區塊,而C2的子樹是攻擊者創建的。從B塊狀態快照開始,計算簽署過至少一筆交易的公鑰所轉移的代幣總量,作為主鏈的得分;攻擊者創建的鏈得分計算方式相同,但是因為存在重放保護,所有C2及其子樹中的交易都是由攻擊者創建的。從B塊狀態快照開始,假設在主鏈上,計算簽署過一次及以上交易的公鑰所轉移代幣總量為p;而攻擊者創建的鏈上,只存在攻擊者買到的密鑰所創建的交易,這些公鑰所轉移代幣總量為q,則q<p永遠成立。如果攻擊者創建的鏈希望獲得更高的分數,則從B塊狀態快照開始計算,C2及其子樹中的交易總額必須大于p,所以攻擊者還需要取得賬戶中總額大于(p-q)的密鑰。但攻擊者這時候就頭疼了,因為這些密鑰持有人還沒有在主鏈進行任何交易,所以他們的賬戶在快照狀態時還有資金,所以攻擊者無法用低于快照狀態中的金額來取得這些密鑰。因此,即使攻擊者以低價取得了截至B塊為止,8成的“至少在主鏈發起過一筆交易的賬戶”,攻擊者仍至少要付出0.2p的作惡成本。請注意,要讓主鏈具備抗分叉性,需要積累大量有效交易后這種分叉選擇規則才有效,所以該選擇規則僅適用于面臨長程攻擊的分叉選擇。該分叉選擇規則可以結合經典解決方案,先用拜占庭容錯型確定性工具所敲定的區塊形成一個區塊鏈的子集,并在這個子鏈上執行上述分叉選擇規則;然后基于上述規則選出的最終區塊,再使用其他更合適的分叉選擇規則。
行情丨EOS在2分鐘內跌幅超過1.00%:據火幣全球站數據顯示,EOS/USDT在2分鐘內出現劇烈波動,跌超1.00%,達到-1.01%。當前報價為 4.32 美元,行情波動較大,請注意風險控制。[2020/2/18]
結語
上述分叉選擇規則為預防長程攻擊提供了額外舉措;雖然這種規則具有一些有趣的特性,但是在投入實際應用前,還有許多研究要做。舉例來說,目前還不清楚該規則是否能夠提供經濟確定性;一切都需要更多長遠的分析。目前,我們正在積極研究防御長程攻擊的方法,并即將發布更多資料,敬請期待。
原文鏈接:
https://nearprotocol.com/blog/long-range-attacks-and-a-new-fork-choice-rule/
作者:ALEXANDERSKIDANOV
翻譯&校對:IANLIU&阿劍
親愛BKEXer: BKEXGlobal聯合ADMFund舉辦“攀登者”計劃之ADF大放送活動,其中,交易活動之2019年10月6日14:00起的活動已于2019年10月7日14:00結束.
1900/1/1 0:00:00據TokenGazer數據分析顯示:UTC10月7日,比特幣錄得一個月以來的最大單日漲幅,近期其它幣種的表現普遍好于比特幣.
1900/1/1 0:00:00尊敬的用戶: 因XRP節點維護升級,CoinTiger幣虎即刻起暫停XRP充提幣服務,恢復時間另行通知.
1900/1/1 0:00:00據北京商報報道,針對區塊鏈服務平臺上線“借貸”產品是否合規,中國(香港)金融衍生品投資研究院院長王紅英在接受采訪時表示,按照國家相關金融監管的法律規定,像以上這些,所謂的固定收益借貸模式.
1900/1/1 0:00:00北京時間10月1日8點,反映加密貨幣市場整體走勢的ChaiNext100指數報732.52點,過去24小時上漲3.27%,成交額363.81億美元,成交較前24小時增加21.90%.
1900/1/1 0:00:00尊敬的IDAX用戶:??IDAX上線RWD,并開放RWD/USDT,具體時間如下:充值時間:10月12日14:00提幣時間:10月10日?14:00交易時間:10月10日?14:00 關于RWD.
1900/1/1 0:00:00