indy-sdk tutorials数字身份认证(三)

五、谈判证明
0、在发行人完成“Save Schema and Cred Def”和“Issue Credential”how-tos之后,您拥有凭证持有者和依赖方(验证者)的所有上下文,以根据凭证生成零知识证明。
首先发行人为现有schema创建Claim定义。
之后,它向Prover发行一个Claim(如issue_credential.py示例中所示)
一旦Prover成功存储了其Claim,它就会使用他收到的Proof请求,从其钱包中获得满足Proof请求的Claims。
Prover使用输出创建Proof,使用其主密钥。
之后,根据Proof请求验证Proof。
0.3 证明协商通常在验证者(也称为依赖方)请求proof时开始。 (与credential发行一样,该流程有三个逻辑阶段,但很少以proof offer开头。但是,如果初始证明请求满足counter-offer,则应用在序列的提供阶段。)
indy-sdk tutorials数字身份认证(三)_第1张图片
证明请求是一个JSON文件,用于描述哪种证据可以满足依赖方。
收到证明请求后,凭证持有者必须扫描其身份钱包,以找出可用于满足请求的凭据。 (钱包扫描效率低下,但这不会导致数十或数百个凭证出现问题。在更高规模上,需要一种新机制。正在开展工作,为indy钱包添加索引驱动搜索。)
0.4此时,持有者通过生成和呈现proof成为prover,这是通过选择证书构建JSON来完成的(在上一步中被识别为有效候选者的证书),证明者希望用它来满足请求。 证明者使用适当的参数调用anoncreds.prover_create_proof(),并创建证明。
0.5 最后,验证者需要检查以确保所呈现的证据满足他们的标准。 这很简单; 只需调用anoncreds.verifier_verify_proof()。
1、创建发行人钱包
2、创建证明人prover钱包
3、发行人为Schema创建声明定义
4、Prover创建关联密钥Link Secret
5、发行人创建Cred Offer
6、Prover创建并存储Cred Request
7、发行人为收到的Cred请求创建凭证
8、证明人处理和存储凭证,将凭证放入证明人钱包
9、Prover 为Proof Request获取Credentials
10、Prover为证明请求创建证明
11、验证者验证Prover的证据proof
12、clean up

你可能感兴趣的:(indy-sdk数字身份认证)