セキュリティ
セキュリティと非カストディアルモデル
このページでは、NextCryptoPay が資金に対してできること・できないこと、それが文章での約束ではなくコードでどう強制されているか、そして最悪の場合に何を失うのかを説明します。信じてもらうためではなく、確かめてもらうために書いています。
プラットフォームが技術的にできること
- あなたが提供した公開鍵から受取アドレスを導出し、決済ページに表示できます。
- 公開されたブロックチェーンデータを読み、請求が支払われたと判定できます。
- 署名付き Webhook であなたのサーバーに通知し、注文状態を自社データベースに記録できます。
- 支払いを移動・凍結・取り消し・返金することはできません。ブロックチェーン取引に署名できる鍵をひとつも保持していないからです。これはアーキテクチャ上の性質であり、守ると約束したポリシーではありません。
なぜ私たちがあなたの資金を奪えないのか — その仕組み
決済事業者が資金を動かせるのは、取引に署名できる鍵を持っている場合だけです。私たちはひとつも持っていません。ウォレット設定時にあなたが渡すのは、受取アドレスか拡張公開鍵(xpub)です。どちらも公開データです。xpub は受取アドレスを導出できますが、そこから送金するのに必要な秘密鍵を数学的に生成することはできません。当社のワーカーは読み取り専用のブロックチェーンエンドポイント(Tronscan、BscScan、mempool.space の背後にあるものと同じ公開データ)のみを呼び出し、加盟店の資金を送金する取引を組み立て・署名・ブロードキャストするコード経路はプラットフォームのどこにも存在しません。
ここに書くだけでなく、コードで強制しています
- ウォレット設定エンドポイントは、秘密鍵情報を含む拡張鍵をすべて拒否します。xprv を貼り付けても保存されず、拒否されます。
- プラットフォーム自身の手数料ウォレットにも、すべての環境で同じ規則が適用されます。閲覧専用の公開鍵ではなく秘密鍵で設定されていると、サービスは起動を拒否します。
- 本番環境では、起動時の検証がさらに、秘密鍵・ニーモニック・シードフレーズを含む環境変数が存在する場合にプロセスを中断します。
- オンチェーンのワーカーは読み取り専用のデータアダプタのみを使用します。プラットフォームには取引の署名コードもブロードキャストコードもありません。
- 自動テストが、2つの鍵入力口がいずれも秘密鍵を拒否することを検証しているため、この不変条件を後のリリースでひそかに取り除くことはできません。また、管理画面で注文を返金済みにする操作はデータベースのレコードを書き換えるだけで、コインを動かすことはなく、動かせもしません。
唯一の例外、率直に
NextCryptoPay が USDT を受け取る場所はただ1か所だけで、それは顧客の資金ではありません。プラットフォーム手数料を支払うためにあなたが入金する前払い残高です。これは前払いで受け取る当社の売上であり、あなたと顧客のあいだの決済フローとは完全に分離されています。手数料受取用ウォレットも当社インフラでは閲覧専用として設定されており、だからこそ秘密鍵を与えられるとサービスが起動を拒否します。後から見つけて「他に何を隠しているのか」と思われるより、この例外を自ら明示するほうがよいと考えています。
サーバーが侵害された場合に攻撃者が得るもの
- 攻撃者が入手し得るもの:加盟店のアカウント情報、設定済みの受取アドレスと xpub、注文のメタデータ、Webhook の URL と署名シークレット。以後の決済ページに誤った受取アドレスを表示させることも可能です。
- 攻撃者が入手できないもの:あなたの資金、および過去の支払い。加盟店ウォレットから送金できる鍵は当社システムに存在しないため、残高そのものから盗めるものはありません。
- あなたが取るべき対策:決済ページに表示された受取アドレスを、ご自身が設定したウォレットと照合すること。そして Webhook はすべて署名を検証してから処理すること。
ご自身で検証してください
設定したウォレットアドレスを、公開ブロックエクスプローラで検索してください。TRC-20 なら Tronscan、BEP-20 なら BscScan、ERC-20 なら Etherscan、Bitcoin なら mempool.space です。支払いが顧客のアドレスからあなたのアドレスへ直接届き、途中経由が一切ないことが分かります。当社が管理するアドレスがその経路に現れていれば、そこに表示されるはずです。表示されません。
裏返し — 私たちにできないこと
- 支払いの取り消しや返金はできません。オンチェーン取引は最終的なものです。返金はあなた自身が自分のウォレットから送るものであり、当社の管理画面はそれを記録するだけです。
- 誤ったアドレスに送られた資金は取り戻せません。設定したウォレットアドレスが間違っていれば、支払いはその誤ったアドレスに届き、失われます。アドレスを確認し、まず少額でテストしてください。
- あなたのウォレットを復旧させることはできません。私たちはあなたの鍵を持ったことがありません。鍵を失った場合、私たちには何もできません。サポート窓口も例外もありません。
- 資金の凍結や差押えはできません。あなた自身からの依頼でも、第三者からの要請でも同じです。そのような機能を持っていません。
監査について、そして匿名性について、正直に
NextCryptoPay は第三者によるセキュリティ監査を受けていません。受けたかのように匂わせることもしません。運営者の身元も公開していません。このサイトに会社名・登記番号・所在地がないのは、名指しできる法人が存在しないからです。実際の売上をどのサービスに通すか決める前に、この2点を検討してください。当サービスも例外ではありません。名前と証明書の代わりに私たちが差し出すのは、私たちの身元が重要である必要のない設計です。顧客の支払いを動かせる鍵を私たちは決して持たず、上記の主張はいずれも、信じるのではなく検証できる種類のものです。
セキュリティ上の問題の報告
発見された事項は [email protected] までお送りいただくか、以下の報告ポリシーをご覧ください。受領を確認し、修正の進捗をお知らせします。実際の加盟店の請求や他者の支払いを対象としたテストはご遠慮ください。