预言机的英文是Oracle,原意为神谕,起源于14世纪晚期,它是公众讨论可信知识的来源。
就像专家和技术知识一样,神谕根植于早期民主议会的审议和决策过程中。虽然宗教占卜的想法在我们当代民主制度中已经完全失去了位置,但随着现代计算机科学和密码学的出现,神谕这个概念在技术上卷土重来,并出现在被作为“信任机器”的区块链技术之中。
计算机科学中的神谕
在计算机领域,Oracle概念最早的提出者即是计算机科学之父图灵。图灵在图灵机的基础上,加入了一个称为预言者的黑盒,组成了预言机。所谓预言者,是一个可以回答特定问题集合的实体,即它可以向图灵机系统内部输入信息,帮助图灵机完成运算。
预言机DIA社区开启名为Oracle Gasdrop的Arbitrum赠款计划提案投票:6月16日消息,预言机DIA社区已开启Oracle Gasdrop(Arbitrum赠款计划)提案投票,拟将从Arbitrum空投中收到的7.5万枚ARB其中的3万枚ARB用于资助在Arbitrum上运行预言机所需的Gas费。该提案将于北京时间6月21日21:00结束投票。[2023/6/17 21:43:06]
在可计算性理论中,图灵机也与“停止问题”有关。这是指从一个任意计算机程序的描述和一个输入来确定程序是否会结束进程或继续永远运行的问题。图灵在1936年证明,对于所有可能的程序输入对,解决停止问题的通用算法并不存在。在一个固定的图灵完备的计算模型中,Oracle的任务是确定当程序在某些给定的输入下运行时是否最终会停止。
Compound社区发起改善预言机的提案:金色财经报道,据官方消息,Compound社区成员Getty Hill提出第47号关于改善预言机的提案。该提案包括:1. 将预言机系统从目前的Coinbase Pro改为Chainlink喂价;2. 将锚点从20%减少到15%。3. 给定故障安全的社区多重签名。[2021/6/16 23:39:45]
关于神谕的另一个重要问题是它们是否可靠。图灵认为机器,作为人类,应该被允许犯错误,“如果机器被期望是绝对正确的,它就不可能是智能的”。实际上,这种考虑适用于现实世界中的许多计算过程,这些过程给出的是一个接近最终答案的序列。神谕被认为应该是无所不知的,总是提供正确的答案这一假设并没有得到一致认同。
慢雾xToken被黑事件分析:两个合约分别遭受“假币”攻击和预言机操控攻击:据慢雾区消息,以太坊 DeFi 项目 xToken 遭受攻击,损失近 2500 万美元,慢雾安全团队第一时间介入分析,结合官方事后发布的事故分析,我们将以通俗易懂的简讯形式分享给大家。
本次被黑的两个模块分别是 xToken 中的 xBNTa 合约和 xSNXa 合约。两个合约分别遭受了“假币”攻击和预言机操控攻击。
一)xBNTa 合约攻击分析
1. xBNTa 合约存在一个 mint 函数,允许用户使用 ETH 兑换 BNT,使用的是 Bancor Netowrk 进行兑换,并根据 Bancor Network 返回的兑换数量进行铸币。
2. 在 mint 函数中存在一个 path 变量,用于在 Bancor Network 中进行 ETH 到 BNT 的兑换,但是 path 这个值是用户传入并可以操控的
3. 攻击者传入一个伪造的 path,使 xBNTa 合约使用攻击者传入的 path 来进行代币兑换,达到使用其他交易对来进行铸币的目的。绕过了合约本身必须使用 ETH/BNT 交易对进行兑换的限制,进而达到任意铸币的目的。
二)xSNXa 合约攻击分析
1. xSNXa 合约存在一个 mint 函数,允许用户使用 ETH 兑换 xSNX,使用的是 Kyber Network 的聚合器进行兑换。
2. 攻击者可以通过闪电贷 Uniswap 中 ETH/SNX 交易对的价格进行操控,扰乱 SNX/ETH 交易对的报价,进而扰乱 Kyber Network 的报价。从而影响 xSNXa 合约的价格获取
3. 攻击者使用操控后的价格进行铸币,从而达到攻击目的。
总结:本次 xToken 项目被攻击充分展现了 DeFi 世界的复杂性,其中针对 xSNXa 的攻击更是闪电贷操控价格的惯用手法。慢雾安全团队建议 DeFi 项目开发团队在进行 DeFi 项目开发的时候要做好参数校验,同时在获取价格的地方需要防止预言机操控攻击,可使用 Uniswap 和 ChainLink 的预言机进行价格获取,并经过专业的安全团队进行审计, 保护财产安全。详情见官网。[2021/5/13 21:57:48]
此外,在密码学中,“Oracle”的概念可以在“随机预言机”概念中找到。将“随机预言机”设置为“为所有参与方提供访问随机Oracle的权限”,以确保加密哈希函数的真正随机性。如果没有神谕,用户将依赖于具有弱熵的本地数学函数,这是强加密所需要的。通过Oracle的响应,用户将知道她发出的消息是否足够安全。
dYdX在其Alpha版本集成Chainlink预言机喂价:近日,Chainlink官方宣布,去中心化衍生品交易所dYdX已在其推出Alpha版本中使用Chainlink预言机喂价来确保借贷和保证金交易的安全。通过与Starkware的集成,Chainlink网络将预言机功能扩展到Layer 2解决方案。[2021/3/10 18:31:39]
总之,从一开始,神谕就是理论和应用计算机科学的核心概念,但它们以不同的方式建模和应用,取决于潜在假设的错误、可靠或值得信赖的程度。
而今,类似的讨论正在区块链领域展开,智能合约通常需要访问外部世界与合约协议有关的信息,从而触发区块链上的状态更改。
区块链预言机
本质上,区块链预言机可以理解为一种数据调用和访问的中间件,它分别解决了「是或否」和「数据是多少」两类问题,从而实现了智能合约对外部数据的调用。
这听起来可能很简单,但实际问题并非如此简单。当智能合约作为加密货币的一部分发挥作用时,交易是通过分布式网络参与者达成共识来授权的,确保其透明度和不存在舞弊的机会,并且发送到智能合约以执行编程事务的信息也是由区块链网络本身提供。
但挑战在于,如果我们想要扩大智能合约的应用场景,就需要建立一个智能合约与外部世界的连接通道,将外部世界的种类繁多的数据输入到“虚拟环境”中,并且确保数据来源是可信的。Oracle则是引导信息从现实世界的来源流向智能合约的媒介,其可分为如下几种类型:
硬件Oracle:它的任务是根据现实世界的情况向智能合约发送数据。例如,一辆汽车穿过障碍物,移动传感器检测到车辆并将数据发送到智能合约;或者像供应链行业的RFID传感器,当对象到达一个特定的仓库,该数据将被发送到智能合约。
软件Oracle:他们包括线上信息来源,如公共数据库和网站,如温度,商品和货物的价格,航班或火车延误等。Oracle提取出所需的信息,并将其放入智能合约中。
出站Oracle:它们将智能合约数据通信到外部源。智能合约条款本身就像一个出站Oracle。
入站Oracle:它的功能是向智能合约提供数据。该数据位于智能合约的外部,一旦接收到信息,它将开始执行路径。例如,提供温度数的新闻网站被归类为入站Oracle。
一致性的Oracle:这种类型的主要功能是查询多个Oracle源,并根据它们的一致意见得出结果。例如,不是使用一个网站源,而是使用四个或五个源,如果它们都返回相同的温度读数,智能合约就可以成功执行。
从上面类型可以看出,Oracle的主要挑战在于,人们需要相信这些外部信息来源,无论它们来自网站还是传感器。由于Oracle是不属于区块链共识机制的第三方服务,因此它们不受此公共基础设施提供的底层安全机制的约束。
对于使用公共数据源的大多数应用程序,在不同的数据源或Oracle之间取得一致意见,能够在更大程度上保持透明度。例如,体育赛事的统计数据、金融市场信息、民意调查结果等都可以来自多个节点。在将这些节点纳入独占区块链网络之前,可以对它们的可靠性和信任度进行验证,并对数据的准确性达成一致意见。甚至政府也可以介入,提供高度安全、分散的Oracle网络,并建立监管。
显然,信任是区块链和智能合约的首要价值主张。区块链预言机为区块链协议提供了在其自身网络之外进行通信的方法,从而扩大了区块链协议的作用范围。一旦跨越上述所提及的挑战,区块链和智能合约将为全局数字化带来焕然一新的推动力。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。