加密资产 · 高级 · 阅读约需 10 分钟

预言机:合约所相信的价格

区分市场价格与合约输入,并分析过时、稀疏或不匹配的参考数据。

预言机:合约所相信的价格 — 原创教学插画。不提供实时价格或业绩承诺。
原创教学插画。不提供实时价格或业绩承诺。

代码与观察之间的边界

智能合约可以始终如一地执行计算,却使用质量欠佳的输入。预言机提供合约无法仅从自身执行状态独立推断的信息,例如外部市场价格。Ethereum 的预言机文档解释了区块链执行与外部数据之间的这一边界。重要问题不仅是数据源是否更新,还包括更新后的数字意味着什么。

一个价格可能代表单个交易场所、汇总值、时间加权观测值或赎回价值。这些定义回答的是不同问题。交易所成交价描述一笔交易;参考价支持某项规则;赎回价值描述特定条件下的一项索取权。不能不加说明就相互替代。

检查数据源规范

针对一个虚构借贷市场,写下资产对、单位、小数位、更新条件和备用处理行为。确定数值是以美元、另一代币还是基础资产报价。一个看起来正确、却使用了错误小数缩放系数的数值,被另一组件解释时可能造成灾难性错误。

也要检查数据时效性。仅在偏差达到阈值或经过一定时间后才更新的数据源,与快速变化的订单簿存在差异,可能是正常的。应用必须决定数据多旧算过期,以及届时如何处理。暂停新增借款可以防范过期数据,但已有仓位仍会面临后续价格更新的影响。不存在普遍无害的备用处理方式。

流动性是输入质量的一部分

清淡市场的最后成交价,可能无法代表大额可成交交易的价格。聚合多个场所可以减少对单一场所的依赖,但共同所有权、共享流动性或同步中断,可能限制所获得的独立性。时间平均会平滑短期波动,同时引入延迟。每种设计都用一组弱点交换另一组弱点。

考虑一种报价为 $10、附近买盘深度却只有 $5,000 的代币。按该边际价格将抵押品估值为 100万美元,并不能说明清算者能变现 100万美元。预言机可能正确报告其定义的参考值,但风险模型却高估可回收所得。数据质量与清算能力是相关但不同的问题。

对抵押比率的两端进行压力测试

抵押贷款同时依赖抵押品价格与债务价格。借入被称为稳定的代币,并不会让其美元价值在数学上固定。如果抵押品下跌,同时回购债务的成本上升,仓位会从两个方向恶化。应分别模拟这些变化,而不是习惯性地固定其中一侧。

假设抵押品价值 $12,000,债务为 6,000 个单位,最初每单位值 $1,假设清算阈值为 75%。初始健康比率为 1.50。如果抵押品下跌 25% 至 $9,000,而债务单位升至 $1.10,则比率变为 $9,000 × 0.75 ÷ $6,600,约为 1.023。看似充裕的缓冲已接近耗尽。

研究集成方式,而不只是服务商

信誉良好的数据提供商,并不保证应用选用了正确数据源、妥善处理不可用值,或正确检查时间戳。审查应用文档、相关审计及参数决策。在纸面练习中,分别追踪正常价格更新和缺失更新如何影响计算。说明哪里缺乏证据,而不是用自信填补空白。

有用的监测计划应区分市场变动与价格源异常。将所述参考值与独立观察及价格源预期更新政策比较。差异值得调查,而不是自动交易。本课旨在理解合约行为和操作风险,并非利用输入漏洞,也不是假定表面错价可以安全获利。

作为额外练习,用三个参考假设计算同一抵押品仓位:数据源最近报告值、当前可成交买价以及压力下卖出价。清楚标明每项。得到的区间不是置信区间,而是对估值选择的敏感性。其目的是揭示哪个价格定义驱动结论,以及哪里需要更多流动性证据。

价格更平滑,也可能意味着反应更慢

假设十个等长观察期中,前九期价格均为100,最后一期降至70,简单平均值为97。平均可以减弱短暂波动的影响,但这个数并不是最新市场价格。例子说明权重和时间窗口的作用,不代表所有预言机都使用同一种平均公式。

检查实际数据源如何取样、如何加权、观察窗口有多长,以及什么条件会触发更新。较长窗口可能提高短时操纵的难度,也可能在真实价格持续变化后留下更大的滞后。不能仅凭“采用平均价”就判断数据质量足够。

分别测试一次短暂异常报价和一次真实而快速的持续下跌。同一组设置可能在前者中有帮助,在后者中却带来问题。分析时既要考虑防止瞬时干扰,也要考虑及时反映经济变化;二者之间的取舍取决于应用如何使用这个价格。

先检查单位,再检查数字是否合理

某数据源可能用另一种加密资产为代币报价,而不是直接用欧元。假设每枚代币价格为0.08单位基础资产,基础资产价格为2,500欧元,则换算结果为200欧元。选错交易对、倒置价格或误读小数缩放,都可能生成外观正常却含义错误的数字。

为每个输入记录资产、报价单位、小数精度和时间戳。把两个不同时点的价格相乘,会引入不同步风险;一个数据源刚更新,并不能弥补另一个已经停滞。验算时保留完整的单位转换过程,而不是只比较最后结果是否接近预期。

还要检查应用遇到过期、零值或异常输入时如何处理。暂停新操作、切换备用价格和继续沿用旧价格,具有不同后果。分别分析它们对新增借款和既有仓位清算的影响,不要把“有备用机制”直接理解为所有风险都已消除。

快速测验

这个概念掌握了吗?

准确报告的参考价格,仍可能高估清算所得吗?

一般教育内容,并非交易建议。示例简化了真实市场。使用任何产品前,请核实具体合约、成本与规则。
下一篇:DeFi 可组合性:梳理收益背后的依赖关系 →