book-open-lines用語集

zERC20 ドキュメント全体で使用される主要用語解説

基本概念

バーンアドレス(Burn Address)

対応する秘密鍵が存在しない、一度限りの Ethereum アドレスです。バーンアドレスに送られたトークンは誰も移動できず、事実上「バーン」された状態になります。バーンアドレスは、受信者の引き出し先アドレスと secret(秘密値)から暗号学的に導出されます。

プライベート転送(Private Transfer)

送信者と受信者の紐付けをオンチェーンの観察者から隠した転送方式です。zERC20 では、バーンアドレスへのトークン送信と ZKP(Zero-Knowledge Proof)を使った引き出しによって実現されます。

Zero-Knowledge Proof(ZKP)

ある値を知っていることを、その値を明かさずに証明できる暗号技術です。zERC20 では、受信者がどのバーンアドレスから引き出しているかを秘匿したまま、引き出し権限を証明するために使われます。

テレポート(Teleport)

ZKP が検証された後、受信者にトークンをミントするオンチェーン操作です。コントラクト関数 Verifier.teleport()(バッチ)および Verifier.singleTeleport()(単体)に対応します。Teleport はプライベート転送の最終ステップで、受信者があるチェーンでバーンされた資金を受け取る権限があることを証明し、目的チェーンで同額をミントします。

引き出し(Withdrawal)

バーンアドレスから ZKP を使ってトークンを受け取るプロセスです。トークンは受信者が指定したアドレスにミントされます。

トークン用語

zERC20

プライバシー機能を持つ ERC-20 ラッパートークン(zUSDC、zETH、zBNB など)の総称です。

ラッパートークン(Wrapper Token)

別のトークンを1:1で表すトークンです。zUSDC は USDC のラッパートークンで、USDCを預け入れると同量の zUSDC を受け取れます。

原資産トークン

zERC20 ラッパートークンの裏付けとなる元のトークンです。zUSDC の原資産トークンは USDC です。

手数料と流動性

Unwrap手数料

流動性が低いチェーンで zERC20 を原資産トークンに変換(Unwrap)する際に発生する手数料です。流動性が目標値を大きく下回るほど手数料が高くなり、流動性が目標値以上の場合は手数料が発生しません。

Wrapリワード

流動性が低いチェーンで原資産トークンを zERC20 にラップ(Wrap)した際に受け取れるボーナスです。必要な場所への流動性提供を促すインセンティブで、蓄積された手数料プール(Fee Surplus)から支払われます。

流動性目標値(Target Liquidity)

各チェーンが保有すべき原資産トークンの理想的な量です。Fee Manager が全チェーンの平均流動性をもとに自動設定します。

手数料プール(Fee Surplus)

Unwrap 時に蓄積された手数料の総額で、Wrapリワードの原資となります。プールが枯渇すると、Wrapリワードは相応に減額されます。

クロスチェーンUnwrap

保有しているチェーンとは別のチェーンで zERC20 を Unwrap するプロセスです。より良い流動性と低い手数料にアクセスするために使います。zERC20 をブリッジし、目的チェーンで Unwrap した後、原資産を元のチェーンにブリッジして返送します。

インセンティブカーブ(Incentive Curve)

流動性目標値に対する現在の流動性に基づいて、手数料・リワードのレートを決定する数式です。流動性が目標値を下回るほどレートが高くなる線形密度関数を使います。

技術用語

Merkle Tree

特定のデータ(バーントランザクションなど)が大きなデータセットの一部であることを効率的に検証するためのデータ構造です。zERC20 では Poseidon Hash ベースの Merkle Tree を使っています。

Poseidon Hash

ZKP 回路内での利用に最適化されたハッシュ関数です。zERC20 の Merkle Tree で効率的な Proof 生成に使われています。

Nova

増分的に検証可能な計算のためのフォールディングスキームです。zERC20 ではバッチ引き出し(Batch Withdrawal)の Proof 生成に使っています。

Groth16

zERC20 の単体引き出しに使われる ZKP システムです。Proof サイズが小さく、高速な検証が特長です。

Hash Chain

各ハッシュが直前のハッシュを含むハッシュ列です。zERC20 では SHA-256 Hash Chain を使って、全転送の決定論的な順序を保証しています。

SDK 用語

EvmReadProvider

読み取り専用の EVM 操作(コントラクト読み取り・残高クエリ・手数料推定)のためのライブラリ非依存インターフェースです。viem の PublicClient はアダプターなしでこのインターフェースを満たします。

EvmWriteProvider

EVM トランザクションの署名・送信のためのライブラリ非依存インターフェースです。viem の WalletClient がこのインターフェースを満たします。SDK が viem、ethers.js、その他の EVM ライブラリと連携できるようにしています。

RedeemTransaction

prepareRedeemTransaction() が返す準備済みトランザクションオブジェクトです。コントラクトアドレス・ABI・関数名・エンコード済み引数を含み、submitRedeemTransaction() でオンチェーン送信できます。

インフラ用語

LayerZero

zERC20 のクロスチェーン機能を実現するクロスチェーンメッセージングプロトコルです。LayerZero は各チェーン間で Merkle Root をリレーします。

Hub

全チェーンの Merkle Root を集約してグローバルルートを構築するコントラクトです。クロスチェーン引き出しを可能にします。

Verifier

チェーンごとに設置され、ZKP を検証して引き出しを承認するコントラクトです。

Indexer

全 zERC20 転送を追跡し、Merkle Tree を管理し、Proof 生成に必要なデータを提供するオフチェーンサービスです。

ICP(♾️ Internet Computer)

zERC20 のステルスメッセージングインフラをホストするブロックチェーンプラットフォームです。ICP canister が暗号化されたバーンアドレス情報を保管します。

VetKD

Verifiable encrypted threshold key derivation(検証可能な暗号化しきい値鍵導出)の略。ICP canister が送受信者間の暗号化メッセージングを実現するために使います。

Decider

Nova バッチ Proof を Groth16 Proof にファイナライズする HTTP ワーカーサービスです。オンチェーン検証のために変換を行います。バッチ(複数イベント)の Teleport 操作で必要です。

LayerZero Scan

LayerZero が提供する、クロスチェーンメッセージのステータスを追跡するための API サービスです。SDK では layerzeroScan モジュールとしてラップされており、ブリッジ進捗やトランザクション履歴の監視に使えます。

ユーザー向け用語

Invoice

バーンアドレスを含む支払いリクエストです。受信者が Invoice を生成し、送金者に共有します。

Scan

ICP ストレージ canister からアナウンスを復号して、受信したプライベート転送を確認するプロセスです。

バッチ引き出し(Batch Withdrawal)

複数の受け取りを1回の引き出しトランザクションにまとめる機能です。オンチェーンに公開されるのは合計金額のみです。

一部引き出し(Partial Withdrawal)

受け取った全額ではなく一部のみを引き出すことです。転送金額の特定を防ぐのに役立ちます。

プライバシー用語

Sender-Recipient Unlinkability

オンチェーンの観察者が、送信者のアドレスと受信者の引き出しアドレスの関係を特定できないというプロパティです。

Amount Fingerprinting

特異または珍しい転送金額がデポジットと引き出しの紐付けに利用されるリスクです。

匿名セット(Anonymity Set)

特定のトランザクションにおける可能性のある送信者または受信者の集合です。匿名セットが大きいほど、プライバシー保護が強くなります。

最終更新