是否僅需一次51%攻擊,比特幣體系即會崩潰?
基本上,是。
這裡有兩個問題:
1,有人或者是某個群體擁有51%算力,或者支配51%算力的能力,這點早就不是不可能了。
2,他們有攻擊的意願——換句話說,無論是能從中牟利也好,或者單純為了摧毀比特幣也好,他們都已經考慮好了後果並且願意承擔。
以上兩者都滿足的話,比特幣體系一定會崩潰。
我們來論證一下不崩潰的話會發生什麼——
1,如果比特幣的價格沒有一崩到底,代表著市場上在大量拋售比特幣的同時,仍舊有人願意以某個價格收購比特幣。
2,於是,51%攻擊者可以先收購比特幣,然後出售。
3,然後,無論51%攻擊者的目的是牟利還是摧毀比特幣,他最理性的選擇都是一個——在出售比特幣之後抹掉轉賬記錄再次出售,直到沒有人願意買為止。
4,所以說,無論51%攻擊者的目的是摧毀比特幣還是牟利,只要比特幣的價格不歸零,也就是市場上還有人願意買,他都可以一直從中牟利。
這取決於51%攻擊者的目的。如果是單純的牟利,那麼因為需要巨大算力,得不償失。如果不是牟利,就是以搞死比特幣為目的,那麼就非常危險。比如對國家這個層次,這些算力的成本就不是不可接受的。
之前就有山寨幣被51%攻擊,攻擊者長時間挖掘空區塊,造成網路不可用。
不會,只是遭受該攻擊的人/組織會遭受此次攻擊的巨大損失。但對整個比特幣網路的信譽將造成傷害。但如果僅僅只有一次攻擊應該不會造成非常嚴重的後果。今年3月12號由於比特幣新老版本客戶端資料庫的不兼容造成了比特幣網路的分叉,實質上就是比特幣網路自己對自己的51%,造成了當天比特幣價格暴跌20%+,不過後來很快出了解決方案,價格迅速反彈。但是如果有人掌握了51%的算力就可以隨意發起攻擊,不會只發動一次攻擊吧。
其實我看好比特幣的價值,但是對於51%攻擊我還是有比較大的擔憂的。比特幣現在處於一個非常危險的狀態,對於攻擊極其的脆弱。這次 BTC/BCH 算力反轉已經印證了我的想法。
先說結論:算力大並不是比特幣安全性的保證,算力的不集中才是。
而比特幣現在算力的愈發集中已經嚴重威脅到了比特幣的安全。
其實很多人不明白這個道理,覺得比特幣全網算力這麼大,有專業的礦場,已經比較安全了吧,想攻擊至少是要舉國之力,甚至拿上國家的超算都干不過ASIC礦廠。但是實際上,比特幣算力80%以上是單純逐利的,對比特幣沒有任何的忠誠度。如果想攻擊比特幣,不需51%算力,或許僅僅拿出5%即可。一旦網路意識到攻擊算力的存在,恐慌就會出現、比特幣的價格就可能波動下跌。價格的下跌勢必造成比礦工收益下跌,比特幣的算力就可能部分撤出。而算力的撤出則會進一步擴大 攻擊算力/正常算力 的比值--網路恐慌加深--比特幣進一步下跌--挖礦收益率進一步降低--更多算力撤出 --攻擊算力/正常算力 的比值上升……形成一個正反饋循環,比特幣體系的崩潰會比所有人想像的更快。
根源就是在於——集中的算力是沒有忠誠度的,他們對現金流的需求導致他們從來隨時挖礦隨時賣,不會有太多的比特幣儲蓄,比特幣崩潰了他們可以隨時帶著算力轉向下一種幣。
而BCH以及很多BTC分叉幣就是在一步步弱化比特幣加深BTC的風險。BCH派攻擊讓BTC算力短暫地翻轉正是開了這樣一個危險的先例。
關於未來:
根據墨菲定律,BTC或者BCH這樣的崩潰一定會發生,只不過時間早晚,只不過現在還沒有人有動機進行這樣的攻擊。BTC這個危險的泡泡旁吹出了BCH這樣更小更危險的一個泡泡,總有一天會被戳破的。但是不悲觀地說,bitcoin core派有變革的動力、有去算力中心化的動力、與礦場徹底地決裂反而有機會在這一切發生前消除隱患。而在BCH上(道路上選擇一味地擴容擴容)我看不到一點這樣的希望……
我介意不懂的別亂回答這種問題,看了幾個回答,感覺挺搞笑,知乎上就有專業人士,江卓爾,你去看他的答案吧,人家可是玩這行身價要到幾十億的人
國家力量想要做這件事?那要趁早啊。
國家又不是只有你一個。
某大國成功摧毀了比特幣,於是數字美元順利發行。
某地區強國洞悉某大國數字貨幣意圖,部署礦機阻擊某大國行動,獲得可觀收益並對某大國同時造成國際聲譽和資金上的重大損失。
比特幣最優雅的地方就在於這套規則能把國家間的競爭放進來。
這個問題可以說是每個bitcoin新手接觸者問的最多的問題,但是我一直不明白的是,不論是媒體也好,所謂專業人士也罷,鮮有完整權威的回答,大部分都是避重就輕。
大家先對 51%攻擊這個概念取得共識吧。
在我看來,這個問題最清晰,最簡明的回答已經在bitcoin的白皮書中寫明白了。
https://bitcoin.org/bitcoin.pdf
一個已經誕生九年,實際內容不足8頁的文獻,後人不去翻閱原始資料,反而老是問一些各種「權威人士」各種模糊回答,可知投資這個東西的人們到底是何種心態。
以太坊後來的白皮書中也對這一問題有經典解釋,在我看來,已經非常簡明通俗了;也許您說太枯燥我不想看也不想學,你就直接告訴我不行嗎?
抱歉,炒房團也得辛辛苦苦踩盤,彩民還有記下每次號碼皓首窮經發掘規律;有些人在上面投入成千上萬的真金白銀,在我看來,在這之前是不是應該屈尊花個一兩周耐心學習一下呢。
以下內容純是搬運以太坊和比特幣白皮書,無個人發揮:
---以下引用自以太坊白皮書第一章節
挖礦
一個區塊,每個區塊包含一個時間戳、一個隨機數、一個對上一個區塊的引用(即哈希)和上一區塊生成以來發生的所有交易列表。這樣隨著時間流逝就創建出了一個持續增長的區塊鏈,它不斷地更新,從而能夠代表比特幣賬本的最新狀態。
依照這個範式,檢查一個區塊是否有效的演算法如下:
- 檢查區塊引用的上一個區塊是否存在且有效。
- 檢查區塊的時間戳是否晚於以前的區塊的時間戳,而且早於未來2小時[2]。
- 檢查區塊的工作量證明是否有效。
- 將上一個區塊的最終狀態賦於
S[0]
。 - 假設TX是區塊的交易列表,包含n筆交易。對於屬於0……n-1的所有i,進行狀態轉換
S[i+1] = APPLY(S[i],TX[i])
。如果任何一筆交易i在狀態轉換中出錯,退出程序,返回錯誤。 - 返回正確,狀態
S[n]
是這一區塊的最終狀態。
本質上,區塊中的每筆交易必須提供一個正確的狀態轉換,要注意的是,「狀態」並不是編碼到區塊的。它純粹只是被校驗節點記住的抽象概念,對於任意區塊都可以從創世狀態開始,按順序加上每一個區塊的每一筆交易,(妥妥地)計算出當前的狀態。另外,需要注意礦工將交易收錄進區塊的順序。如果一個區塊中有A、B兩筆交易,B花費的是A創建的UTXO,如果A在B以前,這個區塊是有效的,否則,這個區塊是無效的。
區塊驗證演算法的有趣部分是「工作量證明」概念:對每個區塊進行SHA256哈希處理,將得到的哈希視為長度為256比特的數值,該數值必須小於不斷動態調整的目標數值,本書寫作時目標數值大約是2^190。工作量證明的目的是使區塊的創建變得困難,從而阻止女巫攻擊者惡意重新生成區塊鏈。因為SHA256是完全不可預測的偽隨機函數,創建有效區塊的唯一方法就是簡單地不斷試錯,不斷地增加隨機數的數值,查看新的哈希數值是否小於目標數值。如果當前的目標數值是2^192,就意味著平均需要嘗試2^64次才能生成有效的區塊。一般而言,比特幣網路每隔2016個區塊重新設定目標數值,保證平均每十分鐘生成一個區塊。為了對礦工的計算工作進行獎勵,每一個成功生成區塊的礦工有權在區塊中包含一筆憑空發給他們自己25BTC的交易。另外,如果交易的輸入大於輸出,差額部分就作為「交易費用」付給礦工。順便提一下,對礦工的獎勵是比特幣發行的唯一機制,創世狀態中並沒有比特幣。
為了更好地理解挖礦的目的,讓我們分析比特幣網路出現惡意攻擊者時會發生什麼。因為比特幣的密碼學基礎是非常安全的,所以攻擊者會選擇攻擊沒有被密碼學直接保護的部分:交易順序。攻擊者的策略非常簡單:
- 向賣家發送100BTC購買商品(尤其是無需郵寄的電子商品)。
- 等待直至商品發出。
- 創建另一筆交易,將相同的100BTC發送給自己的賬戶。
- 使比特幣網路相信發送給自己賬戶的交易是最先發出的。
一旦步驟(1)發生,幾分鐘後礦工將把這筆交易打包到區塊,假設是第270000個區塊。大約一個小時以後,在此區塊後面將會有五個區塊,每個區塊間接地指向這筆交易,從而確認這筆交易。這時賣家收到貨款,並向買家發貨。因為我們假設這是數字商品,攻擊者可以即時收到貨。現在,攻擊者創建另一筆交易,將相同的100BTC發送到自己的賬戶。如果攻擊者只是向全網廣播這一消息,這一筆交易不會被處理。礦工會運行狀態轉換函數APPLY(S,TX)
,發現這筆交易將花費已經不在狀態中的UTXO。所以,攻擊者會對區塊鏈進行分叉,將第269999個區塊作為父區塊重新生成第270000個區塊,在此區塊中用新的交易取代舊的交易。因為區塊數據是不同的,這要求重新進行工作量證明。另外,因為攻擊者生成的新的第270000個區塊有不同的哈希,所以原來的第270001到第270005的區塊不指向它,因此原有的區塊鏈和攻擊者的新區塊是完全分離的。在發生區塊鏈分叉時,區塊鏈長的分支被認為是誠實的區塊鏈,合法的的礦工將會沿著原有的第270005區塊後挖礦,只有攻擊者一人在新的第270000區塊後挖礦。攻擊者為了使得他的區塊鏈最長,他需要擁有比除了他以外的全網更多的算力來追趕(即51%攻擊)。
---以下引用自比特幣白皮書最後一章節
設想如下場景:一個攻擊者試圖比誠實節點產生鏈條更快地製造替代性區塊鏈。即便它達到了這一目的,但是整個系統也並非就此完全受制於攻擊者的獨斷意志了,比方說憑空創造價值,或者掠奪本不屬於攻擊者的貨幣。這是因為節點將不會接受無效的交易,而誠實的節點永遠不會接受一個包含了無效信息的區塊。一個攻擊者能做的,最多是更改他自己的交易信息,並試圖拿回他剛剛付給別人的錢。
誠實鏈條和攻擊者鏈條之間的競賽,可以用二叉樹隨機漫步(Binomial Random Walk)來描述。成功事件定義為誠實鏈條延長了一個區塊,使其領先性+1,而失敗事件則是攻擊者的鏈條被延長了一個區塊,使得差距-1。攻擊者成功填補某一既定差距的可能性,可以近似地看做賭徒破產問題(Gambler』s Ruin problem)。假定一個賭徒擁有無限的透支信用,然後開始進行潛在次數為無窮的賭博,試圖填補上自己的虧空。那麼我們可以計算他填補上虧空的概率,也就是該攻擊者趕上誠實鏈條,如下所示[8] :假定p&>q,那麼攻擊成功的概率就因為區塊數的增長而呈現指數化下降。由於概率是攻擊者的敵人,如果他不能幸運且快速地獲得成功,那麼他獲得成功的機會隨著時間的流逝就變得愈發渺茫。那麼我們考慮一個收款人需要等待多長時間,才能足夠確信付款人已經難以更改交易了。我們假設付款人是一個支付攻擊者,希望讓收款人在一段時間內相信他已經付過款了,然後立即將支付的款項重新支付給自己。雖然收款人屆時會發現這一點,但為時已晚。
收款人生成了新的一對密鑰組合,然後只預留一個較短的時間將公鑰發送給付款人。這將可以防止以下情況:付款人預先準備好一個區塊鏈然後持續地對此區塊進行運算,直到運氣讓他的區塊鏈超越了誠實鏈條,方才立即執行支付。當此情形,只要交易一旦發出,攻擊者就開始秘密地準備一條包含了該交易替代版本的平行鏈條。然後收款人將等待交易出現在首個區塊中,然後在等到z個區塊鏈接其後。此時,他仍然不能確切知道攻擊者已經進展了多少個區塊,但是假設誠實區塊將耗費平均預期時間以產生一個區塊,那麼攻擊者的潛在進展就是一個泊松分布,分布的期望值為:當此情形,為了計算攻擊者追趕上的概率,我們將攻擊者取得進展區塊數量的泊松分布的概率密度,乘以在該數量下攻擊者依然能夠追趕上的概率。
化為如下形式,避免對無限數列求和:
寫為如下C語言代碼:
#include double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k &<= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i &<= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 - pow(q / p, z - k));
}
return sum;
}
對其進行運算,我們可以得到如下的概率結果,發現概率對z值呈指數下降。
當q=0.1時
z=0 P=1.0000000z=1 P=0.2045873z=2 P=0.0509779z=3 P=0.0131722z=4 P=0.0034552z=5 P=0.0009137
z=6 P=0.0002428z=7 P=0.0000647z=8 P=0.0000173z=9 P=0.0000046z=10 P=0.0000012當q=0.3時
z=0 P=1.0000000z=5 P=0.1773523z=10 P=0.0416605z=15 P=0.0101008
z=20 P=0.0024804z=25 P=0.0006132z=30 P=0.0001522z=35 P=0.0000379z=40 P=0.0000095z=45 P=0.0000024z=50 P=0.0000006求解令P&<0.1%的z值:
為使P&<0.001,則
q=0.10 z=5q=0.15 z=8q=0.20 z=11q=0.25 z=15q=0.30 z=24q=0.35 z=41q=0.40 z=89q=0.45 z=340假設您能看到這裡並且一頭霧水並且開始放棄,那麼我作為業餘愛好者開始胡說八道一通人民喜聞樂見的答案,先聲明下,以下全是胡說八道,諸位就當個樂子看看
- 首先有許多人把51%攻擊定義為分叉bitcoin區塊鏈,這個是不嚴謹的,因為每個爆快的廣播需要時間,你也可以認為區塊鏈是時時刻刻在分叉的,不過長期來看一定有一條最長的大家公認的鏈
- 其次即使你擁有51%的算力也不是每個爆快都是你家的,不是想改就改,還是有幾率的,如果你實在說我有100%的算力保證想改就改,那大家也都承認bitcoin網路是你自家的私有鏈,祝您生活愉快
- 如果你掌握全網算力51%的時間超過1個出塊周期(目前是10分鐘),就是你在10分鐘里是bitcoin世界的王者,發動了一次 51%攻擊篡改了之前一筆交易,我們假設這筆交易額特別大,起碼超過了一個區塊的獎勵額度(12.5BTC),而且那個傻傻的接收者只等到一個確認就相信了你(真實情況是即使我發送0.1個BTC我也一般等3個確認的),並且您用那筆不存在的支付拿到了您想要的東西(再強調一下,這個場景真的和中彩票沒啥區別了);那您賺了,然後在bitcoin世界裡面丟失了信譽,丟失了人品,總之在我看來除非詐騙數額特別巨大才有的賺
- 這筆交易數額真的就這麼大,比如價值1000,000,000 USD呢?額,我不知道您這位持幣這麼多的壕為啥來開這種玩笑,可能您就是中本聰本人吧;但是現在社區可以說創始人現身也不買賬了;參考以太坊DAO事件
- 假設您掌握51%的算力時間沒有這麼短,一天能有半天時間做王者呢?請參考白皮書最後的證明,這個時候一般老老實實挖礦賺的更多
- 假設我長時間掌握了51%的算力,而且我就是看幣圈不順眼,我寧願不得利也要毀滅bitcoin,我就瘋狂支持分叉鏈,那又如何?額,參考ETC/ETH事件,恐怕社區會立馬分叉一個POS幣種,您就自己玩自己的私有鏈吧
- 假如出了bug呢?大家樂呵呵挖著挖著因為版本不同,發現算力分成兩大派分叉了;恭喜你,歷史上確實發生過這種事情,那時候玩的人不多,幣價低,core團隊還是有公信力的,大家迅速在基金會的調解下回退版本解決了。但是現在大礦場都是投入真金白銀的實際得利者,發現這種bug肯定最高響應速度解決,畢竟:bitcoin世界中,時間就是金錢不是說著玩的
- 我能想到的最後最後的一種情況,就是我手持大量算力,怎麼才能對我最有利呢?
- 首先,我利用已有的算力分叉一條平行鏈,告訴大家來我這裡玩啊,挖我這條鏈有優惠(出塊速度快,出塊補貼等等)
- 待這條鏈活下來之後,算力就會在兩條鏈中來回切換,哪邊得利高我就切到哪邊挖(我覺得有個很形象的單詞就是hash dance,非常科學理性唯美現實~~~)
- 難度周期調整的時候,呵呵,我看哪邊幣價容易做空,就把算力撤到對面的鏈上,堵死你
- 等我做空完,這邊的韭菜割完了,再切回來拉升一把
- 等兩條鏈都成型了,我來回切,韭菜收割起來23333
以上是胡說八道,我YY的
其實已經有很多51%了 但都不是攻擊 現在不還好好的著名的312事件 區塊分叉 相當於51%
不會。
51%攻擊的原理是:挖出一個塊,寫入自己想要的交易。交易所入金。抹掉這個塊重新挖,然後連續挖出幾個塊。全網會認為最長的鏈是主鏈。之前花的錢,還可以再花一次。
51%的算力大於剩下的49%算力,所以可能把新鏈變成主鏈。之前的鏈就廢棄了。但是交易所已經入金了。(但是51%就能挖得過49%?其實也未必,沒有60%的算力控制,我看懸)
防範措施:- 交易所入金1個確認,出金要6個確認。
- 交易所提現確認之前的入金交易有效。
- 如果雙花的交易被抹掉,交易所如果沒防範,錢被提走了。可以拿到之前的交易raw數據廣播到新鏈的全網。
理論上如果你運氣好,都不需要51%算力,30%撞大運也可以實現這樣的攻擊。
只要交易所做好防範,51%攻擊是沒啥用的。如果是小額雙花,那麼捨棄一個區塊獎勵和手續費本身就不值得。成本那麼大,還把自己名聲搞臭,不值得。躺著收手續費美滋滋拉!
【是否僅需一次51%攻擊,比特幣體系即會崩潰?】
不是,不會。
51%攻擊是已知的當前系統弱點,並且已經發生多次。僅在區塊鏈這一層級上51%攻擊完全不會致使其崩潰,而是會導致交易被反覆修改。
同時市值證明,即便目前80~85%的算力全部集中於中國大陸,35%以上受比特大陸一家公司控制,有嚴重攻擊風險。目前投機者們並不是特別在意攻擊問題。
短期內要戳破泡沫恐怕得要更強層級的負面影響(比如中美等主要玩家所在政府正式宣布非法之類的)
知乎現在基本上就是些小白在回答問題,這些題目基本可以在歷史上找答案。
不會。只要core 軟體升級下,這個問題就解決了。
https://www.firefoxotc.com/trade?referral_code=c8JC9EP6QfJH
理論上可能,實際上不可能。
有51算力,為啥要去摧毀比特幣。。。假設成功了,比特幣不值錢了,搞了一堆假交易有啥用。這還不說攻擊需要的成本,那也不是小數目,這個代價誰來cover
不如好好挖礦,比特幣世界你說了算,多爽(誰會沒事自己攻擊自己的項目。。。)不會
如果題主你控制了中國人民銀行的印鈔機,題主你會怎麼做?
1.偷偷給自己印一批人民幣。
2.把這些印鈔機全部咋了。
題主你怎麼選?最大的魅力在於,技術上可行,社會工程上不會可行。貨幣非國家化這件事兒的靈魂 應該是去理解私人可以發行貨幣這件事兒 。也就是說各種貨幣濟濟一堂,自由競爭形成秩序。如果比特幣被攻擊了只是給了其他數字貨幣一個起來的理由而已,因為貨幣非國家化這件事兒是符合經濟規律的,能夠降低交易費用(廣義的交易費用)。使得金錢的流動成本更低。因此,比特幣的持有者和比特幣礦機的持有者沒有動力去發動這件事兒。除非利益足夠大。
反對以上所有什麼博士後研究者專家等等等等答主的答案
講道理,連51攻擊是什麼都沒搞明白,51攻擊不是說有51%的算力才能發起,而且51%的算力也不是成功的關鍵,只是成功的前提,51%的算力只會讓你成功的幾率大大增加。
不知道怎麼加粗,
即使算力不足51%也可以發起51攻擊即使算力不足51%也可以發起51攻擊即使算力不足51%也可以發起51攻擊可以參考25%漏洞,只不過你擁有的算力佔比越低成功的可能性越低
就算你有51%的算力也不保證能成功
就算你有51%的算力也不保證能成功就算你有51%的算力也不保證能成功到這裡自己看去吧:https://learncryptography.com/cryptocurrency/51-attack
或者google
別擔心,51攻擊不是隨隨便便就能發起的,即使是動用國家力量
排版隨意,湊活看吧,推薦閱讀:
※丟失比特幣的貨幣能否重新放回挖礦池中?
※零知識有條件支付的證明問題?
※如何看待2017年1月初這一輪比特幣上漲?
※如果比特幣挖礦可以賺錢,為什麼顯卡廠商不壓著礦卡自己去做?
※比較穩定靠譜的比特幣交易平台是哪家?
TAG:貨幣 | P2P貨幣 | 比特幣Bitcoin |