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
Trampoline Payment
Search
shigeyuki azuchi
October 17, 2023
Technology
74
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Trampoline Payment
GBECの解説動画の資料です。
https://goblockchain.network/2023/10/trampoline-payment/
shigeyuki azuchi
October 17, 2023
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
SLH-DSA (SPHINCS+)
azuchi
0
16
Hyper Tree
azuchi
0
19
FORS
azuchi
0
31
クラスターmempool
azuchi
0
43
W-OTS+
azuchi
0
50
Shorのアルゴリズム
azuchi
0
71
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
56
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
69
Other Decks in Technology
See All in Technology
猫でもわかるKiro Web
kentapapa
1
160
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.5k
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
460
自主式軟體工廠
philipz
0
120
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
160
10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた
judau
1
200
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
590
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
270
[2026 Oracle Technical Deep Dive] AI時代のデータベース基盤をどう選ぶ? Exadata Database Serviceの選択肢と使い分け (2026年9月17日開催)
oracle4engineer
PRO
0
190
顧客の成果創出とプロダクトの成長を 両立するためのFDE
sansantech
PRO
0
630
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
140
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
leveragestech
PRO
0
140
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
520
It's Worth the Effort
3n
188
29k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
900
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
560
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
290
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Transcript
Trampoline Payment
LNの支払いでは、受信者から Invoiceを受け取った送信者が、受信者までの支払いの経路を決定する ソース・ルーティング という仕組みを採用している。 1 LNのルーティング 送信者 受信者
ホップ1 ホップ2 ホップ3 Invoice Onion Payload 1 • short_channel_id • amt_to_forward • cltv_value Onion Payload 2 • short_channel_id • amt_to_forward • cltv_value Onion Payload 3 • short_channel_id • amt_to_forward • cltv_value Onion Payload 4 • amt_to_forward • cltv_value • payment_secret • total_msat 経路上の各ノードの Onion Payloadを作成 • ランダムなセッション鍵を生成 • 各ホップのノード公開鍵とのECDHで共有シークレット/セッション鍵を導出 • 各ホップの共有シークレットを使って Onion Payloadを暗号化 • 各Onionをレイヤー化し OnionPacketを構築
2 チャネルグラフの構築 Lightning Node Lightning Node Lightning Node Lightning Node
channel Node Channel Node Lightning Node DNS Server 返ってきたノード情報を元に、 ネットワーク内のノードに接続 ネットワークに参加すると、リモートピアから、 チャネルとノードに関する通知を受け取ることができる。 • node_announcement ノードに関する情報を公表 公開鍵、接続情報(IPアドレス、ポート) サポートする機能など • channel_annoucement 新しいチャネルの情報を公表 • chanel_update 各方向毎のチャネルの情報を公表 ◦ 手数料 ◦ タイムロックの差分 ◦ HTLCの最低金額 Lightning Node Channel Graph LNノードはこのチャネルグラフを 最新に保ちながら、支払いを ルーティング可能な経路を探索する
3 経路探索 ネットワークにゴシップされるのはチャネルのキャパシティ(総量)のみ チャネルの参加者のどちらにどれだけの残高があるかは不明 ノードは、支払い額以上のキャパシティを持つ経路をピックアックし、 • 手数料(固定、比例) •
タイムロック時間 • これまでの支払いの試行の成功確率 の重みを持つ有向グラフ(フローネットワーク)から、 最適な経路を選択する。 ダイクストラ(Dijkstra)法など、最短経路問題のアルゴリズムを適用。 ネットワーク内のチャネル情報を最新に保ち、 経路計算をする必要があり、(ストレージ、計算コスト的に) 常時稼働していないスマートフォンなどのデバイスには不向き
4 Trampoline Payment スマートフォンなど制限のあるデバイス向けに、経路探索をアウトソースする提案:
• Trampoline Routing: https://github.com/lightning/bolts/pull/829/ • Trampoline onion format: https://github.com/lightning/bolts/pull/836/ Lightning Node Trampoline Node Light Client Lightning Node Lightning Node Lightning Node 軽量デバイスは、近隣の Trampoline Nodeまでの経路計算して支払いを送信 ※ ネットワーク全体のViewを持つ必要はない Trampoline Nodeは送信者に代わって、 受信者までの以降のルートを計算し、支払いを転送する。 ネットワーク・トポロジーの全体像を保持するノード。
5 Trampoline Paymentの流れ Lightning Node L3 Trampoline Node T3 Light
Client Lightning Node L5 Lightning Node L6 Lightning Node L4 Trampoline Node T1 Trampoline Node T2 Trampoline Node T4 Lightning Node L2 Lightning Node L1 Invoice Trampoline Hint • T1 • T2 • T3 ① 受信者は近隣のTrampoline Node情報を Trampoline Hintとして記載したインボイスを送信 (受信者が非公開チャネルの場合に利用) ② 支払人は、支払いに使用するTrampoline Nodeを選択し (T4, T3)、Trampoline Packetを作成する(後述) ③ 支払人は、最初のTrampoline Nodeまでの経路を選択し、 Onion Packetを作成し(後述)支払いを転送する ④ Trampoline Nodeは、 Trampoline Packetを解釈し、 次のTrampoline Nodeまでの経路を計算し、 経路に沿ってOnion Packetを作成し、支払いを転送する ⑤ 受信したOnion Packet内の Trampoline Packet から Trampoline Paymentを認識
6 Trampoline Payload Lightning Node L3 Trampoline Node T3 Light
Client Lightning Node L6 Lightning Node L4 Trampoline Node T4 Lightning Node L2 Lightning Node L1 Onion Payload for L1 • short_channel_id • amt_to_forward • cltv_value Onion Payload for T4 • amt_to_forward • cltv_value • payment_secret • total_amount • Trampoline Onion Trampoline Payload T4 • amt_to_forward • cltv_value • outgoing_node_id Trampoline Payload T3 • amt_to_forward • cltv_value • outgoing_node_id Trampoline Payload L6 • amt_to_forward • cltv_value • total_amount • payment_secret Onion Payload for T3 • amt_to_forward • cltv_value • payment_secret • total_amount • Trampoline Onion Trampoline Payload T3 • amt_to_forward • cltv_value • outgoing_node_id Trampoline Payload L6 • amt_to_forward • cltv_value • total_amount • payment_secret Onion Payload for L6 • amt_to_forward • cltv_value • payment_secret • total_amount • Trampoline Onion Trampoline Payload L6 • amt_to_forward • cltv_value • total_amount • payment_secret 送信者が作成する Onion Payload … … Trampoline Node T4 が作成 Trampoline Node T3 が作成 Trampoline Routingの場合も通常のOnion Routingと同様のプライバシーがある
7 Gossip Protocolに期待される変更 ※ 支払人は、少なくとも近隣のTrampoline Nodeまでの経路は計算する必要がある Light Client Lightning
Node Lightning Node channel_update channel_update Filter Filter • Nホップより遠いノードの更新情報のリレーの破棄を依頼 • 最大Nホップまでのノードのアップデート情報を照会 近隣のピアとTrampoline Nodeのみのネットワークグラフを維持し ストレージコストとネットワーク帯域幅を削減