我正在查看正式文档,在浏览https://docs.corda.net/key-concepts-contracts.html时,我看到了以下声明。
事务验证必须是确定性的--合同应当始终接受或始终拒绝给定的事务。例如,事务有效性不能取决于进行验证的时间。
据我所知,这意味着事务验证应该独立于事务被验证的时间。
稍后,在同一页中,我看到了以下内容:
有时,交易的有效性将取决于某种外部信息,如汇率。在这种情况下,需要一个先知。
这似乎与先前的说法相冲突。如果我使用汇率进行合同验证,那么验证就不会变得不确定了吗?
如果我使用欧元美元的汇率作为合同验证的参数之一,该参数将随着时间的推移而变化,并且由于汇率的变化,今天有效的状态更新可能在将来无效。
这里有什么我误解的东西吗?
发布于 2019-01-21 03:58:10
当您使用Oracle时,如果事务满足它的要求/验证,它就是一个中立的节点。
在合同本身上,您只是强制执行oracle的签名必须用于签署事务,它不检查由oracle验证的不确定事实,它可以是任意的信息/事实,即汇率。因此,在这个意义上,对于Contract Validation来说,它仍然是确定性的。
发布于 2019-01-29 09:38:55
有时,交易的有效性将取决于某种外部信息,如汇率。在这种情况下,需要一个先知。
这一过程的工作如下:
因此,甲骨文的签名断言外部信息在包含时是有效的,即使它此后发生了变化(例如汇率的变化)。因此,合同核查仍然是确定性的。
https://stackoverflow.com/questions/54278859
复制相似问题