眠れる巨人「BOLT 12」とは何か?(ライトニングマルシェを通じて感じたこと)
Bitcoin は、世界を変える
こんにちは!STACK SATS を運営する yutaro です。今回はじめてライトニングマルシェに参加してみて、これだけLN決済が使われていることに感動しました。
LN決済として、BTCPay ServerのPOSをBlink Walletとリンクして使っていたのですが、そのとき「BOLT 12」について学びがあったのでニュースレターで紹介させてください。
(※今回のライトニングマルシェを含む「Bitcoin Tokyo 2024」体験レポートについては、過去に書いた こちらの記事 ご覧ください)
LN決済を「自動販売機」のように使いたい
僕は今回、公式SNS担当としてBitcoin Tokyo 2024に参加し、その合間でライトニングマルシェで姉がハンドメイドで作った水引作品を販売させてもらうことになりました。
だから、当日はあまりマルシェに時間は取れないだろうなと思い、「無人販売機」形式にし、お客さんに勝手に買って勝手に持って帰ってもらうことを考えていました。
そこで上の写真の右上のように、BTCPay ServerのPOSページのQRコードで印刷し、商品と一緒に置いておいたのですが、これが完全に失敗に終わります・・。
購入してくださるビットコイナーのみなさんはこのQRコードをLN決済用のQRコードだと勘違いされ、LN WalletでそのままQRスキャンしていました。
ただPOSページを表示するだけのQRコードですから、LN WalletでQRスキャンしても当然ですがエラーが出るばかりで、購入を断念する方も多かったです・・。
どうすれば正解だったかについて考察する
この失敗を改めて思い返し、あの場でどうすれば正解だったかについて考察してみます。
いちばん簡単な解決策としては「LN決済用のQRコード」の印刷です。
<LN決済用QRコード>
しかし、これだと読み込み時の金額指定ができません。読み込んでもらえると分かるのですが、送金額は購入者が指定する必要があります。
(決済フロー:QRコード読み込み → 支払額指定 → 支払い)
一方、自動販売機って、150円のようにすでに価格が決まっていて、購入者は買いたいボタンを押して、あとは現金とかSuicaとかで支払うだけですよね。
この仕組みって素晴らしくて、販売者は売りたい値段以外で買われる心配は不要ですし、購入者にとっても値段が決められていることで瞬時に価値を判断できます。
ビットコイン風に言えば、まさに「Trustless(トラストレス)」な仕組みです。
眠れる巨人「BOLT 12」とは何か?
Bitcoin Tokyo 2024にタイから遊びに来ていたビットコイナー友達の Piriya が、姉の水引作品を購入してくれる際にこんなことを教えてくれました。
「BOLT 12」なら、金額を指定したリユースQRコードを生成できるよ!すでにLN WalletのPhoenixで実装されているから、それを印刷して貼り付けておけば良かったのに。
マジか・・BOLT 12っていう言葉は、当然なんとなくは知っていたのですが、まだ使われていなくてこれから採用されるような技術かと思っていました。
BOLT 12 でできること
まずBOLTとは「Basis of Lightning Technology」の略で、現在、僕らが使っているLN決済がBOLT 11ですから、BOLT 12は次世代のライトニング技術という感じでしょうか。
BOLT 11のインボイスが1度の支払いにのみ有効なのに対して、BOLT 12は1度インボイスを生成してしまえば安全な方法で「何度でも再利用する」ことができます。
<BOLT 12 でできること>
・リユーザブルインボイス(再利用インボイス)
・サブスクリプション(定期購読)
・リファンド(返金) 他
だから、あのときPiriyaは僕にBOLT 12について教えてくれたのか、と改めてこの技術について調べていくうちに納得しました。
この機会にさらに詳しく知るために、せっかくなのでBOLT12の公式サイトに掲載されている情報を【日本語訳】してみました。
公式サイト日本語訳
最近、よくその話題を聞くようになった「BOLT 12」ですが、皆さんに紹介する意味でも、僕自身の勉強のためにも、ここからは BOLT 12 公式サイト の内容(一部)を日本語訳しました。
BOLT 12 とは?
BOLT 12は、従来のライトニングネットワークへ提案されたアップグレードです。ユーザーにとっては、再利用可能な支払いリクエスト、受取人のプライバシーの向上、検閲耐性の向上などを可能にします。
BOLT 12の未来的なユートピアでの生活がどんな感じか、想像したことはありますか?
さあ、見てみましょう!
再利用可能な支払いリクエスト
これでチップジャー(チップ入れ)にQRコードを貼るだけで、私たちのバンドはビットコインでシームレスにチップを受け取ることができます! もう月面コロニーでのギグの後にチップを送りたいバーチャルファンごとに新しいQRコードを作成する必要もなく、BOLT 11の請求書を作る長い待ち時間のせいで75%のチップを逃すこともありません。
このシナリオでは、アリスはいつも同じ支払いインボイスがありさえすれば良いです。彼女のウォレットがオファーを作成し、それを共有トレイからプリンターに送り、印刷されたQRコードをバンドの隣に貼り付けることができます。これは、キャッシュアプリのQRコードをチップジャーに貼るようなものです。
受金者のプライバシー保護
僕は、ビットコインコアに貢献する影のスーパーコーダーとして、784のデジタルアイデンティティを分けながら匿名性を保つ方法で寄付を受け取りたいと思っていました。BOLT 12のルートブラインディング(route blinding)のおかげで、今では支払いを目立たず安全に受け取れるようになりました!
このシナリオでは、ユーザーにはより高いプライバシーが必要です。LSP(ライトニングサービスプロバイダー)がオプションサービスとして提供できるルートブラインディングを利用することで、ユーザーはノードの公開鍵を明かすことなくオファーを公開できます。理論上、ユーザーは自分の生活の異なる分野ごとに異なるオファーを作成し、これらの分野間のプライバシーと分離を維持することが可能です。
ソーシャルインテグレーション
私はNostr上で活動するコンテンツクリエイターで、VRアート作品に対してノンカストディアルな方法でZapsを受け取りたいとずっと思っていました。ビットコインウォレットの支払いコードをNostrのプロフィールに公開することで、カストディ型の仲介者を通さずに直接Zapsを受け取ることができます。ビバ、BOLT 12!
このシナリオでは、ユーザーはNostr上でノンカストディアルな方法でZapsを受け取りたいと考えています。現在のZapsの実装ではLNURLが使用されていますが、BOLT 12オファーを使うことも可能です。たとえば、BOLT 12オファーをkind: 0のメタデータノート、つまりユーザーのプロフィールに含めることができます。そこから、BOLT 12に対応するNostrクライアントは、彼女のプロフィールにあるLNURLデータの代わりにそのオファーを使って支払いを試みることができます。
自動引き出し
XNBCのSquawk Cubeでサイボーグたちがビットコインについて話しているのを聞いて、ビットコインを購入することに決めました。その後、取引所を信頼するよりも、ビットコインをセルフカストディする方が良いと学びました。そこで、取引所のアカウントを設定し、BOLT 12オファーを使ってセルフカストディウォレットに自動的にビットコインを引き出しするようにしました。
Swanのようなサービスでは、自分のウォレットに対して定期的にビットコイン残高を自動引き出しできる機能を提供しています。現在、これは静的なオンチェーンアドレスやxPubを使って実装されていますが、もし取引所がBOLT 12オファーを追加すればどうでしょうか?ユーザーは残高を自動でセルフカストディウォレットに引き出しすることができ、ライトニング上で即座に使えるようになるため、オンチェーン手数料も不要になります。
検閲耐性
独裁主義的なロボット政権下に住む活動家として、支援を受けるために、支払いサービスが私のIPアドレスをブロックしない方法が必要でした。オニオンメッセージング(onion messaging)を使うことで、IPアドレスを隠したまま、安全に寄付を受けることができます。独裁政権を打ち砕け!
HTTPに依存したビットコインの支払いスキームは、検閲される可能性があります。BOLT 12オファーの利点の一つは、ウェブサーバーやHTTPリクエストに依存しないことです。代わりに、onion messagingを利用します。さらに、オファーはBIP 353を使用することができ、これはメールアドレスのように見え、覚えやすく、共有も簡単です。
さいごに
ビットコインとかライトニング界隈にはたくさん技術があり、ついていくのがやっとです(いや、たぶんほとんどついていけていない・・笑)。
でも、ライトニングマルシェのような実践の場があれば「体験」として理解できますので、本当に良い取り組みだなと身をもって感じました。
MoE(Middle of Exchange)、交換手段としてのビットコインの価値は、使ってはじめて分かるものなのさ。
本日のニュースレターは以上です。
↓ LNでのチップはこちらから(いつもありがとう 🤙⚡️⚡️)
yutaro@walletofsatoshi.com
運営者 yutaro
– Web : https://stacksats.jp
– Nostr : primal.net/yutaro
(npub1wh69w45awqnlsxw7jt5tkymets87h6t4phplkx6ug2ht2qkssswswntjk0)
– note : note.com/yutaro21jp
– X (旧 Twitter) : twitter.com/yutaro21jp
– Email : yutaro@stacksats.jp
– Lightning address : yutaro@walletofsatoshi.com
– Donation:geyser.fund/japanese






