為什麼說51%攻擊技術上實際需要的算力低於50%?
這個回答提到實際上25%就可以實現?
maxdeath:在區塊鏈上,誠實鏈與攻擊者鏈之間的競賽,為什麼被稱為51%攻擊而不是50%攻擊?
謝邀。
我重新去看了看我的回答,好像寫得不確切,給人產生了理解問題,所以我修改了一下。
如何看待自私挖礦法對比特幣帶來的威脅?
其實,這個帖子里有討論過,我覺得其實換一種說法更好理解。
首先,比特幣里並沒有做出「大家都是誠實的,按照規則來」的假設,比特幣里唯一的假設,就是所有的礦工都是「理性的」,換句話說,就是他們想要得到更多的比特幣。
於是,實際上,挖到礦之後立即發布,然後看到外面有比自己正在挖的更長的鏈就放棄自己的鏈去挖新的這種默認策略,其實只是礦工的策略之一。只不過,通常情況下,這種策略是能夠獲得最大收益的策略。所以大家才會按照這個
然而,這篇論文https://arxiv.org/pdf/1311.0243v1.pdf提出了另一種策略,叫自私挖礦。
這種策略就是,挖到礦不發布,然後繼續挖,挖到第二塊的時候再發布出來。
我們來對比一下兩種挖礦的收益,假設你擁有1/3的礦力,採用默認挖礦,平均每十塊就有一塊你挖出來的,也就是你的期望收益是1/3。
如果使用自私挖礦的話,如果你和其他人從同一個時間開始,那麼你成功的概率=你連續挖到2塊礦的概率/除你之外的人連續挖到2塊礦的概率。你的期望收益是(1/3)^2/(2/3)^2=1/4。
乍看起來,這種方法是明顯不合算的。
然而,實際上自私挖礦的人可以干點更聰明的事——1,你只有在比別人早挖到第一塊的時候才採取這個策略,如果別人已經公布了第一塊,你就立刻在新塊上重新開始這個策略。2,如果你先發現了第一塊,但是在發現第二塊之前別人也發現了第一塊,這個時候,如果你的網路連接夠好,你可以立即公布你的第一塊,然後就進入了兩個塊的競爭狀態。3,就算你沒競爭過對手,你仍舊可以和其他人處於同一起跑線競爭下一次挖礦。
換句話說,自私挖礦的策略其實是這樣的:挖到塊不馬上發而是攥在手裡,這個時候,你的鏈比別人長,視作「優勢」。否則,如果你的鏈和別人一樣長或者比別人短,則視為劣勢。
當處於優勢的時候,挖自己的鏈。
當處於劣勢的時候,立即發布自己的鏈然後挖別人的。
我們考慮一種極端情況——假設你的網比任何人都好,以上的第二種策略中,你永遠能夠競爭贏對手,這會出現什麼情況呢?
這相當於說當你挖到礦的時候,你可以嘗試挖下一個。如果挖到了,你賺了,如果挖不到,你發布之前挖到的,因為你網好競爭總能贏,所以你沒任何損失。
所以,這種情況下,你自私挖礦的收益,嚴格優於你正常挖礦,無論你有多少算力。
然而,這種情況太理想化,最好的情況,是你和別人在競爭中五五開,最壞的情況,是你完全競爭不過別人——這點不難理解,因為畢竟別人挖到了礦就會廣播,而你得先聽到別人的廣播再廣播。
在這兩種情況下,採取自私挖礦策略嚴格有力的算力閾值,分別是25%和33%。也就是說,如果你能在競爭中和別人五五開,你只要有25%的算力,自私挖礦就是更有利的選擇。就算你在競爭中總是會輸,如果你有33%的算力,自私挖礦也是嚴格有利的。
也許有人認為這些問題的理論意義大於實際意義,但是我個人覺得這已經很能說明問題了,51%攻擊,其實也是理論意義大於實際意義,但你能說它不重要嗎?我們從極端的33%的情況來說——
如果你有33%的算力,自私挖礦是嚴格有利於你的,作為礦工,在比特幣的規則里,你會採取自私挖礦。
而這個時候,比特幣的安全性的前提就不存在了,因為此時,網路里通常存在兩條鏈,一條公開的,一條隱藏的。而33%的算力在進行投機式的挖礦的時候,並沒有保護網路的安全性。這導致了兩個問題——1,網路的安全性下降了,不需要50%的算力也可以進行攻擊;2,一些算力較小的礦工,也會發現自私挖礦對於他們嚴格有利(因為全網的算力實際上變小了)。
我記得這些可能是另一篇論文里提到的,但是不記得出處了。
這就是我在那個回答里提到的問題——
51%攻擊聽起來是說只有當有人有51%的算力的時候,比特幣才會不安全。
實際上,當有人有超過25%甚至接近這個值的算力的時候,比特幣的安全性就不能簡單粗暴地用51%的模型來考慮了,因為那個時候你就不能認為所有的礦工都是遵守規則的了。
因為算力達到51%是攻擊必定成功,算力低於51%是有可能成功。
推薦閱讀:
※如何看待Telegram或將ICO?
※中本聰有能力用一句話毀滅比特幣嗎?
※比特股有什麼用?
※【幣圈掃盲帖】你的數字貨幣持倉比例是怎樣的?投資數字貨幣真能賺錢嗎?比特幣和以太坊,更看好哪一個?
※如何看待最近瘋傳2018年1月25號的國家即將對虛擬貨幣出台政策?
TAG:比特幣Bitcoin | 區塊鏈Blockchain |