【问题标题】:Corda - Contract verification using oraclesCorda - 使用预言机验证合同
【发布时间】:2019-01-29 17:38:55
【问题描述】:

我在浏览官方文档时,在浏览https://docs.corda.net/key-concepts-contracts.html 时遇到了以下声明。

交易验证必须是确定性的 - 合约应始终接受或始终拒绝给定交易。例如,交易有效性不能取决于进行验证的时间。

据我了解,这意味着交易验证应该独立于交易被验证的时间。

后来,在同一页面中,我看到了以下内容:

有时,交易的有效性取决于一些外部信息,例如汇率。在这些情况下,需要预言机。

这似乎与之前的说法相冲突。如果我使用汇率进行合同验证,验证会不会变得不确定?

如果我使用 EURUSD 的汇率作为合同验证的参数之一,该参数会随着时间的推移而变化,并且由于汇率的变化,今天有效的状态更新可能在未来无效。

这里有什么我误解了吗?

【问题讨论】:

    标签: corda


    【解决方案1】:

    当您使用 Oracle 时,它​​是一个中立节点,如果交易满足其要求/验证,它会签署交易。

    在合同本身上,您只是强制要求必须使用 Oracle 的签名来签署交易,它不会检查由 oracle 验证的非确定性事实,它可以是任意信息/fact 即汇率。所以从这个意义上说,对于Contract Validation,它仍然是确定性的。

    【讨论】:

    • 啊!谢谢你解释。
    【解决方案2】:

    有时,交易的有效性取决于一些外部信息,例如汇率。在这些情况下,需要预言机。

    这个过程如下:

    • 一方请求外部信息
    • 该方在其部分命令的事务中包含外部信息
    • 只有在外部信息在签署时为真时,oracle 才会签署交易

    因此,预言机的签名断言外部信息在它被包含时是有效的,即使它已经改变了(例如汇率变化)。因此,合同验证仍然是确定性的。

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 2017-11-07
      • 2021-04-07
      • 2020-06-08
      • 1970-01-01
      相关资源
      最近更新 更多