0

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

业务场景 B 从 A 购买产品 P。A 对在条件 C1 下交付的每单位 P 收取 $x,对在条件 C2 下交付的每单位 P 收取 $y。B 在计费周期结束时向 A 付款。

问题

  1. “A 向 B 交付 P”——这可以被视为交易吗?
  2. 我的智能合约可能会被定义为“If C1 then rate=$x ”。A 或 B 可以将事件(“A 向 B 交付 P”)传递给智能合约,以检查条件并确定动作。在这种情况下,那个“事件”是否相当于一个块?什么将存储在区块链中?
  3. 如何验证这个“块”?在这种情况下,事件将有参数来检查条件,但是由于事件是由 A 或 B(不受信任的方)提交的,矿工如何验证事件参数没有被篡改?
  4. 如果 A 需要生成结算周期结束发票,A 是否应该从区块链中读取它?(展示数据未被篡改)

提前致谢。

问候, Ritwik

4

1 回答 1

1

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

您的智能合约场景:
在 2 个条件下将产品 P 从 A 交付到 B。
因此,您的智能合约将有 2 个地址,即 A 和 B。在 A 将 P 交付给 B 后,将有 B 和 A 可以验证的方法(验证)(使用某种协议,其中 2 方就决定达成一致,并且仅当两者都说是的,它是对还是错)满足某个条件,即 C1 或 C2。
当满足该条件时,付款完成($x 或 $y)

  1. 如果在将 P 从 A 交付到 B 时,双方都将尝试调用方法验证并同意条件。这种方法调用将是事务。

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

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

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

于 2018-08-17T12:28:49.047 回答