用語集 / ライトニングとレイヤー2
ライトニングアドレス
- ライトニングアドレスとは?
- ライトニングアドレスはメールアドレスの形(ユーザー名@ドメイン)をしており、そのドメイン上のウェブエンドポイントに解決され、要求に応じて新しいライトニングインボイスをウォレットに渡します。
100文字のインボイスを読み上げたい人はいません。ライトニングアドレスはそれをポッドキャストで言えるものに置き換えます。それが機能するのは、アドレスが支払い要求ではなく、インボイスを発行するサーバーへのポインタにすぎないからです。仕様はLUD-16の1ページだけで、流れ全体は1回のHTTPSリクエストです。
仕組み
ライトニングアドレスは、メールアドレスの形をした文字列をURLに書き換えるルールです。
サトシ@example.comが与えられると、ウォレットはURL https://example.com/.well-known/lnurlp/satoshiを組み立ててGETリクエストを送信します。サーバーは標準のLNURL-payのJSONで応答します。内容はコールバックURL、受け付ける最小額と最大額(ミリサトシ単位)、受取人を説明するメタデータブロックです。ウォレットはその説明を表示し、利用者が金額を入力すると、その金額でコールバックを呼び出します。すると、ちょうどその金額のBOLT11インボイスが返ってきて、ウォレットがそれを検証して支払います。
ユーザー名の部分は小文字、数字、ハイフン、アンダースコア、ピリオドに限られ、user+label@domain形式のタグに対応するサービスではプラス記号を任意で付けられます。@example.comだけでも既定の識別子として認められ、予約されたユーザー名であるアンダースコアに解決されます。onionドメインは平文のHTTPを使います。TorがすでにTLSの提供する通信の安全性を確保しているからです。
仕様はこれで全部です。新しい暗号技術も、新しいメッセージ種別も、どのノードの変更もありません。ライトニングアドレスはLNURL-payの上に重ねられた命名規則であり、LNURL-pay自体は通常のインボイスの上に重ねられており、どの層も下の層を壊さずに取り除けます。
どこで見かけるか
ライトニングアドレスは、ほとんどの人が支払いを受け取る手段を公開する方法です。
カストディ型ウォレットやライトニングネイティブのアプリは登録時に1つ発行します。プロバイダーがすでにウェブサーバーとアドレスに必要なノードを運用しているからです。ポッドキャストのフィードはストリーミング支払いのためにアドレスを掲載しています。ソーシャルプロフィール、投げ銭用のページ、カンファレンスの名札がアドレスを使うのは、名刺に銀行振込の雛形ではなくメールアドレスを載せるのと同じ理由です。
自分で運用するにはドメインと、well-knownのパスに応答する小さなサービスが必要で、信頼できるホスティング先ができるまでは思ったより手間がかかります。だからこそ、流通しているライトニングアドレスの圧倒的大多数はサービスプロバイダーに属しており、自分のアドレスを何かに印刷する前に考えるべきなのはこの点です。
そこから実際上の2つの制約が生じます。第一に、ドメインを運用する人はインボイスのすべての要求を、金額と時刻を含めて見るので、背後にあるウォレットがノンカストディアルであっても、アドレスはプライバシーとの引き換えになります。第二に、アドレスはドメインが機能する間だけ機能します。プロバイダーが事業を終了したり、条件を変更したり、ドメインを失ったりすれば、アドレスを公開したすべての場所は何も指さなくなります。ドメインが自分で管理するものでない限り、アドレスは自分が所有する身元ではなく、利便性のための層として扱ってください。
ライトニングアドレスvsビットコインアドレス
ライトニングアドレスはウェブ上の検索キーであり、ビットコインアドレスはブロックチェーン上の支出条件です。オンチェーンのビットコインをサトシ@example.comに送っても何も起きません。ドメイン名へのオンチェーントランザクションというものは存在しないからです。bc1qの後に38文字が続くアドレスにライトニングを送っても、同じく何も起きません。ウォレットの「送金」欄では見た目が似ていますが、仕組みは一切共通していません。一方はHTTPSリクエストを起こし、他方はマイナーが執行するスクリプトを符号化します。ビットコインアドレスは永久に機能し、サーバーを必要としません。ライトニングアドレスは稼働中のサーバーを必要とし、そのサーバーが止まった日から機能しなくなります。