共識算法的改進措施?改變機制能避免51%攻擊嗎?
區塊鏈大本營/phyro-Tomaz Kariz/Guoxi/張詠晴編譯
2019-03-11 16:14

 

在協議級別上實施礦池機制,可以保證礦池確實存在。但即使我們沒有礦池,協議也能夠針對這種情況進行相應的優化。

 

就比如說,我們可以鼓勵礦工聚集起來,組建一定數量的礦池,具體的方法就是根據每個礦池的哈希算力給予挖礦獎勵,從而匯聚成總共 N 個礦池。假如我們想要大約 20 個礦池,那麼對於佔據全網哈希算力 5% 的礦池,挖礦獎勵最高(4 ETC)。

 

如果礦池的算力多於/少於這個值,那麼礦池獲得較低的獎勵,剩餘的獎勵將根據其他礦池的哈希算力分配給他們。由於我們最終為每個區塊創建了相同數量的挖礦獎勵(在這種情況下為 4 ),因此它並不會改變貨幣政策中定義的流通中的總貨幣。激勵措施需要正確完成,以便礦工按照我們的想法聚集。

 

這裡要提醒開發者以下,即使一個人擁有 5 個礦池,每個礦池都掌握全網 5% 的哈希算力,這也沒有問題,因為它增強了礦池的前後一致性,從而為我們提供了額外的安全性。

 

如果已經存在礦池,就比如說當下的以太坊經典,那麼如果需要,也可以在稍後階段實施。

 

其他可能的礦池前後一致性定義

 

礦池前後一致性公式可以執行以下操作:

 

  • 基於礦池數據和相似分析的線性回歸。
  • 懲罰哈希算力的成長(無論是對單獨的礦工還是對整個網路)。對網路懲罰的想法是,如果沒有惡意區塊鏈,那麼對每個人的懲罰都是相同的,如果存在一個想要搶佔先機的惡意區塊鏈,那麼它將受到更多的懲罰。由於區塊時間戳可能是偽造的,因此僅從區塊鏈數據中很難給出這樣的客觀分數。
  • 如果獨自挖礦的礦工或礦池在給定的區塊窗口內過快地增加挖掘區塊的比值,則給他們「超速罰單」。
  • 對礦工的數據進行統計分析。

 

協議級礦池的礦池前後一致性示例

 

假設我們有一個區塊鏈,它具有內置的激勵機制,用於讓每個礦池的哈希算力收斂到全網的 1% ,從而形成總共約 100 個礦池。

 

為了使礦池能夠對礦池前後一致性指數做出貢獻,它需要在最後 3000 個區塊上以大約 1% 的哈希算力進行一致地挖掘。礦池前後一致性指數將是透過此標準的礦池的比值。

 

比如說,如果最後 100 個區塊由 50 個不同的礦池挖出,則礦池前後一致性指數將等於 0.5 ,因此貢獻 0.5 難度。

 

在這種情況下,如果攻擊者想要進行攻擊,他需要挖最後 3000 個具有不同礦工地址的區塊中的 50% 才能開始獲得與主鏈相同的礦池前後一致性指數。除此之外,我們還可以對礦池發「超速罰單」。

 

假設我們有 100 個具有相同哈希算力的礦池,我們也可以做一些統計分析。所有礦池都具有相同的「被選擇」的概率,這意味著我們可以計算最後 100 個區塊狀態的可能性,假設它們是隨機選擇的,那麼我們可以對結果不太可能發生的事件進行懲罰。

 

寫在最後

 

說了這麼多,我並不是說人們應該改變他們的共識算法,而是應該有一個很好的理由來推進共識算法的改進,並且在考慮任何變動之前都應該很好地研究替代方案。

 

這只是我對共識算法改進的一些思考,我的想法能降低網路51%算力攻擊發生的可能性。

 

無論如何,礦池將成為區塊鏈網路的一部分,所以為什麼不物盡其用來為區塊鏈增加安全性呢?我們仍然可以將這種方法看作一種最長鏈機制,不同之處在於我們改變了測量區塊鏈長度的方式。我更青睞於人們使用更通用的描述,例如最大區塊鏈評分規則。

 

希望這篇文章能對你有幫助。

 

本文為巴比特資訊授權刊登,原文標題為「以太坊經典被51%攻擊之後, 國外大神用礦池讓攻擊者付出代價