我试着学习example合同,并学习示例代码和现有的Dapp。如果我理解一些事情(而且我可能不理解),那么Solidity就不能创建随机数,所以开发人员需要使用像Oraclize这样的服务。
我在处理事务时看到了一些有趣的东西,有点让人困惑:
很可能我不理解这个过程,但是如果我理解了,dapp开发人员似乎可以在这个设置中修改结果,并且这个应用程序在某些时候仍然在使用Oraclize查询结果。
无论如何,我很好奇在使用像Oraclize这样的服务时是否存在任何弱点或漏洞,以及是否有计划使Ethereum智能契约“更好”,这样就不需要集中的服务了?
发布于 2017-12-23 08:01:46
好奇这是怎么回事
此外,您还为Oracle创建了事件。对于Oraclize,这是通过调用他们的方法来完成的。然后,一些寻找新事件的离链机器人处理它:执行http请求并通过调用另一个契约方法将结果返回到链上。现在,结果可以通过您的合同访问。
为什么开发人员需要使用Oraclize?为什么不设置自己的RESTful服务或其他机制呢?
你不需要。人们使用它是因为它更简单。你不需要担心离链机器人。
我很好奇在使用像Oraclize这样的服务时是否存在任何弱点或漏洞
你付出了信任的代价(如果Oraclize会停止工作呢?或者发送扭曲的数据?)。他们也会收取费用。
如果有计划使Ethereum智能合同变得“更好”,那么集中式服务就没有必要了?
让我们把它分成两个问题:
不是的。块链执行的所有结果都必须是确定性的,这样每个人都可以验证块。不同的请求会产生不同的响应。另外,假设这不是一个问题,您将使用DDoS服务,因为任何想要验证事务的人都会发出http请求。
好的。例如,让我们选择50个值得信赖的人,他们将把美元的价格放在区块链上,然后使用中间值。这就是MakerDAO计算ETH/美元价格时不信任每个人的方法。
您可以通过实施任何协商一致机制来扩展这一想法。
https://ethereum.stackexchange.com/questions/34209
复制相似问题