メインコンテンツまでスキップ

Integration Overview

KuraPrivacy は、ステーブルコインや暗号資産の取引や残高の秘匿化・プライバシー保護を導入したい企業向けに、ゼロ知識証明の生成、ブロックチェーンとの同期、暗号化された取引状態の管理といった複雑な処理をAPIで提供するサービスを提供しています。

このページでは、KuraPrivacy をアプリケーション / サービスに組み込む際に何が必要になるか、組み込むと何ができるかを説明します。具体的な SDK 利用手順やサンプルコードは、導入時に別途提供いたしますので、お気軽にお問い合わせください。

KuraPrivacy の統合で実現できること

Service API や SDK を用いて KuraPrivacy を組み込むことで、アプリケーションでは以下を実現することができます。

  • ユーザーごとの受け取り用アドレス(Kura address)の発行
  • プライベートな残高の表示
  • 通常のトークン残高からプライベートな残高への入金
  • プライベートな残高から別アドレスへの送金
  • プライベートな残高から通常のウォレットアドレスへの出金
  • 入出金・送金の履歴表示
  • 処理中・完了・失敗などの送金ステータスの追跡
  • パスキー、EOA、マルチシグなど複数の承認方式への対応

KuraPrivacy の組み込みは、既存のウォレット体験にプライバシー機能をアドオンするイメージです。パートナーアプリケーションはユーザー体験、認証、署名、表示を担当し、証明の生成やブロックチェーンとの同期といった複雑な処理は KuraPrivacy のサービス層が担当します。

ユーザーの署名鍵は常にパートナーアプリケーションまたはユーザーのデバイス上に留まり、KuraPrivacy に渡ることはありません。ユーザーは送金内容に対して既存のウォレット(パスキー、EOA、マルチシグなど)で署名し、その署名データのみが KuraPrivacy に送信されます。これにより、KuraPrivacy の導入によって既存の鍵管理や信頼モデルを変更する必要がありません。

送金処理の流れ

ユーザーがプライベート送金を1回行う際の流れは、シンプルに以下のステップになります。

  1. ユーザーが送金画面で、送金先と金額を入力する
  2. パートナーアプリケーションが送金準備をリクエストし、署名対象データを受け取る(POST /api/wallets/{wallet_handle}/transfer-preparations
  3. ユーザーが送金内容を確認し、既存ウォレットの鍵で署名する
  4. パートナーアプリケーションが署名済みデータを API に送信し(POST /api/wallets/{wallet_handle}/transfers/execution-requests)、KuraPrivacy のサービス層が証明の生成とブロックチェーンへの送信を非同期で処理する
  5. パートナーアプリケーションは完了まで実行状況をポーリングし、送金完了をユーザーに表示する(GET /api/execution-requests/{execution_request_id}

ブロックチェーンとの連携や証明の生成など複雑な処理はすべて KuraPrivacy のサービス層が担当するため、パートナーアプリケーションは「リクエストして状態を確認する」シンプルなフローだけを実装すれば済みます。

コンポーネント構成

KuraPrivacy アーキテクチャ図

KuraPrivacy を用いたアプリケーションは、いくつかのコンポーネントが連携して動きます。パートナーアプリケーションは主に Service API と SDK を使用することで、以下のコンポーネントの詳細を意識せずに、効率良く実装を進めることが可能です。

パートナーアプリケーション

ユーザー体験、認証、署名、残高・履歴の表示を担当するアプリケーションです。Kura Service API を通じてプライベート送金機能を利用でき、パスキー、EOA、マルチシグなど既存のウォレット構成をそのまま活かして導入できます。署名鍵は常にパートナーアプリケーションまたはユーザーのデバイス上に留まり、KuraPrivacy 側に渡す必要はありません。

Kura Contract

ブロックチェーン上で動作するスマートコントラクトです。入金・送金・出金の記録と検証を行い、同じ残高が二重に使われないことを保証します。パートナーアプリケーションが直接操作する必要はありません。

Kura Service API

パートナーアプリケーションが接続する主要な API です。アカウント登録、残高照会、送金の準備・実行、履歴取得などを HTTP API で提供します。

ZK Prover

送金内容がルールに沿っていることを数学的に証明するコンポーネントです。この処理は KuraPrivacy のサービス層が非同期で自動的に行うため、パートナーアプリケーションが実装する必要はありません。

Indexer / Sync Worker

ブロックチェーンの取引履歴を読み取り、各アカウントの残高や送受金履歴をデータベースに反映するコンポーネントです。パートナーアプリケーションが残高や履歴を表示できるのは、このコンポーネントが常に最新の状態に同期しているためです。

Broadcaster / Execution Worker

証明が完了した送金処理をブロックチェーンに送信し、完了を追跡するコンポーネントです。パートナーアプリケーションは送信後にリクエストIDで状態を確認するだけで済みます。

次に読むページ

  • Service API: HTTP API の要点をまとめた簡易リファレンス。