Corda保密身份技术问询:签发方、X.509证书签名及证书链回溯
让我来把这两个问题拆解清楚,都是Corda里关于保密身份的核心细节,搞懂这些对理解私密交易逻辑至关重要:
1. 谁来签发保密身份(Confidential Identity)?
在Corda里,保密身份是由你要与之进行私密交互的对等节点签发的。举个实际场景:假设节点A和节点B打算用保密身份完成一笔私密交易,流程是这样的:
- A会生成一个全新的密钥对(对应待创建的保密身份),然后向B发起请求,让B用自己的「知名签名身份」为这个公钥签发证书;
- 同样,B也会生成自己的密钥对,请求A用A的知名签名身份签发证书。
简单说就是,你的保密身份由交易对手帮你签发,反之亦然——这样设计的核心目的,就是确保只有交易双方知晓这个身份,真正实现交易的私密性。
2. 保密身份证书的签名方式,以及如何解决证书链回溯问题?
证书的签名主体
保密身份对应的X.509证书,是用节点的**知名签名身份(well-known signing identity)**来签名的,而不是节点证书(node certificate)。这里得先理清两个身份的区别:
- 节点证书是节点的根身份证书,相当于节点的“核心身份证”,层级最高,一般只用于签发其他次级身份;
- 知名签名身份是由节点证书签发的、专门用于日常签名操作的身份,相当于节点的“业务专用签名章”,用它来签保密身份证书,既符合安全规范,又避免了直接使用根证书带来的风险。
如何避免签名无法回溯证书链?
解决这个问题的关键,就是在交易中附带完整的证书链信息。因为保密身份的证书是由对等节点的知名签名身份签发的,而知名签名身份的证书本身又能追溯到节点的根证书(节点证书)。拿现金用例举例:
- 当你提交现金交易时,需要把保密身份的证书、签发它的知名签名身份的证书,以及节点证书这一整条链都附在交易数据里;
- 验证方拿到交易后,就能沿着「保密身份证书 → 知名签名身份证书 → 节点证书」的链条一步步回溯,最终确认身份的合法性,同时也能关联到发行方的历史状态——毕竟发行方的节点证书是整个链的根,只要链条完整,就能顺利完成追溯。
内容的提问来源于stack exchange,提问作者ivicaa
相关产品推荐
相关产品推荐

