![]()
智能合约功能强大,但它们也存在局限性。它们无法查看价格、读取天气数据,也无法验证款项是否已到账。预言机是连接区块链与外部世界的基础设施,超过2000亿美元的DeFi资产安全依赖于预言机的正常运行。
![]()
要点
区块链预言机是一种为智能合约提供外部数据的服务。如果没有预言机,智能合约只能读取区块链上已存储的信息,这排除了价格、天气、体育赛事结果以及几乎所有其他使合约发挥作用的现实世界数据点。
预言机问题是区块链设计中的一个根本性挑战。区块链通过确定性计算实现无需信任,但连接外部数据源又会重新引入信任点。无论区块链本身多么去中心化,依赖单一预言机的智能合约的安全性都取决于该预言机的安全性。
Chainlink 在预言机市场占据主导地位,其保障的去中心化金融协议总价值约占 75%。其去中心化预言机网络聚合来自多个独立节点运营商的数据,从而减少单点故障。渣打银行于 2026 年 8 月首次对 Chainlink 进行评级,并设定目标价为 200 美元(2030 年),认为代币化和 DeFi 的增长是推动其股价上涨的主要因素。
预言机操纵是DeFi历史上一些最大规模攻击的罪魁祸首。闪电贷攻击通常针对依赖单一链上价格源而非去中心化预言机网络的协议,这使得攻击者能够在单笔交易中操纵价格并耗尽借贷资金池。
预言机的应用范围正在超越价格信息本身。跨链互操作协议、游戏和NFT的可验证随机性、稳定币的储备证明以及现实世界资产代币化都依赖于预言机基础设施。Chainlink CCIP已被Aave和BitGo采用,用于价值73亿美元的WBTC转账,这表明预言机正在成为连接不同区块链的纽带。
大多数关于区块链预言机的解释都以定义开头,仅此而已。它们告诉你预言机是区块链与外部世界之间的桥梁,这固然没错,但却不够全面。这就好比说电网是发电机和电灯开关之间的桥梁。从技术上讲,这种说法没错。但实际上,它对于理解电网故障的原因、故障发生时谁来承担责任,以及为什么电网的设计比开关的设计更重要,都毫无用处。
更有用的出发点是预言机存在的目的——解决特定约束。智能合约是确定性的。网络上的每个节点都必须执行相同的代码并得出相同的结果。如果智能合约可以直接查询股票价格API,不同的节点会在不同的时间收到不同的响应,从而导致共识破裂。区块链的分叉并非源于治理纠纷,而是因为价格数据源中的舍入误差。
预言机的存在是因为区块链选择了确定性而非连接性,而这一选择是不可更改的。每一种预言机解决方案都是为了在不破坏区块链原本可信特性的前提下,将外部数据引入链上。
神谕的实际运作方式
标准的 Oracle 架构有三层:数据源、聚合和链上交付。
在数据源层,预言机节点连接到外部数据提供商。例如,对于价格数据源,这可能意味着同时从 Coinbase、Kraken、Binance 和其他几个交易所获取 ETH/USD 价格。对于天气预言机,这可能意味着连接到多个气象 API。原理相同:任何单一数据源都不可信。
在聚合层,预言机网络将这些数据点合并成一个单一值。最常用的方法是加权中位数,它可以剔除异常值,并产生一个任何单个数据提供者都无法操纵的结果。例如,如果七个节点报告的价格在 2,000 美元到 2,005 美元之间,而一个节点报告的价格为 50,000 美元,则中位数会忽略这个异常值。
在交付层,聚合值被写入链上的智能合约。此时,外部数据转化为区块链数据,不可篡改,且任何引用它的合约均可访问。链上合约存储最新值,任何 DeFi 协议都可以读取它。
这种三层模型理论上听起来很简洁。但实际上,每一层都会引入攻击面、延迟和成本。要了解预言机的故障点,需要分别分析每一层。
预言机问题的解释
预言机问题并非漏洞,而是区块链设计中一个根本性的矛盾,无法彻底解决,只能管控。
区块链的安全性源于去中心化。没有任何单一实体控制账本。但是,如果区块链上的每个智能合约都从由同一家公司控制的单一预言机读取价格数据,那么整个系统的安全性就仅仅取决于这家公司的安全性。区块链本身是去中心化的,但它所依赖的数据并非如此。
这就是为什么预言机问题有时被描述为区块链安全的最后一公里问题。即使你构建了一个经过完美审计的智能合约,并将其部署在一个完全去中心化的网络上,如果为其提供数据的预言机遭到破坏,你仍然会损失一切。
这些解决方案可分为两类。中心化预言机为了速度和简易性而牺牲了去中心化。预言机由单一实体运行,用户信任该实体能够提供准确的数据。这种方式适用于低风险应用,但不适用于持有数十亿美元资产的去中心化金融(DeFi)协议。
去中心化预言机网络通过将数据收集和聚合分散到多个独立节点来解决信任问题。Chainlink 首创了这种模型,它要求一定数量的节点(可配置)在数据发布到链上之前达成一致。经济激励机制要求节点运营商质押抵押品,如果提供不准确的数据,抵押品将被罚没,从而将他们的经济利益与诚实报告挂钩。
两种方法都无法彻底消除预言机问题。去中心化预言机网络降低了被操纵的可能性,但增加了成本和延迟。这种权衡是设计上的选择,而非设计缺陷。
为什么DeFi离不开预言机?
这种依赖关系是算术上的,而非哲学上的。以 Aave 这样的借贷协议为例。用户存入 1 个 ETH 作为抵押品,借入价值 1500 美元的稳定币。该协议需要持续了解 ETH 的价格,以确定抵押品是否足以偿还贷款。
如果以太坊 (ETH) 价格从 2000 美元跌至 1400 美元,贷款抵押不足,必须进行清算。由于没有预言机提供当前价格,该协议无法触发清算。稳定币借款人将累积坏账,协议也将破产。
这并非假设情景。所有借贷协议、永续期货交易所、期权平台以及所有区块链上的合成资产都依赖预言机提供的价格来决定偿付能力。所有区块链上依赖预言机价格信息的DeFi协议的总锁定价值超过2000亿美元。
这种依赖性不仅限于价格数据。预测市场需要预言机来报告事件结果。保险协议需要天气数据。现实世界的资产平台需要证明基础资产存在且估值正确。在每种情况下,预言机都是至关重要的组件,它的失效会导致整个应用程序失效。
Oracle 操纵:攻击是如何发生的
预言机攻击遵循可预测的模式。攻击者会识别出一个 DeFi 协议,该协议的价格来源于单一的链上来源(通常是去中心化交易所的流动性池),而不是去中心化预言机网络。
该攻击在单笔交易中分三步进行。首先,攻击者进行闪电贷,在单笔交易期限内无需抵押即可借入数百万美元。其次,攻击者利用借入的资金操纵目标协议所依赖的去中心化交易所(DEX)的价格,执行大规模掉期操作,使报告价格波动 50% 甚至更多。第三,攻击者以操纵后的价格与目标协议进行交互,以人为抬高的抵押品进行借款或以人为抬高的价格平仓。
整个过程以原子方式执行。如果任何一步失败,交易都会回滚,攻击者除了支付 gas 费用外不会有任何损失。如果交易成功,攻击者偿还闪电贷并保留利润。
这并非理论上的攻击途径。自 2020 年以来,闪电贷预言机操纵已导致 DeFi 协议损失数亿美元。所有案例的共同点在于,这些协议都依赖于可操纵的链上价格源,而非外部预言机网络。使用 Chainlink 或类似去中心化预言机网络的协议不会受到此类攻击的影响,因为价格信息无法在单笔交易中被操纵。
这个结论与直觉相悖。最去中心化的价格来源——链上去中心化交易所(DEX)池——往往是预言机安全性最低的。而对于去中心化金融(DeFi)来说,最安全的价格来源是聚合中心化交易所价格的链下预言机网络,正是因为这些价格更难被原子性地操纵。
随着去中心化金融(DeFi)的发展,此类攻击的规模也随之扩大。2022年10月,Solana平台上的Mango Markets因预言机操纵漏洞损失了1.14亿美元。攻击者利用相对较少的资金,操纵了Mango用作价格来源的去中心化交易所(DEX)中MNGO代币的价格,然后利用平台上所有可用资产的虚高抵押价值进行借贷。整个操作耗时不到20分钟。
Euler Finance在2023年3月因类似原因损失了1.97亿美元。BonqDAO、Harvest Finance以及数十个规模较小的协议都遭遇了同样的困境。几乎所有案例的事后分析都发现了相同的根本原因:这些协议使用了链上价格源,而该价格源可能被一笔大额交易左右,而非使用能够聚合多个独立外部价格源的预言机网络。
除了价格信息之外,还有其他类型的预言机吗?
行业对价格信息的关注掩盖了预言机在实践中发挥的广泛作用。
可验证的随机性。链上游戏、NFT 铸造和彩票合约都需要可证明公平的随机数。区块链的设计本质上是确定性的,这意味着它们无法原生生成随机数。预言机网络通过使用可验证的随机函数在链下生成随机数来解决这个问题,然后将结果连同证明该随机数未被篡改的加密证明一起发布。
跨链消息传递。当用户将资产从以太坊桥接到 Arbitrum 时,预言机网络会验证源链上的存款交易是否已完成,然后才会将资产释放到目标链上。Chainlink 跨链互操作协议 (CCIP) 已成为Aave 等协议处理跨链操作的默认基础设施,每年处理数十亿美元的转账。
储备金证明。稳定币和包装代币需要证明其储备金与其流通供应量相符。监控托管钱包并在链上发布储备金余额的预言机提供了这种保证。如果没有储备金证明预言机,用户就只能信任发行方自行发布的审计报告。
计算预言机。有些操作成本过高,无法在链上执行。预言机网络可以在链下执行复杂的计算,并将结果连同计算正确执行的证明一起上传到链上。对于需要在区块链上结算结果,同时处理大型数据集或运行机器学习模型的应用而言,这种模式的重要性日益凸显。
预言机类型的激增反映了区块链与现实世界交互方式的更广泛转变。早期的区块链应用都是自包含的。比特币在其自身的账本上进行地址间的价值转移。以太坊使用存储在自身状态中的数据执行逻辑。两者都不需要外部信息。只有当开发者开始创建引用现实世界条件(例如资产价格、事件结果、身份声明和物理测量数据)的应用时,对预言机的需求才出现。每增加一种新的现实世界参考类别,就会产生一种新的预言机需求类别;而每增加一种新的预言机需求,就会为预言机问题开辟一个新的表现领域。
Chainlink 的主导地位问题
Chainlink在预言机市场的地位引发了一个业内人士不愿深入探讨的问题。如果去中心化金融的全部意义在于消除单一依赖点,那么大约75%的DeFi总价值都依赖于一家预言机提供商,这意味着什么?
辩方认为Chainlink本身就是去中心化的。其价格数据由数十个独立的节点运营商生成,没有任何单个运营商能够操纵数据。该网络已处理了数万亿美元的交易额,其核心价格数据基础设施未发生重大漏洞。
令人担忧的是,Chainlink 内部的去中心化并不能解决预言机层集中在单一协议中的问题。如果 Chainlink EntryPoint 合约中发现漏洞,或者监管机构对 Chainlink Labs 采取了行动,其影响将几乎同时波及所有主流 DeFi 协议。
竞争对手确实存在。由 Jump Crypto 支持的 Pyth Network 专注于提供来自机构做市商的高频价格信息。API3 采用第一方预言机模式,让数据提供商运行自己的预言机节点,而不是依赖第三方中介。Chronicle 最初为 MakerDAO 构建,为最大的去中心化稳定币提供预言机基础设施。
市场尚未像在多链部署方面那样,在多预言机标准方面达成共识。大多数协议都使用单一预言机提供商。这种集中化究竟是系统性风险,还是仅仅是网络效应和安全记录的自然结果,目前仍存在争议,但其对DeFi的韧性有着重大影响。
这部分内容未涵盖
本文并未详细探讨预言机网络的代币经济机制。LINK、PYTH 和 API3 代币各自拥有不同的质押、奖励和治理机制,这些机制会影响预言机的安全性和激励机制的一致性。这些机制值得单独分析。
本文并未探讨新兴的人工智能预言机(AI Oracle)这一概念。人工智能预言机利用机器学习模型生成预测,而非直接传递观测数据。它们引入了一种截然不同的信任模型,目前尚处于早期阶段,难以进行最终评估。
本文不深入探讨任何链上预言机网络组件的具体智能合约架构。预言机的安全性部分取决于其链下基础设施,部分取决于其链上合约的正确性,而审计这些合约需要超出本文范围的技术深度。
信任预言机前的实际检查
请核实数据源数量。一个汇总了来自 21 个独立数据源的价格信息源比一个仅汇总了三个数据源的价格信息源更可靠。大多数 Oracle 控制面板都会公布此信息。如果您使用的协议没有披露其 Oracle 数据源数量,则需要引起注意。
检查更新频率。有些预言机数据源会在每个区块更新,而另一些则仅在价格偏离阈值(通常为 0.5% 到 1%)时才更新。使用每小时更新一次数据源的借贷协议会受到两次更新之间价格快速波动的影响。对于任何清算时机至关重要的协议而言,价格偏离阈值和心跳间隔都非常重要。
确认预言机位于外部,而非链上。如果 DeFi 协议的价格来源于自身的流动性池或单一的去中心化交易所 (DEX),那么无论底层区块链的去中心化程度如何,它都容易受到闪电贷操纵。聚合链下数据的外部预言机网络则更能抵御此类攻击。
寻找备用机制。设计良好的协议会实现预言机备用机制。如果主预言机停止更新,协议应该有备用预言机或熔断机制来暂停操作,而不是继续使用过时的数据。没有备用机制的协议,一旦预言机出现故障,就可能因为价格错误而引发连锁清算。
阅读 Oracle 事件历史记录。每个主要的 Oracle 网络都经历过服务中断、更新延迟或极端情况下的故障。从未发生过事件的网络要么是太新而尚未经过测试,要么是规模太小而未成为攻击目标。重要的是事件是如何处理的,以及随后进行了哪些架构变更。
常见问题
什么是区块链预言机?
区块链预言机是一种将智能合约与区块链外部的数据和系统连接起来的服务。智能合约本身无法访问外部信息,因为区块链的设计是确定性的,这意味着每个节点必须从相同的输入产生相同的结果。预言机通过从外部世界获取数据、聚合数据以降低篡改风险,并将数据上传到链上,供智能合约读取和处理,从而解决了这个问题。
为什么智能合约需要预言机?
智能合约只能根据区块链上存储的数据执行逻辑。如果没有预言机,借贷协议将无法得知抵押品的当前价格,预测市场将无法验证事件结果,保险合同也无法确认航班是否延误。预言机提供外部数据,使智能合约能够应用于现实世界,而不仅仅局限于链上操作。
什么是预言机问题?
预言机问题是区块链去中心化与外部数据需求之间的根本矛盾。依赖中心化预言机的去中心化区块链实际上会将自身的安全性降低到预言机本身的安全性。这个问题无法彻底解决,只能通过去中心化的预言机网络来缓解,这些网络将数据收集分散到多个独立的运营商,从而增加篡改数据的难度和成本。
DeFi 中的预言机攻击是如何运作的?
大多数预言机攻击利用的是使用链上价格源(例如单个去中心化交易所流动性池)而非外部预言机网络的协议。攻击者通过闪电贷获取资金,利用借来的资金在单笔交易中操纵链上价格源,然后以操纵后的价格与易受攻击的协议进行交互。使用去中心化预言机网络并进行链下数据聚合的协议能够抵御此类攻击,因为价格信息无法在单笔交易中被操纵。
Chainlink是什么?它为何占据主导地位?
Chainlink 是一个去中心化预言机网络,它聚合来自多个独立节点运营商的数据,并将其传递给 30 多个区块链上的智能合约。Chainlink 在预言机市场占据主导地位,保障了 DeFi 总价值的约 75%,累计交易额超过 27 万亿美元。其主导地位源于先发优势、强大的安全记录以及网络效应,这些优势使得新协议更容易集成。
集中式预言机和分散式预言机有什么区别?
集中式预言机依赖单一实体获取和交付数据。它速度更快、成本更低,但存在单点故障的风险。去中心化预言机将数据收集和聚合工作分散到多个独立的运营者身上,发布数据点前需要达到一定的参与度。去中心化预言机更能抵抗操纵和审查,但运行速度较慢且成本更高。
预言机可以提供哪些类型的数据?
预言机几乎可以提供任何类型的外部数据。最常见的用途是为去中心化金融(DeFi)协议提供价格信息,但预言机还可以提供用于保险合同的天气数据、用于预测市场的体育赛事结果、用于游戏的可验证随机数、用于稳定币的储备余额证明、用于桥接的跨链状态验证,以及用于需要链下处理的应用程序的计算结果。
神谕是否存在安全隐患?
预言机既是至关重要的基础设施,也是潜在的攻击面。一旦预言机遭到入侵,就会向智能合约提供错误数据,导致清算错误、交易定价失误或借贷资金池枯竭。去中心化预言机网络、加密验证、经济质押激励以及协议级回退机制,都旨在管理而非消除这种风险。在评估 DeFi 协议安全性时,预言机架构与智能合约审计同等重要。
本文仅供信息分享,非商业用途,版权归原作者所有。如有侵权请联系删除。内容不构成投资建议。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.