ビットコイン版デビットカード"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などは使えません。

NTAG 424 DNA

2.カードに好きなガラを印刷する

 典型的なプラカードですので、UVインクジェット印刷で好きなガラをプリントします。印刷業者に頼むこともできます。

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に登録します。

https://play.google.com/store/apps/details?id=com.lightningnfcapp&hl=en&gl=US

以上でBolt Cardを自作できました 🎉

Bolt Cardのしくみ

決済事業者の部分をBolt Card Serviceという自前サーバーでカバーできてしまう点が画期的ですね。

さて、こんなBolt Cardですが仕組みとしてはLUD-03 withdrawRequest規格にのっとったURL (LN-URL Withdraw link)がNFCに書き込まれている形になります。

お正月企画で利用したLightning GiftsなんかもこれのQRコード版を採用しています。

ビットコインをライトニングで受け取ろう!お年玉アンケート2023
新年明けましておめでとうございます。 昨年につづきまして、本年もビットコインの即時送金機能「ライトニングネットワーク」を体感しちゃえる機会を年始らしくお年玉アンケートとして提供させていただこうと思います。 昨年は歴史的な出来事に事かかない一年でしたね。色々とありすぎましたが、個人的には次の点でFTX破綻が印象的でした。 * “Not your keys, not your coins”を自分事とする人が増えた * 他の会社、機関投資家、ベンチャーキャピタルもエグい被害を被った * ステーブルではないトークンの価値・流動性に関する疑義が再燃 これらの影響は2023年、じわじわとでて…

普通のLightning決済で発行されるインボイスURLは決済の受け手が発行します。ですが、LN-URL Withdrawは逆で決済する側が発行します。Bolt Cardではこれが(ほぼ)そのままカードに記録されているということですね。

スキミングを防ぐしくみ

店舗側の店員が悪意ある人だと、カードをスキミング(カードのクローンをつくる犯罪手法)し、後から同じ決済を何度も実行しかねません。
そのため、いわゆるリプレイプロテクションをなんとかして導入する必要があります。

Bolt CardではNXP社のNTAG 424 DNAというちょっとしたセキュリティ技術を搭載したチップの機能を活用することでリプレイプロテクションを実装しています。

NTAG 424はカードをタップした回数(カウンター値)を記録する機能があります。また、秘密鍵でそのカウンター値を暗号化する機能も搭載しています。決済端末がカードから値を読み取ると、次のような文字列が得られますが、後半部分の16進数の文字列がカードIDとカウンター値とを暗号化したデータとなります。

lnurlw://card.yourdomain.com?p=A2EF40F6D46F1BB36E6EBF0114D4A464&c=F509EEA788E37E32

つまり、タップするごとに違った文字列が得られるという特徴があります。

Bolt Card Serviceはカードセットアップ時に秘密鍵をカードに埋め込み、自身でもその鍵を保管しています。そのため、暗号データを復号しカードIDとカウンター値を見ることができます。最後にタップしたときのカウンターを別途記録しておき、利用時にこれらのカウンター値を比べることで二重に利用されることを防げます。

使ってみよう?

Bolt Cardを作ったら店舗で実際に利用してみたいですよね。

ということで、対応店舗マップが公式サイトにありますので確認してましょう。

2023年3月1日現在のBolt Card対応店舗 [https://www.boltcard.org/]

わお、1件もないぞ??

まだまだ発展途上でカオスな状況ですが、このタイミングならではの貴重な体験もできるフェーズだとも言えます。

導入しちゃうぞ、というお店を運営されている方、是非お声かけください。

日本で、あるいは世界で?最初の導入店舗になりましょう!