Crescent

https://github.com/microsoft/crescent-credentials/

https://eprint.iacr.org/2024/2013

use case

selective disclosure

credential

原有issuer颁发的JWT格式的Credentials维持不变

原有issuer public key 的可信校验维持不变,prover & verifier 自行维持

zkp groth16

Crescent生成PK (Prepare Params)、VK, 提供的公开参数

PK约几百MB,VK在1KB左右

用于对Credentials做Groth16 zk-snarks, committed attr(基于sub-prover), selective disclose attr (revealed)

Crescent Service 独立于原有 credential 体系

sub provers for show

类似DLEQ的sub prover,可用于range proof 等

Σ-proof

device public key

https://github.com/personaelabs/spartan-ecdsa

issuer public key -> device public key

credential与device public key绑定

device public key -> message

device public key 隐藏

提取public key的x值,Q = q_0 + 2^128 * q_1,记为 Q = (q_0, q_1)

构造linking snark proof,结合spartan-T256形式的ecdsa作为message sig algorithm, 结合poseidon hashing