如何看待自私挖礦法對比特幣帶來的威脅?

前幾天兩個康奈爾的學生在archive上發表的文章,提出了自私挖礦法,採取此策略的礦池可以獲得比自身算力更高的回報。我初讀了一遍,並沒有發現學術上的錯誤,假設也是合理的。

你認為這篇文章有學術上的漏洞嗎?你認為這種策略會對現在的比特幣挖礦機製造成衝擊嗎?(有人認為已經有礦池採取了此種策略,特別是經常出現分叉的那些)

文章鏈接:http://arxiv.org/pdf/1311.0243v1.pdf

新聞鏈接:比特幣驚現25%漏洞 面臨51%攻擊後的又一威脅


自私挖礦簡單說就是,挖到礦不發布,然後繼續挖,挖到第二塊的時候再發布出來。

我們來對比一下兩種挖礦的收益,假設你擁有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%的模型來考慮了,因為那個時候你就不能認為所有的礦工都是遵守規則的了。


主要的原理不重複了。假設有自私的礦池S(elfish),和剩餘的其他礦池H(onest),

當S挖到block,如果之前和H在拼人品,則立即廣播,否則就私藏並開始挖下一個,此時:

1 若H先挖到,則S也廣播,拼人品看哪個最終成為孤立區塊

2 若S靠先機先挖到,則廣播所挖的兩個block

這裡影響的因素有S的運算力所佔比例和區塊被孤立的概率,文中假設block的廣播是瞬時的。如果論文中的概率沒有算錯,結論是:若被孤立的概率是50%,只要S有25%以上的算力,收益會比誠實挖礦收益高。引起的爭議可能是文中認為可以用Sybil Attack使得自己的區塊被孤立的概率為0,這樣無論多少算力都會比誠實挖礦收益高。

如果這裡的Sybil Attack不成立,只考慮被孤立的概率各半,那麼25%攻擊也許長期看收益要更高,只不過在挖礦這樣的變化激烈的產業中,多久能算長期呢。對礦工來說這樣的礦池收入會很不穩定,錯過了難度低的時期恐怕更痛苦。因此這樣的礦池能否迅速吸引礦工形成中心化節點是存疑的。

另一個問題是區塊的廣播速度是需要加入考慮的,討論中有人認為有礦池採用這種策略,其實很大原因是這些礦池的區塊廣播速度很慢,比如ASICMiner之前是孤立區塊最多的礦池,他們的區塊有的甚至要2分鐘廣播時間,原因包括使用ADSL網路上傳帶寬低(往8個連接發送200KB的block至少要30秒了)和天朝的網路吧。考慮這個因素後的結論現在還不得而知。


所謂自私挖礦,是指當一個」自私的礦池」挖到新的區塊,在必須提交到網路節點之前,他們一直私下保存。該理論的依據是」自私的礦池 「保持了區塊的私密性,讓其餘的網路算力浪費資源去挖掘,這樣」自私的礦池」在挖下一個區塊的時候就取得先機。

「自私的礦池」還必須監視其它礦池,預測他們什麼時候發現新的區塊。當」誠實的礦池」廣播發現一個新塊的時候,」自私的礦池」還必須發動一個Sybil Attack(女巫攻擊)以搶先讓他們偷挖的區塊得到網路的承認。

區塊頭當然有時間戳,」自私的礦池」還必須有足夠的Sybil節點來報告是」自私的礦池」先發現區塊,這樣網路會接受報告並獎勵」自私的礦池」。

但是比特幣社區認為:在實際中,大部分的比特幣礦工無私的支持比特網路,這超出了意識形態的考慮,並且他們也不希望自己的收入來源不穩定。這種高層次的經濟問題已經超出了Eyal和Sirer的論文討論的範圍。而經濟攻擊必須發生在實際工作中,而他們的研究無視了這一點。

自私挖礦攻擊只存在理論上的可能性,在現實中不具操作性,比特幣首席科學家Gavin Andresen就在推特上回應說:」康奈爾大學的報告,沒什麼大不了的,即使假設他們的分析是正確的(可是我沒有被說服)。」加文·安德列森:女巫攻擊沒什麼大不了的


知乎居然有這樣的問題,看來討論得挺深的。自私挖礦理論上可行,實際上各礦場不排除有內部貓膩存在。但這不影響btc的根本特性:安全性和去中心化。此外,沒有礦場敢於肆無忌憚地進行自私挖礦,那立刻就沒有人願意驗證你的區塊了。


答案:核捆綁下的恐怖平衡

礦池擁有算力上的優勢;Core派擁有權力和輿論上的優勢。礦池即使集體自私(也一定會這樣)把攻擊閾值降低到25%,又能如何?自毀長城讓自己虧光底褲?

巨頭們成為了巨頭,就自然而然會維護自己的權力來源嘛。


推薦閱讀:

POS (Proof of Stake 權益證明) 與 POW(Proof of Work 工作量證明) 本質都是什麼?他們各有什麼優劣?
BTC的實際價值和意義是什麼?
技術上,中國真的可以阻斷比特幣的p2p交易么?
比特幣什麼時候會崩潰?
關於比特幣近期(20180111--20180201)走勢分析?

TAG:虛擬貨幣 | 比特幣Bitcoin | 金融 |