DID 身份最佳实践:让链上身份真正服务业务的十条经验
DID 是工具而非目的,最终要服务于产品与用户。许多团队在搭建 DID 体系时陷入「为合规而合规」「为去中心而去中心」的误区。本文汇总十条最佳实践,帮你把 DID 真正落到业务里,让它发挥最大价值。
第一条:先定义场景再选方法
不要一上来就纠结 did:ethr 还是 did:web。先把业务场景写清楚:是要做 KYC 凭证复用、是要做 DAO 投票身份、还是要做电商履约。不同场景对去中心化、成本、性能的偏好不同,选择会自然清晰。
例如,Binance 用户跨平台复用 KYC 的场景,更需要链上去中心化保证,因此 did:ethr 更合适;而一家媒体给作者发署名凭证,did:web 就足够。
第二条:把私钥放在硬件里
任何严肃的 DID 部署都应使用 HSM 或 KMS 托管签发私钥。这是几乎所有事故的源头,也是最容易被忽视的细节。养成这个习惯,能消除最高频的风险类别。
第三条:选择性披露作为默认
请记住一句话:能少披露就少披露。把选择性披露作为默认设计,而不是「将来再加」的扩展。许多 必安交易所 的合规凭证只暴露「等级」字段,不暴露姓名、生日,便是这一原则的体现。
第四条:撤销机制必须先想好
凭证签出去之前,先想清楚撤销机制。是用 StatusList2021,还是用合约链上撤销,亦或是组合方案。如果没有撤销,凭证一旦泄露就回不来了。
第五条:用 multisig 控制根权限
根 DID 必须由 multisig 控制。这不仅是技术问题,也是治理问题。任何单个开发者掉钥匙都可能导致灾难性后果。把根权限分散到 3/5 或 4/7 的多签里,让你的系统具备真正的抗风险能力。
第六条:把验证逻辑做成 SDK
不要让每个调用方自己实现验证。封装一个 SDK,里面集成解析、签名校验、撤销查询的全套逻辑。这样既保证一致性,又能在升级时一次推全平台。BN平台 上的几个大型 dApp 都采用这种集中式 SDK,避免业务侧重复造轮子。
第七条:监控撤销列表更新延迟
撤销列表必须每分钟自检一次。如果上游 CDN 停留在 30 分钟前的版本,攻击者就能利用这个时间差。把延迟监控接入告警,是基本动作。
第八条:对用户透明展示
让用户清楚地看到自己出示了什么字段、给了谁、有效期多久。这种透明能极大提升信任。许多 BN交易所 的钱包应用在 DID 出示界面上做了精细 UX,用户可以一眼看到被披露的字段范围。
第九条:预留隐私升级路径
今天可能还在用普通签名,明天可能就要切换到 BBS+ 或 ZK 证明。设计时预留扩展点,让升级不需要推倒重来。这种前瞻性在 壁安所 等机构的方案里体现得最明显,它们把签名算法做成可插拔模块,随时切换。
第十条:把演练纳入运维
最后,应急演练应该季度化常规化。模拟私钥泄露、撤销列表失效、解析器宕机等场景,检验团队响应能力。把这十条经验都内化到团队 DNA 里,你的 DID 系统才能真正承载长期可信的链上身份。