预言机(Oracle)
又称: 预言机 · Oracle · 价格预言机 · 喂价
定义
预言机是把链下数据(如币价、汇率、体育比分)传送到区块链上供智能合约使用的服务,DeFi 借贷、衍生品和稳定币都依赖它获取价格。
预言机是怎么运作的
智能合约自己无法访问互联网,不知道 ETH 现在值多少钱。预言机负责从多个交易所和数据源收集价格,汇总后写到链上,合约再根据这个价格计算抵押率、触发清算或结算合约。Chainlink 是使用最广的去中心化预言机网络之一。
预言机的质量直接决定协议安全。如果价格只取自一个流动性很浅的 DEX 池子,攻击者就可能用大额资金短时间操纵价格,让协议按错误价格放贷或清算,这类事件在 DeFi 历史上反复出现。
好的预言机设计会聚合多个数据源、使用时间加权平均价、设置偏离阈值和更新频率。作为用户,了解你使用的协议采用哪种价格源,有助于判断清算是否可能被异常价格触发。
举个例子
假设某借贷协议直接用一个小池子的实时价格作为抵押品报价,池中有 10 万美元流动性。攻击者用闪电贷借来 200 万美元,在一笔交易内把该代币价格从 1 美元拉到 5 美元,以抬高后的价格抵押借出大量稳定币,再把价格砸回去。如果协议使用聚合多家交易所的预言机,这次单池操纵就很难生效。
常见误区
- 以为链上价格永远准确,不了解协议使用的是哪种价格源。
- 在预言机更新较慢的协议上高杠杆操作,剧烈行情时被延迟价格清算。
- 把预言机和交易所的标记价格、指数价格混为一谈。
继续学习与实操
常见问题
为什么区块链需要预言机?
区块链为了保证每个节点结果一致,不能直接读取外部数据,只能由预言机把经过验证的数据写到链上供合约读取。
预言机被攻击会怎样?
错误的价格可能导致协议被低价清算、超额借款或资金被掏空。所以协议通常会聚合多源数据并设置保护机制。