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
Fast Forward Protocol
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
shigeyuki azuchi
February 07, 2022
Technology
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Fast Forward Protocol
GBEC解説動画の資料です↓
https://goblockchain.network/2022/02/fast-forward-protocol/
shigeyuki azuchi
February 07, 2022
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
FORS
azuchi
0
15
クラスターmempool
azuchi
0
36
W-OTS+
azuchi
0
39
Shorのアルゴリズム
azuchi
0
64
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
48
Fiat-Shamir変換と注意点
azuchi
0
240
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
60
BIP-374 離散対数の等価性証明
azuchi
0
77
BIP-353 DNS Payment Instructions
azuchi
0
96
Other Decks in Technology
See All in Technology
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
230
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
550
ラジオの科学
frievea
0
280
toio・myCobotでフィジカルAIっぽいことを行うための検討(とりあえず調査) / フィジカルAI LT(IoTLTによる開催)
you
PRO
0
300
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
120
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
370
システム思考で問題に対処する
yussak
0
210
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
140
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
8
2.2k
サイバー捜査員研修(前半)
nomizone
1
1.9k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
400
Statistics for Hackers
jakevdp
799
230k
Thoughts on Productivity
jonyablonski
76
5.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
Into the Great Unknown - MozCon
thekraken
41
2.7k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
540
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Technical Leadership for Architectural Decision Making
baasie
3
470
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
Transcript
Fast Forward Protocol
1 Fast Forward Protocol 秘密鍵をオフラインにしたままLN支払いを受けられるようにするプロトコル提案 https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-May/003038.html • オフラインにできるのは受信者の秘密鍵のみ
• 送信者の秘密鍵はオンラインである必要がある →支払いをルーティングする場合も • 秘密鍵をオフラインにできるが、受信者自身はオンラインである必要がある • 強制クローズが実行された場合は、秘密鍵をオンラインにして対応が必要 メリットを受けるのは、LN支払いを受け入れるマーチャントなど
2 現在のチャネル構成 現在のLNチャネルは、 各支払いの都度、チャネル参加者の各残高を更新した 新しいCommitment Txと署名を お互いに作成し、交換する。
署名作成のため、支払い=チャネルの更新時には 秘密鍵へのアクセスが必要になる。 Commitment Tx1 In Out to_remote (P2WPKH) Funding UTXO to_local (P2WSH) • <timelock> CSV to_local • revocation key to_remote Commitment Tx2 In Out to_remote (P2WPKH) Funding UTXO to_local (P2WSH) • <timelock> CSV to_local • revocation key to_remote Commitment Tx3 In Out to_remote Funding UTXO to_local • <timelock> CSV to_local • revocation key to_remote
3 現在のチャネル構成 • to_remote 相手の残高で、Commitment Txが承認されると すぐに利用可能。 (Anchorチャネルの場合、1承認待つ)
• to_local(自身の残高) Commitment Tx In Out to_remote Funding UTXO to_local • <timelock> CSV to_local • revocation key to_remote OP_IF <revocationpubkey> # 旧状態がブロードキャストされた場合のペナルティ用 OP_ELSE `to_self_delay` OP_CSV OP_DROP <local_delayedpubkey> OP_ENDIF OP_CHECKSIG to_local Offered/Received HTLC (P2WSH) • revocation key • <timelock> CLTV • <preimage>
4 Fast Forwardのチャネル構成 Commitment Txの各アウトプットを対称的な内容に更新し、 Remote Penalty Claim Keyという新しい鍵を導入する。
OP_IF # ペナルティ・トランザクション用 <local_revokepubkey> OP_CHECKSIGVERIFY <remote_penaltyclaimpubkey> OP_ELSE `to_self_delay` OP_CSV OP_DROP <local_delayedpubkey> OP_ENDIF OP_CHECKSIG OP_IF # ペナルティ・トランザクション用 <local_revokepubkey> OP_CHECKSIGVERIFY <remote_penaltyclaimpubkey> OP_ELSE `to_self_delay` OP_CSV OP_DROP <remote_delayedpubkey> OP_ENDIF OP_CHECKSIG to_local to_remote これまで、to_remoteは、相手がブロードキャストしたらすぐに利用可能だったが、 to_localと同様OP_CSVによるタイムロックが付与される
5 Fast Forwardのチャネル構成 Commitment Tx A In Out to_remote Funding
UTXO to_local Commitment Tx B In Out to_remote Funding UTXO to_local Fast Forward HTLC Tx A Fast Forward HTLC Tx B In Out Commitment Tx AのUTXO In Out Commitment Tx BのUTXO Aのお釣り A→BへのHTLC Aへのお釣り A→BへのHTLC アリス→ボブへの支払いが発生した場合 ボブの署名 アリスの署名 OP_IF <アリスの revokepubkey> OP_CHECKSIGVERIFY <ボブの penaltyclaimpubkey> OP_ELSE `to_self_delay` OP_CSV OP_DROP <アリスの delayedpubkey> OP_ENDIF OP_CHECKSIG OP_IF <ボブの revokepubkey> OP_CHECKSIGVERIFY <アリスの penaltyclaimpubkey> OP_ELSE `to_self_delay` OP_CSV OP_DROP <アリスの delayedpubkey> OP_ENDIF OP_CHECKSIG アリスの Penalty Claim Key による署名 アリスの Penalty Claim Key による署名 ※ HTLCはCommitment Txにアウトプットが追加されるのではなく、子Txで処理される 鍵が違うだけで、 基本的にCommitment Tx の ロックスクリプトと同じ
6 その後のHTLCの更新 Fast Forward HTLC Tx A Fast Forward HTLC
Tx B In Out Commitment Tx AのUTXO In Out Commitment Tx BのUTXO Aのお釣り A→BへのHTLC Aへのお釣り A→BへのHTLC アリスの Penalty Claim Key による署名 アリスの Penalty Claim Key による署名 Fast Forward HTLC Tx A2 Fast Forward HTLC Tx B2 In Out FF HTLC Tx AのUTXO Aのお釣り A→BへのHTLC In Out FF HTLC Tx BのUTXO Aのお釣り A→BへのHTLC アリスの Penalty Claim Key による署名 アリスの Penalty Claim Key による署名 アリス→ボブへの支払いが発生した場合 ・・・ 支払いはすべてFast Forward HTLC Tx の チェーンになる。 Txをブロードキャストするための条件は • 自分が持つRevocation Keyによる署名 • 相手が持つPenalty Claim Keyによる署名 Fast Forward HTLC Txは相手の資金をインプットとした Txであるため、Tx作成時に自身の秘密鍵による署名を 相手に渡す必要がない。 アリス(送信者)の署名はTxの作成時=状態更新時に Txと一緒に相手から送信される。 ※ 資金を受け取るだけであれば、自身の秘密鍵は不要、 つまり、オフラインのままでいい。 両者の秘密鍵を必要とするCommitment Txの更新を 発生させないのがポイント
7 Fast Forwardのデメリット • 強制クローズ 支払いの度に、HTLC Txのチェーンが増えていくため、強制クローズした場合、 オンチェーンTxの手数料は既存のプロトコルより増加する。
定期的にCommitment Txの状態を更新する必要がある。 • HTLCの支払いに対して、O(n)で保持すべきTxが増える。 • 恩恵を受けれるのは自分が最終的な受信者である場合のみ ◦ 支払いを後続のノードにさらに転送する場合は、秘密鍵がオンライン ◦ 自分が最終受信者であることがピアには分かる。