Oracle只是一些代码,用于查询实时数据库,并可以根据数据返回答案。例如,可以创建一个Oracle来判断佛罗里达橘子林的温度是否降到了零度以下。Oracle会从温度计中读取数据,当温度达到冰点时,它会发出一条信息,执行智能合约,打开喷水系统来保护橘子。与直觉相反,用洒水器给橘子洒上糖衣可以使其避免结冰:当冰冻结时,它就会释放出热量,使橘子本身保持在冰点以上。
Oracles的其他应用程序包括:在商品到达供应链的特定点时跟踪商品、在商店中的商品低于临界水平时通过跟踪补充商品,以及分散的应用程序可以使用物质世界中的任何其他数据。
Oracle对期货合约交易平台(即预测市场)特别有用,而预测市场本质上是一种DU BO形式。体育比赛的结果、政治选举、天气、股票价格、比特币的价格,以及其他任何可以押注的东西,都可以被Oracle追踪。Oracle在一个分散的应用中执行智能合约,将资金分配给那些下了准确下注的人。
当涉及到资金问题时,出现的问题就是确保Oracle会报告中数据的真实。例如:一个运行消防保险智能合约的Oracle。如果Oracle的答案可以被消防部门手动控制,那么,理论上消防部门可以说房子被烧毁了,即使没有火灾,也可以在保险智能合约中拿到这笔钱,这样保险公司将蒙受损失。不管这是不是有意的,很明显的解决办法是找到一种分散的、精确的方法来将数据提供给Oracle,以确保它的答案总是与现实联系在一起。
在以太区块链中,Oracle的输出可以在公共不可变的分类帐中进行跟踪,如果Oracle行为不当,则可以将其列入黑名单或进行修正。一个叫“Augur”的区块链预测市场平台主张:通过奖励好的Oracle来解决行为不良的问题,并惩罚不好的Oracle。每个Oracle必须在一个债券中持有的代表代币,该债券将因不正确的信息而被没收。答案是否正确取决于投票机制。当然,是否可以操纵投票将决定这种方法是否能经受时间的考验。
总的来说,Oracles是将基于分散的块链的应用程序连接到物质世界的一项重要技术,但是要使Oracles优化需要在分散和集中之间进行平衡。