用語集
このスタックでは二つの語彙が出会う。金融市場基盤には固有の厳密な語があり、暗号にも固有の語がある。片方に通じた読み手は、もう片方をしばしば推測で読んでいる。
金融市場基盤
- 金融市場基盤(FMI)
- 資金決済システム、証券決済システム、証券保管振替機関、清算機関、取引情報蓄積機関の総称。CPMI-IOSCO 原則が対象とする。DeFMI はこの語を意図して借りている。
- DvP
- delivery versus payment。証券と資金を同時に決済すること。証券と資金は一緒に動くか、どちらも動かない。BIS のモデル 1(gross-gross)、モデル 2(証券は gross、資金は net)、モデル 3(net-net)がある。
- PvP
- payment versus payment。二つの通貨、または二つの台帳の上の資金を同時に決済すること。状態を共有しない二つの台帳の間では、何かを受け渡す仕組みが要る。ここではそれを adaptor signature が担う。
- ヘルシュタット・リスク(Herstatt risk)
- 相手の脚を受け取る前に自分の脚を払ってしまうことで生じる決済リスク。1974 年の銀行破綻にちなむ名前。ここの PvP プロトコルでは、二つの期限の間の隙間がこのリスクにあたる。隙間の幅を決めるのは台帳の finality であり、証明の速さではない。
- ネッティング(netting)
- 多数の gross の債務を、より少ない net の債務にまとめること。ここでは net のレールが期間中は準同型に累積し、締めの時点で一度だけ、足りていることを証明する。
- 更改(novation)
- 二者間の債務を、清算機関に対する二本の債務に置き換えること。債務が commitment になっていれば、乗算二回で済み、証明は要らない。
- 清算機関(CCP)
- central counterparty。取引の相手方として間に入り、更改し、ネッティングし、証拠金を集め、決済を保証し、デフォルト・ウォーターフォールを執行する。DeCCP はこの役割を果たす分散型の状態機械。
- デフォルト・ウォーターフォール(default waterfall)
- 破綻した参加者の証拠金、その参加者の基金拠出、CCP 自身の資本、参加者が共同で積む基金が、この順で損失を吸収する取り決め。ここでは commitment 上の積をゼロに固定することで、その順序を強制する。
- 見積依頼(RFQ)
- request for quote。テイカー(価格を依頼する側)が複数のメイカー(値付けする側)に価格を求め、最良の相手と取引する方式。QOMM は RFQ の市場だが、尋ねても依頼の内容を相手に教えない。
- 連続指値板(CLOB)
- central limit order book。板に置かれた注文を、価格を優先し、同じ価格なら時間を優先して、連続的に照合する仕組み。OCLOB は注文の内容を秘匿し、価格帯ごとの合計数量だけを公開する。
- 最良執行(best execution)
- 得られる中で最良の結果を得る義務。quote proof(見積の証明)はこれを検証可能な形で述べたもので、勝者が、commitment された各社のキー(比較に使う値)の中の最小値であったことを示す。
- 振替口座簿(book-entry register)
- 振替機関と口座管理機関が保持する、証券の権利の正式な記録。日本では DeFMI はこれを写した鏡であり、正本と照合する。DeFMI 自体が振替口座簿になることはできない。
- 日中当座貸越(intraday overdraft)
- 差し入れた担保に対して与える限度で、日中に限って net のポジションが負になることを許す。ここでは限度そのものが commitment であり、ポジションと限度の和が足りていることを証明する。
- KYB / KYC
- know your business / know your customer。取引先確認 / 顧客確認。DeKYX はこれを「know your X」に一般化し、身元ではなく、scope 付きの資格(範囲を限った資格)を返す。
- finality
- 移転が取り消せなくなる時点。移転の finality と、請求権の finality は別である。ステーブルコインは finality をもって移転するが、その請求権は発行者に対するものとして残る。
暗号
- Pedersen commitment
g^v · h^r。値 v を隠し、後から v を変えられないように固定し、しかも準同型に乗算できる。だから隠した値の和を、開かずに検査できる。ここにあるすべての台帳の最小単位。- 範囲証明(range proof)
- commitment された値が [0, 2^n) の範囲にあることの証明。ここでは線形のビット分解か、Bulletproofs(サイズが対数)を使う。「残高が負にならない」を成り立たせる。
- Bulletproofs
- サイズが幅に対して対数でしか増えない範囲証明。監査済みの crate を使う。64 ビットのレールでは、決済パッケージが 3,424 B になる。
- シグマ・プロトコル(sigma protocol)
- 三往復で知識を証明する方式(開封、生成元をまたぐ等価、積)。Fiat–Shamir により、トランスクリプトのハッシュを使って非対話にする。
- 積の証明(product proof)
- 三つの commitment が c = a × b を満たすことのシグマ証明。「資金脚 = 数量 × 価格」を成り立たせる。
- asset tag
- 資産ごとに定めた生成元
A_a。残高はこの生成元の下で commitment する。移転ごとに乱数で隠した tag を公開するので、銘柄は隠れたまま、価値の保存は資産ごとに成り立つ。 - nullifier
- 秘密から導出し、使用時に公開する値。同じ note や指図を二度使えなくしつつ、どの note や指図だったかは明かさない。Zcash 流の仕組み。
- note
- 一回限りの受取単位
C = g^S · A_a^v · h^r。serial の S は受取人だけが組み立てられる。口座に代わるもので、決済時にどの handle も名指しされない。 - one-of-many(Groth–Kohlweiss)
- N 個の commitment のうち一つがゼロに開くことを、どれかは言わずに証明する方式。note の ring、資産への所属、審査証明(vetting)に使う。
- ring / 匿名集合(ring / anonymity set)
- ある使用が、本当はそのどれであってもおかしくない N 個の note。おとりが本物と見分けられないときに限り、1/N の匿名性を持つ。見分けられるかどうかは、他人の通信量に左右される。
- adaptor signature
- 事前署名の一種。秘密の値を加えたときだけ有効な署名になり、有効な署名が現れれば、逆にその秘密を復元できる。二つの台帳の間でスカラーを受け渡すのに使い、どちらの台帳にも共通の痕跡を残さない。
- FROST
- 閾値 Schnorr 署名。ここでは ristretto255 上の 3-of-7(7 者のうち 3 者で署名できる)。定足数が指図に付ける署名。
- Shamir 分散(Shamir sharing)
- 秘密を t 次多項式上の n 個の点に分けて配ること。任意の t+1 個の点から復元できる。シェアの並びは Reed–Solomon 符号語になっており、これが頑健な復号(誤ったシェアが混ざっても復元できること)を可能にする。
- MP-SPDZ
- 7 ノードの回路を動かす秘密計算フレームワーク。malicious-Shamir モードで使う。
- honest majority / dishonest majority
- 参加者の半数未満しか不正でないと仮定するか(honest majority)、しないか(dishonest majority)。honest majority は現実についてより強い仮定だが、その代わりに頑健性と、情報理論的に安全なオンライン段階が得られる。
- abort 付き安全性(security with abort)
- 説明責任の第 1 段。不正があれば検知し、プロトコルは出力を出さずに停止する。配備済みのエンジンはこの段にある。
- 公開検証可能性(public verifiability)
- 外部の者が答えの正しさを検査できること。abort の段階とは独立の性質で、quote proof が提供する。
- 一致体(matched field)
- MPC の体を、commitment 群の位数である素数に合わせた構成。こうすると監査は線形演算の再生で済む。通信量は 2.00× になる。
- VOLE-in-the-Head
- ランダムオラクルだけに依拠する commitment。耐量子だが、一回限りしか使えない。ここでは計測済みだが、主張には含めない。
- 差分プライバシー(differential privacy)
- 公開した出力が、どの一つの入力についても明かす量を、較正した雑音で抑える方式。ここでは MPC の内部で雑音を引き、(ε, δ) を明示する。
- ristretto255
- Curve25519 上に作った素数位数の群。ここにあるすべての commitment、証明、署名がこの群を使う。
このスタック
- zkFMI
- 一族全体の名前。ゼロ知識証明付きの金融市場基盤。コードでは名前空間のルートでもある。例:
org.zkfmi.oclob.legal-entity-participant。 - zkPI
- ゼロ知識証明付きの決済指図。
- DeFMI
- 分散型金融市場基盤。決済台帳と、その Avalanche VM。
- QOMM
- 依頼を見ないマーケットメイキング(query-oblivious market making)。
- OCLOB
- 注文を見ない連続指値板(oblivious continuous limit order book)。
- DeKYX
- 分散型の know your X。
- DeCCP
- 分散型の清算機関。
- Aethel
- プログラム可能な、支払ストリームの債権。
- 指図の発行元(instruction source)
- 移転を決めて zkPI を発行するもの全般。市場と業務システムの二種類がある。決済層は両者を区別しない。
- 市場(venue)
- 多数の当事者の注文や見積を照合して移転を決める、指図の発行元。QOMM と OCLOB がこれにあたる。市場に固有なのは、MPC の中での値付けまたは照合と、最良執行の証明である。
- 業務システム(application)
- 自身の業務規則で移転を決める、指図の発行元。ファンド管理者、担保エンジン、銀行の審査、Aethel。
- handle
- ある市場で参加者を指す公開の点
a·G。一つの seed から市場ごとに導出する。 - host-a / host-b / host-c
- 計測を走らせた機械のラベル。実機との対応は公開しない。