写点什么

10 天上线、37 小时后倒闭,一行代码毁掉一个 DeFi 明星项目

  • 2020-08-15
  • 本文字数:2686 字

    阅读完需:约 9 分钟

10天上线、37小时后倒闭,一行代码毁掉一个DeFi 明星项目


DeFi 的火热催生了很多项目,但轰动了整个加密社区的明星项目 Yam,却在启动了仅仅 37 个小时就黯然落幕了。

一行代码毁了一个项目

8 月 12 日凌晨三点,DeFi 项目 Yam 正式开启流动性挖矿(即通过为 DeFi 提供流动性赚取收益)。


Yam 全称 Yam Finance,是一个由社区孵化的 DeFi 协议。根据 官方介绍,YAM 引用了 Ampleforth(AMPL)的弹性供应机制和 YFI 的代币发行理念,并且采用了时下 DeFi 项目最流行的去中心化治理(DAO),其 YAM 就是社区治理代币。


YAM 本质上是一种有弹性供应的加密货币,Yam 每天根据价格会进行 rebase,对代币供应量进行调整。同时,YAM 非常去中心化,没有预售和预挖行为,创始人团队也没有股份,所有人都可参与。YAM 总量为 500 万枚,YAM 官方初始定价为 1 美元。


Yam 将挖矿的用户称为“农民”,YAM 代币图标为“山药”,大家将此项目称为“挖山药”,项目一启动就搅动了整个加密社区。


尽管该项目在项目启动前就警告称,尚未对其合约进行任何审计,但“农民”们还是在不到一小时内就向该项目存入了 7600 万美元,项目启动 8 小时后,Yam 总锁仓价值就突破了 2 亿美元。


随后,BKEX Global、币赢 CoinW 等交易所先后上线了 YAM/USDT 交易对。15 个小时后,BitMEX 创始人 Arthur Hayes 声称自己参与了 Yam 流动性挖矿,据悉还有很多人参与到了该项目中。此时,Yam 锁仓价值已超过 3 亿美元。8 月 13 日零时,Yam 锁仓价值达到 4.6 亿美元,YAM 代币价格涨至 167 美元的历史高点。



YAM 价格走势,来源:CoinMarketCap


但到了 8 月 13 日 5 时,Yam 发布推文称在 Rebase 合约中发现 bug,这将导致产生比预期更多的 YAM。


Yam 官方给出了两个修复建议,并号召 YAM 持有人通过代理投票方式帮助修复提案通过。消息一出,YAM 代币价格跌超 90%,至 14 美元。


不过,用了 8 个小时左右的时间,Yam 投票数就达到了 18 万枚 YAM,超过了 16 万枚的最低门槛。Yam 项目方表示,参与投票的用户将会获得一定的奖励。


下午 15 点时,Yam 锁仓价值超过 7.3 亿美元。Yam 官方建议用户在 16 时 rebase 前退出 Uniswap YAM/yCRV 池,原因是存在可能会阻止提案执行的潜在缺陷。如果治理不能通过该提案,那么在 rebase 期间累积的 yCRV 将面临无法移动的风险。


但 Yam 项目还是没有抢救过来。一个小时后,Yam 核心开发者 belmore 在推特上表示,“对不起大家。我失败了。谢谢你们今天的大力支持。我太难过了。”Yam 官方表示,该项目中存储的约 75 万美元的 Curve 代币也全部丢失。



事后,YAM 在发布的 博客中指出了发生错误的代码:


totalSupply = initSupply.mul(yamsScalingFactor);


而这一行代码本来应该是:


totalSupply = initSupply.mul(yamsScalingFactor).div(BASE);


区块链安全公司 Quantstamp 首席执行官 Richard Ma 表示,加上“ div(BASE)实质上是将 totalSupply 除以一个非常大的数字——10^18。没有这个除数,这个网络将会产生“津巴布韦式”通货膨胀。


比特币开发者 James Prestwich 表示,这个 rebase 漏洞导致向治理库铸造了数十亿个 YAM。这些 YAM 确实存在但无法进行投票。鉴于 YAM 的治理模块,这意味着没有任何投票提案可以被通过,因为提案永远无法达到需要的投票数量。


根据 Ma 的说法,这个漏洞目前没有办法修复。价值大约 75 万美元的加密货币将被永久锁定。

不审计成为一种营销手段?

这是一个从开始到启动仅用了 10 天的项目。


项目发布之前,Yam 就在官方博客中明确表示项目代码是没有经过审计的:“虽然 Yam 协议的初始创建者已经尽力确保合约的安全,包括从现有审计良好的项目中派生出大量代码基,并征求了朋友的意见,但 Yam 协议目前还没有进行任何接近正式的严格审计。“


但这并没有影响投资者们的热情,因为不经审计便启动项目在业内已经不是新鲜事了。


Ma 在接受媒体采访时表示,许多 DeFi 项目未经审计就启动了,像 Yearn Finance、Cream 和 Yearn Finance II 都是以这样的方式推出的。


“目前不进行审计被认为是利用逆向心理进行营销的一种好方法,”Ma 补充说:“这会使人感觉到这些项目非常抢手,而你在别人还没听说之前就已经抢先一步了。”


Ma 表示:“最大的危险在早期。”如果一个项目在早期的成长过程中幸存下来,就会开始积累许多非正式的安全审查。比如 Yearn Finance 项目,Quantstamp 后来进行了一次正式的安全审计,只是 Yam 没有那么幸运能够走到那个阶段。


其实,Yam 启动后,也有开发人员对其进行了审核,但可惜并没有发现该漏洞。


8 月 12 日,Aave 开发人员 Emilio Frangella在推特上发布自己对 Yam 的审核,他认为该协议“很大程度上基于原始的 Synthetix 奖励合同”,配置设置的更改很少,对安全性没有任何影响。

项目不死,计划推出 YAM 2.0

宣布项目失败后,Yam 官方表示,只要以太坊继续支持这份合约,Yam 将继续生存下去。


Yam 不能再通过治理进行修改,因此在技术层面上将以类似于其他 rebasing 资产(如 AMPL)的方式运行。而 YAM / yCRV Uniswap V2 池将永远保持不安全的状态。尽管 YAM 在第二次 rebase 前已从池中取出了 75%的流动性,但任何剩余的流动性都应尽快移除。


同时,Yam 还表示,YAM 社区应该有机会坚持下去。Yam 将设立 Gitcoin 捐赠,以协调由社区资助的对 Yam 合约的审计。如果资金目标达到,在审计完成后,Yam 将启动迁移计划,让社区控制项目,并推出 Yam 2.0。


如果获得社区支持, Yam将在未来几周内通过两个阶段的启动程序推动 Yam 协议迁移到审计合约版本。


第一阶段,Yam 部署地址将建立一个迁移合约,Yam 持有者将在一定的期限内销毁此前代币同时铸造新的 Yamv2 代币。在第二阶段,完整的 Yam 系统预计将通过审核,并重新部署为 Yamv3。Yamv2 持有者将通过附加的合约迁移到更新后 Yamv3 代币地址。


Yam Finance 表示,在任何时候都没有也不打算对协议进行管理和控制。在成功迁移之后,计划奖励一些代币持有者,但这需要获得投票批准。目前,Yam 代币持有人无需采取任何行动。


针对此事件,区块链安全公司慢雾团队建议,项目中去中心化治理应循序渐进,在项目开始阶段,需要设置适当的权限以防发生黑天鹅事件。由于 DeFi 合约的高度复杂性,任何 DeFi 项目都需在经过专业的安全团队充分审计后再进行上线,降低合约发生意外的风险。


8 月 13 日,Yam 核心开发者 belmore 在推特上称,用户现在看到的任何 Yam 分叉几乎可以肯定都是骗局,不要参与。如果想要获取收益,请转向定期进行审核且信誉良好的 DeFi 产品。


受 YAM 事件影响,协议中可用于投资的其他代币,如 WETH、LINK、YFI、AAVE、SNX、MKR 和 COMP 的价格也受到了影响。


不过,Ma 认为 Yam 的崩溃不会破坏 DeFi,因为 DeFi 用户可以很好地应对波动。


2020-08-15 08:006603

评论

发布
暂无评论
发现更多内容

vue入门:http客户端axios

小鲍侃java

8月日更

LT浏览器——响应式网站测试利器

FunTester

性能测试 自动化测试 web测试 兼容性测试 测试报告

波场链DAPP开发|波场链TRONCHAIN介绍

Geek_23f0c3

DAPP智能合约交易系统开发 波场链DAPP开发 tronchainDAPP

摄影利器一加9 Pro,让你轻松成为手机摄影师

Geek_8a195c

老用户运营从哪里切入?

boshi

运营 私域运营

AI+云原生,把卫星遥感虐的死去活来

华为云开发者联盟

AI 容器 云原生 k8s 遥感影像

Java筑基 - JNI到底是个啥

码农参上

Java jni 8月日更

架构实战营第一期 -- 模块五作业

clay

架构实战营

【Flutter 专题】64 图解基本 TextField 文本输入框 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

spring 大事务

Rubble

8月日更

接口测试--apipost如何自定义变量

与风逐梦

软件测试 接口测试

业内首发!腾讯位置服务推出移动端3D数据可视化图层

手撸二叉树之单值二叉树

HelloWorld杰少

数据结构与算法 8月日更

低代码:时代的选择

华为云开发者联盟

云计算 软件开发 低代码 硬件 IT系统

2分钟玩转中文接口测试工具-ApiPost

CodeNongXiaoW

项目管理 大前端 测试 后端

AI 场景的存储优化之路

焱融科技

人工智能 云计算 AI 分布式 高性能

有效管理数据安全性—— Pulsar Schema 管理

Apache Pulsar

Apache Pulsar StreamNative schema

Compose 中的文字

Changing Lin

8月日更

JS对象拷贝:深拷贝和浅拷贝

华为云开发者联盟

js 对象 对象拷贝 深拷贝 浅拷贝

抖音快手短视频智能询盘获客系统软件开发介绍

Apache HBase MTTR 优化实践:减少恢复时长

华为云开发者联盟

Apache hadoop zookeeper HBase MapReduce服务

如何请求一个需要登陆才能访问的接口(基于cookie)——apipost

Proud lion

大前端 后端 Postman Cookie 接口工

前端,测试如何修改后端接口返回的响应数据

CodeNongXiaoW

项目管理 大前端 测试 后端 接口管理工具

Go 语言,一文彻底搞懂 slice 实现原理

微客鸟窝

Go 语言 8月日更

基于AOP和HashMap原理学习,开发Mysql分库分表路由组件!

小傅哥

小傅哥 hashmap 分库分表 aop 数据散列

JVM集合之类加载子系统

阿Q说代码

JVM 加载 类加载器 双亲委派 8月日更

【LeetCode】合并两个排序的链表Java题解

Albert

算法 LeetCode 8月日更

Python代码阅读(第12篇):初始化二维数组

Felix

Python 编程 Code Programing 阅读代码

抖音快手短视频获客系统软件开发

netty系列之:自定义编码和解码器要注意的问题

程序那些事

Java Netty 程序那些事

面试官:你说说一条更新SQL的执行过程?

艾小仙

10天上线、37小时后倒闭,一行代码毁掉一个DeFi 明星项目_区块链_褚杏娟_InfoQ精选文章