Más contenido relacionado いまさら聞けない SegWit と Bitcoin Unlimited について5. ● スケーラビリティの問題
Bitcoin Core では、歴史的経緯により
ブロック サイズが 1MB に制限
● コミュニティの分裂
○ Segregated Witnesses (SegWit)
○ Bitcoin Unlimited (BU)
● 意見が分裂している結果、
BU によるハードフォークの危機
(2017 年 3 月下旬の状況)
Bitcoin の現状
Memory Pool のサイズ
blockchain.info より引用
7. Bitcoin のフォークとは
● ソフトフォーク : 検証規則をより厳密なものに変更することで発生する分岐
新しい検証規則に則って作成されるブロックおよびトランザクションは、古い検証規則を利用する検証ノー
ドも含めて、すべてのノードにおいて有効とみなされる。過半数の採掘者および検証ノードが新しい検証
規則を採用する前提に立つならば、恒久的な分岐を生じる可能性はほとんどなく、いずれ新しい検証規
則のブランチへと収束する (P2SH)
● ハードフォーク : 検証規則を緩和することで発生する分岐
新しい検証規則を採用しないノードは、新しい検証規則に則って作成されたブロックおよびトランザクショ
ンを無効として却下する可能性がある。これにより新しい検証規則を採用するノードと、採用しないノード
との間で、ブロックチェーンの最も長い有効な枝の判断に不一致が生じ、
恒久的な分岐を生じる可能性がある
8. ● Bitcoin Core チームによる提案
● 本来の目的 : Bitcoin のトランザクション展性 (署名改竄) の解決
○ TxID の計算から署名領域を削除 (空のスクリプトで置換 )
○ 独立した署名領域を作成 (P2PKH, P2SH 方式を P2WPKH, P2WSH 方式に置換)
● 署名データは、Coinbase トランザクションの Merkle 木でコミット
○ マイナーに SegWit をサポートさせるため
● 古いクライアントからは有効に見える (ソフトフォーク)
○ Coinbase は有効。空のスクリプトは無条件支払い許可に見える
● ブロック サイズ計算方法の変更 : Base size * 3 + Total size < 4MB
Base Size (署名除くサイズ), Total Size (全体サイズ)
Segregated Witnesses (SegWit)
9. Segregated Witnesses (SegWit)
メリット
● 署名分離によるトランザクション展性の解決
● Lightning ネットワークのような
オフチェーン取引の導入が可能に
● 理論的なブロック サイズ上限は 4MB に
● ソフト フォークによる展開
デメリット
● ブロック サイズ増加は実質的にはわずか
(署名データにより減ってしまう )
● SegWit のトランザクションしか展性は
修正できない (SegWit 強制には依然として
ハードフォークが必要 )
● 一度有効化したらロールバック不可能
● 大幅な追加実装が必要
● ASICBOOST の人たちは採掘不可能
10. BU は 1MB 制限を撤廃。マイナーや検証ノードの構成設定で挙動を調整
1. 採掘時に生成するブロックの最大の大きさ(MG)
● マイナーが生成するブロックの大きさの上限
2. 過大とみなすブロックの大きさ(EB)
● マイナーや検証ノードがブロックの却下を判断する大きさ
● ブロックチェーンの短期的な分岐を生む可能性あり
3. 強制的に受理する深さ(AD)
● EB 設定値を超えるブロックでも、AD 承認数あれば強制受理
● 上述の分岐問題の解決を意図
ブロック サイズを市場原理にゆだねる。小さなブロックは検証が簡単で採掘が早い
大きなブロックは多くの取引手数料が得られる (c.f. “emerging consensus”)
Bitcoin Unlimited (BU)
11. Bitcoin Unlimited (BU)
メリット
● ブロック サイズ増大を迅速に見込める
● ブロック サイズが今後も調整可能
● 実装が単純ですむ
デメリット
● BU の有効化はハードフォークが必要
(もし一部のマイナーが拒否し続けたら、
チェーンが 2 つに分かれる)
● ブロック サイズが安定する保障はない
● BU の実装に 2 週連続で 2 つのバグ発覚
● 検証ノード運用のハードルが上昇、計算資
源を持つものへの一極集中が加速する
12. UASF (User Activated Soft Fork)
マイナーによる大多数の支持を不要としたまま発生させるソフトフォークのこと
● 隔離署名 (SegWit) の規格を有効化させるための BIP 148
● BIP 9 の規定 : 最新ブロックから過去 2016 ブロックのうち 95% (1916 ブロック) 以
上にでマイナーがソフトフォークに賛同 → 発動
● BIP 148 の UASF では、2017 年 8 月 1 日から 2017 年 11 月 15 日の間、
SegWit を採用しないブロックを拒否するよう、クライアントを変更
BIP 148 を実装した検証ノードが多数を占めた場合、採掘報酬を含むブロックが多数
ユーザに拒否されないようにするため、マイナーも SegWit
を採用するよう移行するはずと期待
14. BU ハード フォークの懸念 - 有効化条件
● BU は有効化のトリガーを定めていない
● 主流派の意見では、75% のマイナー シグナルが出るのを待ち、
そこから 1 ヶ月後から > 1MB を超えるブロックが生成する
15. BU ハード フォークの懸念 - 承認時間
● PoW では、取引が確定したとみなすまで時間がかかる
現在は 6 承認 (= 取引が取り込まれ、6 ブロック後続) が業界標準
● BU では、6 より長いチェーンでも別の分岐で上書きされる可能性あり
必要承認数が事実上、不確定になる
● BU チームも “if the network is undergoing a period of block size instability,[...] it
may make sense for users to wait for additional confirmations or convergence
to avoid double spends”. 「ネットワークが不安定なときは、重複決済を避けるため
通常より多くの確認待ちをすべである」と言及
16. ● 一般に、大多数のサポートを得ないハードフォークではチェーン分岐が発生
○ Bitcoin の取引台帳が 2 つ存在することになり、さらにそれらが別のルールで追記され、
別の取引が記録されていくことになる
● しかし
○ 分岐前の UTXO は、両方のチェーンともで有効とみなされる
○ 取引は両方のチェーンに伝播する
○ 古い UTXO を使った取引は、両方で移動したこととみなされる可能性あり
● どのようにして片方のチェーンだけで取引するか?
○ どのようにコインを分割するかという問題に帰着
BU ハード フォークの懸念 - チェーン並存と取引のリプレイ
17. 参照
● “Mastering Bitcoin”, Andreas M. Antonopoulos
○ https://www.bitcoinbook.info/
● “Bitcoin and Cryptocurrency Technologies”, Arvind Narayanan, Joseph
Bonneau, Edward W. Felten, Andrew Miller, Steven Goldfeder, Jeremy Clark
○ http://bitcoinbook.cs.princeton.edu/
● Bitcoin に関するニュース等
○ https://www.reddit.com/r/Bitcoin/ (Bitcoin Core 側)
○ https://www.reddit.com/r/btc/ (Bitcoin Unlimited 側)
● Bitcoin Improvement Proposals
○ https://github.com/bitcoin/bips/
18. まとめ
● Bitcoin Unlimited vs. Segwit
○ ブロック サイズを増加させる試みを発端とするコミュニティ分裂
○ Segregated Witness … 署名領域を隔離。ソフトフォーク展開。ブロック サイズ微増
○ Bitcoin Unlimited … マイナーに任意にサイズ選択を許可。ハード フォーク必須
● チェーンの分離
○ 採掘者のマジョリティが賛同しないかぎり、ハードフォーク後にチェーンが併存する