zkFMI
English

計測値

掲載する数値にはすべて、artifacts/ 配下の artifact(計測結果のファイル)と、それを書き出した Rust バイナリがある。同梱していないもの(MP-SPDZ、2 台目のホスト、市場のフィード)が計測に要る場合、バイナリはそう告げて失敗する。既定値で代用はしない。ホストは名前ではなくラベルで示す。何かを比べる前に、まず較正値を比べること。

較正

ホストスカラー乗算40 ビット範囲証明用途
host-c38.4 ± 4.1 µs20.88 msDeFMI の表の大半、線形バックエンド、審査証明
host-a25.8 µsBulletproof バックエンド、ring、PvP、単一チェーン内での連結不能性、VOLEitH

同じ機械が、別の時刻には 1.5 倍遅かったこともある。ホストをまたいだ比には、ホストの差が混ざる。採用の根拠に使う前に、両方の arm(比較する構成)を一つのホストで再実行すること。

決済

残高ビット幅に対する決済コスト 0 10 20 30 40 50 0 10 20 30 40 50 60 70 残高のビット幅 DvP 1 件あたり ms 線形バックエンド、決済(host-c): 残高のビット幅 8, 8.5 線形バックエンド、決済(host-c): 残高のビット幅 16, 14.8 線形バックエンド、決済(host-c): 残高のビット幅 24, 21.2 線形バックエンド、決済(host-c): 残高のビット幅 32, 27.6 線形バックエンド、決済(host-c): 残高のビット幅 40, 34 線形バックエンド、決済(host-c): 残高のビット幅 48, 40.6 Bulletproof バックエンド、決済(host-a): 残高のビット幅 8, 2.09 Bulletproof バックエンド、決済(host-a): 残高のビット幅 16, 2.78 Bulletproof バックエンド、決済(host-a): 残高のビット幅 32, 4.26 Bulletproof バックエンド、決済(host-a): 残高のビット幅 64, 7.02 線形バックエンド、決済(host-c) Bulletproof バックエンド、決済(host-a)
ビット分解バックエンドの検証はビット幅に線形(0.80 ms/bit、指図自体の切片 2.1 ms)、Bulletproofs ではおよそ対数。ホストが異なるので較正値を参照。artifact: defmi.json、rust_bench.json。
項目数値artifact
DvP 1 件の決済、40 ビットのレール、線形バックエンド34.0 ms · 57,939 Bdefmi.json
DvP 1 件の決済、64 ビットのレール、Bulletproof バックエンド7.02 ms · 3,424 Brust_bench.json
決済費用の傾き(線形バックエンド)0.80 ms/bit · 896 B/bitdefmi.json
決済内の zkPI 検証(切片)2.1 msdefmi.json
証券 24 ビット・資金 48 ビットを、両方 48 ビットと比べる時間 −24% · −10,752 Bdefmi.json
ノード 1 台、8 ワーカー、検証のみ216.6 件/秒(7.40×)defmi.json
決済 1 件あたりの asset tag(銘柄を隠した印)+32 B · 時間は 0.2 ms のノイズの内側defmi.json
発行時の資産所属証明、64 銘柄検証 2.24 ms · 1,344 Bdefmi.json
note(受取人を隠した残高の単位)の DvP を Rust で、ring(おとりを含めた候補集合)8、3-of-7 FROST の署名儀式を含む構築 37.6 ms · 決済 51.9 ms · 5,476 Bnote_dvp_rust.json
状態ルートを保持する場合と全走査する場合、4,096 note0.23 µs 対 15,325 µsnote_dvp_rust.json

指図と quote proof

項目数値artifact
zkPI v2 本体のテストベクタ9,726 Bzkpi_vectors/accepted-v2.bin
zkPI v1 互換テストベクタ1,572 Bzkpi_vectors/
quote proof(見積が正しく計算されたことの証明)、メイカー 4 社証明 152 ms · 検証 173 msquote_proof.json (host-a)
quote proof、メイカー 8 社証明 307 ms · 検証 350 msquote_proof.json
監査可能性の追加費用(matched field。MPC の体を commitment 群の位数に合わせた構成)壁時計時間 1.07× · 通信量 2.00× · ラウンド 1.00×binding_chain.json
参加者ごとの入力検査+1 ラウンド · 通信量 +0.39% · 健全性 2⁻²⁴⁵input_check.json
Pedersen 対 VOLE-in-the-Head、167 値、n=3018.6/15.5 ms、5,440 B 対 73.1/69.9 ms、45,616 Bvoleith.json (host-a)

プライバシーの値段

note の ring: 匿名集合の費用を誰が払うか 0 10 20 30 40 50 2 4 8 16 32 64 128 256 512 ring の大きさ(対数目盛) ms 証明、支払側の端末: ring の大きさ(対数目盛) 2, 10.9 証明、支払側の端末: ring の大きさ(対数目盛) 4, 11.2 証明、支払側の端末: ring の大きさ(対数目盛) 8, 11.3 証明、支払側の端末: ring の大きさ(対数目盛) 16, 11.7 証明、支払側の端末: ring の大きさ(対数目盛) 32, 12.7 証明、支払側の端末: ring の大きさ(対数目盛) 64, 14.5 証明、支払側の端末: ring の大きさ(対数目盛) 128, 18.2 証明、支払側の端末: ring の大きさ(対数目盛) 256, 26.2 証明、支払側の端末: ring の大きさ(対数目盛) 512, 40.3 検証、決済ノード: ring の大きさ(対数目盛) 2, 1.8 検証、決済ノード: ring の大きさ(対数目盛) 4, 2.1 検証、決済ノード: ring の大きさ(対数目盛) 8, 2.4 検証、決済ノード: ring の大きさ(対数目盛) 16, 2.6 検証、決済ノード: ring の大きさ(対数目盛) 32, 3.1 検証、決済ノード: ring の大きさ(対数目盛) 64, 3.7 検証、決済ノード: ring の大きさ(対数目盛) 128, 4.7 検証、決済ノード: ring の大きさ(対数目盛) 256, 6.4 検証、決済ノード: ring の大きさ(対数目盛) 512, 9.3 証明、支払側の端末 検証、決済ノード
wire は 2 倍ごとに 224 B 増え、検証は ring 512 まで 10 ms 未満に収まる。増えるのは証明側なので、ring の上限を決めるのはノードではなく支払側。artifact: defmi.json。
項目数値artifact
ring 64: 証明 / 検証 / wire(通信路上のサイズ)14.5 ms / 3.7 ms / 38,144 Bdefmi.json
ring 512: 証明 / 検証40.3 ms / 9.3 msdefmi.json
受取側の走査、note 1 件あたり0.063 msdefmi.json
観測者 対 ring 16、一様なおとり、周囲の決済 16 件0.359(名目 0.062)rings.json
観測者 対 ring 16、最近のものに揃えたおとり、周囲の決済 16 件0.062rings.json
PvP: 後手側の反応時間0.06 mspvp.json (host-a)
単一チェーンの adaptor signature 対 単一トランザクション、16 スワップ検証 +3.0% · 呼び出し 4×same_chain.json
観測者が PvP の両脚を結び付ける確率、市場ごとの handle(市場ごとに別の識別名)、同時 16 件0.062same_chain.json
同じく、どこでも同じ名前を使う場合1.000same_chain.json
実 MPC スロット 対 cover(見せかけ)スロット同じラウンド数(286)、同じバイト数(22.2 MB)、Δ 0.01 saudit_slots.json
scope 付き閲覧権限: 発行 / 検査0.08 / 0.07 msviewing.json
MPC 内での差分プライバシー付き公表、n=728 ラウンド · 63.9 MB(ラウンドの 92.9% はノイズ生成)distributed_publication.json

清算と照合

項目数値artifact
net-net 対 gross-gross、64 取引、8 参加者1.62×defmi.json
サイクル単位の attestation(委員会の証明書)対 gross-gross19.40×defmi.json
DeCCP の清算済みサイクル、256 取引38.3 ms 対 net-net の 794.6 ms(20.7×)deccp.json, ccp_rust.json
更改(novation)、取引 1 件あたり0.53 µsdeccp.json
日中限度: カバー証明あり / なし9.2 / 9.4 msdefmi.json
デフォルト・ウォーターフォール、トランシェあたり構築 11.2 ms · 検証 ~1.4 msdefmi.json
照合証明、サイズ不問96 B · 4,096 件で検査 0.65 msreconcile.json, reconcile_rust.json
審査証明、群 128: 証明 / 検証 / 証明サイズ9.02 / 3.84 ms / 1,676 Bvetting.json

ネットワークと合意

見積 1 件、メイカー 16 社、ノード配置別 0.1 1 10 100 秒(対数目盛) 同一ラック|0 ms: 0.17 s 0.17 s 同一ラック 0 ms 同一都市圏|1 ms: 0.62 s 0.62 s 同一都市圏 1 ms 国内|5 ms: 1.62 s 1.62 s 国内 5 ms 東京–シンガポール|15 ms: 3.88 s 3.88 s 東京–シンガポール 15 ms 6 台が近く|1 台が 120 ms: 23.0 s 23.0 s 6 台が近く 1 台が 120 ms 全台が遠い|120 ms: 26.1 s 26.1 s 全台が遠い 120 ms
70 ラウンドでメイカー数・資産数に依存しないため、壁時計時間は最も遅い経路の RTT × 70。遠いノードが 1 台あるだけで、7 台すべてを遠くへ移した場合の 86% のコストになる。artifact: placement.json、sites.json(1 台のホスト上で遅延を模擬)。
MPC ジョブあたりの依頼数と見積 1 件あたりの時間 0 1,000 2,000 3,000 4,000 1 2 4 8 16 32 1 ジョブ内の依頼数 Q(対数目盛) 見積 1 件あたり ms 片道 15 ms での見積 1 件あたり ms: 1 ジョブ内の依頼数 Q(対数目盛) 1, 3,425 片道 15 ms での見積 1 件あたり ms: 1 ジョブ内の依頼数 Q(対数目盛) 2, 1,839 片道 15 ms での見積 1 件あたり ms: 1 ジョブ内の依頼数 Q(対数目盛) 4, 1,007 片道 15 ms での見積 1 件あたり ms: 1 ジョブ内の依頼数 Q(対数目盛) 8, 574 片道 15 ms での見積 1 件あたり ms: 1 ジョブ内の依頼数 Q(対数目盛) 16, 377 片道 15 ms での見積 1 件あたり ms: 1 ジョブ内の依頼数 Q(対数目盛) 32, 284 片道 15 ms での見積 1 件あたり ms
ラウンドは依頼ではなくジョブに属する。Q=1 で 69 ラウンド、Q=32 では見積 1 件あたり 5.5。ジョブ自体は Q=32 で 9.1 s かかるので、処理量が上がると一人の利用者の待ち時間は延びる。artifact: rounds.json。
項目数値artifact
Avalanche L1: 検証者数 · 決済の受理 · 再起動からの復旧5 · 207.3 ms · 1,454.7 msavalanche_l1_acceptance.json
L1 上の QOMM 全経路: 高さ 53 で RFQ 2 件を原子的に受理、54 で claim、再起動後もルートが同一受入済みavalanche_qomm_full_acceptance.json
RFQ 見積 1 件、M=16、7 ノード: 同一ラック / 都市圏 / 片道 15 ms / 120 ms0.17 / 0.62 / 3.88 / 26.1 splacement.json, sites.json
近くに 6 台、遠くに 1 台(120 ms)23.0 s(全部遠い場合の 86%)sites.json
見積 1 件あたりの MPC ラウンド数70。メイカー数と資産数に対して一定rounds.json
地域をまたぐ見積 1 件の間の価格の動き 対 ブロック内の散らばり(UniswapX)1.01×(中央値)staleness.json
頑健な ATLAS、n=9、t=2: 乗算 1 回・参加者 1 人あたりの元の数18.2。配備中は 64.2robust_atlas.json, robust_atlas_host_c.json
EVM: ed25519 スカラー乗算 1 回302,401 gasstylus_gas.json
Solana: one-of-many 検証器、群 32951,503 CU(上限 1.4M)solana_cu.json

従来方式と耐量子方式を並べる

各行は、同じ方法・同じホストで測った従来方式の値と耐量子方式の値の組である。方法、実行前に書いた予測、受領証は耐量子のページにある。いずれも 1 回の計測である。

従来方式耐量子(ハイブリッド)計測場所
署名を 1 本作る(中央値)13.6 µs(Ed25519)359.3 µs(Ed25519 + ML-DSA-65)26.4×ビルドホストの 1 コア、RustCrypto 実装、2026-09-07
署名を 1 本確かめる(中央値)38.4 µs173.7 µs4.5×同上
鍵交換、カプセル化 / 開封48.9 / 37.0 µs(X25519)88.1 / 79.6 µs(X25519 + ML-KEM-768)1.8× / 2.2×同上
署名のバイト数 / 公開鍵のバイト数64 / 32 B3,373 / 1,984 B52.7× / 62.0×FIPS 204 の大きさ。ベンチでも一致
TLS 1.3 の相互認証ハンドシェイク、ループバック1.07 ms(RSA-2048 証明書、公開していた構成)· 0.56 ms(Ed25519)2.19 ms(ML-DSA-65 証明書、X25519MLKEM768)2.0× · 3.9×全行 OpenSSL 3.5.5、2026-09-08
OCLOB の板に残る注文、所要時間(中央値)1,211.6 ms1,268.0 ms1.05×公開していた二つの画像、空いている 64 コアのホスト、各 20 回、2026-09-08
OCLOB の約定して決済する注文(中央値)1,707.2 ms1,781.0 ms1.04×同上
OCLOB の板に残る注文、実行器がプロセスを維持するようにしたあと(中央値)1,195.5 ms1,018.5 ms0.85×同日の 2 回目。新しいハイブリッド画像を同じ従来版の画像と比べた
OCLOB の約定して決済する注文、同じ変更のあと(中央値)1,707.2 ms1,505.4 ms0.88×同上

注文の 2 行が、デモの利用者が体感する時間である。その大半は MPC のラウンドで、どちらの画像も同じだけ払う。1 回目では耐量子方式の分は注文 1 件あたり 56 ms と 74 ms で、その原因(ラウンドごとのエンジン受領証のハッシュ、42 回の相互認証ハンドシェイク、ハイブリッドのアプリ署名)は耐量子のページで切り分けている。受領証をプロセスごと 1 回のハッシュにし、7 つのプロセスを回をまたいで維持したあとは、ハイブリッド画像が従来版より 177 ms と 202 ms 速い。

外れた予測

各文書は実行前に予測を記録し、外れた予測を結果の横に残している。外れを見つけることが、計測の目的だからである。

  • net-net は gross-gross の 8 分の 1 と予測したが、計測は 1.62× だった。取引ごとの zkPI 検証は、ネッティングしても消えない。
  • note DvP は部品の足し算で予測したが、2 倍以上外れた。
  • 審査証明の検証時間は群の大きさとともに倍になると予測したが、1.4× にとどまった。この外れを受けて、既定の群を 16 から 128 に引き上げた。
  • 120 ms 配置は 18 s と予測した。15 ms で 1.4% の精度で検証したモデルによる予測だったが、計測は 23 s で、28% 低く見ていた。
  • 頑健な復元の費用は 1.6× 低く予測した。
  • 「探りは 10 回程度」という記述は論文に三度現れたが、artifact には一度も現れなかった。計測すると、予算を増やしても相関は大きくならず、大きくなるのは確信だけだった。
  • 二つの arm がともに 413 ms、標準偏差は 9 ms と 20 ms だった。負荷のかかった機械上での計測で、本来なら 14 ms の差があるはずだった。差がゼロと計測されたのではない。計測できなかったのであり、再実行した。