巴位元專欄 | BCH戰爭中的十大誤解
最近,BCH內戰和分叉在寒冬裡掀起一股熱浪,整個區塊鏈圈子都在熱議。這次的分叉內情十分複雜,是前所未有的一次大戰。我在10月初發表的長文《BCH的戰爭與進化》中分析了主要方面,目前看仍然適用。但戰事爆發前後,仍有一些廣泛流傳的誤解,使複雜的局面變得更加迷離。在這裡做個梳理和澄清,也算是對文章的補充。
鑑於目前形勢已經明朗,ABC版本在各方面已經明顯佔優,除BSV以外的開發版本都選擇了相容ABC版本。因此,文中的BCH指ABC及其相容版本執行的那條鏈,而將BSV版本區塊鏈稱為BSV。
一、所有分叉都會分出兩個幣?錯,只有共識分歧導致的分叉才有新幣
“分叉”這個詞有三層意思:
1 )區塊鏈產生孤塊。 密碼貨幣正常記賬因網路延遲等技術原因,同一高度出現了兩個不同內容區塊,當其中一個後面跟的區塊更多時,另一個區塊及跟隨的短鏈就會被拋棄變成“孤塊”,這也就是所謂“追隨最長鏈原則”。
2 )硬分叉升級。 在軟體升級時,如果新舊版本記的區塊能夠相互相容,稱為軟分叉升級,不能相互相容就稱為硬分叉,就像有一次word升級後不識別word97版本一樣。硬分叉升級時要求大家都更換到新版本,如果有人還用老版本,就會產生兩個相互不承認的分叉鏈,這時“最長鏈原則”無效了。但老版本出的塊往往沒有交易所支援,區塊獎勵一文不值,所以用老版本的人發現沒人跟隨他出塊,就會找原因,發現新版本就會立刻更新版本,老版本的鏈就消失了。
3 )鏈、幣和社群的分裂。 如果兩個不相容的版本不是因為意外而並存,而是因為各有一些人支援不同版本的特徵,堅決反對另一個版本的特徵。那麼,兩個版本就一直有人支援同時執行,互相不接受包含了對方版本特徵的鏈,所以記出來的區塊鏈就永久分成了兩個鏈,鏈上記載的幣就分成了兩種,社群也分裂成兩個社群。
這裡的第1、2種情況不會分出新幣,只有第3種情況才會分出兩種幣。這次11月15號的分叉,本來是一個計劃中的硬分叉升級,由於CSW突然要求社群放棄一直沿用的ABC版本,改用他的BSV版本,遭到一些人的拒絕和另一些人的支援,導致了共識的分裂,才演變成情況3的分裂。
簡單說,只有共識發生分歧,各自支援互不相容的版本,導致鏈的永久分叉,才會分裂出新幣。
二、位元大陸和ABC反對擴容?錯,擴容是雙方共同的發展手段
最普遍的誤解是說ABC和位元大陸拒絕擴容,而CSW的BSV版本主張擴容。實際上ABC和位元大陸一直主張根據市場需求不斷擴大區塊容量,BCH就是因為這個誕生的。ABC和位元大陸反對的是在11月15日的升級中就將區塊擴大的128M,原因是:
1)目前BCH每塊實際容量在200k以內,現有32M區塊上限是實際容量的160倍以上,市場也處於熊市,根本沒有擴容的市場需求。
2)BSV的128M擴容並不成熟,缺乏測試資料。在曼谷會議上,技術人員對nChain提問BSV版本是否對128M容量進行了測試,有沒有測試資料,回答還沒有。
3)近期BCH系統進行了多次壓力測試,即製造巨量微小交易測試能否正常出塊與傳播。測試中打出了21M和32M的區塊,但也造成許多節點掉線,生態中的一些小礦工為此放棄了BCH挖礦。
因此,在缺乏市場需求、未經充分測試的情況下,貿然在11月15日的升級中擴容到128M既不必要,也有很大風險。
經過曼谷會議的討論,ABC、吳忌寒和Roger等人均表示,同意在15日升級之後開始測試128M擴容,如果測試通過可在2019年5月的升級中部署。但CSW堅持在15日上線128M的BSV,並在宣傳中攻擊ABC和位元大陸拒絕擴容,這很具有誤導性,但的確奏效了,以至於這場內戰開始時被稱為新的擴容之爭。
實際上,ABC和位元大陸非常看重擴容,ABC的路線圖的主線就是通過擴容實現世界貨幣目標,此次0.18.2升級中的CTOR交易排序功能就是通過對記憶體池交易進行排序,提高區塊在網路中的同步效率,為未來的超大區塊做準備。
簡單說,雙方都主張擴容,ABC和位元大陸主張充分測試,保障安全的前提下擴容,CSW要求立即擴容。
三、BSV要世界貨幣而ABC要基礎公鏈?錯,雙方目標都是“世界貨幣+基礎公鏈”
對於這次BCH內戰的原因,普遍流行的觀點認為CSW的BSV想要把BCH發展成世界貨幣,而ABC和位元大陸則想把它做成跑各種Dapp的基礎公鏈。實際上,雙方都想把BCH做成世界貨幣加基礎公鏈。只是實現的方式不同而已。
CSW曾發表文章論證比特幣在0.1版所提供的指令碼就是“圖靈完備”的,只是後來禁用了許多操作碼,限制了指令碼的功能,所以他要逐漸恢復這些操作碼。這次的BSV版本就恢復了4個早期禁用的操作碼,並且刪除對每個指令碼201個操作碼的限制。
早年,比特幣社群普遍認為比特幣指令碼不是圖靈完備的,並且認為這是必要的。因為圖靈完備的指令碼意味著像各種計算機語言一樣,可以編寫各種複雜的程式,能實現更多功能,代價是容易出現諸如死迴圈之類的漏洞。比特幣要想實現貨幣功能,安全穩定是第一位的。一個非圖靈完備的腳本系統限制了指令碼的複雜性,從而更安全。每個指令碼201個操作碼的限制也是這個目的。正是由於這個原因,早期開發者阻止了Vitalik在比特幣上開發智慧合約,才有了圖靈完備的智慧合約平臺——以太坊。
也就是說,CSW論證比特幣原本就是圖靈完備的,並在BSV中恢復四個禁用操作碼(OP_MUL、OP_LSHIFT、OP_RSHIFT、OP_INVERT),解除每個指令碼201個操作碼的限制,就是要讓BCH的交易可以編寫更大更復雜的指令碼,從而在BCH的主鏈上實現智慧合約。CSW也宣稱他的BSV會超越以太坊。token發行是智慧合約最流行的例項,nChain也曾經給出基於BCH的token發行方案,並且資助了其他兩個基於BCH的token方案。這些都是在積極實現“世界貨幣+基礎公鏈”的目標。
相比之下,ABC和位元大陸為BCH發展智慧合約功能的方案略保守一些。本次升級的ABC 0.18.2版本增加了兩個新的操作碼OP_CheckDataSig和OP_CheckDataSigVerify,用於資料簽名和驗證,這兩個操作碼的功能用原有指令碼中也能實現,只是新操作碼實現起來更簡潔。
位元大陸為BCH增加智慧合約功能的方案是二層協議解決方案,它藉助OP_Return操作碼能夠在每個交易中將少量資訊寫入主鏈的功能,搭載智慧合約資訊,在BCH節點之上搭載蟲洞節點來讀寫執行智慧合約。這種二層協議解決方案的好處是,一旦該協議失敗,可以很容易停止或拋棄,不影響主鏈的安全。而CSW的智慧合約則是直接在BCH主網上,通過“圖靈完備”的交易指令碼來實現的。
所以說,雙方都想把BCH發展成世界貨幣,併成為能夠執行智慧合約的基礎公鏈。相比之下,CSW的方案更加激進,給主鏈帶來的風險更大。
四、蟲洞會毀滅BCH:錯,蟲洞增加BCH價值但被CSW用來製造謠言
蟲洞是雙方衝突的一個焦點,這有點出乎意料,因為蟲洞在8月1日的香港會議上釋出時CSW在場,席間各方相處融洽,並未對蟲洞提出異議。但8月中旬,在CSW發動對ABC和位元大陸的攻擊之後,蟲洞成了CSW及其支持者攻擊的主要目標,主要邏輯有三個:
1)燒幣會毀滅BCH。蟲洞的執行代幣WHC通過燃燒BCH按照1:100的比例產生。CSW認為蟲洞的發展會將BCH燒光,最後只剩下了WHC,即位元大陸要以蟲洞吞噬BCH。
2)蟲洞地址上燒掉的BCH可以被取出。CSW發文聲稱蟲洞團隊用來燃燒BCH的地址1111111111111111115KMYP7R278,上面的BCH是可以被轉出的。意指蟲洞團隊會盜取這些幣。
3)蟲洞表明位元大陸走的是基礎公鏈路線。這不是CSW本人的論證,而是CSW的支持者的延伸,用來支援和傳播上一個誤解:BSV的方向是世界貨幣,ABC的方向是基礎公鏈。
這個觀點被CSW的支持者和很多反感位元大陸的人廣泛傳播,用以攻擊位元大陸和ABC。這也是個重大的誤解,主要原因如下:
1 )蟲洞能增加BCH 內在價值。 蟲洞如果成功,有大量交易量,會因為燃燒生成BCH和代幣流通支付BCH手續費而增加BCH的需求,從而提高BCH的內在價值。
2 )燃燒BCH 不會毀滅整個BCH 系統。 燃燒BCH跟丟失私鑰的影響是相同的,即這些幣永遠找不回來了。中本聰回答過這類質疑,這導致總量減少,剩下的BCH價值會增加。不存在燒完的危險,不等燒完WHC就已經昂貴到無法使用了。
3 )蟲洞作為開放開源的二層協議對主鏈無危害。 無論蟲洞可能產生什麼樣的危害,作為二層協議,有共識支援就可以丟棄。作為開放開源系統,覺得燃燒有問題,完全可以修改蟲洞程式碼部署一個不燒幣的協議。
4 )如果蟲洞可以毀滅BCH ,中本聰的整個設計就失敗了。 蟲洞源於比特幣上的Omni協議,usdt就是用Omni在BTC之上發行的。如果蟲洞這樣的二層協議可以毀掉BCH,而蟲洞和密碼貨幣都是開源開放的,那麼部署大量的類蟲洞協議就可以殺死比特幣和各種其他幣了。
5 )蟲洞地址無人能支配。 蟲洞地址按BCH的新地址格式是qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu08dsyxz98whc。沒有選擇非校驗位全部為q,是因為那個地址已經被其他用途佔用了,蟲洞團隊找了一個能夠使校驗位的後三位為“whc”的黑洞地址。這樣的地址耗盡太陽的能量也難以碰撞出私鑰。CSW宣稱他能證明該地址上的BCH可以被轉出,但至今已經燃燒的2700多個BCH仍在那裡,這也是CSW著名的嘴炮之一。
6 )位元大陸BCH 大量持倉足以迴應謠言。 目前,位元大陸公開的BCH持倉量在100萬以上,足以促使他們維護BCH安全,而不是毀滅BCH。而CSW的BCH持倉量一直不明。WHC並非位元大陸發行的token,而是任何人都可以通過燃燒BCH產生的,用WHC吞噬BCH對位元大陸沒有什麼好處。
7 )攻擊蟲洞是CSW 攻擊位元大陸和ABC 的藉口。 CSW很早就宣揚BCH的token方案,為什麼蟲洞方案出來以後會大肆攻擊呢?翻閱CSW和投資人Calvin在8月之後的微博就知道了:他們把BCH生態中想要攻擊的人都藉助蟲洞描繪成位元大陸的幫凶,比如說ABC的技術升級是為了蟲洞設計的,Coinex支援蟲洞發行的token是想跟位元大陸一起用WHC取代BCH,等等,並且把蟲洞的地位類比2017年擴容時的隔離見證(SW)和閃電網路,從而把BSV類比去年為拒絕SW而誕生的BCH。這都是誤導輿論的手段。
簡單說,蟲洞是BCH上的二層智慧合約方案,有利於BCH發展,因為戰爭,CSW把蟲洞當做製造謠言的材料。
五、BCH是位元大陸的公司幣?錯,BCH的去中心化程度遠高於BTC和BSV。
這個誤解是BCH生態之外,尤其是BTC生態對BCH的核心攻擊點。主要原因是2017年擴容之爭後期,位元大陸發現比特幣核心開發團隊core不可能再擴大區塊了,就率先尋求支援core之外的團隊(比如Bitcoin Unlimited)開發擴容版本。BU失敗而ABC團隊開發出擴容版本後,位元大陸參與投資的Viabtc交易所和礦池率先支援了BCH交易和挖礦,與吳忌寒關係緊密的江卓爾則在BCH誕生初期用算力穩定BCH出塊時間,直到BCH修改難度調整規則(DAA),實現市場化平穩執行。因此,在BCH誕生初期,吳忌寒、楊海坡和江卓爾起到了關鍵作用。
然而,即使BCH的誕生也離不開算力之外的堅定主張擴容的比特幣社群成員的支援和努力。我本人從2016年就支援擴容,並主張分叉,對BCH分叉和修改難度規則(DAA)做了實際的推動。在這之前並不認識吳忌寒、江卓爾和楊海坡,是因為有共同的目標,做共識的事情才逐漸產生聯絡。
BCH的絕大多數支持者都跟我一樣,相互素不相識,因為主張“比特幣要成為世界貨幣,必須滿足市場需求擴大容量”這個共識才走到一起。有了這個共識才有了BCH最初的市場需求,才有了後來不斷增長的宣傳者、開發者、商業企業和使用者。沒有這種去中心化的社群共識,只有算力和開發者,BCH跟隨後產生的各種分叉幣就沒什麼區別了。
不可否認,BCH誕生髮展早期,位元大陸和吳忌寒的貢獻和影響是最大的。但在隨後的一年中,位元大陸和吳忌寒的影響力在迅速下降。Roger、Gavin、CSW等人相繼支援BCH,不但擴大了BCH社群,也分散了影響力。位元大陸和吳忌寒本人非常低調,避免宣傳,在社群中的影響力不斷減弱,這是有意識的去中心化。吳忌寒在社群中所提出的縮短區塊時間、抽礦工稅激勵開發者等建議都被社群否決。這次CSW以如此大的聲勢製造出分裂,正是BCH去中心化的直接結果。ABC支持者鼓勵CSW分叉出去,而不對其進行攻擊,也是接受這種去中心化的後果,延續去中心化的程序。
從內在機制上看,BCH主要將區塊容量從1M擴大到8M,而沒有改變比特幣的原有技術構架和利益博弈格局。在技術特徵上其去中心化程度跟BTC是一致的。比特幣在擴容之爭中表現出來的開發去中心化在BCH中依然存在,但比現在的BTC弱得多。有7個開發團隊參與開發,ABC的節點數並不佔壓倒性優勢,BU的節點佔比也很高。
在曼谷會議上ABC團隊的主要訴求就是,希望礦工們能夠委派懂技術的人蔘與開發討論,強化開發與礦工的溝通,從而讓他們從繁雜的政治紛爭中解脫出來,專心開發。對於CSW和nChain的責難,ABC團隊努力向各方說明每個細節,並最終獲得了除BSV以外的所有主要開發團隊的認同和支援。這與去年Core拒絕參加礦工大會是鮮明的對比。很難想象現在BTC的社群的哪個個人或企業能夠像CSW和nChain這樣,在兩個月的時間裡,對Core開發團隊製造如此嚴重的威脅。
目前,支援ABC版本的一方並不是一個整體,而是多方力量,不只是位元大陸和Roger,還有生態中77%-98%的企業(來自coin.dance),以及BU、Bitprim、Bitcoin XT、Parity、Bcash、bchd、哥白尼專案等至少6個開發團隊。這些開發團隊的版本都相容升級後的ABC版本,但都是獨立開發,有可能競爭成為主要開發團隊,尤其是BU團隊。
在曼谷會議上和這次戰爭中,這些力量都表現出獨立立場。吳忌寒和我是較早意識到不能向CSW妥協的。在前期各方力量大多希望彌合分歧,包括Roger。但隨著戰爭爆發,多數人做出了自己的判斷,並且絕大多數支援了ABC,構成現在的BCH社群。這個社群的去中心化程度明顯高於現在的多數公鏈,包括BTC。而BSV社群則緊緊圍繞在CSW和Calvin、nChain、CoinGeek這個利益共同體周圍,對CSW的個人崇拜尤其嚴重,因而是高度中心化的。
簡單說,BCH從誕生到現在經歷了快速的去中心化過程,現在的去中心化程度領先於BTC和高度中心化的BSV。
六、戰前70%算力支援CSW?錯,支援ABC的算力是CSW的10倍
這個誤解也是CSW、CoinGeek和nChain有意製造的。因為絕大多數人不太瞭解挖礦的細節,以為BCH瀏覽器上顯示的算力佔比跟支援BCH的算力佔比是一回事,實際上差異非常大。
由於BTC和BCH都是用SHA256雜湊演算法挖礦,所以兩種幣的算力是相通的。正常情況下,BTC和BCH的相對價格變化會導致挖BTC和BCH的相對收益變化,礦池可以在BTC和BCH之間切換,以獲得最大收益。
基本規則是價格決定算力佔比。比如BTC價格4萬,BCH價格4千,那麼BTC和BCH兩網總算力的90%就會挖BTC,10%挖BCH。如果有20%挖BCH,那麼BCH難度就會增大,收益就會下降,切換到BTC上挖礦就更有利可圖。
由於支援BCH的企業或個人掌控的算力規模相當大,包括位元大陸的antipool和btc.com、Roger的bitcoin.com、江卓爾的btc.top、楊海坡的Viabtc,以及CSW這邊的CoinGeek、svpool、bmgpool等等。他們所掌握的算力佔到兩網總算力的60%以上,而BCH每日產出價值只有BTC的7%左右。如果都挖BCH,大家都會破產。所以,多數情況下,只有7%左右的兩網算力挖BCH。
實際上,由於機槍池的存在,多數礦池不需要頻繁切換。江卓爾的BTC.TOP就是著名的“機槍池”,能夠快速在BTC和BCH之間切換,不僅自己獲得利潤,也能平抑BTC和BCH的挖礦收益,幫助其他算力能夠獲得平穩的收益,而不必頻繁切換。
正常情況下,礦工礦池以挖礦收益為直接目標,所以不需要計較挖BTC和BCH。即使是BCH的堅定支持者,也可以挖了BTC兌換成BCH。只有到了算力戰的時候,發動算力攻擊或用算力防守保障安全的時候,才需要不顧眼前利益,而堅持在某個鏈上挖礦。
但是,由於多數人不懂這些,只看區塊鏈瀏覽器上的算力佔比。CSW就利用了這種資訊不對稱誇大自己的聲勢。他的支援礦池只挖BCH,使BCH挖礦收益比BTC持續低5%以上,其他算力大多切換到BTC挖礦,其支援算力的佔比不斷上漲,最高達到大戰前的70%。在這個過程中,CSW不斷以BCH大多數算力的名義釋出各種訊息(參見CoinGeek官網和CSW與Calvin推文),製造其能夠用算力決定BCH未來的假象。
實際上CSW的支援算力僅佔兩網算力的6%以下。直到大戰爆發,公眾才明白真相。Bitcoin.com、BTC.com、antipool、viabtc和btc.top等礦池僅切換了少部分算力保護BCH主鏈,就遠超BSV的算力,目前的累積算力超出了40%左右(來自coin.dance)。並且,仍有大量算力在BTC中,隨時可以用來保護BCH。
令我疑惑的是,我以為CSW不會真正打這場算力大戰,因為一開戰他的這個輿論戰小把戲就戳穿了。但意料不到的是,即使這個把戲被戳穿,以為CSW算力佔優的支持者還那麼相信他,他們說,走著瞧,CSW有很多錢,很多算力在路上,我們會取得最後勝利。
CSW支持者唯一的希望在於,CSW準備了很多錢來打消耗戰。由於算力大戰,BTC挖礦收益超出了BCH的2倍左右,挖BCH會有很大虧損,持久戰比拼的是誰燒的錢多。然而,目前兩鏈已經分離,BCH的價格是BSV的4倍左右(11月23日),雙方算力相同的情況下,BSV的虧損是BCH的四倍。並且,目前BCH維持高算力主要是為了防範CSW的重組攻擊,而ABC 0.18.5版本增加了重組保護,能夠排除超過10個塊的重組,從而在10個確認後確保交易安全。這樣,BCH支持者就可以逐漸撤出保護算力,回到正常挖礦利潤了。而CSW維護BSV的算力如果不下降到BCH算力的四分之一,CSW一方將會持續大額虧損(每日百萬計),這就不是戰爭,而是自殘了。
11月23日,CSW的投資人Calvin宣佈可以接受BSV,而不在於ABC支持者爭奪BCH,條件是ABC版本加入重放保護。隨後,CSW也表示理解和支援Calvin。他們強調BSV的目標是證明自己是真正的比特幣(BTC),而不是比特幣現金(BCH)。隨後,BCH與BSV的算力開始同步下降。燒錢的算力大戰即將結束。
簡單說,算力戰爭比的是雙方在BTC和BCH掌控的總算力,而不只是BCH的算力,CSW支持者號稱70%算力,只是操控輿論的小把戲。
七、不做重放保護就不會分裂?錯,共識分歧的兩個鏈包含不相容內容就分裂了
“重放保護”是針對“重放攻擊”做的防護措施。重放攻擊曾經使老牌交易所云幣網遭受重大損失。
當時,以太幣分叉成現在的eth和etc,雲幣網率先開放etc的充提交易。有使用者就從雲幣提取etc,雲幣用私鑰對一筆etc進行簽名解鎖,並將簽名在etc網路上廣播,完成提現。使用者收到etc後,又把廣播的經過私鑰解鎖的簽名信息在eth網路上再廣播一次,這樣雲幣的eth也到了該使用者的地址上。這使得雲幣損失慘重。因此,在2017年8月1日的BCH分叉時,ABC在程式中加入了重放保護,讓BCH的交易與BTC的交易有不同特徵,各自的交易簽名在對方網路中不被接受,從而防止了重放攻擊,這對BTC和BCH都是有利的。
在這次的BCH戰爭中,正如CSW所警告的,BSV沒有加入重放保護。CSW及其支持者宣稱,BSV只要不加重放保護,BCH就不會分裂,兩個版本區塊鏈只是暫時分開,仍是同一條鏈內的競爭,終會有一個鏈死亡,回到唯一的鏈。
在解釋“分叉”時,我們說了,兩個版本如果各自有對方不相容的特徵,當這個特徵在交易或區塊中實現,就形成了兩個不相容的區塊,不會按照“最長鏈原則”拋棄短鏈,而是形成了兩個鏈。只要兩個鏈都有堅定支持者,有人執行堅持挖礦記賬,那麼兩個鏈就長期存在,兩個幣也就永遠分裂。實際上在BCH的第556767區塊就出現了不相容的交易信息,ABC和BSV挖出了兩個不同的塊,形成了兩個鏈。
由於有交易所開了ABC和BSV兩種幣的期貨,分叉後各交易所又陸續開通了現貨交易,有了bch和bsv的交易轉賬,兩個賬本記錄的交易和餘額已經不同了,這已經沒有辦法合併。也就是說兩個鏈和兩種幣已經永久地、不可逆的分離了。
回到一條鏈的唯一可能是,這種幣已經沒有價值,並且沒有人在挖礦記賬了。只要有一定的共識存在,有人挖礦,這個鏈就能活下去。像早期的很多山寨幣,雖然沒多少人知道,但也還延續著。
分裂之後,如果一個幣影響較大,生態各方面更原因接受這個幣,混亂的狀況就會結束,影響大的幣一般會延續原來的名稱,而影響小的幣則被看做是新幣。由於新幣是原有賬戶一比一分出來的,所以也被稱為免費發放的“糖果”。目前,BCH延續之前使用的ABC版本,新的BSV版本的BSV幣可以被看做“糖果”。
沒有重放保護帶來的問題是這兩種幣容易受到重放攻擊。針對這個問題的系統解決方案是至少一方做重放保護,區分兩種交易。個人的解決辦法是對自己的幣做一次汙染,即傳送一筆具有ABC版本獨有特徵的交易到自己的舊地址上,再把舊地址上的幣傳送到自己新地址上。這樣新地址的幣就出現在BCH鏈上,而在BSV鏈上幣留在了舊地址上。有錢包或網站陸續提供為使用者分離幣的應用或軟體,交易所也會成為分離幣的重要樞紐。
總之,重放攻擊的問題可以防範和解決,沒有重放保護不能阻止兩個鏈的分裂。
八、ABC支持者想要殺死BSV鏈:錯,ABC支持者希望BSV實踐其路線
一般情況下,戰爭的目的是消滅對方或征服對方。在這次BCH戰爭中,CSW的支持者堅定地提出要殺死ABC版本的鏈,要讓位元大陸破產。因此,很多人也認為戰爭的另一方,ABC和位元大陸也是希望殺死BSV鏈。實際上,ABC鏈的支持者多數人希望BSV鏈能夠活下去,讓支援CSW理念的人堅定地實踐這種理念。
我在《BCH的戰爭與進化》中分析了這種不對稱性,它來自雙方的理念分歧。ABC支持者主要是演進主義者,贊同在激烈競爭的密碼貨幣環境下,BCH應當根據形勢的變化不斷調整和演進。當遇到重大分歧的時候,都沒有絕對的把握哪條道路是正確的,因此應該分叉去探索。所以,能夠容忍並鼓勵BSV在不同道路上的探索。
但是,CSW的理念是理性主義的,認為中本聰和白皮書給出了確定的方向和實現路徑,只需要回到中本聰,去掉區塊限制,服務50億人的目標就能實現。他的追隨者大多是因為這個清晰簡潔的理念而支援他。這種理念就決不允許他人按照市場的發展做出修正和演進。所以,殺死ABC鏈是理性主義理念的必然。
回顧分叉之路,從BTC分叉出BCH,再從BCH分叉出BSV,現在有了BTC、BCH和BSV三條道路。其中,BTC走的是限制區塊容量,保證主鏈抗審查能力的道路;BCH走的是擴大區塊容量,不斷演進的道路;BSV走的是取消區塊容量限制,迴歸中本聰早期版本的道路。現在比特幣實際上有了三條前進的方向,成功的可能性遠比一條道路要大,還有可能三條道路適應於不同領域,都取得成功。生物的進化不就是這樣的過程嗎?
目前,CSW一方對BCH的攻擊威脅一直沒有停止。為此,BCH更新了ABC 0.18.5版本,增加了重組攻擊,即節點接到按最長鏈規則需替換掉自己10個以上區塊的更長鏈時,將放棄這個更長鏈,沿用自己的鏈。這就是為了防止51%攻擊重組區塊鏈。因為,正常情況下的孤塊長度不超過2個,超過10個的必然是51%攻擊。這個更新能夠讓BCH交易10個確認做的近乎絕對安全。從而保證了自身的正常使用。大幅降低了CSW攻擊的意義,有助於BSV一方恢復理性。
相反,ABC支持者攻擊BSV實際上更容易,因為:1)BSV一方堅稱自己為正宗,不願意改變協議,包括防範攻擊的改變;2)BSV的支援算力更小,發動51%攻擊更容易成功;3)BSV支援128M大區塊,容易受到巨塊攻擊,比如製作一個含有BSV特有交易,包含大量微額交易的128M大區塊,這個塊會被BSV網路接受,並造成網路擁塞,這個攻擊成本很小。
從幾天來的戰爭情況看,ABC支持者只做了戰爭防禦,儘管算力優勢很大,但並沒有對BSV發起51%算力的重組攻擊,也沒有發動成本更小的巨塊攻擊。反而是CSW一方為了製造擴容的輿論優勢,自己打包了一個64M的區塊,在30多分鐘的時間裡,仍有很多BSV節點未能同步。相當於自己對自己製造了一次巨塊攻擊,對外卻宣稱取得了擴容到64M的偉大成就。頗有點大躍進、放衛星的意思。
所以,儘管BSV和BTC的多數支持者都希望現在ABC版本的鏈死掉,但ABC版本的支持者大多希望BSV和BTC活下去,繼續探索。
九、最長鏈或最大積累難度一方勝利?錯,勝負看雙方的戰爭目標是否實現。
戰爭爆發後,各界普遍關注究竟誰勝利了。很多人根據所謂“最長鏈原則”,認為哪個鏈長,哪一方就勝利了。包括火幣也釋出公告說將認定最長鏈為BCH。
兩鏈分裂後ABC版本長度持續超過BSV版本,為此,火幣認定ABC版本為最長鏈,命名為BCH。但19日BSV版本鏈的長度又超過了ABC版本,但BSV的積累難度仍落後近40%。於是BSV的一些支持者堅稱最長鏈決定勝利方,更多熟悉密碼貨幣的人則強調最大積累難度決定勝利方。
實際上,這兩種判斷標準都是錯誤的。最長鏈原則和最大積累難度規則是一條鏈上自動裁決的客觀程式碼,而不是評價兩條鏈勝負優劣的主觀標準。只適用於一條鏈,不適用於兩條鏈。
在解釋分叉時已經說過,最長鏈原則是在相同版本的一條鏈上,因網路延遲等技術原因導致分叉的時候,每個節點一旦發現同一高度出現不同的區塊,就會保留更長的鏈,丟棄短鏈。這是寫入程式碼的,節點會自動執行,不需要人來評判和干預。
由於比特幣約兩週調整一次難度,所以一般情況下短暫分叉的兩個鏈都有相同的難度,所以某個鏈越長,這個鏈的積累難度也就越大。“最長鏈原則”和“最大積累難度原則”是等價的。
但是,BCH誕生之後,兩週調整難度導致BTC和BCH的挖礦難度不能隨著相對收益的變化而及時調整。當BCH更賺錢時,全部算力湧向BCH,難度不變情況下,出塊時間大幅縮短。當BTC更賺錢時,全部算力湧向BTC,BCH出塊時間大幅拉長。這種情況造成BTC和BCH的出塊時間都偏離了10分鐘,忽快忽慢。BCH價格低,波動尤其大。
為此,2017年11月1日的BCH硬分叉升級中修改了難度調整規則,改成每個區塊都根據之前一天的平均出塊時間調整難度(即逐塊調整難度,簡稱DAA)。相對收益造成算力流動引起的出塊時間偏離很快就能調整回來。有了這個修改之後,BCH和BTC的出塊時間都穩定了,切換挖礦獲利的行為導致兩個鏈的算力之比跟價格之比基本一致。
然而,在逐塊調整難度的情況下,“最長鏈”和“最大積累難度鏈”就不一致了。因為,算力較少的鏈雖然一開始出塊慢一些,鏈更短,但它的難度能很快降下來,出塊時間就加快了。因為這個原因,BCH已經比BTC超出了6500多個塊了。但是,由於BCH難度低,因此積累難度遠遠小於BTC。
所以,在難度逐塊調整(DAA)的情況下,如果仍然在同一條鏈上,最大積累難度原則才是程式碼執行的分叉選擇原則。當發現跟一條不同的鏈的時候,不是判斷哪個鏈更長,而是比較哪個鏈積累的難度最大,就接受哪個鏈,放棄另外一條,這是程式自動完成的。
最大積累難度原則也只適用於一條鏈。ABC版本和BSV版本在第556767區塊中因為存在不相容的交易資訊,已經分裂成兩條鏈。即使都沒有做重放保護,兩個版本接收到對方版本發來的區塊會自動判別為不合法,從而拒絕對方的鏈。也就是說無論長短,無論積累難度高低,兩個版本都不會理會對方的鏈。所以,最長鏈原則和最大積累難度原則就沒了實際意義。BCH比BTC更長也不能說明BCH贏了。
跟區塊鏈領域的很多誤解一樣,最長鏈和最大積累難度原則被廣泛視為兩鏈勝負的標準,不是因為它自身有這種功能,而是因為人們普遍接受這種誤解。
實際上,最長鏈、最大積累難度、價格、社群人數、市值規模、日交易量、開發人員規模、活躍地址數,等等,都只能從一個側面反映一個鏈的資料狀態、健康程度、市場接受程度或可能發展前景。並不能判斷出不同鏈的勝負。一個鏈的發展要多學習其他鏈的優勢,修正自己的劣勢。唯我獨尊,天天貶低他人,不是一個新生事物邁向成功的道路。
對一場戰爭而言,勝負的評判標準在於,雙方戰前想通過戰爭實現的目標是否實現?
CSW發動戰爭的目標很明確,就是:1)阻止ABC版本升級到0.18.2;2)ABC團隊不再主導BCH開發;3)BSV版本成為BCH的主導版本;4)BCH不分裂為兩條鏈,如果分裂,ABC版本中止挖礦。
ABC和位元大陸一方的目標是:1)BCH升級到ABC 0.18.2版本;2)如果BSV不相容新版本,歡迎分叉發展;3)BCH繼續指代ABC及其相容版本執行的區塊鏈和幣。
現在看來,CSW的4個目標全部落空了。BCH分裂了,除了BSV以外的版本都相容ABC版本,而不相容BSV版本,生態中多數商業沿用並升級到ABC的0.18.2相容版本或更高版本,交易所和錢包部分已經接受ABC版本為BCH,部分中立,但沒有將BSV接受為BCH的,ABC團隊仍然是主要開發力量。
ABC和位元大陸一方的目標基本都實現了。“基本”的意思是,理論上仍有可能CSW的支持者說服其他開發團隊、交易所、錢包將BSV版本作為BCH,並且斥巨資不斷攻擊破壞ABC版本的鏈,從而消滅ABC版本。但這種可能性已經極小了。
CSW的一些支持者也迴避發動戰爭時的勝負標準,提出最長鏈、最大積累算力、放棄挖礦、主動新增重放保護、改挖礦演算法等等新的勝負標準,試圖延續這場戰爭,奪取BCH之名。實際上,BSV一開始沒能成功奪得BCH之名,整個生態大部分接受ABC及相容版本作為BCH主鏈之後,名稱就拿不回來了。因為重新命名給商業企業和個人造成巨大混淆,人們不願意這麼做,去中心化的社群也做不到這一點。
所以說,從這場戰爭的目標來看,CSW一方已經失敗了,理性的做法是專心做好BSV,讓使用者超過BCH和BTC,這比奪取BCH或BTC之名更有意義,也更有可能實現。
十、BCH內戰讓BTC坐收漁利:錯,CSW攻擊的是整個去中心化密碼生態
原本以為BCH戰爭只是一場內戰,沒想到會引起整個區塊鏈社群,甚至央視CCTV2的關注。最早的社群外關注來自BTC社群。一些Core支持者對BCH爆發內戰非常歡迎,有些不惜放下對“假中本聰”CSW的成見,為他吶喊助威。他們的邏輯是“分叉就是攻擊”、“分叉者將被分叉”、敵人的敵人就是朋友,所以他們支援CSW發動戰爭。從利益上看,BCH與BTC的相對價格一直是雙方關注的焦點,BCH戰爭導致BCH相對價格下跌,BTC似乎坐收了漁翁之利。
令人始料不及的是,BCH戰爭爆發帶來以BTC為首的整個密碼資產的新一輪暴跌。這場暴跌的根源是去年牛市積累的巨大泡沫仍在破滅,BCH戰爭雖不是根源,卻是壓死駱駝的一根稻草。BCH戰爭導致密碼資產市場下挫的一個原因是,在資金稀缺的情況下,BCH戰爭各方都需要燒錢,使資金更加稀缺,價格下跌,比如CSW推特說他售出了BTC以支付挖礦電費。
BCH戰爭導致密碼資產整體下跌的另一個重要原因是,CSW的這次攻擊挑戰了中本聰建立的去中心化密碼貨幣經濟模型和整個去中心化密碼生態。正是由於這個原因,在開戰後BTC帶領的暴跌中,偏中心化的瑞波幣(XRP)和恆星幣(XLM)不僅堅挺,甚至一度上漲,XRP市值一舉超過ETH,穩居市值第二位。
為什麼BCH戰爭會危及去中心化密碼資產呢?原因是CSW雖然宣稱忠於中本聰初衷,但其理念、行為和戰爭的方式與後果都是高度中心化的。
1)CSW發動戰爭的理念是中心化的
CSW發動戰爭的主要理由是,認為ABC和位元大陸適應市場變化的演進路線是錯誤的,中本聰在白皮書中已經確定了能夠順利實現50億人使用的世界貨幣的框架,只需要恢復0.1版本,擴大容量就能實現,並且攻擊所有與他意見相左的人。按此理性主義理念,社群成員只需聽從CSW對中本聰和白皮書的解釋,甚至堅信CSW是中本聰,跟隨其指引就能夠實現世界貨幣目標了。這是高度中心化的理念,很受不善反思和獨立思考的普通人,尤其是急於求成的激進者的喜愛,能夠快速獲得信眾。但它對去中心化社群的危害極大,其效果類似於文革。歷史上看,幾乎所有的革新性的理念都不是毀於競爭,而是毀於內部將理念的僵化甚至神化,CSW正在對中本聰的理念這麼做。
2)CSW發動戰爭的行為是中心化的
CSW一方組織和發動此次戰爭的過程高度中心化,其決策核心是CSW及其投資人Calvin,主要力量是Calvin投資的nChain、CoinGeek、BMG和SVPOOL等幾家企業和礦池。這次攻擊至少從5月份就祕密籌劃,在ABC八月初發布11月15日硬分叉升級進度之後,突然發起對ABC、位元大陸等的攻擊。攻擊策略高度一致,緊密配合,先提高bch算力,然後宣傳算力佔比,召開BCH礦工大會,高頻參與中國社群討論,向有影響的社群成員私下展示“證據”,不斷製造對位元大陸的假新聞,展開專利威脅和法律訴訟威脅等等。前述誤解(第2-7,9個誤解)主要是有CSW一方製造或強化宣傳的。這場攻擊在力量組織、輿論宣傳、政治策略上都是高度中心化的。
3)CSW的燒錢挖礦挑戰中本聰POW經濟模型
此次攻擊最令人意外的是,CSW一方不僅在戰前以低於BTC收益5%的虧損挖礦,開戰後仍堅持以超過ABC一方2-3倍的虧損堅持燒錢挖礦。目前,ABC一方已經加入重組保護,大幅降低被攻擊風險後,BSV一方仍然堅持鉅虧挖礦。這種行為不符合POW機制對礦工驅利的基本假設,如果攻擊者可以以相對較少成本發起算力攻擊,並從其他途徑獲得更多利益,那麼對POW經濟模型是一個挑戰。
4)CSW發動戰爭的後果是中心化的
CSW發動戰爭攻擊的是正在快速去中心化的BCH社群,戰爭大幅削弱了社群規模和共識。跟任何戰爭一樣,戰爭也導致雙方更中心化。ABC支持者方面位元大陸、ABC和Roger影響力有所加強,但總體去中心化格局和方向沒有改變。而CSW一方則形成了高度中心化的社群,挖礦算力主要來自Calvin的投資,理念主要來自CSW,其他支持者顯示出對CSW的高度認同甚至崇拜,中本聰本人隱退前都沒有達到這樣的崇拜,因為比特幣的精神核心就是去中心化。
去中心化和中心化是人類社會組織的不同模式,沒有先驗的優劣之分。但中本聰通過比特幣開創的,藉助密碼技術和分散式共識實現的密碼共識機制的核心功能,就是去中心化地組織大規模經濟活動。拋開了去中心化,這一系列技術組合就失去了存在的價值。
由CSW發動的這次戰爭,表面看是宣揚中本聰和白皮書的理念,實際上是以高度組織的中心化方式對一個去中心化的密碼社群進行的攻擊,挑戰了白皮書POW的去中心化激勵模型,建立了一個高度中心化的密碼貨幣社群,並號稱這才是真正的比特幣。由此帶來的混亂在熊市中時對去中心化密碼生態的沉重打擊。
我從2016年就主張,分叉是去中心化社群自然演進的必由之路,在《擴容之爭與比特幣的政治經濟前景》一文中強調擴容爭論雙方應該各自探索自己的道路。但我在《BCH的戰爭與進化》分析過,這次分叉不是一次必要的演進分叉。現在看來,這實際上是中心化力量對去中心化社群攻擊的一次攻擊。
BCH的誕生是一次典型的演進分叉。BCH社群雖然自認比BTC更加符合中本聰點對點現金,或世界貨幣的目標。但總體上尊重了BTC社群的選擇,採取措施避免相互傷害:1)分叉時加入了重放保護,防止使用者損失;2)修改了地址格式,避免了使用者與BTC地址混淆;3)調整難度規則,減少算力潮湧對BCH和BTC雙方的損害;4)BCH支持者擁有50%以上兩網算力,但從未進行過算力攻擊。這些措施即是正義的,又是符合雙方共同利益的。相比之下,此次戰爭中的CSW一方明確拒絕重放保護,威脅對ABC發動算力攻擊則是對去中心化理念的瘋狂挑釁。
所幸,BCH戰爭已經結束,CSW一方組建了緊密的BSV生態,放棄了BCH。但保衛去中心化生態的戰爭並未結束,他們現在的目標是BTC。希望更多人能消除誤解,理解真相,共同保衛去中心化生態的十年發展成果,這才是真正的信仰。
本文作者:昌用。首發巴位元資訊,如需轉載請註明出處。