【传声筒】DeFi 新叙事?无需预言机的智能合约的创新安全模型
2023-10-01 20:59
Z2H_Labs
2023-10-01 20:59
订阅此专栏
收藏此文章



点击蓝字 关注我们


作者:Ac-Core@YBB Capital

编译:H+H@InfoFlow

排版:ZaynR@InfoFlow





前言




预言是 DeFi 世界的重要因素,虽然不同协议的安全性通常由底层智能合约网络继承,但它仍然依赖于预言机(Oracle)的正常运行,如果协议的预言机遭受攻击或被破坏,那么整个协议就可以被操纵。最近,新的 DeFi 协议构建者正通过概念化全新的借贷和衍生品架构来创造新叙述,这些协议正变的不再依赖预言机。





DeFi 的风险和解决方案




DeFi 最大的吸引力来自于它的去中心化。它被定义为有着众多无需许可支付协议的开放金融系统。与传统金融相比,尽管 DeFi 具有很强的开放程度,它的规则、利润甚至风险都以更加“隐蔽”的方式被揭露。

 

经过几年的发展,DeFi 遭遇了多起总计数十亿美元金额的黑客攻击事件,甚至连死忠也不断质疑它是否能成为未来金融的主流。其中,仅 2022 年黑客通过 DeFi 协议和跨链桥窃取的金额就超过 38 亿美元,是加密货币历史上被盗金额最大的一年。如果未来有更多人进入加密世界并使用 DeFi,那么安全性是首要考虑的问题。






Oracle 风险和“原语”




Nascent 认为,“Oracle-free”的概念将为 DeFi 从根本上提供更加稳健和安全的技术架构。如今,DeFi 更愿意将自己定义为“原语”,并希望更多团队在其基础上构建产品或投资组合协议。一旦合约有了任何外部依赖,它们就会继承所有相关的风险,同时合约也会升级以承载更大的生态系统,而升级会波及到本就多变环境的现在和未来,这引入了额外的风险因素。顾名思义,Oracle 的引入会产生对外部数据的依赖,而这种关系会带来潜在的风险。为此 Dan Elitzer 提出了一个新的定义:为了符合原语的标准,一个合约除了依赖区块链上部署的其他合约之外,不能依赖于任何外部因素,例如,no management、合约可扩展性和预测因素。

 

但现实情况是,如今符合这一基本定义的 DeFi 协议非常少见,其中最具代表性的是 Uniswap V1。但即使是符合上面 Dan Elitzer 提出的定义的 Uniswap V2 和 V3,从安全角度来看也不合格。因为它们允许对某些功能进行治理,例如关闭协议费用和引入成本层池。

 

话虽如此,这种狭隘的治理功能并不会因为其他协议中存在的大规模升级而带来系统性风险,因此 Uniswap 迄今为止所有版本都取得巨大成功的原因是缺少 Oracle 和全链这两个关键因素。

 

毫无疑问,Uniswap 是去中心化交易领域的主导者,它取得了巨大的成功,并在其之上催生了许多去中心化交易所的实验。例如,Uniswap V3 引入了非同质流动性头寸的概念,允许流动性提供者(LP)将其流动性集中在特定范围内,这使得 LP 可以从该范围内交易产生的交易费用中获取更大份额并从中获利,但也会因价格波动而遭受无偿损失。这使得资本更有效利用和 LP 市场的更专业化。随之而来的是一系列头寸管理工具,如 Arrakis、Gamma 和 Sommelier,虽然这对 DEX 非常友好,但贷款协议仍然需要一个预言机。

 

今年 3 月,Euler Finance 借贷协议遭到黑客攻击,造成 2 亿美元损失。Euler Finance 允许用户提供抵押品和借贷,并具有一些独特的功能。简而言之,其问题源于特定功能缺乏安全检查,导致用户破坏了借贷市场的基本不变性。

 

对于借贷协议,合格的抵押品仅限于具有可靠预言价格反馈的资产。贷款参数(例如,贷款与价值比率)由协议控制,所以任何坏账都是协议的责任,而不是个别贷方的责任。同样,依赖于预言机而缺乏内部价格发现机制的衍生品协议很容易受到价格滞后而没有更新的影响,这可能会严重限制其规模和用户体验。这也解释了为什么 Avi Eisenberg 能够在去年 10 月对 Mango Markets 进行攻击。





为什么 Uniswap 目前是安全的




AMM 可以具有任何 DeFi 源代码(原语)当中的最简单的基本不变性:例如:tokenBalanceX * tokenBalanceY == k(常数乘积)。Uniswap V2 中的 Pair 接口都是基于以下四个函数不变性来实现的:


- Mint:添加到 k;

- Burn:从 k 中减去;

- Swap:交换 x 和 y,保持 k 不变;

- Skim:重新调整 tokenBalanceX * tokenBalanceY 使其等于 k。


Uniswap V2 是安全的:所有函数都服务于一个简单的核心不变性。唯一有争议的是它可以切换费用开关的治理模式,但这并没有触及核心不变性,它只是影响代币余额所有权的分配。因为它们简洁带来的安全模式(不可扩展的智能合约和基本不变性),Uniswap 本身从未遭受过黑客攻击。





重构借贷协议




最近,我们看到了许多无预言机的借贷协议项目出现,例如 Ajna、Ethereum Credit Guild、MetaStreet’s Automated Tranche Maker 以及 Blur 和 Paradigm 推出的 Blend。


与传统的 DeFi 借贷市场不同,Gauntlet 没有抵押品,也没有像 Chainlink 那样为所有用户和协议提供“真实”资产价格来源的单一通用预言机。相反,贷款人需要评估风险并决定向借款人索取一定数量的抵押品,并且必须随着资产价格的变动更新其借款标准。其运作方式通常是贷款人选择他们愿意接受的指定抵押品,例如 BAYC Token 和单独的 Bored Ape NFT 等,他们愿意提供给借款人贷出资产(例如 USDC)以及要求借款人清算的贷出资产与抵押资产的比率。最终,借款人可以提交抵押品,并以当前市场利率借入资产。


请注意,由于借款人和贷款人已同意贷款将根据每项资产的单位数量比率而不是 USDC 进行清算,因此不需要预言机。但是,如果任一资产的相对美元价值发生变化,贷款人将调整当前或未来贷款的条款,以达到他们认为安全的抵押品比率。


这些方法的最大优点是协议实际上不会破产。这是因为每个贷方最终对其自身贷款的偿付能力负责,因此不存在必须由 DAO 国库 / 保险基金吸收或在贷方之间处理“坏账”的概念。


Blur 的 Blend 协议假设“存在更复杂的贷方,能够参与复杂的链上和链下协议、评估风险并使用自己的资金”。考虑到 Blur 作为专业 NFT 交易者的主要交易场所,这是有道理的,但对于普通用户来说,这似乎比在 Aave 或 Compound 上借贷要复杂得多。






没有 Oracle 的新面孔




根据 Messari 研究员 Chase Devens 的定义,无 Oracle 架构的模型可以分为两类,即点对点(P2P)和基于 AMM 的混合类型。两者的主要特点如下:


- 点对点

支持任何链上抵押品类型

用户定义贷款的参数并承担坏账风险(不再由合约承担风险),借款人不再定义利率和 LTV 参数而是自行确定价值比较。协议去除了预言机意味着这些贷款可以从任何链上抵押品中创建。


仓位需要主动管理,为了确保提供的流动性得到有效利用,用户必须以类似于 Uniswap V3 中心化流动性仓位的方式主动管理自己的仓位。


- 基于 AMM 的混合类型(贷款 / 衍生品 - LP 流动性提供者)

支持任何链上抵押品类型

基础 LP 头寸为清算和衍生品合约提供定价数据,也是清算头寸的主要市场。使协议能够从其基础流动性池中计算清算和衍生品合约的结果,本质上使 LP 头寸本身就像一个预言机。此外,这些 LP 头寸提供了一个一级市场的类型,用于在清算或合约到期期间减少协议抵押品,而不需要在外部平台上清算抵押品。





Ajna.finance




Ajna 是一种专为 EVM 设计的借贷协议,没有治理、权限或外部喂价(预言机)。它可以用来借出我们的整个投资组合(包括 NFT)。其他借贷项目有两个核心问题:(1)代币治理不足以分析复杂的风险(2)外部喂价(预言机)的使用将资产范围限制为具有流动性的“蓝筹股”二级市场。这些缺陷导致 DeFi 借贷市场遭受灾难性损失,并限制了支持新资产的能力。Ajna 通过一系列关键创新解决了这些问题:


(1) 贷款人提供资产定价:当贷款人使用 Ajna 协议时,他们告诉合约他们愿意提供多少资产。这允许他们输入生命周期价值并将其从治理参数转换为市场参数;


(2) 自动利率发现:在每个 Ajna 市场中,都存在由内部指标确定的均衡机制。如果市场失衡,任何人都可以每 12 小时将汇率更改 0%。如果没有失衡,则不进行任何更改;


(3) 清算保证金:由于 Ajna 没有预言机,它依赖于用户告诉它何时清算贷款。这是通过让清算人提供保证金来触发清算来完成的。如果他们诚实,他们就会得到回报。如果没有,他们就会受到惩罚。


那么有什么意义呢?这些创新使 Ajna 能够服务“整个”生态系统。任何人都可以使用任何资产(甚至 NFT)创建借贷市场。不再需要在治理过程中苦苦挣扎,也不再担心流动性、二级市场和预言机。





BLEND





Blend 是一种点对点、永久借贷协议,支持包括 NFT 在内的任何抵押品,并通过复杂的链下报价协议将有兴趣的借款人与愿意提供有竞争力利率的贷方进行匹配。


默认情况下,Blend 贷款具有固定利率且永不过期。借款人可以随时偿还贷款,贷款人可以通过触发荷兰式拍卖来退出其头寸,以寻找具有新利率的新贷款人。如果拍卖失败,借款人将被清算,贷款人将占有抵押品。总体而言,它有四个主要特征:不依赖于预言机、开放性、流动性和点对点:


- 无预言机

许多 DeFi 协议需要预言机来确定清算头寸的时间或利率,以 NFT 为例,其价格很难客观衡量,而且在链上很难及时观察到地板价,因此通常需要受信任方参与或操纵交易策略的解决方案。Blend 避免了对核心协议中预言机的任何依赖,使利率和贷款比率由贷款人的条件意愿决定,并由荷兰式拍卖失败引发清算;


- 开放性

一些 DeFi 协议仅支持到期债务头寸。这对于借款人来说很不方便,他们需要记住在到期前平仓或调整头寸(否则面临没收 NFT 等处罚的风险)。手动调整仓位的过程也会消耗 Gas,这也减少了借贷产生的收入。每当贷款人愿意根据抵押品借出金额时,Blend 就会自动调整借款头寸,并且唯一需要进行链上交易的时间是当利率发生变化或其中一方想要退出头寸时;


- 流动性

有些协议不支持到期前清算,这对借款人来说更方便,并且在许多用例中都有意义。然而,这实际上为借款人提供了看跌期权,而贷款人则需要在较短的期限和较高的利率 / 较低的贷款之间做出选择,以避免头寸被清算的风险。在 Blend 中,一旦贷款人触发再融资拍卖,没有人愿意接管债务,NFT 就可以被清算;


- 点对点

其中一些协议正在汇集贷款人的资金并试图为他们管理资产。这意味着可能会严重依赖链上管理或中心化管理来设置参数。Blend 使用点对点模型,每笔贷款都是单独匹配的,它没有改变贷款方式的简单性,而是假设存在更复杂的借款人场景,都有能力参与复杂的链上和链下协议,从而更好地获取资产。






FREI-PI 模型




正如 Brock Elmore 所解释的那样,FREI-PI 模式是:“功能需求 - 效果 - 交互 + 协议不变性模式”。“dYdX 的 SoloMargin 合约(源代码)是借贷市场和杠杆交易合约,也是 FREI-PI 模型的一个很好的例子。这是唯一不存在任何市场相关漏洞的早期借贷市场。


查看下面的代码时请注意以下抽象:

- 输入要求(_verifyInputs)

- 操作(数据转换、状态操作)

- 状态要求 ( _verifyFinalState )



这里常用的检查 - 效果 - 交互模式仍在使用。但是,应该注意的是,具有附加检查的“检查 - 效果 - 交互”与 FREI-PI 不同,尽管它们相似但服务于不同的目标。因此,开发人员应该理解其中的区别:FREI-PI 是协议安全的高级抽象,而 CEI(检查 - 效果 - 交互)是功能安全的高级抽象。


这种合约结构的有趣之处在于,用户可以连续执行任意数量的操作:存款、借贷、交易、转账、清算等。我们假设进行了 3 种不同类型的存款,假设存入 3 个不同的代币并取出第四个代币并清算您的账户,所有这些都只需单击一下即可。


这就是 FREI-PI 的力量:只要核心借贷市场不变性在调用结束时保持不变,用户就可以在协议内做任何他们想做的事情,并且用户没有采取任何操作将任何账户置于不安全或更不安全的抵押情况中。对于该合约,这是在_verifyFinalState 中执行的,它检查每个受影响账户的抵押情况,以确保协议比交易开始时更好。


该函数中包含一些额外的不变性,它们补充了核心不变性并具有关闭市场等辅助功能,但真正确保协议安全的是核心检查。


以实体为中心的概念之一是 FREI-PI 面临的另一个难题,以借贷市场和假设的核心不变性为例:用户不能采取任何使任一账户陷入不安全抵押品状态的行为。从技术角度来看,这不是唯一的不变性,但它是用户的唯一不变性(可以解释为仍然是核心协议不变性,因为用户不变性是核心协议不变性)。贷款市场通常还有两个额外的不变性:


1.预言机

总的来说 Chainlink 是一个不错的选择,它的主要功能是提供准确且相对准确的实时信息,可以满足大多数不变性。在极少数的操纵或事故情况下,减少实时保护措施以确保准确性可能是有益的(例如,检查最后已知值是否比当前值大数百个百分点)。尽管如此,Cream Finance 仍遭受了 1.3 亿美元的违约损失。


2. 治理

治理是最棘手的不变性,因为它很难受到调节,其作用大部分是改变其他不变性,而且因为有些治理在运行时无法被 FREI-PI 验证。管理员违反了不变性,例如,Compound 的治理操作在 2022 年 8 月扰乱了 cETH 市场,这一升级违反了预言机的不变性。

实际上,每增加一个不变性都会使协议更难以保护,因此越少越好。因此,复杂性是危险的,最重要的不变性是协议核心的不变性,但如上所述,还会存在必须满足核心不变性的以实体为中心的不变性,并且最简单 / 最小的不变性集可能是安全的。





总结:DeFi 的未来




在不可扩展的原语之上构建 DeFi 并远离预言机是否是最佳选择?毕竟,今天的 DeFi 协议的灵活性和易用性,得益于治理、可扩展性和预言机,在此基础上已经打造了数千亿美元的市场规模。Dan Elitzer 认为,治理、可扩展性和预言机本质上并不是坏事——相反,这些元素在更广泛的背景下具有巨大的实用价值——但它们也增加了协议受到攻击的可能性。

 

源代码(原语)本身可以偶尔替换,根据需要更新功能或提高效率。在选择如何创建 DeFi 协议时,将面临两个重要的选择:将所有用户的数据和对外部条件的依赖交给一个更加中心化的单一协议,并将其委托给一小群愿意参与治理的 Token 持有者?或者重视市场中每个参与者的所有权?让用户决定自己的协议和服务提供商。

 

整个行业的参与者和开发者致力于构建一个更加去中心化、无需许可、高度组合的发展方向,这可以提高整个行业的安全性和弹性。对于 DeFi 未来的发展方向,我们希望它能以更安全、更高效的运营,继续占领传统金融的市场份额。



原文链接:

https://medium.com/ybbcapital/defis-new-narrative-a-novel-secure-model-for-smart-contracts-without-oracles-846131c967c6


·END·

关于讯流 InfoFlow:

讯流科技立足于华人初创项目,提供 Web3.0 与区块链项目方从 0 到 1、成体系、差异化、阶段化的内容叙事服务,并帮助项目方链接跟踪深度关注用户。


相关链接:

Twitter: @InfoFlow_CH

即刻: https://okjk.co/P08u7i

Nextme: https://nextme.one/InfoFlow

小宇宙:讯流会客厅


声明:请读者遵守所在地法律法规,本文不代表任何投资建议。



【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

Z2H_Labs
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开