モバイル wallet は 常時オンラインではない(バッテリー / 通信制限 / OS バックグラウンド制限)。従来の Lightning では、受信者がオフライン中の支払いは 失敗する。 Async Payments は BOLT 12 + Trampoline + Specialized LSP を組み合わせ、受信者が 後でオンラインになるだけで支払いを受け取れる仕組み。 Phoenix が先行実装し、ecosystem-wide な標準化が進行中。
従来の Lightning は HTLC を受け取る瞬間に受信者がオンラインであることを要求する。理由:
Async Payments の本質は 「LSP が支払いを一時的に hold する」こと。受信者がオンラインになり次第、LSP が forward + settle する。
静的 invoice endpointを提供。受信者がオフラインでも sender は always pubblicに使える offer を持つ。
受信者の 常時オンライン代理人。支払いを受け取り、受信者が online になるまで hold。
LSP が受信者を「起こす」ための 非同期通知 channel(push / webhook 経由含む)。
Async Payments の中核は Trampoline node(または LSP)がオフライン受信者の代理として支払いを HTLC hold すること。 Hold とは、HTLC を fulfill せずに pending state で保持すること。受信者がオンラインになり preimage を提供したら fulfill する。
LSP は 受信者の支払いパターンをすべて観察できる。BOLT 12 + blinded path で sender からの匿名性は保たれるが、LSP-side では金額・時刻・送信者経路まで知られる。 privacy-preserving async payments は研究機会のひとつ。
| Wallet / 実装 | Async Payments | BOLT 12 | Push 通知 | 備考 |
|---|---|---|---|---|
| Phoenix (ACINQ) | ✓ Production | ✓ | FCM/APNs | 先行実装、reference |
| Breez | 部分 | 部分 | push支援 | SDK 内で実装中 |
| Mutiny | 研究中 | ✓ | — | web wallet 制約 |
| OLYMPUS / ZEUS | ✓ | ✓ | ✓ | self-hosted LSP |
| Eclair (lib) | ✓ (host) | ✓ | N/A | LSP 側で hosting |
| LDK | 議論中 | ✓ | — | API 設計中 |
| LND | 議論中 | 部分 | — | — |
Hold 中の資金 custody risk を減らす設計(split, multi-LSP, ZKP 等)。
FCM/APNs に依存 → Google/Apple 検閲・削除リスク。代替 channel 設計が必要。
LSP が支払い内容を学習しない設計(blinded ホスティング・ZKP)。研究機会。
Phoenix の de-facto から spec 標準化への移行。LSPS / BOLT 拡張の調整。