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
Trampoline Payment
Search
shigeyuki azuchi
October 17, 2023
Technology
65
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
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
ガバメントクラウドでのランサムウェア対策
techniczna
2
1k
LanceDB入門
mocobeta
4
110
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
330
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
230
PLATEAU で バーチャル花火大会
tatsuya1970
0
110
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
360
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
1.6k
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
670
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
220
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
190
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.4k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
790
Building an army of robots
kneath
306
46k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
460
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.7k
For a Future-Friendly Web
brad_frost
183
10k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
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のみのネットワークグラフを維持し ストレージコストとネットワーク帯域幅を削減