LSATが実現する究極のペイウォール
3月30日のLightning Labsのブログ投稿以降、Lightning Service Authentication Tokens (LSAT)が話題になっています。ブログ投稿自体は俯瞰的な位置づけですが、それでもある程度の前提知識がないとわからないので、LSATが何か、どういう仕組みか、どういう活用方法があるかについて解説させていただきます。
HTTPステータスコード「402 PAYMENT REQUIRED」
HTTPステータスコードとは、クライアント(ブラウザなど)がHTTPリクエストを送ったときにサーバーから返ってくる返答の種類を規定した3ケタの数字です。おそらく皆さんも「404 Not Found」や「502 Bad Gateway」は見たことがあると思います。
HTTP1.0が登場した1996年にステータスコードが規定されましたが、このときすでに402 Payment Requiredが予約されていました。しかし今に至るまで、「Payment Required」という語句以外は将来的に使用するために予約されているだけで何も定められていません。リソースを表示するのに支払いが必要というコードですが、1996年当時から現在に至るまで、広く普及したオープンな電子決済手段がなかったからと考えられています。
今回のLSATは、思想的にはLightningとMacaroonを使ってHTTP 402を使ったシームレスなオンライン支払いを実装したいという側面があります。
MacaroonとはGoogleが開発を主導している認証・権限管理スキームで、ブラウザでよく使われるCookieや、様々なAPIの利用に必要なAPIキーに似ています。
Cookieをサーバーに送り、サーバーの情報と照らし合わせてログイン状態を確認するように、Macaroonもサーバーに送ることでアクセス権を確認できます。ただし、あくまでアクセス権はMacaroon自体に規定してあり、そのMacaroonに規定してある内容と、正規のものであることはサーバーが暗号学的に検証できます。アカウントとの紐付けは必要ありません。
また、固有の特徴として、Macaroonはサーバー側が生成時にMacaroon自体に制限を付加したり、ユーザーがさらなる制限を加えてから別のユーザーに移譲することもできます。
MacaroonはLndで使われていますが、まだ一般的には使われていないので日本語情報を見つけるのが大変です…。
LSATとは
一言で言えば、LSATとはライトニング払いで「トークン(Macaroon)」を入手して、それを使って有料コンテンツにアクセスするための枠組みです。技術的にはHTTP + Macaroon + Lightningと表現されています。
アクセス権限がない(未課金)ユーザーが有料コンテンツにアクセスしようとすると、HTTP 402ステータスコードとともに「プレイメージが欠けているMacaroon」とLNインボイスが送られてきます。そのLNインボイスを支払い、受け取ったプレイメージをMacaroonに追加し、リクエストヘッダーに含めて再びアクセスすると、サービス側はMacaroonを検証してアクセス権限があると認めれば有料コンテンツを正しく表示します。以後、そのMacaroonに規定されたアクセス権が持続する限りはその有料コンテンツにアクセスできます。
サーバー、ブラウザやウォレットなどが対応してしまえばすべて自動化できる(ユーザーが行うのは支払いの確認のクリックだけになる)ので、非常にシームレスな支払いフローが実現します。ブラウザ拡張ウォレットのJouleでは既に使えるようです。 デモ① デモ② (※BTCテストネットのLNノードが必要なので動作確認できていません)
ここまではわかりやすいのでウェブサイトを例に挙げていますが、有料APIなども当然LSATを活用して提供できます。むしろこっちが本命かもしれません。
どういう可能性が開けるか
LSATそのものが「アクセス権限」を定義したものなので、サブスクリプションや会員権のあるサービスと相性がいいです。例えばオンライン新聞の購読なら1ヶ月の料金をLN払いすると1ヶ月間有効なLSATが得られ、それを使って記事を読むことができます。チャットアプリなどが実装すれば、チャットルームに入るのに有効なLSATが必要なオンラインサロンなども同様に実現できるでしょう。
また、APIに関しては作成も利用もシンプルになります。ブラウザから料金プランの選択やクレジットカード決済を行わずにコマンドラインから購読できるので、上位プランへのアップグレードなども自動化しやすいです。(実装も利用も)
さらに、どのようなサービスでも、単純にアクセス権限の販売であり、Macaroonとサーバーに保存された情報を紐付ける必要がない場合、ユーザーにアカウントを作らせる必要がなくなります。プライバシーやセキュリティ面ではメリットと考えられます。
おわりに
HTTP 402ステータスコードとMacaroon、LNの活用により決済や購読の実装と実行が大変シンプルになり、開発者にとっても利用者にとっても大きなメリットがあるLightning Service Authentication Token (LSAT)について解説しました。
クレジットカード決済などよりも遥かにシームレスなオンライン決済として、ついにHTTP 402を普及させることができれば…と夢が広がる話でした。
実際に主流になり、HTTP 402のデファクトスタンダードになることができるかは別として、アクセス権のトークン化という意味でも興味深い試みだと思います。
もっとMacaroonに詳しくなりたい…
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション