为什么 Defi 已坏 论无预言机协议的重要性
为 DeFi 带来依赖的多样性, 而不是依靠单一的预言机。DeFi 原语应该是零治理、无可升级性、无预言机或任何形式的外部依赖。
背景
我喜欢DeFi。无许可支付协议和开放的金融系统首先吸引我加入了比特币,然后加入更广泛的加密货币世界的原因。
在2018年,我读到了关于Uniswap的介绍,这让我看到了加密世界中正在发生的变化的力量。这一部分将被称为DeFi(尽管我仍然喜欢开放金融)。
但是,经过多年的反复黑客攻击和数十亿美元被盗,即使是最热心的信徒,也有理由质疑DeFi是否会适合主流使用,更不用说成为全球金融体系的核心部分。
答案是:它不会……至少不会以它目前的方式建立。
在Nascent,我们已经在安全方面进行了大量投资。2020年,我们是第一个将一级审计公司(Open Zeppelin)委托给我们的投资组合公司的投资者,以确保在启动前优先获得严格的安全审查。我们也是Spearbit、Code4rena、Macro和Skylock的早期支持者。
我们也将时间投入到为行业创造工具上。简单安全工具包已经被fork了近100次,我们最近宣布了测试版Pyrometer,这是一个为审计人员和开发人员提供的开源工具,它整合了符号执行、抽象解释和静态分析。
通过这些努力,我们相信在安全方面不仅仅是一个 “更努力”的问题。这是必要的,但还不够– 在整个行业,漏洞的频率和严重程度至少比主流采用的可接受水平高出两个数量级。
2022年,超过38亿美元通过黑客攻击被盗,主要是利用DeFi协议和跨链桥的漏洞。虽然有些漏洞是由于令人不安的不良安全态度造成的,但即使是由受人尊敬的团队开发的、遵循当前一流流程的协议也不能幸免。
如果我们想看到数十亿人依赖DeFi,我们需要从根本上重新思考协议的设计和安全。
在Nascent,我们认为有一系列与安全有关的概念是值得进一步探讨和探索的。
今天,我们将首先解释 "无预言机协议 "的概念,以及为什么我们认为它将从根本上为DeFi指出了一个更加强大和安全的架构。
模块化的协议和原语(primitives)
很多DeFi协议喜欢把自己打扮成 "原语",希望其他团队能在其基础上构建产品或可组合的协议。
我想提出一个新的定义:为了有资格成为原语,一个合约必须没有外部依赖性,除了它依赖所部署的区块链之外。
这意味着没有治理,没有可升级性,没有预言机。
一旦任何外部依赖性被引入合约,合约就会继承与该依赖性相关的任何风险。对合约功能的治理意味着某种形式的可升级性,要求威胁模型同时考虑到可能的变化范围以及当前和未来可能发生的条件。同样预言机引入了外部数据以及与之相关的所有依赖性,这些依赖性用于提供该数据,并包括其准确性和及时性的所有潜在变化。
原语应该只做它在罐子上写的事--即不多也不少,不加入任何依赖性。
今天,符合这一基本定义的DeFi协议少得令人吃惊。Uniswap v1可能是最著名的,但即使是Uniswap v2和v3 (虽然从安全角度看符合这一定义的精神)也不符合条件,因为它们允许对某些功能进行管理,如协议费用转换和为资金池引入新的费用等级的能力。
不过,这种有限的治理功能并不意味着引入许多其他协议中存在的大规模可升级代理的风险,在我们关注点上 Uniswap 是大赢家:
没有预言机
完全在链上
Uniswap总体上是非常成功的,我们都应该感谢它作为主流的去中心化交易所的出现以及它所激发的进一步的 DEX 实验。它的崛起被广泛地归功于提供所有价格的流动性与学习如何成为一个做市商的简单性,Uniswap 最终取代了早期的项目,这些项目更中心化或依赖于可疑的代币计划。
随着行业的发展,Uniswap推出了他们协议的新版本,将设计空间转移到更类似于订单簿。Uniswap v3引入了非同质的流动性头寸的概念,流动性提供者(LPs)有能力将其流动性集中在特定范围内。这使得LP能够从该范围内的交易中获取更大份额的兑换费用,但也增加了他们在价格变化时的发散损失。这导致了资本的更有效利用和市场中LP的专业化,同时出现了一个头寸管理工具的生态系统,包括Arrakis, Gamma, 和Sommelier。
我预计在这一点上,许多读者会想 "好吧,没有预言机对DEX来说是可以的,但是借贷协议呢?你需要预言机来进行借贷!"
我同意:借贷确实需要预言机......但是,与去中心化交易所一样,它们可以被移到协议之外。
重新构建借贷
最近,我们注意到投资者对新的和即将推出的无预言机借贷协议表现出了浓厚兴趣,如Ajna、以太坊 Credit Guild、Metastreet的Automated Tranche Maker和Blur/Paradigm的Blend。
与传统的DeFi借贷市场不同,Gauntlet没有由治理机构设定的抵押品因子,也没有像Chainlink这样的单一通用预言机为所有用户和协议功能提供 "真实"资产价格。相反,贷款人负责评估风险,决定他们要从借款人那里获得多少抵押品,并且必须随着资产价格的变化而更新他们的贷款标准。
这种方式通常是,贷款人选择他们将接受的具体资产作为抵押品(例如,BAYC代币,一个Bored Ape NFT,等等),他们将提供的报价资产(例如,USDC)作为借款,以及设定借款人被清算的报价资产与抵押品资产的比例。然后,借款人可以提交抵押品,并以当时的市场利率借入报价资产。
注意,由于借款人和贷款人已经同意了一项借贷,其中清算是通过基于每个资产上单位抵押数量的比率而不是依靠美元价格来确定的,因此不需要预言机。然而,如果任一资产的相对美元价值发生变化,贷款人可能会希望调整当前或未来的贷款条款,以反映他们认为安全的抵押比率。
这种方法的一个关键优势:协议实际上是不可能破产的。由于每个单独的贷款人最终对自己贷款的偿付能力负责,因此不存在需要由DAO资金库、保险基金或在借款人之间进行社会化的"坏账"的概念。
某人抵押他们的ETH以95%的贷款额度借用USDC,安全吗?没关系。
用MKR抵押品进行贷款,但只有10%的贷款抵押率,感觉不舒服吗?没关系。
Blur的Blend 假设"存在能够参与复杂的链上和链下协议、能评估风险和使用自己资本的更复杂的贷款人"。这在Blur作为专业NFT交易者的主要场所的背景下是有意义的,但对于普通用户来说,这似乎比在Aave或Compound上贷款要费劲得多。
好消息是:它不一定只能这样。
其他协议或服务可以使你很容易地保持一致的抵押率要求,即使你所借出的抵押品的价格波动。以 Ajna 为例,它将有可能使用Oasis和DeFi Saver(或其他协议/服务)来自动调整你提供的ticks。你甚至可以建立一个金库,允许用户提供DAI或USDC,并使其可以像Aave一样以相同的抵押品系数借入相同的资产,自动在资金池之间进行再平衡以收益最大化贷款利率。这样的金库甚至可以使用Chainlink作为其预言机,使贷款人的用户体验和风险状况与今天使用Aave的情况几乎相同。
但是,如果只是要在协议或服务上分层,来重现Aave的现有用户体验和风险,为什么非要在 Ajna 这样的无预言机协议或原始协议的基础上建立协议呢?
通过多样性实现安全的统一市场
让我明确指出:真正的金融机构永远不会(也不应该)将数十亿美元投入到一个其安全性完全依赖于Chainlink的协议中。
将链外数据可靠地带到链上涉及到很多复杂的问题,特别是需要以去中心化、抗审查的方式来操作。虽然Chainlink在这些限制条件下做了令人钦佩的工作,但他们也成为所有DeFi的潜在单点故障。
无预言机协议--实际上,明确设计为允许用户使用自己的预言机(BYOO:Bring your own oracle)的协议, 提供了一条替代路径,特别是对于那些无需去中心化或抗审查就能获得自己的高质量数据源的复杂机构用户。
完全有可能的是,像 Ajna 这样的无预言机协议的大多数用户仍将依赖像Chainlink这样的公共Oracle协议,通过Oasis这样的工具帮助安全地管理他们的借贷头寸。但是,他们也将能够与那些决定依赖另一个协议(如Pyth)、各种基于zk的预言机、Bloomberg(彭博社) API、甚至他们自己的内部价格计算的复杂用户在同一个市场上无缝操作。
我们最近在以太坊自身也看到,依靠健康的客户端多样性的能力使得停机时间得以避免。一个分层的协议开发方法, 实现安全关键服务提供者的多样性,有可能在DeFi中出现类似形式的稳健性,在那里,问题可以被隔离,只影响一个子集的用户。
就 Ajna 而言,请记住,它不仅仅是一个无预言机的协议,它是一个协议原语:它零治理、无可升级性、无预言机或任何形式的外部依赖。这意味着借款人和贷款人可以各自提出自己的要求,选择自己的管理协议和服务提供者,每个人有自己的结果依赖性。一些用户可能会选择使用依赖于Chainlink的服务,并反映Aave的抵押资产和比率,而其他用户可能会选择使用彭博社的API,只以保守的抵押比率对ETH贷款。
如果一个事件发生,损害了一个预言机或迅速粉碎了某个抵押资产的价值,使用不同预言机或没有针对该资产贷款的用户将完全不受影响。
而且,无论这些选择如何,用户仍将汇集流动性,并通过Ajna在一个单一的统一市场中与对手方进行交互。这才是真正的DeFi 原语的工作:提供一个高效、安全的市场,让交易方能够找到对方并结算交易,能够永久运行。
如果你想知道你可以在类似协议原语的基础上建立多么复杂的东西:Infinity Pools 是一个即将建立在Uniswap V3之上的去中心化交易所,能够为任何资产提供几乎无限的杠杆,没有清算,没有对手方风险,也没有预言机。
DeFi的未来是分层的
将 DeFi 过渡到主要建立在不可改变的原语之上是个好主意吗?毕竟,在治理、可升级性和预言机所带来的灵活性和易用性的基础上,我们已经从零起步建立了数千亿的兑换和借贷。
我认为是有必要的。
治理、可升级性和预言机并不是天生的坏事。恰恰相反,它们在广泛的环境中都是相当有用的。然而,它们确实增加了协议的攻击面,并导致协议的大多数或所有用户由于这些功能的启用,发生漏洞并被攻击。
将尽可能多的逻辑和依赖性从最底层的原语中移出,可以创建一个更强大的高层服务市场,同时仍然可以通过具有绝对最小攻击面的合约来统一流动性。
原语本身可能偶尔需要被替换,这可能是由于未来设计带来的重大功能或效率改进,或者由于潜在的漏洞被发现。这里的好消息是,如果有人开发出更好的方式来做一个原语,上面的大多数协议和服务提供者将能够把他们的用户迁移到新的和改进的原语上,因为更高级别的服务已经明确设计为模块化的。
同样,这值得吗?
我认为是的。
与各种形式的中心化数据库和服务相比,区块链本身的效率非常低。我们使用它们是因为我们相信,无权限访问和可组合性的力量--以及有选择自己保管我们自己的财富或可选择我们信任的服务提供者的能力--这些足以弥补我们作为用户所面临的成本和麻烦。
在选择如何构建我们的DeFi协议时,我们也面临着类似的选择:我们是否想要这样一个的协议,其将所有用户的参数和外部依赖性的决定权下放给那些费心参与治理的小部分代币持有者?
还是选择哪些重视对市场参与者的授权?让用户做出他们自己的决定,或者选择其他协议和服务提供者,以他们自己的名义去决定,而不将这些决定强加给所有他们希望与之进行交易的人?
我们可以依赖与中心化的故障点。或者,我们可以选择通过堆栈分层的多样性和模块化来增加稳健性。
我们这些在这个行业工作的人已经选择致力于促进去中心化、无许可、可组合协议的发展,相信最终它们相对于传统的中心化、有权限的系统的优势将变得不可否认。同样,我相信人们会开始欣赏DeFi协议设计的模块化、分层方法,因为它们提供了安全和弹性的改进。
请记住:我们在这里不是为了建造比以前的东西好50%的东西;我们是为了建造好50倍的东西。
无论你是否相信无预言机或分层协议设计是未来,希望大家能够同意,DeFi的安全性不是一个难以解决的问题。如果我们从未在安全方面有所改进,加密技术将永远不会脱离小众地位。
除了上面建议的协议设计的变化,还有一系列其他的具体步骤,我们可以采取这些措施来推动安全问题的发展。本系列的未来文章将探讨围绕一些主题的潜力和挑战, 敬请关注。
Scan QR code with WeChat