CanDID依赖于一个预言机系统[27],[82],[57],[81]来进行凭证发放和密钥恢复。预言机通过中继并提供确信来自权威来源的数据的真实性 - 通常是通过安全通道(例如TLS)访问的Web服务器。具体而言,它允许证明者公开或向特定验证者证明数据来自特定来源(例如由其TLS证书确定) - 并可选择证明关于数据的任意陈述。
CanDID使用预言机系统允许用户从现有系统安全地导入身份。例如,Alice可以使用她的社会保障行政管理局(SSA)帐户的个人资料页面生成证书,证明她的社会安全号码(SSN)。想法是对于Alice来说,作为证明者执行预言机协议,以证明从SSA网站检索的Web页面包含上下文中的字符串SSN:123-45-6789。
目前,仅有的提供用户数据隐私并且与遗留系统兼容的预言机协议是DECO [82]和Town Crier [81]。DECO是一个三方协议,包括证明者P、验证者V和TLS服务器S。它允许P向V证明从S检索的可能是私有于P的数据满足谓词Pred。DECO依赖于多方计算(MPC)来保护数据隐私和真实性,并使用零知识证明(ZKPs)来证明谓词已满足。拥有多个验证者可以分散协议。 Town Crier通过使用可信执行环境(如Intel SGX)来证明TLS会话的真实性并证明关于TLS明文的陈述,从而实现了类似的目标。
总体而言,Town Crier比DECO更快,并且可以有效地处理比DECO复杂得多的谓词。 Town Crier证明也是公开可验证的,而DECO证明是指定验证器。然而,Town Crier引入了对最近攻击提出质疑的TEE信任假设(例如,参见[52]进行调查)。
CanDID可以使用DECO或Town Crier,具体取决于所需的信任模型。