ビットコイン版デビットカード"Bolt Card"が昨年登場しまして、ライトニングによる決済シーンがもうすぐそこに来たかんじがする2023年早春です。
先日、使い方の様子を撮影しましたので是非こちらの動画をご覧ください。
1本8,000sats (250円くらい?)というちょっとプレミアムなお茶をコンタクトレス決済で購入しています。
一見、銀行口座から引き落としがかかるデビットカードと同じじゃん、と思えますが全く異なる性質もあったりします。Bolt Cardの特徴はずばり、
DIY自己主権型デビットカード(DIY self-soverign debit card)
である点です。
ようはカード発行会社も、決済事業者も、カストディアルなウォレット事業者もなしにデビット決済ができてしまう、そのしくみを自作できちゃうという恐ろしくビットコインスタンダードなコンセプトな代物です。
そのため、うまく機能すれば低手数料でプライバシーにも配慮した、そしてなんといってもサクッとした体験が楽しい決済手段になり得そうです。
今回は、こんなエッジの効いたカードの作り方、裏側のしくみについて掘り下げます。
自作のやりかた
DIYをうたってますので、すべて自分でつくることができます。以下、手順です。
1.カードを手に入れる
セキュアなNFCチップ NTAG 424 DNA を搭載したカードを手にいれます。ちょっと特殊なカードですので、Amazonで買える代物じゃないです。調達頑張りましょう。NTAG213/215/216などは使えません。
2.カードに好きなガラを印刷する
典型的なプラカードですので、UVインクジェット印刷で好きなガラをプリントします。印刷業者に頼むこともできます。
3.Bolt Card Serviceを立ち上げる
GitHubからソースコードをとってきてBolt Card Serviceサーバーを立ち上げます。これはカードを管理し、LN-URL Withdrawを使った支払いの中継をするサーバーです。いわゆる決済事業者の役割を担うところですね。セットアップは30ステップくらいありますが頑張りましょう。つい最近Docker化されたようで、少し手順は楽になったかもしれません。
このBolt Card Serviceは自身のLightning Wallet (LUD-03 withdrawRequest対応のもの) と接続する必要があります。現状、Wallet of Satoshiといったモバイルウォレットは全部対応していませんので注意が必要です。基本的にはLNDといったLightning Nodeをたてる必要があります。
4.カードをBolt Card Serviceに登録する
登録専用のAndroidアプリが提供されていますので、こちらを使ってカードを初期化し、Bolt Card Serviceに登録します。
以上でBolt Cardを自作できました 🎉
Bolt Cardのしくみ
決済事業者の部分をBolt Card Serviceという自前サーバーでカバーできてしまう点が画期的ですね。
さて、こんなBolt Cardですが仕組みとしてはLUD-03 withdrawRequest規格にのっとったURL (LN-URL Withdraw link)がNFCに書き込まれている形になります。
お正月企画で利用したLightning GiftsなんかもこれのQRコード版を採用しています。
普通のLightning決済で発行されるインボイスURLは決済の受け手が発行します。ですが、LN-URL Withdrawは逆で決済する側が発行します。Bolt Cardではこれが(ほぼ)そのままカードに記録されているということですね。
スキミングを防ぐしくみ
店舗側の店員が悪意ある人だと、カードをスキミング(カードのクローンをつくる犯罪手法)し、後から同じ決済を何度も実行しかねません。
そのため、いわゆるリプレイプロテクションをなんとかして導入する必要があります。