寫在前面:本周的比特幣技術周報,主要關注的是影響硬件錢包的費用超付攻擊(
Feeoverpaymentattack)問題,而Trezor、Ledger等硬件錢包因此升級固件后而引發兼容性問題,對于這些問題,開發者們提出了一些解決方案,但對于硬件錢包面臨的兩次花費攻擊問題,目前依舊沒有好的解決辦法。此外,關于閃電網絡通道的安全性,上周開發者還提出了通過日蝕攻擊的方法來竊取通道資金,針對這一問題,研究者認為根本性的解決方案是提高主鏈對日蝕攻擊的抵抗能力。而在最后,我們還會關注上周當中發生的比特幣軟件基礎設施的一些重大更新。
(圖片來自:tuchong.com)
一、費用超付攻擊與硬件錢包的兼容問題
如果你的軟件或流程允許你使用硬件錢包來花費隔離見證輸入,請檢查你的系統是否與錢包的最新固件更新保持兼容。例如,Trezor的最新固件,要求升級與其連接的軟件,以繼續處理隔離見證輸入;Ledger的最新固件,將在處理從未更新軟件接收到的隔離見證輸入時發出警告;其他的硬件錢包可能會在未來發布類似的更新;請與硬件錢包制造商聯系,以獲取相關計劃的更多信息。有關此更改的原因,請看如下關于“費用超付攻擊”的解釋:
比特幣閃電網絡通道數量為76,238個:金色財經報道,1ML數據顯示,當前比特幣閃電網絡節點為16,052個,過去30天增加0.65%;通道數量為76,238個,較一個月前增加了0.4%;網絡容量為5,360.60枚BTC,月漲2%。[2023/2/21 12:18:44]
比特幣交易支付的費用,是交易所花費的UTXO金額,與其創建的UTXO金額之間的差額。交易顯式地說明了它們創建的UTXO數量,但它們花費的UTXO數量,只能通過查看創建這些UTXO的先前交易來找到。支出交易只承諾txid和它想要花費的UTXO的位置,這需要其他想要計算費用的軟件來查找每個UTXO的先前交易,或維護一個已驗證UTXO數據的數據庫。
由于硬件錢包不維護UTXO集,因此它們確定使用遺留UTXO交易所支付費用金額的唯一可靠方法,是獲取每個遺留UTXO先前交易的副本,哈希前一筆交易以確保其txid與UTXO引用匹配,并使用現在已驗證的UTXO金額執行費用計算。在最壞的情況下,遺留交易幾乎可以大到1MB,并且一筆花費交易可能引用數千筆以前的交易,因此金額驗證可能需要資源受限的硬件錢包處理千兆字節的數據。
而BIP143segwitv0中所做的幾個改進之一,是通過讓簽名commit它們所花費的UTXO數量來消除這個負擔。這意味著,任何承諾金額不正確的簽名,都將是無效的,包括BitcoinCore和硬件錢包的開發者都認為,這將允許簽名者安全地接受來自不受信任軟件的金額。
聲音 | 比特幣分析師:最佳投資組合中應包含33%比特幣:比特幣分析師Tuur Demeester在Twitter發文表示,什么是好的永久性的投資組合2.0?我的標準是:一個可以持續到2040年不發生改變并仍保留其購買力的投資組合。我的建議是:33%黃金,33%比特幣,34%全球股市指數。[2020/2/21]
不幸的是,事實證明簽署單個UTXO的金額是不夠的。2017年,GregSanders描述了一種攻擊,它可以誘騙用戶大幅超額支付交易費用。首先,攻擊者將控制與硬件錢包對接的桌面或移動軟件,并等待用戶啟動付款。受破壞的軟件會創建所請求交易的兩種變體,每個變體都要花費相同的兩個隔離見證UTXO,這些UTXO受用戶連接的硬件錢包控制。在第一筆交易中,受損的軟件低估了其中一個UTXO的花費。這將導致硬件錢包以相同的低估金額低估交易費用。在第二筆交易中,受損的軟件低估了第二個UTXO的數量,這將導致硬件錢包也低估了第二筆交易的費用。
受損的軟件將第一筆交易發送到硬件錢包。用戶檢查金額、接收者地址以及計算過的交易費用。用戶授權簽名,簽名的交易返回到受損的軟件。第一筆交易在BIP143下無效,因為它的一個簽名提交了不正確的UTXO量。受損的軟件隨后聲稱,有一個小問題阻止了交易的廣播,并告知用戶他們需要重新簽署交易,但軟件不會重新發送第一筆交易,而是發送第二筆交易。根據硬件錢包顯示的信息,這第二筆交易也是BIP143無效的,因為它的一個簽名提交了錯誤的金額。然而,這兩筆交易中的每一筆,也都有一個有效的簽名,受損軟件能夠使用這兩個有效的簽名合成一筆有效的交易,從而超額支付其費用。
動態 | Bakkt已開啟比特幣每日和每月期貨合約全球用戶測試:Bakkt官方推特稱,今日開啟全球用戶驗收測試,目前在Bakkt上的比特幣每日和每月期貨合約測試正在按計劃進行。[2019/7/23]
最壞的情況下,
攻擊提示用戶對控制n個UTXO的錢包進行n次簽名,并導致將錢包的所有資金用于支付除合法支付金額以外的費用。
與Sander在2017年所描述的其它攻擊類似,此攻擊僅影響無狀態簽名者,這些簽名者依賴于外部系統來告知他們所控制的UTXO。而跟蹤接收到的UTXO數量的網絡錢包,不會簽署不正確的UTXO數量,因此不會受到此類攻擊的影響。當然,網絡錢包也容易受到其他類型的攻擊,這也是硬件錢包可為用戶增強資產安全性的原因。
上周,Trezor宣布SaleemRashid在三個月前重新發現了這個漏洞,作為回應,Trezor已更新了固件,但破壞了直接或通過HWI與Trezor設備連接的多個錢包的兼容性。如果錢包有以前交易的完整副本或能夠獲得這些副本,恢復兼容性應該只是更新錢包代碼的問題。而在其他情況下,錢包可能無法存儲以前支付錢包的交易的完整副本,這可能需要重新設計錢包以存儲該數據,并且需要重新掃描過去的錢包交易的區塊鏈。創建或更新部分簽名比特幣交易軟件需要升級,以便將以前交易的完整副本包含到PSBT中。對于PSBT存儲在大小受限制媒介的情況,數據大小增加的問題,可能需要放棄該協議,或切換到容量更大的媒介。
行情 | 比特幣未確認交易不足2000筆:據btc.com數據顯示,目前比特幣全網未確認交易數量為1189筆,挖礦難度為7.23T,比特幣全網算力目前為53.60EH/s,24小時交易速率為2.92交易/秒。目前比特幣報價為6369.25美元,微跌0.02%。[2018/11/4]
Ledger也做了類似的修改,但他們在文章中提到,他們僅在沒有完整拷貝先前交易的情況下使用隔離見證UTXO時,才會顯示警告。盡管要求以前的交易,可以最大限度地提高安全性以抵御該攻擊,但也存在理由允許硬件錢包有選擇地繼續使用隔離見證簽名UTXO值,而不是破壞現有的軟件并在傳統類型的值驗證上花費額外的資源。
這種攻擊在3年前就被開發者們所知道了:Sanders在大約三年前公開描述了這種攻擊,他在開發者郵件列表、BIP等其它討論中都有談及,其他人也都提起過這種攻擊,但在很多人看來,這種攻擊很難進行,并且影響也較小,然后獲得對硬件錢包的軟件控制器訪問權限的攻擊者,更可能會執行不同的攻擊,該攻擊會直接向攻擊者付款而不是進行超付費用攻擊。
雙重簽名也可能導致花費兩次:攻擊取決于使用受損軟件,讓硬件錢包用戶授權兩筆在用戶看來完全相同的,但稍有不同的交易。然而,同一個受損的軟件可以向用戶顯示兩筆完全不同的交易,它們看起來完全相同,從而導致向同一個接收者支付兩次費用。從用戶的角度來看,這兩種攻擊都是不可區分的,但是針對費用超付攻擊的修復方法,并不能解決兩次花費攻擊的問題。
比特幣投資人推特賬號“alistairmilne”貼出18000個BTC的轉移記錄,疑似門頭溝托管方過去6個月的拋售前操作:繼門頭溝托管方透露過去6個月出售了3.6億美元BTC和4400萬美元BCH,稱2月6日它的幣值曾一度跌到6千美元的暴跌是他的拋售導致的,今日比特幣投資人推特賬號“alistairmilne”今日貼出了2月6日的超大額18000個BTC的轉移記錄。[2018/3/8]
多重簽名設置可能需要多個折衷方案:為了使用多個硬件錢包對多重簽名保護的資金進行攻擊,需要滿足最小閾值的每個簽名者都需被誘騙來簽署相同的兩個交易變體。對于包含在線錢包的情況,該錢包知道其所簽名的UTXO的價值,只有當該在線錢包也受到攻擊時,攻擊才起作用。
解決這種攻擊問題的一個長期解決方案,是更改交易摘要,以便每個簽名提交該交易中使用的所有UTXO的值。如果受損軟件謊報關于任何UTXO的數額,這將使簽名無效。
這是JohnsonLau在2018年提出的解決方案,其公開草案已被納入taproot的BIP341規范中。如果采用了taproot,那么對于像硬件錢包這樣的無狀態簽名者來說,在不評估以前交易的情況下為taprootUTXO簽名應該會更安全。不幸的是,這仍然無法修復兩次花費攻擊,這是大多數硬件錢包的無狀態設計所存在的一個問題,其阻止了它們在內部跟蹤自己的交易歷史。
二、針對閃電網絡的時間膨脹攻擊
GlebNaumenko和AntoineRiard在比特幣開發者郵件列表中發布了他們撰寫的論文的摘要,其描述了如何通過日蝕攻擊從閃電網絡通道中竊取資金。這篇研究論文擴展了Riard在第77期周報中所描述的分析。簡而言之,攻擊者可以控制LN節點與比特幣P2P網絡的所有連接,并延遲向受害者轉發新區塊的通知。在受害者對區塊鏈的看法,遠遠落后于公眾的共識看法之后,攻擊者會在過時的狀態下關閉與受害者的通道,日蝕攻擊用于防止受害者看到關閉的交易,直到爭議期結束,而攻擊者則將其非法收益提取到完全由其控制的地址。
這篇文章所描述的攻擊方式,可以在兩小時內從輕LN客戶端竊取用戶的資金。由于當前只有很少的服務器和節點可以向輕量級LN客戶端提供數據,因此,攻擊者可能很容易執行攻擊。而對于全節點支持的LN節點而言,攻擊需要花費更長的時間,并且可能需要創建更多的sybil。作者指出,這些攻擊還可能適用于其他對時間敏感的合約協議。而解決該問題的通用型方法,是提高主鏈對日蝕攻擊的抵抗能力,其中一個具體的改進是允許節點選擇使用其他傳輸協議。
論文地址:https://arxiv.org/abs/2006.01418
摘要文章:https://www.8btc.com/article/605757
三、比特幣軟件基礎設施更新
上周,最新版本的比特幣客戶端協議BitcoinCore0.20.0正式發布。此版本最顯著的改進包括:RPC用戶的默認bech32地址,為不同用戶和應用配置RPC權限的能力,在GUI中生成PSBT的一些基本支持,以及在輸出腳本描述符語言中添加了sortedmulti。為了消除錯誤、增強安全性并為將來的更改做準備,開發者還對代碼進行了很多不太明顯的改進。而一項備受矚目的前瞻性變化,是增加了一個asmap配置設置,該設置允許使用單獨下載的數據庫來提高BitcoinCore對Erebus攻擊的抵抗力。然而,正如發布聲明中所指出的,“目前這項更新是高度實驗性的,不清楚如何從中取得進展。收集和編譯ASN數據非常重要,并且這會帶來信任問題。”有關BitcoinCore0.20.0版本客戶端的更多信息,請參見發布說明。
LND0.10.1-beta是LND閃電網絡軟件的一個新的測試版。這一版本軟件并沒有添加新功能,而是修復了幾個漏洞。
除了這些之外,本周Eclair、LND以及BIP也發生了一些顯著變化:
引入Eclair#1440之后,可使用API一次更新多個通道。最初旨在通過批量更新通道的中繼費,來幫助節點運營商適應動態的鏈上收費市場,這一新增功能還可以實現批量關閉和強制關閉。
Eclair#1141增加了對option_static_remotekey通道的支持。在LN節點丟失數據的情況下,此功能允許通道交易方將當前余額支付給初始通道打開期間商定的未弱化密鑰,從而關閉通道,并允許節點的錢包正常支出其資金。有關此功能的更多詳細信息,請參見第67期周報。
LND#4251使其REST接口支持的非流式消息列表與gRPC接口的列表相等。以前,只有這些消息的一個子集可通過REST接口使用。該PR之后是LND#4141,它通過添加對WebSockets流響應的支持,使REST接口與gRPC接口完全對等。
BIP#920更新了taproot的BIP341規范,要求簽名直接提交所有花費UTXO的scriptPubKeys。這使得硬件錢包更容易且安全地參與coinjoin和其他協作生成的交易。有關詳細信息,請參見第97期周報。
特別感謝:
感謝PieterWuille幫助我們研究關于費用超付攻擊的歷史,也感謝AntoineRiard提供有關時間膨脹攻擊論文的更多信息。如果文章中有任何錯誤或遺漏,歡迎指正。
Tags:比特幣BIPOINBTC超級比特幣最新消息bipt幣合法Neverend Ecentralization FilecoinKBTC
作者:BorisMann 翻譯:阿劍 來源:以太坊愛好者 在本文中,我嘗試歸納以太坊治理方法的不同層級。核心的概念曾在EthereumMagicians論壇上發表過,也引發了一些討論.
1900/1/1 0:00:00作者:?AliAtiia翻譯&校對:IANLIU&阿劍 來源:以太坊愛好者 本文將通過簡單的例子.
1900/1/1 0:00:00在整個非洲大陸,加密貨幣的采用似乎正在增長。 加密貨幣的采用在非洲取得了長足的進步,加密貨幣的所有權,交易量和法規都在朝著更廣泛的采用方向發展.
1900/1/1 0:00:00作者:曾鳴|阿里巴巴集團執行副總裁、參謀長 來源:網易 我經常被人提問的是這個問題:區塊鏈能挑戰BAT嗎?這是個錯誤的問題。在雅虎時代思考Facebook是毫無意義的.
1900/1/1 0:00:00“這一杯,誰不愛。”曾幾何時,我們的朋友圈會被瑞幸咖啡的分享鏈接刷屏。首次登錄APP免費贈送一杯、送好友咖啡后自己也能得一杯、買2贈1、買4贈2……憑借著大幅補貼、大肆燒錢的營銷手段,“小藍杯”.
1900/1/1 0:00:00撰文:SharlynWu,加密貨幣投資人 來源:鏈聞 Uniswap作為加密貨幣市場里長尾資產良好的流動性提供者,發揮著重要作用,它也是當前市場發展階段加密基礎設施的重要組成部分.
1900/1/1 0:00:00