硬分叉之後如何保證資產安全?BCH算力大戰背後還有你不知道的這些事……
11月23日,巴位元邀請到了BCH社群哥白尼專案核心開發者姜和平、BTC.com CEO 莊重、iBitcome錢包聯合創始人趙恆,圍繞“BCH算力大戰——硬分叉之後如何保證資產安全?”這一主題展開了討論。在直播中,三位嘉賓不僅給使用者提供了不少資產安全保護的建議,還對BCH算力大戰中的諸多質疑做出了迴應,可謂是乾貨滿滿。
因此,巴位元現將此次直播的文字內容整理出來,方便大家閱讀,ofollow,noindex" target="_blank">直播視訊 亦可點選連結回顧。
科普篇 | 交易規範排序、重放保護、空塊攻擊到底是什麼鬼?
巴位元:三位老師分別來自BCH開發者社群、礦池和錢包,請問在此次分叉前後,你們主要做了哪些事情?
BCH核心開發者姜和平:這次分叉和之前相比,有一個不太一樣的地方,以往的分叉社群聊得很清楚,各自該往何處發展,兩條鏈應當是互不影響的。這次分叉是大家互不妥協且只想要一條鏈,因此引發了算力大戰,這給交易所、錢包、使用者都帶來了很多困擾。儘管在過程之中,兩方的算力並沒有在一條鏈上鬥爭,給人感覺沒打起來,但他們確實也有秀肌肉。作為開發者,我們除了提前預警可能出現的風險外,還在實時監控分叉的程序,但最後並沒有意料之外的事情發生。
iBitcome錢包聯合創始人趙恆:對於使用者來講,資產安全至關重要。我們在分叉前就寫了一些文章,給使用者介紹“重放攻擊”的簡單原理。作為一個去中心化的錢包,我們主要是維護賬戶的餘額,一旦發生回滾的話,這裡可能會出現一些問題,我們提前做好了演練,就是在分叉前做了一個快照,當然最終並沒有出現所擔心的這些攻擊。
BTC.com CEO 莊重:首先我們也是做了使用者教育,以及資產快照的相關工作。其次對於我們礦池中的BCH使用者,開放了BSV領取的頁面。在分叉前,我們考慮了很多種攻擊的可能性,做了相應的預案。我們還有一個工具一直在監控有沒有不太正常的礦池,如果發生異常行為,就會發出報警。一整天大家都很緊張,在第六個塊產生時就有收到報警,但事實上是孤塊導致的,並不是攻擊。雖然最終也沒有攻擊發生,但不能說算力大戰就真正結束了。只要兩方仍然以虧本的方式進行挖礦,應該說,目前就還是處於誰都不敢把算力輕易撤走的狀態。
巴位元:雖然BCH分叉搞得風風火火,但很多人其實並不清楚兩方的分歧到底是什麼?比如這個CTOR(交易規範排序)替換現有的TTOR(交易按拓撲排序),姜老師能否給我們科普下,這到底是什麼原理,意味著什麼,對BCH的未來發展有何影響?
姜和平:CTOR和TTOR排序在數理上不太好理解。給大家舉個例子,TTOR(交易按拓撲排序)對於交易的依賴,類似於家族的結構,先有爺爺這一輩,然後是父母,再往下是孩子,它們的關係是這樣串起來的。CTOR(交易規範排序)是把整個交易ID按照統一規則排序。BCH最早採用的是TTOR(交易按拓撲排序),儘管複雜一些,但也穩定運行了十年。CTOR(交易規範排序)所做的改進在於所有塊的交易可以按照確定的規範排好後,它可以做不存在證明,這個功能對於輕錢包來講有很大的價值。另外,對於未來的擴容,它也做了伏筆,如果以後的區塊再增大,可能有另外一種技術繼續擴容,在區塊的塊頭就把所有的交易ID都列上,這樣塊頭可以優先被全網廣播,整個傳輸的時間、尺寸來講都會有益處,對於構建一個更大的塊、提高交易容量都會有幫助。
巴位元:我們都知道bsv沒有做重放保護,能否請趙老師普及一下,這意味著什麼?現在使用者可能面臨哪些威脅資產安全的問題?作為錢包方,你們是如何幫助使用者處理這一問題的呢?
趙恆:既然講重放保護,肯定首先要解釋下重放本身是什麼,你擁有了兩個幣種的時候,給其他賬戶打錢,本來是想轉ABC的,可能BSV也同時轉給了對方,這就意味著他們的交易可以互相在對方的鏈上進行重放的。之前在ETH分叉為ETC的時候,很多黑客用這種方式攻擊了一些中心化交易所,通過反覆進行充提。重放攻擊主要是針對交易所 ,他們吃過這樣的虧,所以現在他們會把充提的時間拉很長。對於使用者來講主要是通過資產分離的方式進行重放保護。 資產分離的核心邏輯就是說我在一條鏈上的操作被另外一條鏈所認可,那就可以把兩邊的資產進行分離。我們選擇的是一個可能對使用者更友好的方式,就是空投一點點糖果。
巴位元:莊老師能否普及下空塊攻擊,粉塵攻擊,以及其他大家可能不熟悉的攻擊方式,礦池在其中需要做哪些工作預防?
當天非常有意思的事情是這樣的,我們去觀測BSV上壓力測試的交易地址,然後構造了一個重放交易,壓力測試也就沒有再傳到ABC上,實際上是我們是給BSV鏈上打了一筆,而且這筆錢本可以在兩邊重放,但是在ABC上這筆錢永遠的消失了。
質疑篇 | 資料造假、價格操控、最長鏈原則喪失,這些都是真的嗎?
巴位元:現在ABC方似乎有通過“超過10個塊不予確認”的技術手段來避免游擊戰中突如其來的攻擊,姜老師,有這回事嗎?
姜和平:我看到社群裡有這樣程式碼的版本放出來,但目前沒有看到哪些交易所、錢包使用。從開發者的角度來講,可能會覺得有一些合適的做法,從社群生態的角度來講,可能也有一些別的想法,大家的觀點、角度和業務都不太一樣。總體來講,我們還是認為在這樣一個敏感時期還是儘量少動為好 ,現在驗證沒有什麼問題的話,就儘量先不要動,或者等有些版本經過更多的檢驗或者測試之後,大家再去做統一的行動。
巴位元:想請教一下各位老師,在分叉前,ABC和BSV的價格是如何產生的?那時候應該大部分交易所都暫停交易了吧?沒有交易哪裡來的價格?
趙恆:按照比較平穩的狀況,像是BTC和BCH的分叉,價格和算力應該是成正比的,裡面還是有一個期貨合約的概念。
巴位元:沒錯,但是我們注意到,在分叉前,ABC尚未把算力切換過來時,BSV算力佔優,但是ABC的價格已經是BSV的四倍了。能不能陰謀論的認為,當時的價格是可以被操控的?
姜和平:我記得只有一個交易所開著期貨,分叉一開始大家都不敢去充值了,那這樣的話,雙方的籌碼只能是由交易所裡面已經存在的BCH產生出來的,本身它又不能流動,在這樣一個比較封閉的交易環境下,價格有可能是被操縱的。 但我們沒有資料,也不知道具體是什麼樣的,你說的這種可能性還是有的,所以也能看到價格的曲線波動的特別厲害。但這也許是由於一些投機性交易,可能跟兩邊社群都沒什麼關係。
巴位元:分叉之後,ABC方在很長一段時間算力佔優,完全可以對BSV方發動51%攻擊,但卻什麼都沒有做,是否礦工內部已經提前達成共識,允許分叉?
莊重:任何一個理智的人都應該不會去做這個事情,因為一旦你真的對另一條鏈發動算力攻擊,基本意味著你在整個社群裡就是一個全民公敵 ,至少我們肯定不會去參與。當然現實中也存在過一些51%攻擊,但本質原因還是這些品種算力太低,可能個人你從網站上買一些算力就可以輕易發動攻擊,也不需要什麼成本。但是對於ABC和BSV來說,發動51%的成本很高,兩邊都很忌憚於對方真的發動攻擊,所以目前雙方算力還是保持著比較接近的狀態。
巴位元:下面這個問題比較犀利,請莊重老師正面迴應,有質疑稱BTC.com的區塊瀏覽器在算力排行表的資料上存在造假嫌疑,對此您能否直接回應下,有沒有造假?
莊重:這個問題確實讓我們感到,區塊鏈遊覽器這個產品的責任,對社群的參考性還是非常重要但。我們確實也沒有聯絡過coingeek、svpool、bmgpool這三家礦池,所以沒有辦法抓取到BSV這邊三家代表礦池的實時資料。而ABC這邊這邊的礦池,我們之前就已經互有聯絡關係了,很早大家就有這樣一個介面。要我們去證明沒有造假,這點確實很難。但一些文字遊戲,那種描述特別容易把大家帶到坑裡去。比如說這個資料是我們前端顯示的,這一句話就會引發很多遐想,大家也不要輕易被帶節奏。 我們之後也對產品形態進行了討論,因為我們意識到,如果對方的介面存在問題,確實會導致我們的前端顯示出問題 ,所以接下來產品上也會做一些改動,比如同時顯示估算算力和實際算力,也會給大家提供關於挖礦的更有深度的分析頁面。
巴位元:現在想請姜和平老師迴應一個質疑,網上有一種說法是,儘管bsv算力不及abc,但區塊高度仍然能追上,是因為:“BCH在2017年分叉時通過EDA(緊密難度調整),使得BCH整體出塊速度加快,後來將演算法改為DAA,但這個演算法的缺陷時分叉鏈容易存活,最長鏈原則蕩然無存。” 這種說法對嗎?
姜和平:我不太同意這種說法,大家直觀去看的話,區塊高度差不多,但是POW的原則不是誰的塊出得多來看誰的塊高,而是哪條鏈的累計難度大來看誰的塊多。 比如說我們兩條鏈,你的高度是100,我的高度是90,但是我的這條鏈上的累計難度可能是你的好幾倍,那麼按照POW的原則,我還是最長鏈,所以重要的是累積難度。
未來篇 | 分叉是不是好的機制?持幣使用者和礦工到底誰說了算?
巴位元:BCH分叉大戰雖然告一段落,但警報實際上並未完全解除,除了剛剛趙恆老師提到的安全問題之外,其他兩位老師還有什麼補充嗎?現在還有可能出現的黑天鵝事件是什麼?對於礦池、交易所、錢包和使用者,需要注意什麼風險?
姜和平:因為現在還是沒有加重放。這對已經有所準備的交易所、錢包、使用者來講,沒什麼大問題。但總會有人不知道。希望能夠通過一種方式,幫大家徹底解決這個問題,雙方按照各自的發展理念去走,不管怎麼樣,都不應該損傷使用者的利益。
趙恆:首先作為錢包,幫使用者完成資產分離仍然是最關鍵、最主要的解決手段。另外大家依舊比較擔心的是,會不會真出現游擊戰,儘管現在看起來雙方都燒了挺高成本的,再用之前臆想的那些方式去攻擊,對雙方都沒有好處,而且對整體的幣價也都是有挺大影響的,我們也是希望這個事情能夠儘快結束。
莊重:現在全網收益都在下降,有種很小概率的可能性就是還有一些未知的算力還在試圖攻擊ABC或者BSV,這仍然是一個隱患。另外就是兩條鏈仍然存在重放風險,所以這段時間交易所通常會增加充值的確認數,但這樣也會導致使用者體驗受到影響。
巴位元:可能對於很多人來說,這次分叉大戰過後,並沒有真正意義上的勝者。至少從價格上來看,兩方總市值不及原BCH的市值,對於使用者來講,就是資產縮水了,所以我想請三位老師談一下,怎麼看待未來社群繼續通過分叉這個行為決定發展路線的方式?持幣使用者在這個過程中究竟能做什麼?還是說在區塊鏈的法則中,真正的使用者就是算力持有方,而不是幣的持有方?BCH,以及其他數字貨幣如何保持活力、長久發展?
趙恆:我覺得這可能跟當時的行情有關係,去年那個時候是牛市,你不管做什麼,分個叉都是錦上添花。現在是在熊市,你做什麼都是雪上加霜。 所以很難說分叉對幣價的直接影響是怎樣的。但核心還是歸結到一點,肯定要認同普通持幣而不僅是礦工主導的,可以反過來想這個問題,分叉期間價格波動的很劇烈,價格會影響礦工算力的調整,這就是說使用者決定價格,價格也會去影響算力,這是一個反向迴圈,使用者肯定還是最關鍵的。
莊重:“算力即權利”其實是區塊鏈早期的一個樸素願望,現在早就不是CPU挖礦了,所以這句話本身是有問題的,礦工並不能決定一切,更多的是經濟上的大多數決定這條鏈到底是什麼。 當然礦工仍然是整個系統裡的關鍵一環,但需要開發者、交易所、錢包、礦池整個生態的人們共同決定才能夠達成共識。至於分叉這種機制,在社群不可調和的時候,可以帶來一種解決方案,讓兩方都按照各自的路徑發展。但是我們可以發現,在這個過程中,需要技術專家深度參與其中,去解釋技術路線應該是怎樣的,希望社群可以形成通過討論進行決策的機制,使用者用腳來投票,投入更多的生態性。