验证Corda中的流量

问题描述 投票:0回答:2

[公证人/节点在收到交易时如何验证特定流程?

这是否意味着Corda可以保证流程没有根据相应Cordapp中的说明进行修改?

corda flow
2个回答
1
投票

详细:

  1. 这是DLT(分布式分类帐技术);所以从某种意义上讲,您不能真正信任任何人。
  2. 公证人不接收流量,它接收交易,并确保不存在双重支出(即,不再消耗消耗的输入)。
  3. 即使您为节点提供了CorDapp,它也可以覆盖响应者流程。请参阅下面的链接。
  4. 关于响应者流的错误假设:https://www.corda.net/blog/corda-flow-responder-wrong-assumptions/
  5. 配置响应者流:https://docs.corda.net/flow-overriding.html
  6. 从外部CorDapps覆盖流:https://dzone.com/articles/extending-and-overriding-flows-from-external-corda
  7. 当您在发起者及其响应者之间发送和接收数据时; (两端)接收到的数据被认为是不可信的;您必须解开包装并验证它:https://docs.corda.net/api-flows.html#receive

简而言之:

  1. 您的发起者必须验证从响应者那里收到的任何数据。
  2. 您的响应者必须验证从发起者收到的任何数据;另外,如果您希望发起者是某个实体,则必须验证对方(向您发送流程会话)是您希望的对象(例如flowSession.counterParty ==“ O = Good Org,L =伦敦,C =英国“)。

0
投票

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都将被隐式信任。

© www.soinside.com 2019 - 2024. All rights reserved.