今回の記事は、ビットコイン研究所からの寄稿記事となります。
ビットコイン研究所は、2015年から運営しているビットコインを中心とした会員制の研究所で、最新のトレンドや技術解説を中心にした記事コラムを提供しています。
今回の記事は、ビットコイン研究所内でAndGo原さんが執筆されたBolt Cardの仕組みについてです。ちなみに、このBolt Cardですが、AndGoとDH共同で現在試作しています。こちらもぜひ楽しみに待っていてください。
また、記事の最後には、ビットコイン研究所の新規有料会員が使用できるクーポンコードも特別に記載しています。興味のある方はぜひご利用ください!
Diamond Handsコミュニティは国内外の関連企業から支援してもらっています。ありがとうございます!
重要リンク集💎🙌
Diamond Hands Wiki (ライトニングやルーティングに関するリソース集)
Lost in Bitcoin(ビットコイン学習リソース集)
Bolt Cardとは
ビットコイン版デビットカード”Bolt Card"が最近登場しまして、ライトニングによる決済シーンがもうすぐそこに来た感じがする2023年早春です。
Bolt Cardがどんな使い勝手のものか体感できるよう、使い方の様子を撮影しましたので是非こちらの動画をご覧ください。
https://twitter.com/DiamondHandsLN/status/1626954342036291586?s=20
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決済で発行されるインボイスURLは決済の受け手が発行します。ですが、LN-URL Withdrawは逆で決済する側が発行します。Bolt Cardではこれが(ほぼ)そのままカードに記録されているということですね。
スキミングを防ぐしくみ
店舗側の店員が悪意ある人だと、カードをスキミング(カードのクローンをつくる犯罪手法)し、後から同じ決済を何度も実行しかねません。そのため、いわゆるリプレイプロテクションをなんとかして導入する必要があります。
Bolt CardではNXP社のNTAG 424 DNAというちょっとしたセキュリティ技術を搭載したチップの機能を活用することでリプレイプロテクションを実装しています。
NTAG 424はカードをタップした回数(カウンター値)を記録する機能があります。また、秘密鍵でそのカウンター値を暗号化する機能も搭載しています。決済端末がカードから値を読み取ると、次のような文字列が得られますが、後半部分の16進数の文字列がカードIDとカウンター値とを暗号化したデータとなります。
つまり、タップするごとに違った文字列が得られるという特徴があります。
Bolt Card Serviceはカードセットアップ時に秘密鍵をカードに埋め込み、自身でもその鍵を保管しています。そのため、暗号データを復号しカードIDとカウンター値を見ることができます。最後にタップしたときのカウンターを別途記録しておき、利用時にこれらのカウンター値を比べることで二重に利用されることを防げます。
使ってみよう?
Bolt Cardを作ったら店舗で実際に利用してみたいですよね。
ということで、対応店舗マップが公式サイトにありますので確認してましょう。
わお、1件もないぞ??
まだまだ発展途上でカオスな状況ですが、このタイミングならではの貴重な体験もできるフェーズだとも言えます。
導入しちゃうぞ、というお店を運営されている方、是非お声かけください。
日本で、あるいは世界で?最初の導入店舗になりましょう!
※ 本記事執筆時点では0件でしたが、4月16日現在日本では2件登場してました
本記事は、ビットコイン研究所に2023年3月1日に投稿されたコラムを元としています。
ビットコイン研究所: https://coinkeninfo.com
下記クーポンコードを使用することで、ビットコイン研究所の有料会員費が最大3ヶ月間50%オフになります。クーポンの適用は新規有料会員に限ります。この機会にぜひご利用ください。
クーポンコード: DHNEWS01
※既存の有料会員様や一度解約された後の再契約にはクーポン適用されませんので、ご注意ください。