Bitcoin Core 29.2 釋出
Bitcoin Core 29.2 替 FillBlock 補上兩項 P2P 修正:見證變造檢查(#32646),以及呼叫前的空標頭檢查(#33296)。區塊重組時不再強制執行 TRUC 檢查(#33504),getblock 與 getblockheader 也不再回傳鏈頂的 target(#33446)。
Bitcoin Core
從官方來源收錄的全部內容。
141 篇文章
Bitcoin Core 29.2 替 FillBlock 補上兩項 P2P 修正:見證變造檢查(#32646),以及呼叫前的空標頭檢查(#33296)。區塊重組時不再強制執行 TRUC 檢查(#33504),getblock 與 getblockheader 也不再回傳鏈頂的 target(#33446)。
Bitcoin Core
OP_RETURN 限制在 Bitcoin Core 30.0 形同取消:-datacarriersize 預設值為 100,000,單筆交易可帶多個資料輸出,想恢復舊上限可設 -datacarriersize=83。預設轉發費率降至每 vB 0.1 聰,每筆標準交易的 legacy 簽章操作上限為 2500 次,另新增 bitcoin 指令包裝現有執行檔。
Bitcoin Core
Bitcoin Core 29.1 為無條件寫入磁碟的記錄設下限速,每個來源位置每小時 1MiB(#32604);標準交易中可能被執行的 legacy 簽章操作最多 2500 次。預設轉發費率降至每 kvB 100 聰,32 位元版本則把 -maxmempool 限制在 500MB、-dbcache 限制在 1GiB。
Bitcoin Core
Bitcoin Core 28.2 有超過一半的異動都是建置工作。Guix 現在會替 macOS app bundle 公證,並為所有 macOS 與 Windows 二進位檔進行程式碼簽章(#31407);depends 也修正了 NetBSD 上 libevent(#31500)與 cmake 下 freetype(#32693)的編譯問題。
Bitcoin Core
31 位 Bitcoin Core 貢獻者聯署公開信,主張只要交易有持續的經濟需求、又能穩定進入區塊,節點軟體就不該拒絕轉發,因為使用者與礦工都能繞過這類過濾。他們強調這並非替非金融資料用途背書,選擇執行哪套軟體與政策的權利也只屬於使用者。
Bitcoin Core
持續數年不間斷的 addr 濫發,可能讓 Bitcoin Core 位址管理器的 32 位元識別碼溢位,造成節點當機;這是 v22.0 以速率限制先行削弱的攻擊所遺留的部分。29.0 改用 64 位元識別碼,終結這個評為低風險的 CVE-2024-52919。漏洞由 Eugene Siegel 發現,Martin Zumsande 完成修改。
Bitcoin Core
Bitcoin Core 29.0 拿掉 UPnP 支援,-natpmp 改用內建的 PCP 與 NAT-PMP 實作,不再依賴 libnatpmp。新增 ephemeral dust 政策;區塊權重重複保留的問題修正後多了 -blockreservedweight;節點也會向所有宣告過孤兒交易的對等節點索取缺少的父交易。26.x 及更舊版本進入 Maintenance End。
Bitcoin Core
設定 -port 後,Bitcoin Core 28.1 的預設洋蔥監聽連接埠會是該連接埠加一,不再固定為主網的 8334,同一台機器上的多個節點又能並行,啟動時不致衝突。torrc 中手動設定的 HiddenServicePort 可能需要修改。DecodeExtKey 也會清除機密資料(#31166)。
Bitcoin Core
對等節點宣告區塊後按兵不動,可能讓 Bitcoin Core 節點空等最多 10 分鐘才向別處索取,攻擊者還能反覆施展。CVE-2024-52922 評為中度風險,由 Greg Sanders 通報並修復;v25.1 與 v26.0 可立即向最多 3 個高頻寬 compact block 對等節點索取區塊,藉此緩解。
Bitcoin Core
Bitcoin Core 27.2 消除了自我連線偵測的競爭條件(#30394),FillPSBT 呼叫誤回 complete=true 的問題也已修正(#30357)。載入區塊執行緒與排程器的關閉順序有所調整(#30435),程式碼也能搭配 miniupnpc 2.2.8 與 GCC 15 建置。
Bitcoin Core
v25.0 之前的 Bitcoin Core,單一對等節點送來的變造區塊,可能清掉其他宣告同一區塊之對等節點的下載狀態,讓節點忘記還在重建中的 compact block。這個問題由 Suhas Daftuar 察覺,#27608 將每個對等節點限定於自己的狀態。CVE-2024-52921 評為中度風險。
Bitcoin Core
只要針對同一區塊重複送出 blocktxn 訊息,就能遠端讓 v25.0 之前的 Bitcoin Core 節點當機,原因是觸發了 FillBlock 只能執行一次的斷言。攻擊不需要 short-id 碰撞,放入區塊 merkle root 未涵蓋的交易即可走到同一路徑。這個高風險漏洞 CVE-2024-35202 由 Niklas Gögge 發現並修復。
Bitcoin Core
2023 年 5 月初網路活動暴增,加上間諜節點推波助瀾,排序過大的 inv-to-send 集合幾乎吃掉 P2P 執行緒所有時間,拖慢區塊與交易傳播。這個中度風險問題在 Bitcoin Core v25.0 由 #27610 修復:已離開記憶池的交易更早剔除,集合變大時也清得更快。
Bitcoin Core
Testnet4(BIP94)隨 Bitcoin Core 28.0 上路,同時帶來僅限一父一子的有限套件轉發、BIP 431 下的標準 TRUC 交易,以及新的 Pay To Anchor 輸出類型。-mempoolfullrbf 預設改為 1,27.0 已棄用的 libbitcoinconsensus 也正式移除。
Bitcoin Core
低難度區塊標頭鏈可遠端讓 v24.0.1 之前的 Bitcoin Core 節點當機,同一條特製鏈還能重複用來攻擊網路上任何節點。#25717 的修正要求節點先確認鏈上累積足夠工作量才予以儲存,防範已知攻擊也不必再依賴檢查點。嚴重程度:高。
Bitcoin Core
攻擊者在區域網路內冒充 UPnP 裝置,不斷回傳肥大的 M-SEARCH 回覆,就能讓 Bitcoin Core 節點耗盡記憶體。只有以 -miniupnp 啟動的節點會受害,因為這個函式庫預設並未啟用。這個低風險漏洞已在 v22.0 修復。
Bitcoin Core
濫發 addr 訊息可能讓 Bitcoin Core 節點當機:addrman 插入 2^32 次後,32 位元 ID 計數器溢位並觸發斷言。Eugene Siegel 於 2021 年通報這個高風險漏洞,v22.0 納入 Pieter Wuille 的修補。
Bitcoin Core
Bitcoin Core 26.2 簽署時不再假定 TapMiniscript 符合 sane 條件(#29853);getnetworkhashps 遇到無效參數會丟出錯誤(#28554),setmocktime 也有了強制上限(#29869)。建置同時支援 miniupnpc 2.2.8。
Bitcoin Core
version 訊息處理有兩個漏洞,分別是有號整數溢位與 abs64 邏輯錯誤,攻擊者可藉此扭曲受害者的調整後時間,讓對方認定新區塊時間太過超前而拒收。攻擊者必須是最先連上的 200 個對等節點之一。這個中度風險缺陷已在 Bitcoin Core 0.21.0 修復。
Bitcoin Core
IPv6 讓灌大 Bitcoin Core 無上限的封鎖清單變得很便宜,而每則 GETADDR 訊息又會針對回傳的每個位址掃描該清單,最多 2500 個。記憶體當機與 CPU 消耗這兩個問題評為高風險,皆由 #19219 修復,收錄於 0.20.1 與 0.21.0。
Bitcoin Core