longfellow
https://github.com/google/longfellow-zk/tree/main
use case
selective disclosure
pk 200 KB, VK 200KB, proof 300KB
setup 5s, prov 500ms, verify 250ms
summary
ecdsa + sha256
real-time prover, small proof (400K), 端侧计算,无需改造issuer
credential自身的device-bound private key由SE保护,device-bound public key受issuer public key保护
device-bound public key 通过ZK隐藏
ZK在AP侧计算,无需改造SE
detail
用 sumcheck 构建 m x k matrix M,末尾几行为random
用 Reed-Solomon encodes 将 matrix M 扩为 m x N , FFT
基于 matrix M 各columns构建merkle tree
通过Reed-Solomon encodes扩大error,抵御伪造,提升错误识别概率,非100%
prover -> verifier : merkle tree root hash
prover <- verifier : challenge r
prover -> verifier : z = r * M
prover <- verifier : random column index list [j_1, ..., j_40]
prover -> verifier : open columns, merkle path
verifer: verify merkle path, verify z, verify sumcheck constraints