Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Fast Forward Protocol
Search
shigeyuki azuchi
February 07, 2022
Technology
160
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
SLH-DSA (SPHINCS+)
azuchi
0
19
Hyper Tree
azuchi
0
22
FORS
azuchi
0
34
クラスターmempool
azuchi
0
44
W-OTS+
azuchi
0
50
Shorのアルゴリズム
azuchi
0
72
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
58
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
71
Other Decks in Technology
See All in Technology
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
Refining Active Record
shugo
0
150
継続的なAIコスト最適化
bgpat
1
340
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
770
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
220
Getting Started with Google Antigravity
glaforge
0
300
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
150
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
940
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
8
3.1k
go-sqletch
moznion
0
140
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
How to build a perfect <img>
jonoalderson
1
6.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Producing Creativity
orderedlist
PRO
348
41k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Raft: Consensus for Rubyists
vanstee
142
7.8k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
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が増える。 • 恩恵を受けれるのは自分が最終的な受信者である場合のみ ◦ 支払いを後続のノードにさらに転送する場合は、秘密鍵がオンライン ◦ 自分が最終受信者であることがピアには分かる。