草庐IT

Bankless:为什么说 DeFi 永不消亡?

Donovan Choy 2023-03-28 原文

过去几个月,加密行业遭受的打击可谓史无前例:身家数十亿美元的加密货币银行面临破产危机、最大的对冲基金通过抛售NFT来以应对清算、中心化加密机构面临崩盘……但令人惊讶的是,在经历了这场风暴之后,DeFi却依然屹立不倒,相信这也正体现了加密社区一直对外宣扬的价值主张——打造一个面向全世界的开放、公共、可访问的金融生态。

正因为如此,DeFi永远不会消亡。

为什么会说DeFi永不消亡?

设计一个强韧的经济体系,首先要认清这个纷繁复杂的现实世界并接受人类贪婪无知的本能。此外,你还要明白经济体系的强韧度与牛市表现无关,主要取决于在没有监管机构或是巨头干预的情况下是否有适应市场变化的能力。

其次,判断一个经济系统是否能在金融市场中有足够的强韧,以下几个问题也至关重要:

  • 系统是否能有效清除坏账?
  • 对于不可持续的商业模式,系统是选择淘汰还是支持?
  • 在系统性风险累积到一定程度之前,能否做到以上两点?
  • 当系统性风险出现时,能否能通过最小化积极管理(active management)和负面外溢(negative spillover)来解决问题?
事实上,与中心化金融系统相比,去中心化金融系统与以上这些目标的关系更为密切,因为无论从协议代币经济体系的设计角度来看,还是从日常财务管理以及资产负债表的健康状况来看,DeFi体系中的一切都在区块链上,而且是公开透明的,任何人都能观察并实时监控到,每个人都能清楚了解巨鲸的投资动向和潜在风险。

我们常常看到主流媒体会将DeFi描述为“金融领域的狂野西部”,但这种比喻并不恰当,因为DeFi自我监管机制其实非常完善——

DeFi的自我监管

以LidoFinance和Solend为例:

由于Lido质押了近三分之一的ETH总供应量,在过渡到权益证明后,可能开始对以太坊构成中心化威胁。因此,Lido发起了治理提案投票,决定是否该限制存入流动质押协议的ETH数量。结果,该自我限制的治理提案未通过,随后便新增了8个验证器,用于进一步加强Lido验证器集的去中心化程度。

作为Solana链上最大的借贷协议,Solend面临着更为急迫的处境。人们发现,假如SOL价格继续下跌,那么对某个巨鲸的保证金头寸(1.7 亿美元)进行清算将会引发灾难性的后果并对整条链造成严重影响。为此,Solend开发人员向社区提出了一系列治理提案,比如接管巨鲸账户并执行安全清算,但最终的解决方案是引入一项新规则——将借款额度限制在5000万美元以内(该巨鲸借了1.08亿美元)。

当然,尽管在采取相关治理后Lido和Solend很可能还是无法走出困境,但仅凭这两家平台的治理过程就已经能感受到DeFi的独特之处了。

得益于区块链规则和链上活动的透明性,由内外部利益相关者组成的社区目标一致,共同致力于问题的解决。以上提到的这两个案例都是社区成员在发现危险信号后及时跟进,经过深度的技术探讨最终给出解决方案,防患于未然。

反之,假如人们对这些风险选择视而不见,那么系统势必会遭到恶意攻击,后果将不堪设想。那么对于此类问题到底有没有一个通用的解决方案呢?对此,TradFi(传统金融)的回答是这样的:“政府会通过法律来解决”,而DeFi的回答则非常酷:“一切都让代码来决定。”

中心化金融的衰落

相比于DeFi的积极自救,在过去一个月里如多米诺骨牌般纷纷倒下的加密银行就显得被动许多。事实上,这场风暴的中心就是加密领域最重要的对冲基金——三箭资本其流动性问题早在6月中旬就暴露了出来,当时三箭资本已经遭到场外交易平台的清算,总额高达4 亿美元。

很快,三箭资本的清算事件又揭露了加密银行其他高风险影子交易问题:挪用储户资金,比如BlockFi向三箭资本提供了10亿美元的超额抵押贷款,Voyager Digital向其提供了约6.7亿美元的贷款。尽管Voyager Digital的资本比率相对比较安全(贷款利率仅为4.3%),但由于做了一个错误决策,将超出其资本总量两倍的集中贷款提供给了三箭资本,最终导致其也身陷困境。

当然,金融领域的风险交易无处不在,而不仅仅只发生在加密银行。问题的关键在于当风险来临时,系统该如何治理和处理他们。

与DeFi处理风险方式不同的是,由于加密银行的资产负债表是中心化的,因此社区无法进行独立调查,而加密银行这些过度杠杆化和冒险的交易也只有在纸包不住火的时候才能被外界所知,而到了这个阶段,一切都为时已晚。这种“中心化”加密银行的最大问题,就是大部分交易都是闭门进行的双边场外交易,只有内部人员才能知道,他们只会在发生流动性危机后才公开信息,因为这是在法律上取回资金的唯一条件。

DeFi的公开透明可以避免“中心化玩家”带来的风险

如果想深入了解DeFi的比较优势,那么可以看看中心化参与者如何进行去中心化交易。

让我们来看看三个例子——

示例一:Celsius

Celsius问题被首次曝光,其实是因为他们在一系列链上贷款中有资不抵债的迹象,比如在Maker金库内有一笔17,900枚WBTC的质押交易无法偿还,Celsius急忙补充资金,避免因比特币价格下跌导致抵押物遭到清算(这笔贷款已在7月7日足额还清),很快Celsiu的其他贷款问题接踵而至,包括一笔在Avalanche链上45.8万枚stETH质押,还有在Compound和Oasis上的贷款质押。

一开始,Celsius首席执行官还信誓旦旦表示不会出现问题,但由于Maker、Avalanche和Compound在区块链上的交易都是公开透明的,因此加密用户很快便发现了潜在风险,也开始对社区进行预警。果不其然,Celsius很快就宣布暂停提币,虽然警钟敲得略晚,但如果没有DeFi的公开信息,可能会有更多人遭受损失,问题也会持续更长时间。

示例二:Terra

其实,Terra这场灾难最初也是因为DeFi的透明性才被发现,因为Terra的流动性在Curve协议上快速枯竭,“UST兑换率在5月7日周日第一次受到压力,主要源于USTw-3CRV Curve资金池的一笔8500万美元的UST到USDC的兑换……这单大宗交易更加动摇了公众对资金池流动性提供者的信心,人们纷纷迅速提取他们的3CRV,导致5月8日资金池UST:3CRV降至77%:23%。”

之后的故事,相信大家都已经知道。

数百万Terra投资者开始恐慌,Do Know在推特上发表了 “将部署更多UST” 的知名言论,而Terra背后的中心化实体Luna Foundation Guard则开始转手价值15亿美元的比特币来稳固其算法稳定币。所有这些操作,都没有基于智能合约规则,结果当Anchor的“洪水”倾泻而出,Terra崩盘了。

示例三:三箭资本

就三箭资本而言,许多分析师都知道其资产负债表不健康,因为链上数据清楚地证明他们于今年五月在LUNA锁仓中损失了5.6亿美元,之后又在七月份下架了stETH头寸。3AC 破产的谜团并不完整,但一些碎片信息足以让我们推测出其问题所在。

最终,你会看到这些中心化玩家纷纷快速临近破产,为什么要走到破产这条路呢?因为CeFi 平台之间的高风险和杠杆闭门双边交易只能通过法律途径解决,这也是他们唯一的选择,而且说不定能在法庭上为自己博取个比较好的结果。相比之下,DeFi就不会出现类似的问题,因为在公开透明的前提下,你无法和智能合约争辩。

以上三个示例都证明了一点:Celsius、Terra和三箭资本都不是真正的链上DeFi,我们也只有在黑夜来临之前才了解到风险,这种危机的确很难彻底规避和预防,但如果他们是真正的DeFi,或许悲剧就不会发生。

结语

贪婪和愚蠢或许是人类的本性,正如苏格兰启蒙运动哲学家大卫·休谟所言,真正有弹性的政治经济体系应该建立在人性基本事实之上,他这样说道:

“.每个人都应该被认为是一个无赖,在他的所有行为中除了个人利益之外没有其他目的。我们必须通过这种利益来管理他,尽管他依然贪得无厌和野心勃勃,但却会愿意为公共利益而寻求合作。”

DeFi的优势,其实就是利用了人类的本性,然后围绕这种本性设计了冷酷无情的智能合约。在DeFi中,代码就是清算人,代码就是结算引擎。所以你会发现,Celsius、Terra和三箭资本倒下了,而Aave、Compound和Maker等主要DeFi协议却运转良好,比如2022年6月,Compound、Aave和Maker就顺利完成了“9位数”的清算交易,其中Compound清算额约为990万美元、Aave清算额约为260万美元、Maker清算额约为4900万美元。

在DeFi中,没有闭门谈判,没有将问题推迟到法院,没有游说监管机构,大家只做一件事:遵守智能合约,而这其实不就是一个弹性经济体应该有的样子吗?

这,就是DeFi。

有关Bankless:为什么说 DeFi 永不消亡?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  6. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  7. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  8. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  9. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  10. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

随机推荐