關註比特幣的朋友,想必聽過51%算力攻擊這個詞,它到底是什麼意思呢,發起這種攻擊之後能做哪些“壞事”呢?
今天就來簡單介紹一下51%算力攻擊相關的事情。
01
什麼是51%算力攻擊?

比特幣白皮書中,有過這樣的表述:誠實節點控制算力的總和,大於有合作關系的攻擊者算力的總和,該系統就是安全的。
換句說,當系統中有合作關系的惡意節點所控制的算力,超過誠實節點所控制的算力,系統就是有被攻擊的風險。
這種由惡意節點控制超過50%算力所發起的攻擊,稱為51%算力攻擊。
那是不是所有的加密貨幣系統都有可能遭遇51%算力攻擊的風險呢?
其實並不是的,隻有基於 PoW(工作量證明)共識機制的加密貨幣,才存在51%算力攻擊,比如比特幣、比特現金和目前階段的以太坊等。
02
這種攻擊能做哪些壞事?

在瞭解瞭51%算力攻擊之後,你肯定好奇,這種攻擊能做哪些壞事。
1、雙花(Double Spending)。
雙花的意思是一份”錢”花瞭兩次甚至多次。51%算力攻擊是如何做到雙花的呢?
假設小黑有 666 BTC,他把這些 Token 支付的大白同時,也把這些 Token 發到自己的另一錢包地址上。
換一句話說,小黑的一份錢,同時轉給兩個人。最終,發給大白那筆交易先被得到瞭確認,並打包在區塊高度為 N 的區塊內。
這時,控制瞭超過50%算力的小黑,發起51%算力攻擊。他通過重新組裝第 N 個區塊,將發給自己那筆交易打包進區塊裡,並持續在這條鏈上延展區塊。
由於算力的優勢,這條量將成為最長合法鏈。這樣小黑666BTC雙花成功,大白錢包裡的 666 BTC”不翼而飛”瞭。
2、壓制某些地址發送/接受比特幣
除此之外,51%的算力攻擊還能做什麼呢?它還可以壓制某個地址發送/接收比特幣。
小黑和大白吵架瞭,小黑仰仗自己掌控瞭51%算力,他在知道大白比特幣地址情況下,可以讓與大白相關的交易一直無法確認。
比如大白為瞭向中本聰表達自己的敬意,想往”創世地址”發送 1 枚比特幣。掌控超過半數算力的小黑,不會打包這條交易,不僅如此小黑還能做到讓其他礦工也不會打包這條交易。
小黑是怎麼做到的呢?
如果其他礦工挖出的新區塊打包瞭這筆交易,小黑會選擇不在這個區塊之後繼續挖礦,他會選擇在上一個區塊之後,重新構建新區塊,並把大白這筆交易拒絕在外,仰仗自己算力優勢,小黑分叉出的這條鏈,將成為最長合法鏈。
在這種情況下,其他礦工也就隻好不打包與大白有關的交易,否則挖出的區塊也會被小黑給孤立,得到出塊獎勵也將被作廢。
03
小結
那擁有超過50%的算力,就可以為所欲為,什麼壞事都可以做嗎?其實並不是的。
即使控制超過50%的算力,也不能轉移其他人的 Token,因為這個操作是需要私鑰進行簽名,如果想偽造簽名來“偷幣”,這種行為是誠實的礦工所不能容忍的,這將顛覆系統共識。
如果你掌握瞭某個加密貨幣50%以上的算力,你會發動51%算力攻擊嗎?為什麼?快到留言區說說你的看法吧。