主にマーチャントがビットコイン払いを受け取るために使う、自前でビットコインペイメントプロバイダーができる"BTCPay Server"。この業界ではオープンソースで開発され続けている価値あるプロダクトの代表例の1つです。そのBTCPay Serverが今年一年間でさらに成長していて、様々なプロダクトのバックエンドとしての利用にも耐えるものになっているので、今年追加された機能について説明させていただきます。今年私がSpotlightに投稿した、格安VPSにBTCPay Serverをセットアップする記事はこちらからどうぞ。

”GREENFIELD API"

BTCPay ServerはもともとBitpayという仮想通貨ペイメントプロセッサーの対抗馬として誕生しました。Bitpayとの互換性を保つことでマーチャントの切り替えを容易にするため、これまでBTCPay ServerのAPIはBitpayのAPIとほぼ同じでしたが、互換性を捨てて新設したのがいわゆるGreenfield APIです。刷新されたAPIを通すとBTCPay Serverの全ての機能が利用できるため、今までは主にインボイスの発行や問い合わせに使っていたものが、ストアの作成やユーザーの作成、BTCPay Server自体の管理にも使えるようになりました。Greenfield APIを使うことで、BTCPay Serverをバックエンドとするサービスの開発が容易になりました。このようなサービスは徐々に増えるかもしれません。(ECプラットフォーム、決済機能付きSNS、ファン交流サイトなど)

今年の前半はまだ全然必要な機能が足りていませんでしたが、今ではかなり包括的にBTCPay Serverの機能をAPIから利用できます。APIのドキュメントはこちらからどうぞ。
PAYJOIN (P2EP)

PayJoin (P2EP)については過去に解説していますが、これは支払いを受け付ける際に受け手も同じトランザクションでビットコインを送ることでオンチェーンのプライバシーを向上させる方法です。今年4月から、BTCPayを使用するマーチャントは設定をオンにすれば使うことができるようになりました。メリットとしては特に客のプライバシーの強化が挙げられますが、デメリットとしては少し多めにオンチェーンの送金手数料がかかることと、ホットウォレットを使用する必要があります。

PayJoinは誰かが使っている・使っているかもしれないというだけで、ネットワーク全体におけるブロックチェーン解析の有効性を下げる技術です。ただし、現時点で使用されている割合はかなり低いと考えられます。

ちなみに同時にBTCPay内部のウォレットにコインセレクション機能も追加されました。これは送金時にどのUTXOを使用するか選択できる機能で、やはりプライバシー面などでメリットがあります。(UTXOによってその性質を知る主体が異なるため、プライバシーに敏感なユーザーは相性の悪い混ぜないように気を配る。KYCされたコインとミキシングされたコイン、グレーな使い方をされたコインとそうでないコイン、送信元不明で送られてきたコインなど)

SHOPIFY対応

10月にリリースされたバージョンで、ShopifyのチェックアウトにBTCPay Serverが利用できるようになりました。Shopifyは世界的大手ECプラットフォームです。(日本でいうBaseのような感じ)ただし、Shopify自体の規約には抵触している可能性が高いので、使用することにある程度リスクがあるかもしれません。(ノンカストディアルなので金銭面でのリスクはありませんが)

プラグイン機能

現時点でプラグイン機能の大枠が追加されただけであり、実際にプラグインがリリースされているわけではありませんが、プラグイン機能を使って第三者がBTCPay Serverに機能を追加するプラグインを作成することができます。これは結構大きな機能強化につながる可能性があり、個人的には以下のようなプラグインを作るユーザーが出てくることに期待しています:・マルチシグを用いたエスクロー
・マルチシグ全般
・サポートや配送周りのEC関連機能
・取引所との連携による自動売却機能また、BTCPay側がプラグイン機能の使用例として、BTCPay内蔵のライトニングノードを利用したカストディアルなライトニングウォレットをプラグインとして用意するようです。これはBTCPay Serverをバックエンドとするライトニングアプリ(Lapps)開発のカンブリア爆発につながる可能性を感じます。(カストディアルなものは規模が大きくなると規制リスクに晒されると考えますが、規模が小さいものはこれからもずっと存在し続けるでしょうし)

おわりに

ビットコインやライトニングでアプリ開発を考えているなら、BTCPay Serverをバックエンドに利用することを選択肢に入れると余計な作業が減って楽かもしれません。注意点として、BTCPay Serverに入るLndは本家のLndのフォークなのでちょっとした違いがあったり、利用できない機能があったりします。近く本家と同じLndを使えるようにすると誰かがGitHubで言っていた気がしますが、見つけられませんでした。