智能合约如何与区块链相关

时间:2017-11-16 19:30:15

标签: blockchain smartcontracts

我对区块链很新。我试图弄清楚如何在我的特定场景中使用区块链,同时尝试了解它并提出一些非常基本的问题。

业务情景 B从A购买产品P.对于在条件C1下交付的每个P单位收取$ x,对于在条件C2下交付的每单位P收取$ y。 B在结算周期结束时支付A.

问题

  1. “通过A到B交付P” - 这可以被视为交易吗?
  2. 我的智能合约可能会定义为“如果 C1 然后 rate = $ x ”。 A或B可以将事件(“通过A传递给B到B”)传递给智能合约以检查状况并确定动作。在这种情况下,“事件”是否等同于一个块?什么将存储在区块链中?
  3. 如何验证此“阻止”?在这种情况下,事件将具有检查条件的参数,但由于事件是由A或B(不信任方)提交的,矿工如何验证事件参数是否未被篡改?
  4. 如果A需要生成结算周期结束发票,A应该从区块链中读取吗? (展示数据未被篡改)
  5. 提前致谢。

    此致 Ritwik

1 个答案:

答案 0 :(得分:0)

在设计智能合约之前,有很多事情要考虑。我将尝试以最少的技术性加以解释。

您的智能合约方案:
在2种情况下将产品P从A运送到B。
因此,您的智能合约将具有2个地址,即A和B。A将P交付给B后,将存在B和A可以验证的方法(验证)(使用某些协议,其中2个当事方同意一项决定,并且仅当都说是(是对还是错),是否满足某个条件,即C1或C2。
满足该条件后,付款完成($ x或$ y)

  1. 如果在将P从A传递到B时,两者都将尝试调用方法verify并同意条件。方法的这种调用将是事务。

  2. 在这种情况下,“事件”的传递将是方法的调用。就像我之前所说的,这些调用是存储在区块链上的交易。这些事务将具有有关使用哪些争论和时间戳来调用哪种方法的信息。 这些交易将与其他特定交易一起出现在已开采的特定区块上。

  3. 在方法中定义条件时。您将对谁可以调用这些方法有条件。矿工将只运行代码,而不管代码是否返回错误。因此,如果验证方法被非预期的人员调用,则您的代码应返回错误(这是您编写智能合约的方式的责任)。矿工只运行代码并返回您的代码将输出的任何内容。

  4. 是的,区块链历史不能被篡改,因此可以用作证明。