11月のBCHのハードフォークに関するBitcoinUnlimitedの対応をまとめます
2018.11.13
BCHNews編集部
こんにちは、BCHNews編集部です。
以前の記事で、11月15日に行われるBitcoinCashのハードフォークについて紹介しました。記事内では、BitcoinABCのアップグレードの内容に反発したnChainがBitcoinSVを開発し、BitcoinCashが分裂する可能性があるとお伝えしています。
【過去記事】
『11月のBitcoinCashのハードフォークについて 〜 Bitcoin SV 〜』
(https://bchnews.jp/bitcoincashnews-e/2051)
『11月のBitcoinCashのハードフォークに向けて関係各組織が準備を進めています』
(https://bchnews.jp/bitcoincashnews-e/4190)
BitcoinCashの実装にはBitcoinABCとBitcoinSVだけでなく、BitcoinUnlimitedやBitcoinXTなどさまざま存在します。
その中でも、BitcoinABCに次ぐシェアを誇るBitcoinUnlimitedは、10月14日にハードフォークに関連したバージョン1.5.0.0をリリースし、さらに11月6日には1.5.0.1をリリースしました。
Bitcoin Unlimited's #BitcoinCash version 1.5.0.0 is now available. Compatible with https://t.co/WNZZWntktx spec, ergo with ABC 0.18.x for the 15 Nov 2018 general upgrade. https://t.co/fWwrSDQDYF
Compatibility with SV is pending. https://t.co/KyFpA4kVaN pic.twitter.com/vr9Xi9gXz2— BitcoinUnlimited (@BitcoinUnlimit) October 14, 2018
Bitcoin Unlimited's #BitcoinCash version 1.5.0.1 is now available. Compatible with https://t.co/WNZZWnKVS7 spec, ABC 0.18.x, plus SV 0.1.0 for the 15 Nov 2018 general upgrade. https://t.co/fWwrSE8fnf
Bitcoin SV 0.1.0 compatibility is manually selectablehttps://t.co/Yt6s419JSs pic.twitter.com/Z9EgXBHBrv— BitcoinUnlimited (@BitcoinUnlimit) November 6, 2018
そこで本記事では、10月14日と11月6日に行われた、BitcoinUnlimited(BU)のアップグレードの主な内容について紹介したいと思います。
BIP135とは
BUの二つのアップグレードは、どちらもBIP135の実装が主役となっています。
BIP135は、簡単に言うとBitcoinABCとBitcoinSVで採用される個々の機能に対してマイナーが投票できる機能です。
BIP135は、BIP9を拡張したもので、生成したブロックのバージョン領域に特定の値をセットすることで、今回争いのあるそれぞれの機能に対して投票を行うことができます。それぞれの値の定義は、config/forks.csvから参照されます。
今回のハードフォークでは、BitcoinABCとBitcoinSV間でコンセンサスがありません。そこで、BUはチェーンの分裂や集中管理を防ぐため、BIP135を実装することで、提案された変更について事前にマイナーに投票する機会を設けることにしました。
これにより、マイナーは11月15日のハードフォークに関連した機能についてそれぞれ、”有効”または”無効”のどちらかを選択することができます。支持する機能に投票することで”有効”を選択したことになり、支持しない機能については投票しないことで、”無効”を選択したことになります。
投票期間は3ヶ月で、機能が有効化されるには75%の”有効”を得る必要があります。また、投票が終わった後、実際に有効になるまでは、さらに3ヶ月の猶予期間が設けられています。つまり、ある機能が有効になるまでにハードフォークから最短で6ヶ月かかります。
ただし、BitcoinUnlimitedはBitcoinABC準拠のアップグレードをデフォルトで有効にしており、投票で機能を選択するためには、BitcoinABCのアップグレードを無効にするよう予め設定する必要があります。無効にしない場合は、11月15日のハードフォーク時点からBitcoinABCのアップグレードが有効化されます。
BIP135の投票方法
BUクライアントでの投票方法についてご紹介します。
(BUクライアントでなくても、ブロックのバージョン領域を書き換えることでBIP135投票に参加することができます)
投票は以下の手順で行います。
- デフォルトで有効になっているBitcoinABC準拠のハードフォークを無効化するため、”bitcoin.conf”に以下を追記
consensus.forkNov2018Time=0
- “~/.bitcoin”ディレクトリに、設定ファイル“config/forks.csv”を設置
- “bitcoin.conf”に投票したい機能を以下のようにカンマ区切りで列挙する
mining.vote=op_checkdatasig,block_max_size_128mb
もしくは、以下のようにコマンドを実行することで、投票の設定を行うことができます。
./bitcoin-cli set "mining.vote=block_max_size_128mb, enforce_scriptsig_push_only"
なお、
./bitcoin-cli set mining.vote=
とすることで、どの機能にも投票しないことができますが、この場合は、11月15日のBitcoinABC準拠のアップグレードが有効になるようです。
投票対象となる機能は、以下の通りです。
機能 | 設定値 | 提案しているクライアント |
---|---|---|
デフォルトのブロックの最大サイズを128MBへ引き上げ | block_max_size_128mb | Bitcoin SV |
“OP_MUL”、”OP_INVERT”、”OP_LSHIFT”、”OP_RSHIFT”の復活 | opcodes_mul_shift_invert | Bitcoin SV |
スクリプトの無制限(500制限)化 | unrestricted_script_instructions | Bitcoin SV |
“OP_CHECKDATASIG”の有効化 | op_checkdatasig | Bitcoin ABC |
トランザクションの最小サイズを100byteへ強制 | tx_min_size_100 | Bitcoin ABC |
標準的なトランザクションの順序を強制 | enforce_CTOR | Bitcoin ABC |
scriptSigにプッシュオンリーを強制 | enforce_scriptsig_push_only | Bitcoin ABC |
また、以下のような設定を行うことで、緊急的に機能を有効にすることも可能です。
consensus.enableCanonicalTxOrder=1
v1.5.0.0時点では、bitcoin.conf
ファイルへ上の一文を追記することで、ブロック内のトランザクションをトランザクションIDに従って並べ替えることを強制するCTOR(Canonical Transaction Order)機能のみが緊急時有効化可能になっています。
続くリリースで他の機能に関しても対応すると述べられていましたが、v1.5.0.1のリリースでは、これらの対応はまだされていない模様です。
参考URL:https://github.com/BitcoinUnlimited/BitcoinUnlimited/blob/dev/doc/bip135-guide.md
2つのアップブレードについて
続けざまに登場した2つのアップグレードの違いについてですが、BitcoinSVの実装が利用できるかという部分で異なります。
BUのv1.5.0.0はBitcoinABCのv0.18.xのみに対応したアップグレードでしたが、最新のv1.5.0.1ではBitcoinSVの実装も利用できるようになりました。ただし、BUのクライアントはbitcoincash.orgの内容を優先するため、BitcoinSVのv0.1.0のリリースノートで規定されている以下の変更は、デフォルトで無効になっています。
- OP_MUL、OP_INVERT、OP_LSHIFT、OP_RSHIFTのオペコードを再有効化
- スクリプトごとに使用できるオペコードの数を500まで増やす
- ブロックサイズの最大を128MBまで増やす
そのため、BitcoinSVの機能を利用したいBUユーザーは、BUのv1.5.0.1クライアントを入手し、自身でBitcoinSV版の実装を有効にする必要があります。実装を有効にするには、クライアントのbitcoin.conf
ファイルに対して、
consensus.forkNov2018Time=0
consensus.svForkNov2018Time=1
と追記することで簡単に行うことができます。
まとめ
本日は、差し迫る11月15日のハードフォークに向けてのBitcoinUnlimitedのアップグレードに関してご紹介しました。
ハードフォークまで残すところあとわずかとなっていますが、BUはハードフォークが市場への深刻な影響を及ぼすとして、この動きを緩和させようとBIP135投票を導入しました。
BIP135で行われているアクティブな投票の結果は、Coin Danceのこちらのページから確認することができます。
最新情報はこちら
BCHNewsでは公式のTwitterアカウント(@bchnews_jp)を開設しました。
更新情報を配信しておりますので、よろしければフォローしていただけると嬉しいです。
この記事のカテゴリ
この記事のタグ
BCHNews編集部
BCHNews編集部です。
日々更新される暗号通貨関連のニュースを読者の皆様にお届けします。