Bitcoin Core 0.21.1

Bitcoin Core installation binaries can be downloaded from bitcoincore.org and the source-code is available from the Bitcoin Core source repository.

0.21.1 Release Notes

Bitcoin Core バージョン 0.21.1 は以下から入手可能です。

https://bitcoincore.org/bin/bitcoin-core-0.21.1/

このマイナーリリースにはさまざまなBug Fixおよびパフォーマンス改善、 更新された翻訳が含まれます。

バグの報告にはGitHubのIssue Trackerを使用してください。

https://github.com/bitcoin/bitcoin/issues

セキュリティやアップデートの通知を受け取りたい場合は、以下に登録してください。

https://bitcoincore.org/en/list/announcements/join/

アップグレード方法

旧バージョンを起動している場合はシャットダウンしてください。 完全にシャットダウンするのを待ってから(数分かかる場合があります)、 Windowsの場合はインストーラーを実行、Macの場合は/Applications/Bitcoin-Qtを上書き、 Linuxの場合はbitcoind/bitcoin-qtを上書きしてください。

EOLに達したBitcoin Coreのバージョンから直接アップグレードすることは可能ですが、 データディレクトリを移行する必要がある場合は時間がかかる可能性があります。 Bitcoin Coreの旧ウォレットバージョンが一般的にサポートされます。

互換性

Bitcoin CoreはLinuxカーネルやmacOS 10.12以降、Windows 7以降を使用している オペレーティングシステムでサポートされ、広範囲にテストされています。 Bitcoin Coreは他のほとんどのUNIXライクなシステムでも動作するはずですが、 それらの環境では頻繁にテストされていません。 サポートされていないシステムでBitcoin Coreを使用するのはお勧めできません。

Bitcoin Core 0.20.0以降、10.12より前のmacOSはサポートされなくなりました。 さらに、macOSのダークモードが有効になっていてもBitcoin Coreの外観は変わりません。

主な変更点

Taprootのソフトフォーク

このリリースには、Schnorr署名(BIP340)およびTapscript(BIP342)のサポートも含む Taprootのソフトフォーク(BIP341)のmainnetおよびtestnetのアクティベーションパラメータが含まれています。

これらの改善が有効になると、単一の署名スクリプトやマルチシグスクリプト、 複雑なコントラクトの使用者は、すべてが同じ見た目のコミットメントを使用できるようになり、 すべてのビットコインのプライバシーおよびファンジビリティ(代替可能性)を強化します。

マルチシグの使用者は、単一署名の場合と同様の効率性、低手数料および大規模な匿名セットで、 多くのマルチシグスクリプトや複雑なコントラクトを解決することができます。 TaprootとSchnorrには、署名検証をバッチ処理する機能など、フルノードの効率化も含まれています。 これらの改良は、効率性、プライバシー、ファンジビリティをさらに向上させる可能性のある将来のアップグレードの基礎となるものです。

Taprootのアクティベーションは、(BIP341で定義された)Speedy Trialと呼ばれる BIP9 versionbitのバリエーションを使って管理されています。 Taprootのversionbitはビット2で、 ノードはTaprootの開始日である2021年4月24日を経過した最初のリターゲット期間の開始時から Taprootのサポートを通知するブロックの追跡を開始します。 2021年8月11日を経過した最初のリターゲット期間の開始時よりも前に、 リターゲット期間2,016ブロック(約2週間)の90%のブロックがTaprootのサポートを通知した場合、 ソフトフォークはロックインされ、Taprootはブロック709632から有効になります(11月上旬もしくは中旬の予定)。

Speedy TrialアクティベーションでTaprootがロックインされなかった場合は、 Speedy Trial方式が失敗した理由に対応するための変更を加えた後続のアクティベーション方式がデプロイされると予想されます。

本リリースにはTaprootアドレスへの支払い機能が含まれていますが、 そのようなアドレスへの支払いはTaprootがアクティベートされるまで安全ではありません。 また、アクティベーション後にTaprootトランザクションをリレー、マイニングする機能も含まれています。 本リリースには、この2つの基本機能を除き、誰もがtaprootを直接使用できるようなコードは含まれていません。 Bitcoin CoreウォレットにTaproot関連の機能が追加されるのは、 Taprootのアクティベーションが確実になった後のリリースになる見込みです。

すべてのユーザー、企業およびマイナーはTaprootのアクティベーションに異議がない限り、 このリリース(もしくは後続の互換性のあるリリース)にアップグレードすることが推奨されます。 Taprootがロックインされた場合、ブロック709632の前にアップグレードし、 Taprootの新しいルールを適用し、誤って確認されたトランザクションが発生する可能性を回避することを強くお勧めします。

Taprootをアクティベートしたいマイナーは、できればこのリリースを使って通知を制御する必要があります。 getblocktemplateRPCの結果は、適切なスタートになると自動的に通知を更新し、タイムアウトが発生するか、 Taprootがアクティベートされるまで通知を続けます。 あるいは、マイナーはいつでも手動でビット2の通知を開始できます。 Taprootがアクティベートされると、ブロック709632の前にノードを確実に更新する必要があり、 更新されていないノードでは無効なチェーンがマイニングされる可能性があります。 詳しくは、versionbits FAQをご覧ください。

Taprootの詳細については、以下のリソースを参照ください:

更新されたRPC

  • BIP 350が実装されたことで、 アドレスを受け取るすべてのRPCでnative witness version 1(またはそれ以上)が渡された場合の動作が変更されました。 これらはBech32ではなくBech32mエンコーディングを必要とするようになり、RPCの出力でもそのようなアドレスには Bech32mエンコーディングが使用されます。version 1のアドレスは、 それらに意味を与えるコンセンサスルールが採用されるまで (例えば、BIP 341を介して)、 mainnetでは作成しないでください。作成されると、Bech32mが使用されることになるでしょうから、 プロダクションシステムには影響ありませんが、 (signetのように)そのようなアドレスがすでに意味を持っている他のネットワークで観察される可能性があります。

0.21.1のチェンジログ

コンセンサス

  • #21377 Speedy trial support for versionbits (ajtowns)
  • #21686 Speedy trial activation parameters for Taproot (achow101)

P2Pプロトコルとネットワークコード

  • #20852 allow CSubNet of non-IP networks (vasild)
  • #21043 Avoid UBSan warning in ProcessMessage(…) (practicalswift)

ウォレット

  • #21166 Introduce DeferredSignatureChecker and have SignatureExtractorClass subclass it (achow101)
  • #21083 Avoid requesting fee rates multiple times during coin selection (achow101)

RPCとその他のAPI

  • #21201 Disallow sendtoaddress and sendmany when private keys disabled (achow101)

ビルドシステム

  • #21486 link against -lsocket if required for *ifaddrs (fanquake)
  • #20983 Fix MSVC build after gui#176 (hebasto)

TestsとQA

  • #21380 Add fuzzing harness for versionbits (ajtowns)
  • #20812 fuzz: Bump FuzzedDataProvider.h (MarcoFalke)
  • #20740 fuzz: Update FuzzedDataProvider.h from upstream (LLVM) (practicalswift)
  • #21446 Update vcpkg checkout commit (sipsorcery)
  • #21397 fuzz: Bump FuzzedDataProvider.h (MarcoFalke)
  • #21081 Fix the unreachable code at feature_taproot (brunoerg)
  • #20562 Test that a fully signed tx given to signrawtx is unchanged (achow101)
  • #21571 Make sure non-IP peers get discouraged and disconnected (vasild, MarcoFalke)
  • #21489 fuzz: cleanups for versionbits fuzzer (ajtowns)

その他

  • #20861 BIP 350: Implement Bech32m and use it for v1+ segwit addresses (sipa)

ドキュメンテーション

  • #21384 add signet to bitcoin.conf documentation (jonatack)
  • #21342 Remove outdated comment (hebasto)

クレジット

このリリースに直接貢献されたみなさん、ありがとうございます:

  • Aaron Clauson
  • Andrew Chow
  • Anthony Towns
  • Bruno Garcia
  • Fabian Jahr
  • fanquake
  • Hennadii Stepanov
  • Jon Atack
  • Luke Dashjr
  • MarcoFalke
  • Pieter Wuille
  • practicalswift
  • randymcmillan
  • Sjors Provoost
  • Vasil Dimov
  • W. J. van der Laan

Transifexでの翻訳を手伝ってくれたみなさんもありがとうございます。