SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
いまさら聞けない
SegWit と Bitcoin Unlimited について
竹井 悠人
ソフトウェア エンジニア
株式会社 bitFlyer
2017/5/16 ビットコインとか勉強会 #7
https://goo.gl/iMhtET
免責
このトークは、情報提供のみを目的として行われており、正確性・最新性についての保
障は一切ありません。内容は、会社の見解ではありません。この情報を元にして生じた
不利益について、当社およびスピーカは一切の責任を負いません。
bitFlyer 上での取引についての詳細は、当社カスタマ サポートへお問い合わせくださ
い。
自己紹介
Yuto Takei
Software Engineer
C# / OCaml 大好き
セキュリティ系のスタートアップをへて
昨年からジョイン
BTC 送金お待ちしております
Bitcoin Unlimited vs. Segwit
● スケーラビリティの問題
Bitcoin Core では、歴史的経緯により
ブロック サイズが 1MB に制限
● コミュニティの分裂
○ Segregated Witnesses (SegWit)
○ Bitcoin Unlimited (BU)
● 意見が分裂している結果、
BU によるハードフォークの危機
(2017 年 3 月下旬の状況)
Bitcoin の現状
Memory Pool のサイズ
blockchain.info より引用
https://coin.dance/poli より引用
Bitcoin のフォークとは
● ソフトフォーク : 検証規則をより厳密なものに変更することで発生する分岐
新しい検証規則に則って作成されるブロックおよびトランザクションは、古い検証規則を利用する検証ノー
ドも含めて、すべてのノードにおいて有効とみなされる。過半数の採掘者および検証ノードが新しい検証
規則を採用する前提に立つならば、恒久的な分岐を生じる可能性はほとんどなく、いずれ新しい検証規
則のブランチへと収束する (P2SH)
● ハードフォーク : 検証規則を緩和することで発生する分岐
新しい検証規則を採用しないノードは、新しい検証規則に則って作成されたブロックおよびトランザクショ
ンを無効として却下する可能性がある。これにより新しい検証規則を採用するノードと、採用しないノード
との間で、ブロックチェーンの最も長い有効な枝の判断に不一致が生じ、
恒久的な分岐を生じる可能性がある
● 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)
Segregated Witnesses (SegWit)
メリット
● 署名分離によるトランザクション展性の解決
● Lightning ネットワークのような
オフチェーン取引の導入が可能に
● 理論的なブロック サイズ上限は 4MB に
● ソフト フォークによる展開
デメリット
● ブロック サイズ増加は実質的にはわずか
(署名データにより減ってしまう )
● SegWit のトランザクションしか展性は
修正できない (SegWit 強制には依然として
ハードフォークが必要 )
● 一度有効化したらロールバック不可能
● 大幅な追加実装が必要
● ASICBOOST の人たちは採掘不可能
BU は 1MB 制限を撤廃。マイナーや検証ノードの構成設定で挙動を調整
1. 採掘時に生成するブロックの最大の大きさ(MG)
● マイナーが生成するブロックの大きさの上限
2. 過大とみなすブロックの大きさ(EB)
● マイナーや検証ノードがブロックの却下を判断する大きさ
● ブロックチェーンの短期的な分岐を生む可能性あり
3. 強制的に受理する深さ(AD)
● EB 設定値を超えるブロックでも、AD 承認数あれば強制受理
● 上述の分岐問題の解決を意図
ブロック サイズを市場原理にゆだねる。小さなブロックは検証が簡単で採掘が早い
大きなブロックは多くの取引手数料が得られる (c.f. “emerging consensus”)
Bitcoin Unlimited (BU)
Bitcoin Unlimited (BU)
メリット
● ブロック サイズ増大を迅速に見込める
● ブロック サイズが今後も調整可能
● 実装が単純ですむ
デメリット
● BU の有効化はハードフォークが必要
(もし一部のマイナーが拒否し続けたら、
チェーンが 2 つに分かれる)
● ブロック サイズが安定する保障はない
● BU の実装に 2 週連続で 2 つのバグ発覚
● 検証ノード運用のハードルが上昇、計算資
源を持つものへの一極集中が加速する
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
を採用するよう移行するはずと期待
ハードフォークに対する懸念
BU ハード フォークの懸念 - 有効化条件
● BU は有効化のトリガーを定めていない
● 主流派の意見では、75% のマイナー シグナルが出るのを待ち、
そこから 1 ヶ月後から > 1MB を超えるブロックが生成する
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”. 「ネットワークが不安定なときは、重複決済を避けるため
通常より多くの確認待ちをすべである」と言及
● 一般に、大多数のサポートを得ないハードフォークではチェーン分岐が発生
○ Bitcoin の取引台帳が 2 つ存在することになり、さらにそれらが別のルールで追記され、
別の取引が記録されていくことになる
● しかし
○ 分岐前の UTXO は、両方のチェーンともで有効とみなされる
○ 取引は両方のチェーンに伝播する
○ 古い UTXO を使った取引は、両方で移動したこととみなされる可能性あり
● どのようにして片方のチェーンだけで取引するか?
○ どのようにコインを分割するかという問題に帰着
BU ハード フォークの懸念 - チェーン並存と取引のリプレイ
参照
● “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/
まとめ
● Bitcoin Unlimited vs. Segwit
○ ブロック サイズを増加させる試みを発端とするコミュニティ分裂
○ Segregated Witness … 署名領域を隔離。ソフトフォーク展開。ブロック サイズ微増
○ Bitcoin Unlimited … マイナーに任意にサイズ選択を許可。ハード フォーク必須
● チェーンの分離
○ 採掘者のマジョリティが賛同しないかぎり、ハードフォーク後にチェーンが併存する

Mais conteúdo relacionado

Mais de Yuto Takei

51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
 

Mais de Yuto Takei (20)

51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
 
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
 
開発チームにおける多様性のススメ
開発チームにおける多様性のススメ開発チームにおける多様性のススメ
開発チームにおける多様性のススメ
 
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 ブロックチェーン神話に迫る - 本当に使える? 使えない? ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来
 
ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用
 
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
 
ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討
 
[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理
 
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
 
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
 
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
 
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
 
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
 
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
 
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
 
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
 
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
 
[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御
 

いまさら聞けない SegWit と Bitcoin Unlimited について

  • 1. いまさら聞けない SegWit と Bitcoin Unlimited について 竹井 悠人 ソフトウェア エンジニア 株式会社 bitFlyer 2017/5/16 ビットコインとか勉強会 #7 https://goo.gl/iMhtET
  • 3. 自己紹介 Yuto Takei Software Engineer C# / OCaml 大好き セキュリティ系のスタートアップをへて 昨年からジョイン BTC 送金お待ちしております
  • 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 … マイナーに任意にサイズ選択を許可。ハード フォーク必須 ● チェーンの分離 ○ 採掘者のマジョリティが賛同しないかぎり、ハードフォーク後にチェーンが併存する