我是新来的以太和聪明的合同。据我所知,ethereum被建模为一个状态机,智能契约作为“代理”通过事务来改变状态。然而,矿工似乎不可能验证智能合同输出,除非他理解智能契约中编码的逻辑。
请考虑以下示例
请让我知道。
谢谢。
发布于 2018-06-11 22:32:23
对于一个矿工来说,要验证智能合同输出似乎是不可能的,除非他理解智能契约中编码的逻辑。
矿工们确实理解智能合同中的逻辑。编译后的表单最初是由外部拥有的帐户签署的部署事务的一部分,然后字节码成为每个人都可以看到的链的一部分。
非正式地,"Alice说‘用这个字节码部署一个合同,0x123.’“,为此,0x123.是“代码”,协议给了它一个地址--爱丽丝的智能契约的地址。
矿工在这里验证了什么?他/她无法访问政府车辆登记数据库。
这是一个业务逻辑问题。也许合同一步一步地处理问题。它可以首先记录卖方想要出售某一辆汽车。然后,它可以按照Oracle模式等待来自注册表的签名。这将代表业务流程中的一些重要内容,即“授权”参与者已经签署了一些重要的内容。所有节点都可以并将通过检查契约对该输入的反应来验证这一点。
smart契约调用2或3个其他契约,并根据这些契约的输出确定下一步的步骤,比如预订。矿工将如何验证这个输出?
只要有足够的气体供应,那么在一个相互作用链中涉及多少个合同就没有什么区别。无论复杂程度如何,都可以立即执行它们。整个过程是确定性的,并在一次“吞咽”中被处理。要么全部要么什么都没有。只有原始事务等待挖掘。
希望能帮上忙。
发布于 2018-06-11 19:48:06
这里的验证不是检查合同的预期输出,而是验证合同是否正确部署,与网络按预期进行交互,并遵循ethereum协议的规则。
https://ethereum.stackexchange.com/questions/50985
复制相似问题