更多有關Taproot的內容請關注專題: Taproot軟分叉,造就最強比特幣?
注:原文來自bitcoinops。
Taproot激活時會發生什麼?
在這篇文章發布後不到兩週的時間,Taproot將於區塊高度達到709,632時在比特幣網絡激活,關於它的期待點,我們已經有所了解,而現在,我們有必要來了解一些可能存在的故障模式。
最好(也是最可能)的結果就是一切順利,發生的任何事都不應該對普通用戶可見,只有那些仔細監控自己的節點,以及試圖創建Taproot交易的人才能注意到任何事情。在區塊高度達到709,631時,我們知道的幾乎所有全節點都將執行相同的共識規則,一個區塊之後,運行Bitcoin Core 0.21.1,22.0 或相關版本的節點將強制執行早期版本軟件未強制執行的附加Taproot規則。
而這帶來的一個風險是,早期和後期版本的節點軟件會接受不同的區塊,早在2015年BIP66 軟分叉激活期間,就曾發生過這樣的事,這導致了一次6個區塊的鏈分裂,以及多次較短的鏈分裂。
為了防止該問題再次發生,工程師們已投入了大量努力。只有當礦工故意挖取一個無效Taproot區塊,或者禁用硬編碼到Bitcoin Core和相關節點軟件的安全措施時,Taproot才會出現類似的問題。
具體來說,要創建一次鏈分裂,礦工需要創建或接受一筆從Taproot輸出(隔離見證v1 輸出)支出的交易,而不遵循Taproot規則。如果礦工這樣做,當比特幣節點運營商的經濟共識拒絕掉Taproot無效區塊時,他們將損失至少6.25 BTC(大約40萬美元)。
在沒有創建無效區塊的情況下,我們無法確定這些節點運營商將做什麼(節點可以完全私下運行),但據bitnodes.io/nodes/的數據表明,也許超過50% 的節點運營商正在運行Bitcoin Core的Taproot執行版本,這可能足以確保任何創建無效Taproot區塊的礦工,都會看到其區塊會被網絡拒絕。
雖然不太可能,但從理論上講,暫時的鏈分裂還是存在可能的,我們應該可以使用ForkMonitor.info等服務或Bitcoin Core中的getchaintips RPC對其進行監控。如果發生這種情況,輕量級客戶端可能會收到錯誤確認。儘管理論上有可能獲得6 次確認,就像2015 年的鏈分裂一樣,但這意味著礦工會損失掉近250萬美元(相比之下,2015年的損失大約為5萬美元)。我們希望,在潛在損失如此大的情況下,礦工們會實際執行Taproot規則。
在我們可以想像的幾乎任何失敗情況下,一個簡單但有效的臨時響應措施,就是提高你的確認數限制。如果你在接受付款之前通常會等待6次確認,那麼你可以將確認數提高到30次,以等到問題得到解決。
對於確信全節點運營商的經濟共識將執行Taproot規則的用戶和服務,更簡單的解決方案是僅從Bitcoin Core 0.21.1或更高版本(或兼容的替代節點實現)獲取有關的交易確認信息。
我們希望Taproot激活能夠順利進行,但也確實鼓勵交易運營商及任何在709,632區塊附近接受大額交易的人升級節點,或準備在出現任何問題跡象時臨時提高確認數。