算力是比特幣世界的權利
2017年8月1日,比特幣持有人都獲得了糖果:比特幣現金(BCC,后因命名沖突改為BCH),任何人只要下載客戶端、導入私鑰就能獲取。
一時間糖果遍地,先后有30多種幣用大同小異的方式向人們發出糖果,人們普遍認為比特幣分了很多叉,但事實情況真的是這樣么?
一、什么是分叉?
分叉指改變區塊或交易的格式,相當于軟件升級。升級后能向下兼容的是軟分叉,向下兼不了容的則是硬分叉,只有硬分叉才有可能產生另一種幣。
比特幣在將近10年的發展歷程中,只有兩次源于意外的硬分叉,兩次都被終止,沒有產生過新幣。
第一次硬分叉發生在2013年3月12日,新版本bitcoin qt 0.8因為bug問題產生兩條鏈,最后使用新版本的礦工妥協,放棄挖出的塊,退回到上一版本qt 0.7繼續挖,消滅了分叉。
第二次硬分叉發生在2015年7月4日,原本計劃軟分叉升級,主要礦池都完成升級,可有一個礦工(BTC Nuggets)卻沒有,導致他挖出來的塊被其他礦工拒絕,分出兩條鏈。不過最終所有礦工達成一致,升級新版本消滅分叉。
兩次硬分叉之外都是軟分叉,小步慢跑,讓比特幣越來越健壯。但那時的比特幣卻有兩個大問題:1、轉賬慢;2、手續費貴。很多人認定癥結在于2M的區塊小得不符合時代,提議升級成8M,相當于2車道翻修成8車道,再也不用擔心堵車和過路費了。
但這項提議在國外卻收到很多反對。
反對者的主張是:轉賬慢并不是比特幣要解決的問題,比特幣要解決的問題是賬記不對,即雙重支付。所以,區塊不是越大越好,區塊變大不僅會增大傳輸中的不確定性,而且會增加全節點的硬盤負荷,降低人們架設全節點的積極性,讓全網趨向中心化,增加雙重支付的可能性,最終拉低比特幣的價值。
可是反對無效,“分叉”在所有人眼前發生,比特幣現金(BCH)在比特幣(BTC)區塊高度為478558處執行“硬分叉”:復制BTC過往的交易數據后,按照自己8M的區塊挖塊。不過,嚴格意義上這次硬分叉只是幻覺,實際并沒有發生。為什么?
因為“硬分叉”后并沒有撲上去足夠的算力。
當時BTC的全網算力約7E,如果有1/10的算力愿意跟著挖新鏈,那么原本平均10分鐘的出塊時間會變成100分鐘。
按照比特幣原本的設定,想讓出塊時間恢復到每個10分鐘,就必須挖完2016個區塊,難度才會自然下調,這需要14天。如果算力只有原先的1/10,這一過程就需要140天,每天投入0.7E的算力。而1E算力的成本是每天500萬元,這樣一算發現:不投四五個億根本分不起叉,這還沒算上出現意外的隱性成本。
怎么辦?
二、EDA:BCH的創新
EDA:緊急難度調整(Emergency Difficulty Adjustment),顧名思義,不到緊急關頭不進行的難度調整。沒有EDA,比特幣現金很可能胎死腹中。
分叉容易,可分叉后的算力為繼卻很難,不先撒出幾個億的電費過不了這關,于是只能調整難度。EDA方案具體是指:如果挖6個塊超過12小時,難度就下降20%。
最終,BCH只消耗很少的算力就把天量的難度拉下來,原本幾個億才能辦完的事,EDA一出面就擺平了。這是一個天才的舉動,惹得后面30多種幣紛紛效仿“硬分叉”。
不過BCH礦工很快發現,EDA機制居然可以調戲:既然一旦挖6個塊超過12小時難度就降,那為什么不等難度降降干凈后再去挖?反正BCH和BTC都使用同樣的哈希算法SHA-256。換句話說,礦機可以通用,技術上能做到挖BTC和BCH雙向一鍵切換。
于是大算力們達成默契:先挖BTC,等足72個小時,期間難度連續6次下降,再殺進挖BCH,這樣必然挖到更多。當所有大算力都這么思考并執行時,我們就看到一場光與影的游戲:BTC與BCH的算力間歇性對頂。
圖1 2017年8-11月 BTC與BCH算力對比
https://bitinfocharts.com/comparison/hashrate-btc-bch.html
藍線代表BTC算力,紅線代表BCH算力,每隔一段時間BCH都會迎來一次算力盛宴:只花很少算力就能挖到很多BCH,但這樣也造成一個問題:BCH的出塊時間變成了1-2分鐘,分叉后的三個月BCH比BTC多挖將近1萬個區塊,BCH使用BTC的代碼,總量也是2100萬,這樣下去BCH會很快挖完。
這是分叉者所料未及的,于是,BCH不得不在2017年11月13日再次分叉,用新難度調節機制DAA替換EDA,重新把出塊時間穩定到600秒左右。從后續成果看,達成目標,調整后的算力穩定,不再像EDA時期的腰間盤那樣突出,步入平穩增長期。

圖2 2017年7月-2018年6月 BTC與BCH算力對比
但是,反對BCH的聲音卻沒有停止,他們認為這屬于算力霸權,有算力就能隨意分叉發幣,太有恃無恐,事實是這樣么?
三、大算力的福利
事實的確如此:算力是比特幣世界的權力。
如果沒有算力支持,僅憑一只平凡的CPU去挖礦,那挖一個塊的時間將長達幾十萬年,沒有算力支持的鏈會很快死去;而且,沒有算力支持的幣極易遭受51%攻擊,從而喪失作為貨幣的信用。
真正保護BTC的,并不是代碼,而是算力。比特幣從未記錯過一筆賬的背后,大算力礦工居功至偉。
我們站到礦工角度算一把經濟賬:
使用DAA機制后,BCH的算力消耗平均相當于BTC的12%左右(見圖2),也就是說,BCH只要價格高于BTC的12%,礦工挖BCH就能比BTC更賺錢,事實上BCH的價格也穩定在BTC價格的12%以上。對礦工而言,原來只有挖BTC一種選擇,現在多一種BCH,福利更優厚。
不過,人畢竟是利益驅動的生物,立場不同的利益各方,觀點也會截然相反。不挖礦的人不會打礦工的算盤,他們站在自己立場上的反對也有充分的道理:
BTC的精貴之處在于其貨幣屬性。隨著BTC滲透進社會,普通人關心的問題不會是2M還是8M這些參數,而在于BTC是否是真正的錢。
市場最看重錢的是加密貨幣的貨幣屬性,一旦因為技術爭論硬分叉出兩種幣,必然折損貨幣本身的信用,因為這種分裂幾乎等價于雙重支付。于是,很多人雖然拿著糖果,卻依然反對BCH。
BCH不會消失,因為它本身就是大算力支持的產物,沒有算力的人拿BCH毫無辦法。BCH是大算力議價能力變現的結果,盡管飽受詬病,但BCH卻憑著獨立于反對者的算力而存在。
BCH分叉后,很多幣迅速模仿分叉發糖果,但沒多久就被規模化的51%攻擊碾成粉,BCH沒事,因為礦工有足夠動力保護自己的飯碗。而BTC更安全,因為它的誠實算力比BCH多一個數量級。
代碼可以復制,但算力才是不可復制的生存資源。正是由于自利驅動的算力守護,使比特幣多年來穩如泰山,如果撤出這些算力,比特幣活不過下一秒。
今年5月,緊隨BCH分叉的比特幣黃金BTG,就慘遭51%攻擊,直接損失超過1,800萬美元,信用值也大幅度貶損。獲利后的惡意大算力會用同樣的方式掃射其他分叉幣,但他們不會動BTC或BCH,因為需要的算力太大,成本太高。
在這種局面下,BCH是市場為大算力集團配出的一道營養加餐,本質上是市場在足夠的算力與BTC的貨幣信用價值間找到的平衡方案:
1、大算力持有者可以在稍稍折損一些BTC信用價值的前提下,分叉出一項福利滿足自己,滋養更多算力、更好地守護BTC生態。
2、無算力、但持有BTC者讓出比特幣信用價值(實際上是“不得不”),獲得更多潛在的算力保護,讓手中的BTC繼續有價值。
最終,達成各方都滿意的平衡。
結語
這場平衡中,大算力看似更有主動權,能盡情分叉,但實際上這種情只能盡在不損傷比特幣信用根基的前提下,需要手術刀般的精準計算和政治手腕。
如果大算力不“分叉”,那么自身利益并沒有最大化;如果肆意分叉,BTC會因為失去信用價值而掉價,大算力自己會淪為受害者。
這場戴著鐐銬的踢踏舞,舞池里任何人的出格動作,都會被社區力量自發斧正,這是去中心化組織的邏輯原點。BCH的分叉始于技術爭論,社區普遍認為通過軟分叉解決技術爭論屬于上策,這樣可以保持BTC的信用價值。通過硬分叉改良看似也行,但極容易被人玩壞,因為從來沒有任何一樣東西離錢那么近,甚至它就是錢本身,極容易成為人性貪欲的放大器。最終,所有技術討論都會滑向政治之爭。
而在政治層面,BCH犯的錯誤是幼兒園級別的,發起人Roger Ver稱自己是中本聰的傳人,所以BCH擁有繼承BTC名號的資格。那一刻他已經輸了一半,他還在用”命名權“的中心化邏輯玩著去中心化的游戲,越往下走他就越難解釋自己行為的合理性。
另外,BCH在2017年11月13日因DAA分叉后,原來的鏈因為有算力接濟而保留了性命,這條鏈在2018年5月20日也進行了硬分叉,把EDA機制換成了自己的DAA,分叉后變成BTCC。BTCC對BCH而言,永遠是一種血統上的威脅。

圖3 比特幣“分叉”簡史
分叉一個幣需要的不僅是代碼技術或算力支持,更多的是解釋分叉合理性的政治素養,在這點上看,Roger Ver把自己和BCH一起帶進了死胡同,結果只能是惹怒更多人,因為他的出發點就已經錯了,沒有看清社區共識層面的主次,錯把福利當成工資。
參考資料:
1、黃世亮:什么是硬分叉,什么是軟分叉,什么是共識?
2、古土雷柏:比特幣硬分叉和軟分叉有什么區別?如何評價BTCC(Bitcoin Core)?