在Corda中,附件如何散列和验证?

在Corda中,附件如何散列和验证?,corda,Corda,我对Corda在将附件JAR文件上载到节点时生成的SecureHash有以下问题: 根据文件的内容,哈希值是否总是唯一的 如果JAR文件的内容发生变化,是否保证哈希值会发生变化(就像使用普通哈希函数一样) 交易对手是否可以在其终端验证散列的完整性(并检查附件是否未被篡改) 交易对手是否可以验证jar的真实性(是否已由上传者签名) 理论上,SecureHash是使用各种散列算法生成的散列的包装器。但是,自Corda 3.1起,仅实现了使用SHA-2哈希函数系列的SecureHash.SHA256。

我对Corda在将附件JAR文件上载到节点时生成的
SecureHash
有以下问题:

  • 根据文件的内容,哈希值是否总是唯一的
  • 如果JAR文件的内容发生变化,是否保证哈希值会发生变化(就像使用普通哈希函数一样)
  • 交易对手是否可以在其终端验证散列的完整性(并检查附件是否未被篡改)
  • 交易对手是否可以验证jar的真实性(是否已由上传者签名)
  • 理论上,
    SecureHash
    是使用各种散列算法生成的散列的包装器。但是,自Corda 3.1起,仅实现了使用SHA-2哈希函数系列的
    SecureHash.SHA256
    。与此算法发生哈希冲突的可能性非常非常小
  • 同样,如果JAR内容发生变化,哈希值保持不变的可能性非常非常小
  • 在第一次收到附件时,节点会在将其导入附件存储之前检查它是否是有效的JAR文件。它不是由交易对手发送附件散列,而是计算附件的散列本身,并将该散列用作附件的ID
  • 自Corda 3.1起未实现JAR签名。节点只是检查JAR文件是否有效