2020 年 3 月 Compound 推出“假贷挖矿”形式,让沉寂多时的币圈再次燥动起来。一位参加过 DeFi 挖矿的“矿工”表明,为了抢到头矿,他把赌注押在未经测试的代码上,“不管安不安全,先把头矿抢了。”
开发者们更急,为了快速上线主网,从新发布的代码中取得最大收益,他们直接略过了安全审计的过程。
那些稳如泰山的黑客们,也开始把握时机,凭借自身技能实力,伺机进犯那些没有做好安全预防措施的 DeFi 们。
进入11月,产生在DeFi协议上的进犯一起接着一起,DeFi 们俨然沦为黑客的取款机。据PeckShield 计算,截至目前共产生 8 起与 DeFi 相关的安全事情,包括 Yearn Finance、Percent.finance、Cheese Bank、Origin Protocol、Akropolis 、Value DeFi 、YFV、88mph,形成丢失逾 2100 万美元。
惊险时分:24小时产生两起进犯事情 丢失近800万美元
11月17日,PeckShield 监控到 DeFi 协议 Origin Protocol 安稳币 OUSD 遭到进犯,进犯者使用在衍生品平台 dYdX 的闪电贷进行了重入进犯(Re-entrancy attack),形成价值 770万 美元的丢失。 OUSD遭“经典重入进犯” 丢失770万美元 DeFi安全亟待解决
随后,11月18日,PeckShield 监控到 DeFi 固定利率假贷协议 88mph 存在代码缝隙,一名进犯者使用该缝隙铸造了价值 10 万美元 MPH 代币。
据悉,88mph 于 11 月 16 日上线主网,上线仅 48 小时就遭到了进犯。在 88mph 协议中,用户可经过存入加密财物赚取固定利息,并取得其原生代币 MPH,也可经过购买起浮利率的债券来获取 MPH 代币。
上线仅48小时后即遭埋伏
PeckShield 经过追寻和分析发现,首先,进犯者调用 DInterest::deposit() 函数将安稳币储存在资金池中,此刻,存款者会收到一个新的 depositID,它相当于非同质化通证(NFT),一起 MPHMinter 合约会开始铸造 MPH 代币; 随后,调用 fundAll() 函数购买起浮利率的债券,在此过程中,用户可取得 MPH 代币和一个 fundingID (非同质化通证 );
接下来,进犯者将过程 1 和过程 2 所取得的 depositID 及 fundingID 传入 earlywithdraw() 函数提取在这两步中所存入的财物。也就是说,进犯者将过程 1 中原本要锁仓 1 年的加密财物被提前取出,此刻进犯者不会取得任何利息,因而过程 2 中供给的资金也原路退回,而且 MPHMinter 会毁掉在过程 1 中铸造的所有 MPH 代币。值得注意的是,在第 2 步中所铸的 MPH 代币并没有被毁掉。进犯者使用这点,以 0 本钱取得了过程 2 所铸造的价值 10 万美元的 MPH 代币。
经过重复操作这三个过程,进犯者铸造了价值 10万 美元的 MPH 代币,并将其存入 Uniswap V2: MPH 4 池中。
使用另一缝隙幸运逃过一劫
事实上,MPHMinter 合约还有一个缝隙,而开发者使用此缝隙幸运逃过一劫,使得此次进犯暂未形成任何经济丢失。
首先,开发者调用 takeBackDepositorReward 将所获 MPH 代币从 Uniswap V2: MPH 4 转移到 govTreasury(相当于 mph 的资金库),该函数没有设置门槛,任何人都可调用此函数将 MPH 代币转移到 govTreasury 中。
因为进犯者将取得的 MPH 代币存入了 Uniswap V2: MPH 4 池子当中,而 88mph 项目方自己掏空了该池子,然后做了快照,因而暂未形成任何经济丢失。
PeckShield 相关负责人表明:“黑客们的进犯可能会消灭或‘杀死’一个项目,DeFi 们不要存在幸运心理,应该做好充分的预防措施。如果对此不了解,应该找专业的审计组织对代码进行彻底地审计和研讨,防备各种可能产生的风险。”
开发者编写的每一段代码,就如同工业生产中的螺丝钉一般,即使很细小,却与 DeFi 行业的兴衰成败严密相连。
DeFi 的生态仍处于前期发展阶段,但区块链的核心价值在于普世的信赖,如果 DeFi 们仍一味寻求快速上线主网,忽视代码的审计安全,最终只能将社区成员的信赖消磨殆尽,成为没有魂灵的躯壳。
视野开拓
一个人支配粮食的能力或他支配任何一种他希望获得或拥有东西的能力,都取决于他在社会中的所有权和使用权的权利关系。而这些权利关系都取决于他拥有什么?交换机会能够给他提供什么?社会可以免费提供给他些什么?以及他由此丧失了什么?-《贫困与饥荒》