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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
10
Hyper Tree
azuchi
0
18
FORS
azuchi
0
30
クラスターmempool
azuchi
0
42
W-OTS+
azuchi
0
49
Shorのアルゴリズム
azuchi
0
71
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
55
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
69
Other Decks in Technology
See All in Technology
10分で知る最近のOmarchy
komagata
0
350
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
170
Goodbye ShellScript, Hello File-based App
shunsock
0
120
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.3k
絵ではじめるKubernetesセキュリティ
aoi1
3
630
iOSDC Japan 2026 day1 TrackC 10:50
feedtailor
1
160
人間はどの意思決定を手放せるのか
kawasima
15
7.1k
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.7k
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
150
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
330
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
930
beyond jj: config & tools ecosystem
indirect
0
500
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
720
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Music & Morning Musume
bryan
48
7.4k
KATA
mclloyd
PRO
35
15k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Game over? The fight for quality and originality in the time of robots
wayneb77
1
280
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
For a Future-Friendly Web
brad_frost
183
10k
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が増える。 • 恩恵を受けれるのは自分が最終的な受信者である場合のみ ◦ 支払いを後続のノードにさらに転送する場合は、秘密鍵がオンライン ◦ 自分が最終受信者であることがピアには分かる。