見出し画像

BTCPayServer はモナコインのサービスをどう変える? (2 of 3)

つづき。

少既存サービスの何が課題かについて改めて整理する前に、BTCPayServer が何物なのかを、誕生経緯に触れながら紹介しておきます。

...

BTCPayServer は、その名から推測できそうですが、ビットコイン支払いを管理するサーバソフトウェアです。ペイメント・プロセッサという種別になります。

日本の現金(クレジットカード)払いの場合は、ペイパルや PAY.JP 辺りが有名どころのペイメント・プロセッサです。ビットコインの場合は、日本では仮想通貨交換業の登録業者(みなし含む)である CoincheckGMO などがサービスを提供しており、リアル店舗での対面販売で(それと気づかずに)お使いになった方もいらっしゃるかもしれません。

モナコインの場合は、ウォレット統合型の Monappy を除くと Zaif Payment が事実上の唯一のサービスで、こちらはパソコンSHOPアークさんが採用なさったことを報道等でお知りになった方もいらっしゃるかもしれません。

広く世界に目を開くと、ビットコインのペイメント・プロセッサは、BitPay が老舗で長らく高いシェアを得ていました。

BitPay は使いやすい API が特長で、多くの企業で使われてきたのですが、Bitcoin の分裂に際し、core を捨てて Bitcoin cash に付くという判断が為されました。

core 側は、当然の流れとして BitPay の利用をボイコットすることになるわけですが、代わりのペイメント・プロセッサが無いと困ります。

BitPay と API を互換にしながら、オープンソースで誰でも立ち上げられるようにしたソフトェアとして BTCPayServer が誕生しました

そして、オープンソースなので、他のコインへの対応を行う気になれば、できます。なので、業者BOTがモナコインに対応しました。

ここまでが歴史というか、背景です。

...

さて、話をモナコインに戻します。

現行のモナコイン決済に関して課題を整理します。切り口は複数あるかもしれませんが、"中の人" は、下記2点が大きな課題と思います。

・秘密鍵を、自分で安全と思う場所に、置けない。
・請求の履歴を適切に管理するのが難しい。

そこで BTCPayServer です。

BTCPayServer は、登録したユーザごとに、店舗を設定し、請求時点でのコインのレートを考慮した請求書を発行し、回収のための QR コードを表示する画面を表示し、回収が成功できたかどうかまでを管理します。

これらの操作は、もちろん web コンソールから全てできます。加えて、API を使うことで、他の EC サイト用のプラグインから呼び出すこともできます。

BTCPayServer は、 大きなシェアを持っていた BitPay と互換の API を提供しているので、プラグインがオープンソースだったなら、ほぼ無変更で BitPay 用のプラグインを BTCPayServer に移植可能です。(実際、WooCommerce 用のプラグインはそのようにして移植されたようです)

もし仮にプラグインを使うことなく開発を行う場合でも、BitPay の API はよく練られているので、開発は容易です。

不用意に悪く言いたくは無いのですが、Zaif Payment の API はかなりクセがあり、またネット上に情報が殆ど無いので、導入はそれなりに大変です。 比すると BitPay (そして BTCPayServer ) のほうが圧倒的に楽です。

...

BTCPayserver はサーバ運用なので、秘密鍵の漏洩の心配があると思います。

しかし、BTCPayServer には、秘密鍵を登録する必要がありません。

このあたりの細かいことを技術的に語りだすことは止めますが、BTCPayServer には、請求書に必要な沢山のアドレスを作り出す"タネ"を登録します。

そのアドレスを作り出す"タネ"は Electrum (Mona版ありますね)や Ledger Wallet (残念ながら本稿執筆時点では Mona 版無いですね…)から取り出します。

つまり、秘密鍵は安全な場所(理想的にはコールドウォレット)に保存しておき、入金は受け付けるということができるようになります。

秘密鍵の問題が解決することで、悪いハッカーによる GOX リスクや、対面での強盗リスクは圧倒的に減ります。

とはいっても、リスクがまったくないわけではありません。BTCPayServer を攻撃されて "タネ" を書換えられると、支払いを盗まれる可能性はあります。

しかし、そこは設定画面へのログイン時に二段階認証(2FA)を設定することで回避可能です。2FA は仮想通貨交換所でも行っているセキュリティ対策で、ショップが、これを破られる運用をしているなら、何をしても無駄でしょう。

...

送金先アドレスは、請求書毎に発行されます。なので QR コードも変更されます。よって、複数の顧客からの購入でも混乱することはありません。

請求の状態は、請求毎に確認することができます。過払い時の返金等は手動になりますが、ウォレットだけで行っているよりも楽に確認できるでしょう。

...

BTCPayServer は、複数のアカウントが使うことを想定した設計になっています。それぞれのユーザが同じショップを管理することも、それぞれに別のショップを管理することも可能です。つまり、(それを行う事業者が居れば) ASP / SaaS として BTCPayServer を使うことができます。

一方、自分が提供するサービスのためだけに BTCPayServer を独自に立てることもできます。

日本の場合、海外基準に合わせるとアウトになってしまうような外角ギリギリを攻めているような絵師さんもいらっしゃいますが、その場合は独自にサーバを立ててしまえば、少なくとも決済プラットフォームから拒否されたりはしないわけです。

...

他稿で触れたように、ウォレットを用いた対面販売の場合、承認待ちがネックになります。

BTCPayServer の場合、0承認取引が可能となっていることに加え、Lightning Network による高速決済のサポートがあります。

残念ながら Monacoin の Lightning Network 対応は途上なのですが、メインネット上での送金実験が行える程度には進んでおり、2018年の秋頃には安定稼働しそうな見込みです。

...

長くなったので、日本語や Monacoin への対応について、仮想通貨交換業者が行っているような即時 fiat 転への展望、等々は稿を改めることにします。

この記事が気に入ったらサポートをしてみませんか?