比特幣網路出現雙花,幣圈全線大跌,牛市就這樣走了?

買賣虛擬貨幣

【緣由】

昨天(2021年1月20日)開始,一則新聞爆出:比特幣網路出現陳腐區塊(stale block),出現交易雙花。許多剛入場的韭菜驚呼:“比特幣網路出現了雙花攻擊,是不是遭遇重大危機,我怎麼這樣倒黴,剛進來就遇滅頂之災,這裡都是騙子,快還我錢來,不玩了行不行?”


緊接著從比特幣開始,幣圈專案全線下跌,比特幣價格中午一度接近34000美元。並且延續到今天(1月21日),跌破34000美元。同時連帶eth,新秀dot和defi中的領頭羊uni都一併下跌。



圖1

那麼比特幣網路到底發生了什麼?真的是遇到了前所未有的災難麼?


【原理】

先不急,我們來梳理一下一筆交易是上鍊的過程。


所有的轉賬交易都是對屬於自己私鑰鎖定的utxo的消費。utxo不知道說什麼?通俗講,utxo就是你幫別人幹活(挖礦或者別人轉賬給你)所收到的一塊豬肉乾,這塊豬肉乾被你的私鑰鎖定了,你不用私鑰解鎖,任何人都無權消費,當然這塊豬肉乾永不變質(貨幣屬性)。


當你想要消費這塊豬肉乾時,你可以使用私鑰授權消費其中一部分,或者一次性全部消費掉,或者多根豬肉乾捆在一起(根據交易金額)。本次消費生成的交易假設是t1,這筆交易就和網路中同時產生的其他交易被挖礦節點捕獲,進入節點的記憶體池,按照一定的規則組成候選區塊,等待當前的區塊挖礦成功後,節點就開始對t1交易所在的區塊進行挖礦。當然t1這筆交易一定會被多個節點都收錄進入自己的候選區塊。任何節點挖礦成功,也就是對當前的候選區塊頭進行雜湊計算,哪個節點首先找到符合難度要求的雜湊值即為挖礦成功(其他節點驗證其結果無誤後宣佈自己挖礦失敗,釋放候選區塊中的交易到記憶體池,重新挑選交易組合成新的候選區塊)。至此t1交易就算是被比特幣網路確認了一次。


【過程】


我們來看昨天被爆料的這筆交易,交易者是想把屬於自己的4根豬肉乾捆起來(總價值也就是20多美元)一起消費,更可能是彙總轉賬到自己的新地址。點選最終確認的交易檢視交易詳情。點選這裡檢視更多區塊鏈瀏覽器


圖2

交易者首先發起了一筆金額為0.00062063 btc的交易(假如稱為t2交易),t2交易就被f2pool 魚池節點收入記憶體池。f2pool 魚池節點把t2交易封裝到666833候選區塊,並開始挖礦。不過這個交易者是個急性子,在f2pool 魚池節點開始挖礦的同時,又發起了針對這4根豬肉乾的另一筆交易,這次轉賬交易是0.00014499btc(稱為t3交易)。t3交易被 slushpool 礦池節點捕獲到記憶體池,也同樣納入自己的666833候選區塊,開始挖礦。最後在utc時間2021年1月20日1:17(北京時間9:17)左右,兩個礦池幾乎同時宣佈自己挖礦成功。這樣針對相同的4根豬肉乾(utxo)的雙花消費就實現了,也就是同一筆錢可以被兩次花費。


其實這樣的事情在比特幣網路上幾乎每天都會發生。搜尋:stale block,會發現爆出廢塊的機會很高,其實叫陳腐區塊,太過於文藝,不如廢塊這個稱呼更貼切。這主要是由於不同礦池節點的網路延遲造成的。也稱為比特幣網路軟分叉,也就是說從這個區塊開始,比特幣區塊鏈出現兩個並列的區塊,那麼怎麼辦呢?


中本聰設計比特幣的時候,就已經預料到這類事情的發生。採取的措施是不用管,但是制定了一個原則:最長鏈就是比特幣主鏈,只認可主鏈上的交易。


具體來說就是看後續區塊是追加到哪個666833區塊上,如果後續區塊跟隨f2pool 魚池的666833區塊,那麼這條就是比特幣主鏈。如果後續區塊跟隨slushpool 礦池的666833區塊,那麼它就是比特幣主鏈。那麼可能存在有人在延續f2pool 魚池的區塊,也有人在延續slushpool 的區塊。但是一段時間之後,一定是隻有一條鏈被更多節點認可,另外一條鏈就被廢棄。被廢棄的鏈中的區塊內包含的交易會被釋放回記憶體池,重新被節點收納進入新的候選區塊。


【結果】


具體到昨晚這個事件,就是t2交易所在的區塊被廢棄,稱之為stale block,廢塊。t3交易所在的區塊成為主鏈,其交易得到網路認可。也就是圖2中展示的結果。


弄明白了這個原理,就明白幣圈真是個神奇的所在,什麼樣的事情都可以拿來炒作,並且還真的會有效果。而且幣圈還有更多讓人大跌眼鏡,瞠目結舌,或者拍案驚奇,捶足頓胸的離奇故事,有時間以後慢慢說。

免責聲明:

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

推荐阅读

;