【发布时间】:2020-06-08 01:26:10
【问题描述】:
公证人/节点在收到交易时如何验证特定流程是否已被调用?
这是否意味着 Corda 可以保证流程没有根据相应 Cordapp 中的说明进行修改?
【问题讨论】:
公证人/节点在收到交易时如何验证特定流程是否已被调用?
这是否意味着 Corda 可以保证流程没有根据相应 Cordapp 中的说明进行修改?
【问题讨论】:
详细说明:
简而言之:
【讨论】:
Adel 的回答涵盖了从应用程序流级别不信任您的交易对手的正确方法,但也有可以使用的操作保护。强合约可以帮助防止格式错误的交易,因为 Corda 不允许在设置良好的网络中使用未知合约。
网络参数定义了可以接受哪些智能合约 cordapp jar 进行验证。最常见的合约约束形式是签名约束,这意味着可以接受由相同开发人员密钥签名的任何合约 jar。这可以防止恶意交易对手强迫您运行弱验证:https://docs.corda.net/api-contract-constraints.html#signature-constraints
从 Corda 4 开始,除非节点操作员明确告诉 Corda 信任该 jar,否则任何无法识别的合约 cordapp jar 都不会被信任。 https://docs.corda.net/cordapp-build-systems.html#cordapp-contract-attachments 一旦签名被信任,那么任何未来由该签名签名的 jar 都将被隐式信任。
【讨论】: