Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Extension Block
Search
shigeyuki azuchi
January 21, 2020
Technology
0
38
Extension Block
GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2020/01/extension-block/
shigeyuki azuchi
January 21, 2020
Tweet
Share
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
BIP-374 離散対数の等価性証明
azuchi
0
13
BIP-353 DNS Payment Instructions
azuchi
0
31
OP_CAT and Schnorr Trick
azuchi
0
24
Pay to Anchorと1P1Cリレー
azuchi
0
27
プロアクティブ秘密分散法
azuchi
0
42
v3トランザクションリレー
azuchi
0
41
ランポート署名
azuchi
0
82
BitVM
azuchi
0
82
Replacement Cycling Attack
azuchi
0
75
Other Decks in Technology
See All in Technology
解析の定理証明実践@Lean 4
dec9ue
0
110
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
400
VCpp Link and Library - C++ breaktime 2025 Summer
harukasao
0
220
Agentic Workflowという選択肢を考える
tkikuchi1002
1
400
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
210
本部長の代わりに提案書レビュー! KDDI営業が毎日使うAIエージェント「A-BOSS」開発秘話
minorun365
PRO
14
2.3k
Uniadex__公開版_20250617-AIxIoTビジネス共創ラボ_ツナガルチカラ_.pdf
iotcomjpadmin
0
150
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
3
400
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
2
440
rubygem開発で鍛える設計力
joker1007
1
140
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
300
AIのAIによるAIのための出力評価と改善
chocoyama
1
520
Featured
See All Featured
Balancing Empowerment & Direction
lara
1
350
GitHub's CSS Performance
jonrohan
1031
460k
Designing Experiences People Love
moore
142
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Practical Orchestrator
shlominoach
188
11k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Music & Morning Musume
bryan
46
6.6k
A designer walks into a library…
pauljervisheath
206
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
【Bitcoin】Extension Block
1. ブロックチェーンの機能追加の仕組み 2. Soft-forkでブロックサイズを増やす Auxiliary Blockの提案 3. Extension Blockの仕組み 4.
Litecoinで提案されている Extension Blockの導入 1 今日話すこと Extension Block
ブロックチェーンのコンセンサスルールに影響する変更を加える際の方法 • Soft-fork 既存のルールをより厳しくする際に使用するアップグレード方法で、 アップグレードしていない旧ノードもそのまま動作する。 ◦ ブロックサイズの縮小:32MB → 1MB
◦ OP_NOPに検証ルールを追加(OP_CLTV, OP_CSV) ◦ 新しいルールをサポートするsegwit version, programを追加 • Hard-fork(Network Upgrade) 既存のルールを易しくする際に使用するアップグレード方法で、 全ノードのアップグレードが必要。 ◦ ブロックサイズの拡大: 1MB → 2MB ◦ コンセンサスアルゴリズムの変更PoW→PoS 2 ブロックチェーンの機能追加の仕組み
3 Soft-forkでブロックサイズを拡大? 2013年にJahnson Lauが提案したSoft-forkでブロックサイズを拡大する方法。 Block Block Block Block Auxiliary Block
Auxiliary Block Auxiliary Block Auxiliary Block Block Auxiliary Block Auxiliary Blockでもメインチェーンと同様Bitcoinの送金ができる。 ① <serialized script x> OP_AUX という scriptPubkey宛にコインを送金する。 Tx ② 対応するAuxiliary BlockのコインベースTxに 同量のコインを持つUTXOが作られる。 UTXO: <serialized script xを展開したもの> コインがメインBlockからAuxiliary Blockに移動 Coinbase Tx コインがAuxiliary BlockからメインBlockに移動 ④ コインを <serialized script y> OP_AUX OP_RETURN 宛に送金する。 Tx ⑤ 対応するメインBlockで未使用のOP_AUXのUTXOを選択 し、ロックされているコインを同量、 <serialized script yを展開したもの> 宛に送金する。 ※ OP_RETURN によりAuxiliary Block 上の コインは消滅する。 ③ Auxiliary Blockの全Txのマークルルートが メインBlockのコインベースTxに記録される。
4 新旧ノードの振る舞い Block Block Block Block Auxiliary Block Auxiliary Block
Auxiliary Block Auxiliary Block Block Auxiliary Block Auxiliary Blockはどんなブロックサイズでもよく、コンセンサスルールも自由に設計できる。 ① <serialized script x> OP_AUX という scriptPubkey宛にコインを送金する。 Tx Coinbase Tx ③ コインを <serialized script y> OP_AUX OP_RETURN 宛に送金する。 Tx 新ノード 旧ノード 旧ノードから見ると OP_AUX = OP_NOPであるため、 このUTXOは誰もが使用可能なUTXOと認識する。 つまり、そのまま動作可能。 ※ 但し使おうとしても新ノードによるマイニングにより実際は使えない。 旧ノードはAuxiliary Blockについては関知しない。 新ノードは、以下の検証を行う。 • メインBlock<->Auxiliary間のコインの移動が正しく行 われているか • Auxiliary Blockのトランザクションが 新しいルールの下、有効か
5 Extension Blockの仕組み • 既存のメインBlockと1対1で対応するExtension Blockを用意する。 コインをメインBlockからExtension Blockへ移動させることで、Extension Block上では メインBlockのコンセンサスに縛られない
新しいルールの下で取引が可能になる。 ◦ Peg-in:メインBlockのコインをあるルールの下、ロックすることで メインBlockのコインをExtension Blockに移動する。 ◦ Peg-out:Extension Blockのコインをあるルールの下、 消滅させることでコインをメインBlockに戻す。 • 旧ノードはそのまま動作するため、従来ハードフォークが必要だった変更も ソフトフォークでの導入が可能になる。
6 Litecoinで提案されているExtension Block LitecoinにExtension Blockの導入を提案するLIP-0002 https://github.com/litecoin-project/lips/blob/master/lip-0002.mediawiki Block Block
Block Block Extension Block Extension Block Extension Block Extension Block Block Extension Block ① 新しいwitness program <ver> <commitment> 宛にコインを 送金してメインBlockのコインをロックする Peg-in Txを作成する。 Peg-in Tx ② 対応するEBのコインベースTxに 同量のコインを持つ UTXOが作られる。 UTXOのアンロック条件は <commitment>と対応する。 Coinbase Tx ③ コインをLitecoinのアドレスへのコミットメントの宛に 送金するPeg-out Txを作成する。 Peg-out Tx ExtAddrのscriptPubkeyは↓ ExtVer <eb_commitment> eb_commitmentは対応するEBのコミットメントで、 MimblewimbleのEBの場合は、 • EB内の全Txのトランザクションカーネル • EB内のUTXOセット のデータからコミットメントが作られる。 1つのIntegration Txにつき1つのExtAddrアウトプットが 作られ、そのブロック時点 EB側のコインの総量がロックされる。 ④ マイナーはメイン Block内のPeg-in Txを収集し、 EB内のPeg-out Txを収集し、Integration Txを 作成し、メインBlockの最後に配置する。 Integration Tx In 前のBlockのExtAddr UTXO Peg-in UTXO A Peg-in UTXO B Out ExtAddr UTXO Peg-Out UTXO Ⅰ Peg-Out UTXO Ⅱ
7 まとめ • Extension BlockはメインチェーンのBlockと1対1で対応するブロック ◦ EB側のブロックにコインを移動し、EB内では任意の コンセンサスルールを実行する拡張方法の1つ。 今までHFを必要としていた変更もSFで可能になる。 •
コインの移動の表現がサイドチェーンに似ているが、 ◦ コインの移動やEBのコンセンサスもメインチェーンの アップグレード済みフルノードにより検証される。 ◦ EB作成の手数料はメインBlockのコインとして徴収できる。 ◦ メインBlock、EBの両方がフルノードによって検証されるため、 フルノードの検証コストは上がる。 ◦ EBにはマイニング報酬はなく手数料報酬のみである。 ▪ メインBlockのTx手数料とEBのTx手数料のレートは異なるかもしれない。