Bitcoin Core 30.3リリース
chainstateによるディスク負荷がBitcoin Core 30.3で解消された。合算バンプ手数料を取得できない場合のfeebumperクラッシュ(#34870)と、金額をブール値として計算していたコイン選択のバグ(#34888)も直っている。PSBTでは、pubnonceと部分署名のデシリアライズ時にMuSig2公開鍵を検証するようになった(#34219)。
Bitcoin Core
ビットコインのソフトウェアをつくる人々によるリリース、セキュリティ情報、プロトコルの取り組み。
121件の記事
chainstateによるディスク負荷がBitcoin Core 30.3で解消された。合算バンプ手数料を取得できない場合のfeebumperクラッシュ(#34870)と、金額をブール値として計算していたコイン選択のバグ(#34888)も直っている。PSBTでは、pubnonceと部分署名のデシリアライズ時にMuSig2公開鍵を検証するようになった(#34219)。
Bitcoin Core
-privatebroadcastのIPアドレス漏えいをBitcoin Core 31.1がふさいだ。一部の接続が、有効にしたプライバシーネットワークではなくクリアネットに出ていた。過剰なディスク負荷の原因だったchainstateの書き換えも解消し、MuSig2の鍵集約では空の公開鍵リストを拒否する(#35316)。
Bitcoin Core
v2ハンドシェイクに失敗すると、Bitcoin Core 31.0では送信者のIPアドレスが露出する場合がある。-privatebroadcastの設定時、v1での再試行がTorプロキシを通らずピアへ直接接続するためだ。悪意あるピアが意図的にハンドシェイクを閉じることが引き金になるとみられる。31.1が出るまでは、この機能を切るか、-v2transport=0を設定するか、IPv4/IPv6の発信をTor経由にすれば回避できる。
Bitcoin Core
細工した無効ブロックの検証中に解放済みメモリを読み、ノードがクラッシュする。0.14.0より後、29.0より前のBitcoin Coreにあったバグで、CVE-2024-52911の深刻度はHigh。ただし攻撃者はチップ上で有効なプルーフ・オブ・ワークを費やさなければならず、リモートコード実行の可能性は低いとされる。報告者はCory Fields氏で、修正は29.0に入っている。
Bitcoin Core
クラスターメンプールが従来の設計に取って代わった。Bitcoin Core 31.0では祖先・子孫の上限に代えて、64トランザクション・101 kBを上限とするクラスターを採用し、CPFP carveoutを廃止した。既定の-dbcacheはRAM 4096 MiB以上のマシンで1024 MiBに増える。新設の-privatebroadcastを使うと、sendrawtransactionのブロードキャストはTorかI2Pのみを通る。
Bitcoin Core
名前なしウォレットに絡む2つの障害をBitcoin Core 28.4が修正した。レガシーウォレットの移行(#34156)と、失敗時にwalletsディレクトリを削除していたcreatefromdump(#34215)だ。chainparamsからDNSシードも1つ外れた(#33723)。
Bitcoin Core
コンセンサス違反のトランザクションを送ってきたピアを、Bitcoin Core 29.3は処罰しなくなった(#33050)。検証面ではレガシー、P2SH、SegWit v0スクリプト向けに入力ごとのsighashミッドステートキャッシュを導入し(#32473)、Scriptチェックをやり直さずにウィットネス除去を検出できる(#33105)。マイナー側のaddPackageTxsでは符号なし整数オーバーフローが解消された(#33475)。
Bitcoin Core
名前なしレガシーウォレットの移行失敗がBitcoin Core 30.2でなくなった(#34156)。createfromdumpも、そうしたウォレットで失敗した際にwalletsディレクトリを削除しない(#34215)。IPCのwait呼び出し中にCtrl-Cを押すとハングする問題も解消した(#33511)。
Bitcoin Core
まれな条件下で、Bitcoin Core 30.0または30.1のwallet.dat移行に失敗するとウォレットディレクトリ内の全ファイルが削除され、資金を失う恐れがある。開発者は該当バイナリを取り下げ、30.2が出るまでGUIやRPCで移行しないよう呼びかけた。発生条件は、既定の名前なしwallet.datが移行または読み込みに失敗すること。それ以外の利用者に影響はない。
Bitcoin Core
Bitcoin Core 30.1のウォレットは、祖先を持つ未承認のTRUCコインを選択対象から外す(#33528)。IPCではオプションに-m引数が不要になり(#33229)、メッセージログのオーバーヘッドが減り(#33517)、実行中のwaitNext呼び出しをキャンセルできるようになった(#33676)。
Bitcoin Core
細工した非標準トランザクション1件ごとにBitcoin Coreノードを数秒間占有でき、送信者は切断されない。攻撃者はこれを使ってブロック伝播を遅らせることができた。深刻度LowのCVE-2025-46598はAntoine Poinsot氏が報告し、v30.0で最悪時の検証時間を短縮して緩和した。
Bitcoin Core
1GB超のブロックは32ビットのBitcoin Coreノードでサイズチェックをオーバーフローさせ、ディスク書き込み時にクラッシュを招く恐れがあった。ただし成立するのはコンパクトブロックとして届き、被害ノードが-maxmempoolを3GB超に設定して1GB分のトランザクションを抱えている場合に限られる。深刻度LowのCVE-2025-46597はPieter Wuille氏が発見し、29.1と30.0で32ビット環境の-maxmempoolに上限を設けて解消した。
Bitcoin Core
基本的な健全性チェックに落ちたブロックや、最新チェックポイントより前で分岐したブロックを、Bitcoin Coreは1件ごとにログへ記録していた。このため無効ブロックを繰り返し送ればディスクを使い切らせることができた。CVE-2025-54605(深刻度Low)はNiklas Goegge氏とEugene Siegel氏がそれぞれ独立に報告し、29.1と30.0のログレート制限で修正された。
Bitcoin Core
既定の最低手数料率がBitcoin Core 28.3で下がった。-blockmintxfeeは1 satoshi/kvB、-minrelaytxfeeと-incrementalrelayfeeは100 satoshi/kvBになる。ウォレットの手数料率は据え置きで、新しい既定値がネットワークに広まらない限り、より安いトランザクションは伝播しない可能性がある。onion経由のインバウンド接続にはホワイトリスト権限が適用されなくなった(#33395)。
Bitcoin Core
FillBlockに関するP2P修正が2件、Bitcoin Core 29.2に入った。ウィットネス改変のチェック(#32646)と、呼び出し前の空ヘッダーチェック(#33296)だ。チェーン再編成時にTRUCチェックを強制しなくなり(#33504)、getblockとgetblockheaderはチップのtargetを返さなくなった(#33446)。
Bitcoin Core
OP_RETURNの制限が事実上なくなった。Bitcoin Core 30.0では-datacarriersizeの既定値が100,000となり、1つのトランザクションに複数のデータ出力を載せられる。-datacarriersize=83を指定すれば従来の上限に戻る。既定のリレー手数料率は0.1 satoshi/vBに下がり、標準トランザクションのレガシー署名操作は2500個までに制限された。既存の実行ファイルをまとめる新コマンドbitcoinも加わった。
Bitcoin Core
ディスクへの無条件ログ出力は、Bitcoin Core 29.1からソース位置ごとに1時間1MiBまでにレート制限される(#32604)。標準トランザクションに含められる、実行される可能性のあるレガシー署名操作は最大2500個。既定のリレー手数料率は100 satoshi/kvBに下がり、32ビットビルドでは-maxmempoolが500MB、-dbcacheが1GiBを上限とする。
Bitcoin Core
変更の半分強はビルド関連だ。Bitcoin Core 28.2ではGuixがmacOSアプリバンドルの公証と、macOS・Windows全バイナリのコード署名を行うようになった(#31407)。dependsではNetBSD上のlibevent(#31500)とcmake下のfreetype(#32693)のコンパイルを修正した。
Bitcoin Core
Bitcoin Core 29.0からUPnPサポートが消えた。-natpmpはlibnatpmpに代えて内蔵のPCP・NAT-PMP実装で動く。新ポリシーのエフェメラルダストが導入され、ブロックウェイトの二重予約の修正に伴い-blockreservedweightが追加された。ノードはオーファンを通知したすべてのピアに欠けた親を要求する。26.x以前のバージョンはメンテナンス終了となる。
Bitcoin Core
-portを指定した場合、Bitcoin Core 28.1の既定のonion待ち受けポートはメインネットの8334固定ではなく、そのポートに1を足した値になる。これで複数のローカルノードを起動時に衝突させず再び並行して動かせる。torrcに手動でHiddenServicePortを書いている場合は変更が必要になることがある。DecodeExtKeyでは秘密データの消去も行う(#31166)。
Bitcoin Core