首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Oraclize (或类似的)随机化有缺点吗?

使用Oraclize (或类似的)随机化有缺点吗?
EN

Ethereum用户
提问于 2017-12-23 03:13:15
回答 1查看 463关注 0票数 1

我试着学习example合同,并学习示例代码和现有的Dapp。如果我理解一些事情(而且我可能不理解),那么Solidity就不能创建随机数,所以开发人员需要使用像Oraclize这样的服务。

我在处理事务时看到了一些有趣的东西,有点让人困惑:

  1. 事务由最终用户通过将以太从钱包中发送到dapp_smart_contract_1来创建。
  2. 然后dapp_smart_contract_1将事务发送到oraclize_smart_contract
  3. oraclize查询运行(首先,好奇这是如何工作的。为什么开发人员需要使用Oraclize?为什么不设置自己的RESTful服务或其他机制?)
  4. oraclize通过调用dapp_smart_contract_2返回随机数
  5. dapp_smart_contract_2与dapp_smart_contract_1进行交易
  6. dapp给出了结果。

很可能我不理解这个过程,但是如果我理解了,dapp开发人员似乎可以在这个设置中修改结果,并且这个应用程序在某些时候仍然在使用Oraclize查询结果。

无论如何,我很好奇在使用像Oraclize这样的服务时是否存在任何弱点或漏洞,以及是否有计划使Ethereum智能契约“更好”,这样就不需要集中的服务了?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2017-12-23 08:01:46

好奇这是怎么回事

此外,您还为Oracle创建了事件。对于Oraclize,这是通过调用他们的方法来完成的。然后,一些寻找新事件的离链机器人处理它:执行http请求并通过调用另一个契约方法将结果返回到链上。现在,结果可以通过您的合同访问。

为什么开发人员需要使用Oraclize?为什么不设置自己的RESTful服务或其他机制呢?

你不需要。人们使用它是因为它更简单。你不需要担心离链机器人。

我很好奇在使用像Oraclize这样的服务时是否存在任何弱点或漏洞

你付出了信任的代价(如果Oraclize会停止工作呢?或者发送扭曲的数据?)。他们也会收取费用。

如果有计划使Ethereum智能合同变得“更好”,那么集中式服务就没有必要了?

让我们把它分成两个问题:

  1. 是否可以使用任何非链外数据的隐式源?就像矿工自己提出要求一样。

不是的。块链执行的所有结果都必须是确定性的,这样每个人都可以验证块。不同的请求会产生不同的响应。另外,假设这不是一个问题,您将使用DDoS服务,因为任何想要验证事务的人都会发出http请求。

  1. 我们能让Oracle分散吗?

好的。例如,让我们选择50个值得信赖的人,他们将把美元的价格放在区块链上,然后使用中间值。这就是MakerDAO计算ETH/美元价格时不信任每个人的方法。

您可以通过实施任何协商一致机制来扩展这一想法。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/34209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档