6萬顆BCH被盜,BCH滾動檢查點機制再惹爭議

買賣虛擬貨幣

最近的BCH,可謂是風頭出盡,然而,出的盡是些惹來巨大爭議的風頭。

這不,上個月剛剛因為“強捐”而引發了業界熱議,這個月,一個大戶6萬個BCH被盜發帖求助而導致的眼球效應再次讓注意力聚焦BCH,這次,人們關注的不再是“強捐”這種政治問題,而是“滾動檢查點”這個技術問題。當然,問題一層層遞迴下去,總會牽扯到最核心的設計哲學問題 ——BCH啟用滾動檢查點,是天使?還是魔鬼?

01被盜引起的檢查點關注

在說檢查點之前,先看看這次的事件本身。

一個比特幣巨鯨在Reddit上發帖,號稱因為遭受駭客SIM卡攻擊而丟了6萬個BCH(除此之外還有1500個BTC,不過他更關心這6萬個BCH),想要重金求礦工們幫他找回。帖子裡附帶了數字簽名,被證實真實有效。

故事就是這麼簡單,至於這位大佬是誰,背景如何,BTC和BCH又是怎麼丟的,跟本文關係不大,有興趣的朋友可以自行搜尋,畢竟關於此事件的報道,業內也是鋪天蓋地。

大家更加關注的是,這位巨鯨,為什麼會想到用“重金求礦工”這個方法,來找回他丟失的BCH呢?礦工要怎麼做,才能把這些被盜的BCH“找回”?進入這個行業比較久,對技術有些瞭解的人都知道,那就是傳說中的大殺器,雙花!集合算力,讓現在的這條鏈作廢,在被盜之前的區塊高度後重新開始生成區塊,弄一條新的“最長鏈”即可。

雖然雙花會傷害網路,但在一些特殊時刻,也可以用“善意的雙花”來保護網路。BCH歷史上其實有過一次先例,去年5月硬分叉過程中,網路因為BUG遭受駭客攻擊,幾大礦池聯合起來打包10個空塊,導致駭客的攻擊無效。10個塊之後,由於滾動檢查點的存在,已然無法回滾到10個區塊之前,所以網路得以保護。

而這位巨鯨,很不幸,發帖的時候已然過了10個塊的時間,沒的雙花和回滾可以進行了……

於是乎,各路媒體分成了兩派,一派挺BCH,支援滾動檢查點,一派反對,認為滾動檢查點是個“荒謬”的設計,本文就來著重給你講講這個“滾動檢查點”的前世今生,以及梳理下兩派的核心觀點。

02滾動檢查點的前世今生

1.什麼是檢查點

要知道滾動檢查點,你得先知道檢查點是個啥。

檢查點(Checkpoint),用比特幣學術一點的話來定義,就是:“指定一個區塊高度的區塊雜湊必須等於某個雜湊值”。

說的白話一點,就是承認了檢查點的區塊為合法的區塊,便可以避免這個高度以之前的所有的區塊被其他力量重組,特別是可以避免被51%優勢算力攻擊重組區塊。

換句話說,執行檢查點的節點認定了指定的區塊,也就認定了此區塊之前的所有區塊,之前中本聰定義的最長鏈為有效鏈的原則,“變異”成了“包含了檢查點的最長鏈才是有效鏈。”

中本聰之所以發明檢查點這個東西,是因為在數字貨幣的起始階段,網路還非常脆弱,為了安全起見,在一些重大升級或是補丁的時刻,中本聰加入了檢查點設計,來保護之前這麼多成功的有效區塊。從本質上來說,檢查點是為了獲得網路穩定和可靠而犧牲了部分去中心化。

萊特幣的早期,Charlie Lee為了防止51%攻擊,同樣使用了檢查點,按照他的原話:“檢查點是一箇中心化的功能,因為它依賴於開發人員決定哪條是正確的鏈。對於數字貨幣的起始階段,這是合理的。”

2.滾動檢查點

說完了檢查點,一起來看一下BCH的滾動檢查點又是怎麼回事。

19年11月21日,BCH官方發推特 “Bitcoin AB C 0.18.5版本已上線。該版中新增了滾動區塊“檢查點”作為深度重組保護,以確保交易在10次確認後結果不可變;從而保護使用者、企業以及交易平臺的安全。”

當時正值BCH與BSV算力戰期間, BCH的這一舉動,讓礦圈譁然。之前一眾大V在算力戰前分析的各種場景,包括正面站,全面戰爭,游擊戰等等統統失效。因為,滾動檢查點的出現,直接導致區塊只要收到十次確認便能確定最終有效。也就是說,即使替代鏈具有更多的工作量,只要它與檢查點間存在衝突,節點也不會切換到工作量更大的鏈上,致使比特幣之前的“最長鏈”原則,幾乎徹底失效。BSV無論是正面還是游擊戰,都徹底失去了意義。

很有意思的是,在這件事上,BCH社羣與BSV社羣是兩種完全不同的解讀。

在BCH一方看來,若是不加滾動檢查點,則雙方的算力戰將可能持續數月之久,甚至更長,每天都是在真金白銀的燒。長遠來看,無論哪方取得最終勝利,都將會是殺敵一千,自損八百的慘勝,甚至極端點,兩條鏈都玩完。這樣做,本質上是謀求和平,大家放棄戰爭,各自發展的最理想狀況。

而在BSV看來,這是明顯的避戰行為,屬於“慫”的表現。按照中本聰的設計理念,當出現理念完全無法調和狀況時,應該用算力投票,進行算力戰爭,爭奪最長鏈,堂堂正正的決一勝負。滾動檢查點的設計徹底違背了中本聰最長鏈的設計原則,嚴重破壞了PoW的經濟激勵模型,完全是“亂來”。

03滾動檢查點的好處 - 正方觀點

拋開算力戰避戰與否,滾動檢查點必然對BCH帶來很多影響,拿這次大戶丟幣事件為例。

思考加密貨幣的本質,是什麼?是自由,一種密碼朋克般的自由。以比特幣為例,你的比特幣想在什麼時間什麼地點以什麼樣的方式轉賬給什麼樣的國家的什麼樣的人,這都是你的自由,沒有人可以阻止你的自由。

這也是為什麼之前老貓在佈道的時候說過,比特幣第一次從技術的角度保證了”私人財產神聖不可侵犯”。

現在BCH要做的事情,就是進一步拓展這個概念 - BCH第一次從技術的角度保證了“交易10確認神聖不可侵犯” 。

為什麼這麼說呢,因為本質上來講,BTC是可以透過礦工雙花找回幣,這也是為什麼上次幣安被盜幣之後,CZ考慮過這種方法。而超過51%的算力都在中國,所以理論上來講,北京市公安局派幾名警察,去前3家頭部礦池公司(都在北京)就可以實現。礦池(用於排程算力)的軟體系統、技術人員、阿里雲伺服器,全在警察的可控手段之下。礦池在面對警察時,是否會服從法律,對BTC發起51%雙花攻擊呢?

而在BCH這邊,超過10確認就絕對不行,除非你能同時搞定頭部礦池,開發團隊,讓全球數百個交易所和廣大BCH使用者,開發一個新的版本且所有人切換過來,從這個角度來看,這才是真正的去中心化。

而回到剛才所說的“自由”,但凡比特幣或是BCH因為某些特例而去以回滾的方式去取消某一筆交易,只要發生一次,也許這座“自由之塔”就會轟然倒塌。歷史上以太坊因為DAO事件的“回滾”,對當時整個信奉“Code is Law”的加密社羣造成了一記暴擊,而若是此事發生在區塊鏈鼻祖,或者說圖騰的比特幣身上,造成的傷害,必然遠勝當年DAO事件。BCH的滾動檢查點,可以說徹底避免了這種可能性的發生。

04滾動檢查點的壞處 - 反方觀點

拋開算力戰,雖說BCH的滾動檢查點看似保護了使用者財產安全,但是究其本質,這已經不再是PoW了。

比特幣最為顛覆性和出彩的設計是什麼?或者說,與之前那些失敗的Egold等電子現金比較而言,比特幣的偉大之處在哪裡呢?

其實很簡單,就在於比特幣解決了在不需要信任第三方的情況下,雙方可以直接安全有效的交易,其中最重要的一環,便是解決了沒有信任第三方的情況下的“雙花”與拜占庭將軍問題。

怎麼解決的?

一、時間戳 - 時間戳功能是比特幣的核心,以至於中本聰稱比特幣系統是一個”分散式的安全的時間戳伺服器”。

“時間戳伺服器為一個區塊的資料的雜湊計算結果加上時間戳,並大範圍釋出這一雜湊計算結果,好比在報紙或新聞網上發表。顯然,時間戳證實這些資料一定在這一特定時間存在,只有這樣才能得到雜湊計算結果”

二、PoW - 在這個分散式系統中,誰來蓋時間戳,則是透過工作量證明(PoW),誰能搶先算出落在某個區間內的雜湊數值,誰就能蓋時間戳。接下來,這個時間戳如何獲得共識呢?靠最長鏈原則, 即大多數算力的決定。工作量證明加上最長鏈原則也被稱為中本聰共識,共識是所有區塊鏈系統最核心的部分,它的本質是為了實現分散式的時間戳服務。

最早期曾經有人在論壇問中本聰關於最長鏈的問題:“如果「壞人」比「好人」有更多的算力怎麼辦?”

中本聰的回答是:

“這首先要求單個「壞人」的算力比所有「好人」的算力之和更大;其次,即使單個「壞人」的算力更大,他能做的只是雙花自己的錢,他需要透過買東西花費這筆錢(如今可以是在交易所交易),然後在收到「貨物」之後,透過攻擊網路重新花費這筆錢。這種攻擊對於攻擊者來說或許並不划算,如果有這種算力還不如好好的挖礦。”

那麼回過頭來看BCH,現在,BCH設計了每 10個塊出一個檢查點,也就是說,只要誠實的礦工在10個塊內跑不過作惡者,那作惡者的記錄就永遠留在了鏈上。這已經完全不是比特幣本來的意圖。甚至已經不是 PoW了。比特幣原本的設計是,只要作惡者算力跑不過誠實礦工的算力,那作惡者的記錄就不會留在鏈上。

更深一層,加密貨幣,或者說區塊鏈的本質,是否是所謂“密碼朋克般的自由”?以BSV為代表的反方顯然不會這麼看,在他們看來,Code is Code, Law is Law,加密貨幣真正的本質,不是這種“無政府主義的自由”,而是信任。一個在技術驅動,經濟激勵下的全球可信賬本。滾動檢查點,在強化了Code Is Law這一烙印的同時,卻又同時強化了中心化(參考前文BCH升級期間,礦池聯合起來打了10空塊發動51%攻擊保衛BCH段落)。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;