
数字认证需要回答什么问题
数字认证通常需要分别确认:谁控制某个账户,信息是否发生变化,以及某项资格声明是否值得接受。这些问题对应不同技术层次。例如,验证一次账户签名,与确认签名者具有某项学历,所需的证据并不相同。
公私钥、签名与账户地址
以太坊账户文档介绍了公私钥与签名的关系:私钥用于签署消息或交易,验证方可通过密码学方法核验签名。外部账户地址由公钥经过哈希处理后派生;合约账户则由代码逻辑控制。钱包是与账户交互的应用或接口。

这些概念适用于理解账户控制权。有效签名说明签署行为与相应密钥有关,但姓名、任职资格等现实属性仍需要其他证据。账户地址本身不能完成这种身份绑定。

哈希与防重放机制
哈希将数据映射为摘要,可用于检查内容是否一致;以太坊账户结构中的代码哈希和存储根也与数据校验有关。交易中的nonce计数则用于防止同一交易被重复执行。
完整性检查与防重放解决不同问题:内容没有变化,不代表同一授权可以无限次使用。认证设计既要检查签名覆盖的内容,也要考虑授权是否仍适用于当前请求。
可验证凭证与信任判断
W3C可验证凭证数据模型将凭证描述为签发者对主体作出的一组声明。持有者可向验证者提交凭证或可验证展示,持有者也未必就是凭证主体。验证者需要检查证明、有效性及声明是否符合自身规则。
例如,学历认证既涉及凭证是否被篡改,也涉及签发机构是否被接受。密码学验证通过,不能单独保证声明属实;信任判断还依赖签发者与具体应用要求。
适用条件与常见问题
数字凭证必须使用区块链吗?不必须。W3C列出的可验证数据登记系统包括可信数据库、去中心化数据库和分布式账本。区块链可以承担登记功能,但只是可选基础设施之一。
凭证是否应全部公开?凭证可能包含身份和资格信息,持续保存及跨场景关联会带来隐私问题。认证需求应限定所需信息范围;零知识证明等隐私增强技术是否适用,还取决于具体凭证和证明方案的支持。
因此,账户授权场景重点关注密钥与签名,资格认证场景还需要凭证、签发者信任及有效性规则。两类机制可以组合,但各自提供的证据边界需要明确。