Amazon Web Services ブログ
AWS でのデジタル資産決済の処理
デジタル資産決済により、迅速かつ低コストのピアツーピア取引が可能になります。
ブロックチェーンベースの決済システムは、従来の決済方法で企業が直面する主要な課題に対処します。
これには、高い処理手数料、キャッシュフローに影響を与える決済遅延、業務に影響を及ぼす複雑な国際取引などが含まれます。
この投稿では、ブロックチェーンベースのデジタル資産決済システムがどのようにコストと遅延を削減できるかを説明します。
USDC、PYUSD、USDG などのステーブルコインを例として、AWS 上でサーバーレス決済システムを構築する方法を紹介します。
このソリューションは、従来の決済方法に代わる低コストでスケーラブル、かつ分散型の選択肢を提供します。
実装は GitHub リポジトリで公開されています。
この投稿は、デジタル資産決済ソリューションの技術的な概要を示すものであり、法的助言や規制上のガイダンスを意図したものではありません。
法的コンプライアンス、検証、確認の要件は管轄区域によって異なる場合があり、読者ご自身の責任です。
この投稿で説明されている決済ソリューションを実装または使用する前に、ご自身でデューデリジェンスを実施してください。
ブロックチェーンベースの決済のメリット
デジタル資産決済を導入する企業には、魅力的なメリットがあります。
コスト管理
- 決済処理のオーバーヘッドの削減
決済効率
- ブロックチェーンの確認後に資金にアクセスできます。正確なタイミングはネットワークによって異なります (数秒から数分)
グローバル展開
- 複数の仲介業者を介さずに国境を越えた取引を実行し、為替手数料を排除します
トランザクションの可視性
- オンチェーン検証による完全なトランザクションの透明性により、監査の効率化
デジタル資産決済は、さまざまなステークホルダーにメリットをもたらします。
- 加盟店 – 高速で低手数料の決済により、EC (イーコマース)を効率化します。
- 金融機関 – 決済時間を短縮し、国際送金や資金管理を促進します。
- 共通のメリット – 通貨交換と決済処理の手数料を最小化します。
最終的に、デジタル資産決済は、マーチャントや金融機関が技術革新を進め、コストを最小化し、新たな機会を引き出すのに役立ちます。
ソリューション概要
このソリューションにより、企業は Ethereum を含む Ethereum Virtual Machine (EVM) 互換ネットワーク全体で、デジタル資産による消費者からの支払いを、完全な自動化と安全な資金処理で受け入れることができます。
テストネットとメインネット環境の両方に対応しています。
リポジトリでは、デジタル資産支払いソリューションをデプロイして使用する手順を順を追って説明しています。
このソリューションの主な機能は以下の通りです。
デジタル資産決済ソリューションの 3 つのコアコンポーネントについて、さらに詳しく見ていきましょう。
請求書ジェネレーター
このコンポーネントを使用すると、請求書を生成し、顧客から直接支払いを受け付けることができます。
請求書ジェネレーターは以下の機能を提供します:
- 確定的な請求書生成 – 請求書ジェネレーターは、請求書とブロックチェーンアドレスの 1 対 1 のマッピングを容易にします。これにより、各支払いが対応する請求書に正しく紐付けられることが保証されます。このシステムは、アトミックカウンターを Amazon DynamoDB に保存してウォレットインデックスを維持し、高い同時実行シナリオでもスレッドセーフなアドレス生成を維持します。
- 効率的な鍵管理 – BIP32/BIP44 は、階層的決定性鍵導出関数を使用して、AWS Secrets Manager に保存された単一のプライマリシードから多数の鍵パスを生成し、複数のアカウントとアドレスの構造化された管理を可能にします。
- UI ですぐに使える出力 – 請求書ジェネレーターは、請求書の入金アドレスと Data URL 形式の Base64 エンコードされた QR コードの両方を返します。これは HTML の
タグに直接埋め込むことができます。 - セキュリティとプライバシーの強化 – 各顧客は一意の 1 回限りの支払いアドレスを受け取ります。これにより、アドレスの再利用を防ぎ、パブリックブロックチェーン上でユーザーのプライバシーを保護することができます。
- 簡素化された会計処理 – 合理化された追跡により、会計と監査が容易になります。
定期支払いのシナリオでは、安定した顧客識別子から支払いアドレスを導出するようにソリューションを拡張できます。
これにより、各顧客に対して一貫したウォレットアドレスが作成され、定期支払いが合理化され、顧客の許可リスト登録プロセスが簡素化されます。
支払いの自動検出
「The Watcher」は、自動的な更新情報とイベント駆動型通知による支払い状況の監視を可能にします。
自動支払い検出コンポーネントは、以下の機能を提供します。
- 最適化されたデータベースクエリ – DynamoDB グローバルセカンダリインデックス (
status-index
) を使用して、pending
状態の請求書のみをクエリします。これにより、請求書の総量が増加してもクエリのパフォーマンスが維持され、DynamoDB の読み取り消費量が大幅に削減されます。 - リアルタイム残高検証 – ETH および ERC-20 トークンの残高を請求書の金額と照合して検証します。
- 自動ステータス更新 – 十分な支払いが検出されると、請求書を自動的に
paid
としてマークします。(デフォルトでは、このソリューションはファイナリティやリオーグを考慮しません。より強力な保証が必要な場合は、Watcher のeth_getBalance
にfinalized
ブロックタグを渡すことができます。) - 即時通知 – 支払い確認時に Amazon SNS を通じて加盟店への通知をトリガーします。
資金照合
請求書の支払いを受け取った後、資金は安全な管理のために指定された財務ウォレット (できれば高度にセキュアなコールドウォレット) に自動的に移動されます。
これにより、数分以内にオフラインで支払いが安全に処理され、加盟店が選択したウォレットへの資金集約のための監査可能なメカニズムがサポートされます。
ファンド照合プロセスは、以下の機能を提供します。
- DynamoDB Streams によるトリガー – フィルタリングされたストリームトリガーを通じて確認済みの支払いを検出します (ステータスが
paid
)。ネットワークの混雑や一時的なブロックチェーンの問題に対処するための組み込みメカニズムを備えています。 - ガスの最適化 – コスト効率の高いトランザクションのために、ネットワークのガス価格を動的に計算します。
- ガス補充メカニズム – 専用のホットウォレット「ガスタンク」が、ネットワークのネイティブトークン (例: ETH) の準備金を保持します。これは、ERC-20 インボイスを補充するためだけに使用され、最小限のガス料金で コールドストレージの金庫に集約できるようにします。
- 安全な転送 – 秘密鍵はメモリ内で決定論的に導出され、保存されません。これらは個々のインボイスからの転送を実行するために使用されます。これは Lambda 内で行われ、AWS はオペレーターによるアクセスはありません。
- ステータスの更新 – 正常に完了すると、インボイスのステータスを
swept
に更新します。
次の図は、ソリューションのアーキテクチャを示しています。
このアーキテクチャは、サーバーレスなデジタル資産決済処理の PoC ( Proof of Concept )を目的としており、本番環境で使用できる状態ではありません。
セキュリティ、信頼性、コンプライアンス、監査可能性に関する本番環境の基準を満たすには、追加の機能強化が必要です。
以下のフローの各ステップの番号は、Ethereum ネットワーク上でのステーブルコイン決済を示しており、上記のアーキテクチャ図の番号に対応しています。
- 加盟店は、Amazon API Gateway が提供する
/create-invoice
REST API へのリクエストを通じて、ステーブルコインのインボイスを作成します。これは API キーを使用して保護されています。 - AWS Lambda 関数である Invoice Generator がトリガーされ、AWS Secrets Manager からニーモニックシードフレーズを取得します。シードフレーズは、インボイスに対応するキーペアを作成 (および復元) するために必要です。
- Invoice Generator は Amazon DynamoDB のアトミックカウンターをインクリメントします。アトミックカウンターの値はインデックスを表します。これはシードフレーズと共に使用され、特定の支払いに対する階層的決定性 (HD) ウォレットアドレスを決定論的に導出します。
- Invoice Generator Lambda 関数は新しいインボイスを作成し、
status: pending
として DynamoDB に保存します。データは AWS Key Management Service (AWS KMS) を使用して保管時に自動的に暗号化されます。 - 前のステップで生成された QR コードには、送金先アドレス、通貨、金額がエンコードされており、加盟店に返されます。加盟店は QR コードを顧客と共有します。顧客は、入金アドレスに適切な金額の資金を送信することで、ステーブルコインの支払いを行います。
- Amazon EventBridge スケジュールを通じて、Watcher という Lambda 関数が毎分トリガーされます。Watcher は DynamoDB から保留中のインボイスを取得し、提供された RPC エンドポイントを通じて行われた支払いを確認します。支払いが到着した場合、インボイスを
paid
に更新します。 - Watcher Lambda 関数は、Amazon Simple Notification Service (Amazon SNS) を使用して、加盟店に支払い確認を送信します。
CryptoInvoices
データベースで支払いが検出されると (ステータスがpaid
に遷移すると)、Amazon DynamoDB Streams を使用してイベントが発行されます。これにより Lambda Sweeper 関数がトリガーされます。- Sweeper 関数は資金の集約トランザクションに必要なガスを計算し、これが ERC20 インボイスであるため Eth をリクエストします。
- 十分な Eth が利用可能になると、Sweeper 関数はインボイスに関連付けられたトークンをオフラインの保管用ウォレットに送信します。Sweeper 関数は、HD ウォレットのシードフレーズをリクエストし、トランザクションに署名するための秘密鍵を導出することでこれを行います。その後、インボイスは
CryptoInvoices
データベースでswept
としてマークされます。資金の集約プロセス中にエラーが発生した場合、失敗がログに記録され、最大 3 回の再試行が行われます。 - 加盟店は、API Gateway を使用して公開された REST エンドポイントを通じてインボイスを管理できます (インボイスの現在のステータスを表示したり、保留中のインボイスをキャンセルしたりできます)。
支払い、支払い監視、資金の回収フローの詳細な図解については、GitHub リポジトリを参照してください。
まとめ
このサーバーレスソリューションは、AWS 上でデジタル資産決済を処理するための安全で効率的、かつコスト効率の高いシステムを提供します。
AWS のサービスとブロックチェーン技術を活用することで、組織は決済処理コストを削減し、資金へのより迅速なアクセスを実現し、キャッシュフローを向上させ、グローバルに事業を展開できます。
本記事は、2025 年 10 月 2 日に公開された Processing digital asset payments on AWS を翻訳したものです。翻訳は Blockchain Prototyping Engineer の 深津颯騎 が担当しました。
GitHub で完全なコードを確認し、AWS 上で安全なサーバーレスデジタル資産決済ソリューションの構築を始めましょう。