HashKey 曹一新:详解主流去中心化借贷产品预言机原理_EFI:WDEFI

从安全性和时效两个维度比较MakerDAO、Aave与Compound的预言机原理差异。

预言机在去中心化金融系统中的资产定价环节尤为重要,预言机报价的安全性、时效、准确度、成本是我们应当重点关注的维度。本文全面解析主流去中心化借贷产品采用的预言机原理并从安全性和时效这两个维度进行对比。

广义预言机及其信息源形式

预言机作为一种重要基础设施已被广泛讨论,过去一般狭义地指代为区块链提供链外可信数据的模块,本文探讨更为广义的预言机——依赖信息源为去中心化系统输送信息的机器。输送的信息不一而足,可能是用于交易市场的价格、指数、宏观参数等信息;或是用于预测市场的气候、选举等信息。而依赖的信息源可来自链上或链外,具有不同的去中心化程度。

图1.不同类型的信息源和预言机示例

图1给出了几个示例:Coinbase交易所提供的经签名认证的API是典型的由权威声誉背书的中心化链外信息源;Uniswap作为链上原生的去中心化交易所,提供的TWAP预言机是典型的去中心化链上信息源。

这两类信息源各有优劣,中心化链外信息源存在运营方信用风险,但能覆盖的信息类型比较全面且一般时效性好、准确度高;去中心化链上信息源利用区块链去除了信用风险,但目前以AMM价格预言机为主,类型单一,且出现过多起被操纵事件。

它们均可以作为广义预言机的基石,通过聚合、相互锚定等方式使之更具鲁棒性和安全性,并参与去中心系统的运转。例如,

MakerDAO构建了一个联盟预言机系统,授权若干第三方链外信息源组成联盟为资产提供价格信息,能一定程度抵御个别中心化信息源的信用问题,但不排除联盟合谋腐败风险,目前依赖治理和激励机制加以管理。

Chainlink提出了更为去中心化的预言机系统,通过经济激励机制和声誉系统管理无需许可的信息源。

Compound提出一种将中心化链外信息锚定去中心化链上信息的方案,在保留中心化信息源优势的同时强化风控。本文从价格预言机出发探究目前排名前三的去中心化借贷产品的采纳情况,并对其原理及性能进行展开分析及对比。

表1.Top3去中心化借贷产品采用的预言机形式及信息源

MakerDAO的联盟预言机

MakerDAO作为老牌DeFi项目,在2017年6月推出了单一锚定ETH的稳定币DAI,并基于其自建的第一版预言机为抵押品ETH进行报价。该版预言机由14个获得MakerDAO许可的个人匿名信息源提供ETHUSD的报价,并通过一个聚合合约获得报价的中位数,最终喂价给MakerDAO系统的主合约。通过匿名性抵御信息源节点被操纵或勒索的风险。由MakerDAO治理组织对信息源的选聘、信息源数量等配置参数进行管理。

MakerDAO在2019年9月推出第二版预言机,相较第一版,除了支持多币种报价的功能改进和性能提升外,主要改进点在于:

提议添加DeFi合作伙伴作为机构信息源;

提议创建预言机团队角色及构建预言机治理框架;

提出优化的预言机激励机制。

联盟预言机的风险在于使用者需信赖信息源和治理机构,上述改进致力于使MakerDAO预言机更加去中心化:引入去中心化信息源能一定程度缓解中心化信息源的信用风险,但可能会引入更多被第三方操纵的风险;而治理机制和激励机制的改进对系统的影响往往是长程的,无法立竿见影。

MakerDAO预言机原理

图2从左往右展示了MakerDAO预言机依赖链下许可信息源报价的流程。

图2.MakerDAO预言机架构

为了保证链下数据安全地传输到链上,每个获得许可的信息源节点运行一个客户端,将用以太坊私钥签过名的价格信息通过名为scuttlebutt的分布式gossip协议广播到中继器。

中继器监听这些签过名的消息,检查其活性,并将价格数据和签名打包成一条以太坊交易,广播到以太坊网络,由链上预言机模组进一步处理价格信息。

链上预言机模组主要包括Median和OSM两个合约。Median合约主要任务是根据第2步推送的价格及签名序列,验证时间戳、信息源是否在白名单、价格序列是否按递增排序、用布隆过滤器验证价格来自不同的信息源,上述验证均通过后计算中位数并替代原值。Median合约内维护了一个信息源白名单,用于检查价格信息更新是否来自许可地址。MakerDAO治理机构通过更新白名单来调整信息源,并有权更新计算中位数所需最少信息源数目。

OSM是进一步提升预言机安全性的智能合约,主要用于对报价设置延时机制从而为识别和响应潜在的安全事件预留时间。OSM合约内维护了一个价格队列,最新的价格信息只有在1个小时之后才会被“中间人”Spotter合约采用并供主合约调取。

紧急预言机

紧急预言机是MakerDAO抵御攻击的最后一道防线,由MKR持有人投票选定。紧急预言机有权单方面触发紧急关停,故而能通过冻结单个预言机来缓解挤兑风险。

MakerDAO预言机的时效

通过上面的流程分析,我们可以发现MakerDAO预言机的工作时效主要受以下环节影响:

信息源更新频率

信息源基于两个原则提交价格更新信息:a)当前价格与上次提交价格差别大于规定阈值;b)当上次提交价格超过6个小时。

Median合约更新频率

即时,取决于中继器传送频率。Median合约每当接收到中继器传送过来的价格序列,就会马上执行验证流程并在通过检查后更新中位数。

OSM合约更新频率

每隔大约1小时。一个外部EOA地址通过调用一个名为MegaPoker的公共合约,能批量执行OSM合约内的poke()方法完成各抵押资产OSM合约内价格队列的更新,接着依次触发Spotter合约读取最新价格。为了维持这一更新频率,OSM合约内poke()方法限定了只有在区块时间戳间隔满足大于等于3600秒时才能被再次调用。图3展示了目前MakerDAO预言机支持的24种抵押资产的OSM合约地址及Spotter合约地址。

网络传输和区块生成时滞

这两个延时都在秒级,相对OSM一个小时延时可忽略不计。

图3.MakerDAO预言机支持的24种资产OSM合约地址及Spotter地址

可见MakerDAO预言机的价格更新频率最快是1小时一次,但会在木桶效应下受制于Median合约内价格更新频率。我们可以通过ETHUSD的Median合约交易记录测量其更新频率。从图3可以看出,该合约更新报价的时间间隔在9分钟和219分钟左右出现峰值,有70%的概率在60分钟内更新报价,即对应于OSM合约每隔1小时获得的报价是1小时前更新过的;而剩下30%的概率超过1小时,3.65小时是大多数情况下该预言机价格更新延时的上限。

图3.MakerDAO预言机ETHUSDMedian合约LogMedianPrice事件时间间隔分布

Aave采用Chainlink报价

Chainlink预言机的原理

Chainlink预言机与MakerDAO预言机的架构实际上非常类似,最大的区别在于信息源无需获得Chainlink许可,其原理和经济激励机制在其它研报多有提及,在此不展开详述。Chainlink系统可简述为两类节点的工作:

链外节点

响应聚合合约的请求,将链外信息通过发送以太坊链上交易的方式传输给聚合合约,聚合合约在收集到指定阈值数量的链外节点回复方生成聚合价格。

链上节点

在以太坊上运行智能合约,一般由社区用户自行赞助组建,主要包括p代理合约和聚合合约,Proxy内部存储了各个报价资产的最新Aggregator合约地址,接到用户合约的链上请求便访问相应Aggregator获得其存储的最新价格,并在同一笔链上交易内将报价反馈至用户合约。

图4.用户调用Chainlink预言机流程

触发Aggregator合约开启新一轮聚合报价的因素有两个:

距离上次聚合报价延时超过一定阈值;

合约会监听一些信息源的报价并与上次聚合报价对比,当价差偏离一定阈值时触发。

图4.Chainlink预言机关于ETH/USD价格数据的聚合界面

图4是Chainlink对ETH/USD的聚合报价页面,可见目前有21个链外节点参与工作,价格偏差阈值是0.5%,延时阈值3小时。根据ETHUSD的Aggregator合约NewRound日志记录频率,我们可以测试实际的价格更新频率。如图5所示,更新间隔峰值为10个区块,70%的概率在10分钟内更新,最高上限约70分钟。

图5.Chainlink预言机ETHUSDAggregator合约NewRound事件区块间隔分布

Compound的锚定式预言机

Compound设计了一个名为OpenPriceFeed的预言机系统,该系统与上述联盟预言机和去中心化预言机有所不同,采用了中心化信息源锚定AMM链上价格的组合形式,主要有两个合约。

OpenOraclePriceData

任意中心化信息源可向OpenOraclePriceData合约传送用私钥签名的价格数据,OpenOraclePriceData合约负责中立地接收这些价格及签名信息并开放给第三方免许可调用。

UniswapAnchoredView

目前Compound自身系统只采纳了CoinbasePro提供的API数据。通过UniswapAnchoredView合约对OpenOraclePriceData存储的签名价格进行验证筛选,只有Coinbase签发、并且价格位于Uniswap的TWAP预言机报价一定区间内,该合约才接受并更新。目前价格区间设定为最大偏离锚定价格的±20%。

值得说明的是,任何人都可访问CoinbaseProAPI接口获取时间戳、价格、签名信息,并将其提交至UniswapAnchoredView合约,只要能通过其验证,用户可获得即时价格。也就是时效是三种预言机里最好的,但是在2020年11月26日发生的Compound大规模清算事件中,Coinbase交易所内DAI的价格发生剧烈波动,清算机器人利用这个价差,在一笔交易内完成了抵押物价格更新和清算流程。

预言机性能对比

三款借贷产品各自采用了不同的机制来对中心化信息源的信用风险、单点攻击风险进行风控,但预言机安全性和时效似乎是鱼与熊掌不可兼得。MakerDAO以较为保守的方式为处理突发事件预留时间,导致报价有至少1个小时的延时;Chainlink的报价频率相对较高,目前参与报价的去中心化节点还比较少。这两者的耗时主要受制于于多个信息源的聚合阶段。Compound的预言机目前只信任一个中心化信息源,不存在聚合过程,并允许任意第三方触发价格更新,获得最优时效。但锚定机制设定的波动范围在±20%,在市场出现极端行情下单个交易所的异常报价容易被利用;且中心化信息源发生单点故障或被攻击时,虽然可以自动弃用而依赖AMM预言机的报价,但这又将风险点转嫁到AMM预言机上了。

表2.Top3去中心化借贷产品采用的预言机风控机制和时效对比

总结与思考

预言机作为重要的基础设施已被广泛提及,预言机的安全性决定了去中心化系统的抗击风险能力和运行的鲁棒性,预言机报价的准确性和时效对DeFi业务的运营起到了至关重要的作用,特别是以借贷产品为代表的项目很多依赖超额抵押模式,预言机对抵押物价值的评估直接决定了是否以及何时触发清算。通过对去中心化借贷产品预言机安全和时效性的分析,可见提高安全性的机制一定程度上会削弱时效,综合对比Chainlink的架构有望在这两个维度获得最优权衡,但仍需更多链下节点加入来提高其去中心化特性。在Compound的锚定预言机模式下,增加要求的信息源数量,并保留锚定AMM预言机的特性,减少波动带宽,可能是改进方向。

撰文:曹一新,就职于HashKeyCapitalResearch

审核:邹传伟,万向区块链首席经济学家

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-6:643ms