Bitcoin Core 26.2を公開
Bitcoin Core 26.2の署名処理はTapMiniscriptが健全(sane)であることを前提にしなくなった(#29853)。getnetworkhashpsは無効なパラメータでエラーを返し(#28554)、setmocktimeには上限が設けられた(#29869)。miniupnpc 2.2.8でもビルドできる。
Bitcoin Core
ビットコインのリファレンス実装。そのサイトでは、リリースの告知、セキュリティ情報、プロジェクトの声明が公開されています。
119件の記事
Bitcoin Core 26.2の署名処理はTapMiniscriptが健全(sane)であることを前提にしなくなった(#29853)。getnetworkhashpsは無効なパラメータでエラーを返し(#28554)、setmocktimeには上限が設けられた(#29869)。miniupnpc 2.2.8でもビルドできる。
Bitcoin Core
Bitcoin Core 0.10.1より前は受信メッセージが最大32 MiBに達し得たため、攻撃者は接続ごとにそれだけのRAMを確保させ、ノードをクラッシュさせる可能性があった。BitcointalkユーザーのEvil-Knievel氏が報告。#5843で上限を2 MiBに下げ、のちにSegWit向けに4 MBへ引き上げられた。2015年に予告した開示は延期され、詳細が出たのは2024年だった。
Bitcoin Core
IPv6を使えばBitcoin Coreの無制限のBANリストを安価に肥大化でき、GETADDRメッセージのたびに、返す最大2500件のアドレスごとにリストの走査が発生した。深刻度Highのメモリクラッシュとリソース枯渇はどちらも#19219で修正され、0.20.1と0.21.0に含まれる。
Bitcoin Core
versionメッセージ処理にあった2つのバグ(符号付き整数オーバーフローとabs64のロジックエラー)を突くと、被害ノードの調整時刻をずらし、新しいブロックを未来の日付すぎるとして拒否させることができた。攻撃者は最初に接続する200ピアに入る必要がある。深刻度Mediumのこの欠陥はBitcoin Core 0.21.0で修正された。
Bitcoin Core
不正なBIP72決済リンクを開くとBitcoin-Qtがクラッシュする恐れがあった。rパラメータで巨大なファイルを指定でき、バックグラウンドで静かにダウンロードが進む間、アプリがそのメモリを確保しようとするためだ。深刻度Mediumのこのバグは、BIP70サポートを削除した#17165(0.20.0に収録)とともに消えた。
Bitcoin Core
無効だが検証コストの高いオーファントランザクションを細工すると、ノードを数時間止められた。トランザクションを新たに受け入れるたびに、計算量が2乗で増えるオーファンキャッシュの探索が走るためだ。Pieter Wuille氏の#15644は、一致が見つかった時点で作業を打ち切り、新しいメッセージを処理する。深刻度Highとされたこの問題の修正は、Bitcoin Core 0.18.0で利用者に届いた。
Bitcoin Core
不正な形式のGETDATAメッセージ1通で、0.20.0より前のBitcoin Coreのnet_processingスレッドはCPU 100%で回り続け、攻撃ピア1台あたり1.5 MBのメモリが増えた。他のピアへの応答は続くため評価はLow。John Newbery氏が発見し、#18808で修正した。
Bitcoin Core
ジェネシスブロックの直上に作るヘッダーは難易度1で足り、Bitcoin Core 0.12.0から0.15.0までのチェックポイントロジックをすり抜けた。スパムを送る側はmapBlockIndexを際限なく増やせ、ノードをメモリ不足でクラッシュさせる可能性もあった。深刻度Mediumのこのバグは2017年にCory Fields氏が報告し、#11028でふさがれた。
Bitcoin Core
ブロック項目を50,000件詰め込んだINV 1通で、ノードは1件約1 kBのgetheaders応答を50,000件キューに積む。読み取りを拒むピアがいれば、その50 MBの送信バッファーは埋まったままになる。John Newbery氏の#18962は帯域節約策として提案され、INV 1通につきGETHEADERSを1回に抑えるもので、0.20.0に入った。
Bitcoin Core
GETDATAへの応答を控え、偽の通知を大量に送って50,000エントリのg_already_asked_forマップからトランザクションを追い出す。そのうえで再通知を繰り返せば、被害ノードが他のピアからそのトランザクションを要求するのを止められた。John Newbery氏が開示したバグで深刻度はMedium。Pieter Wuille氏の#19988がBitcoin Core 0.21.0で修正した。
Bitcoin Core
miniupnpcにある2つ目のバッファーオーバーフローをWladimir J. Van Der Laan氏が発見した。データが漏えいし、CVE-2015-6031と組み合わせるとリモートコード実行に至る。同氏はUbuntuのminiupnpc 1.6-preciseで実証したが、このエクスプロイトはBitcoin Coreにそのままは移植できなかった。修正はバージョン0.12(2016年2月)に入った。
Bitcoin Core
Bitcoin Core 27.1はバグ修正が中心だ。GUIでは未署名トランザクションの手数料バンプが直り、プロキシIP欄にポートを入力できなくなった。GetAddedNodeInfo()はaddnodeのCJDNSピアを検出する(#30085)。署名時のTapMiniscript処理も変わった(#29853)。
Bitcoin Core
BIP324のv2トランスポートがBitcoin Core 27.0で既定で有効になった。新しいアルゴリズムCoinGrinderは手数料率30 sat/vB以上で最も軽い入力の組み合わせを探す。コンセンサスコードはネットワーク調整時刻をやめてシステム時刻を使うため、運用者にとって時計の正確さが一段と重要になる。libbitcoinconsensusは非推奨となり、v28で削除予定。
Bitcoin Core
Bitcoin Core 25.2のノードは改変ブロックを処理しなくなる(#29412)。getrawtransactionのセグメンテーション違反(#29003)、WalletBatch::EraseRecordsのuse-after-free(#29176)、「Mask values」を選ぶとGUIが落ちる問題も修正した。
Bitcoin Core
I2PセッションでECIES-X25519とElGamalの両暗号を使うようになった(Bitcoin Core 26.1、#29200)。メンプール読み込み時には進捗もログに出る。修正点には、改変ブロックの処理拒否(#29412)や、SFFO有効時にウォレットがBnBコイン選択を使わないようにする変更(#28994)がある。
Bitcoin Core
実験的なBIP324 v2トランスポートがBitcoin Core 26.0で初登場した。既定では無効で、-v2transportで有効にする。新しいloadtxoutset RPCはassumeutxoスナップショットを読み込み、数分で使えるノードを用意できる。元のchainstateの検証はバックグラウンドで続く。submitpackageは生トランザクションをパッケージとしてメンプールに送る。
Bitcoin Core
古くなった手数料推定値をBitcoin Core 24.2は返さなくなった(#27622)。無効なbech32アドレスに対するRPCの扱いも修正された(#27727)。その他の変更はほとんどがビルドシステムとCI関連で、Xcode 15リンカーでmacOS版Qtパッケージをビルドする際の修正(#28543)もある。
Bitcoin Core
並列コンパクトブロックダウンロードがBitcoin Core 25.1に入った(#27626)。他の修正は、/deploymentinfoでのRESTクラッシュ(#27853)、リモートクライアント切断後のサーバーシャットダウン(#28551)、無効なスクリプトを拒否するようになったウォレット移行(#28125)。
Bitcoin Core
-blockfilterindex=1でBIP158コンパクトブロックフィルターを利用できる場合、ディスクリプタウォレットの再スキャンがBitcoin Core 25.0で速くなった。これらのフィルターを検索する新しいRPC scanblocksも追加。リレーポリシーは非ウィットネス65バイト以上のトランザクションを受け付ける。-blocksonly時のメンプールの最大メモリは300MBから5MBへ減る。
Bitcoin Core
P2Pまわりの3件の変更がBitcoin Core 23.2の柱だ。peers.datの破損防止(#26909)、他ピアのダウンロード状態を早々に消さない修正(#27608)、inv-to-sendキューの高速化(#27610)。残りはaarch64でclang-16によりbdbをコンパイルするなど、ビルドとCIの作業が占める。
Bitcoin Core