http://www.7klian.com

在 Compound 上存款收利钱需要留意的几种风险

协议的开拓者 Compound Lab,Inc,今朝节制着以太坊地点:0x8b8592e9570e96166336603a1b4bd1e8db20fa20 ,即打点员地点。打点员地点拥有新增资产、更新价值预言机、更新利率模子以及更新协议风险模子的权利。
假如有足够多的 DAI 债权方(cDAI 持有者)在同一时刻想要收回他们存入的 DAI,他们的提款操纵将耗尽所有可用 DAI,并使得 DAI 操作率晋升至 100%,从而阻止进一步的提款操纵。试图提款的出借方将只能看到生意业务失败,而且不得不比及更多的借钱方偿还贷款后才气举办提款。
可是有趣的是, Trail of Bits 团队没有在任何相关质料中提及这一点。另外,Compound 的 FAQ 还低估了打点员特权,并没有提供任何干于打点员有大概窃取所有资产的告诫:
Trail of Bits 审计陈诉
1. 智能合约安详风险

合约安详
· 通过 repayBorrowAllowed 函数返回 false 防备送还现有贷款
另外,Compound 还为严重裂痕专门提供了上限为 25 万美元的悬赏(赏金为被盗资金的 1% 可能是冻结资金的10%),据我所知,今朝还没有独立安详研究人员得到这笔赏金。
借钱人年利率 = 根基利率 +(乘数 * 操作率)
· 对付所有利用 Unitroller 的 cTokens (当前是 100% 占比),通过替换 Unitroller 实现与替换 cToken 监察员一样的进攻
然而,恶意打点员可能被窃取私钥的打点员手中拥有冻结市场、审查生意业务甚至从系统中窃取全部资产的本领。雷同地,节制资产价值预言机即便不能窃取系统的全部资产,也可以窃取大部门。当前,所有及时市场的打点员都是同一个外部账户。
2. 中心化单点妨碍
· 通过 mintAllowed 函数返回 false 防备生成新的 cTokens
若能同时取得对价值预言机的打点员资格和 poster 资格,进攻者就可以:
· 通过变动价值预言机,以低于实际的价值举办 cTokens 借贷(譬喻:ETH、WBTC 等)
· 每个小时都让资产价值偏离其存储代价的 10%
该协议不担保活动性;相反,它依靠利率模子举办鼓励。在资产需求非常旺盛的的时期,协议的活动性(可用于提款或出借的代币)将淘汰;在这种环境下,利率会上升,从而刺激供给并抑制借贷。
Compound v2 有四种差异的打点职能,由三个地点别离包袱:
若能得到 Unitroller 署理的打点员资格,进攻者可以:
如今,DAI 出借方的利率是 10%,足以让 ETH 持有者侧目(如封面图片所示)。
· 通过 borrowAllowed 函数返回 false 防备借入底层资产

你大概传闻过初创企业 Compound。他们基于缔造了 compound.finance,小我私家可以在该市场中出借所持有的 ETH,DAI,USDC 及一些其他 ERC20 数字资产并以此赚取利钱。
银行挤兑风险
· 将资产价值设为任意值
· 通过 seizeAllowed 函数返回 true 窃取用户 cTokens
2. Compound 是一个托管系统,假如借贷池打点员的私钥泄漏,则所有借贷池中的资产将都大概被盗走。

另一件需要留意的工作是, Compound 当前的托管配置自己并不会导致系统的不安详。他们会积极维护打点员密钥安详,而且很有大概(但愿如此)他们正在与 820 万美元种子轮融资可以买到的最好的托管供给商相助。不外毫无疑问,在抉择存入 50 万 DAI 时,我会将这一点放在心上。
 
· 当前的价值预言机都有一个锚点打点员和一个 poster,别离为配置为0xF06e41aDD8A7E7A8aD81a07C0ACA291E4573ca50 和 0x3c6809319201b978D821190Ba03fA19A3523BD96。
已有多家知名的智能合约安详公司对 Compound 举办了审计。
上述推特中显示的操作率高达 98.62%,这意味着在其时,出借方存储的 98.62% 的 DAI 都已经借出。只有 1.38% 的 DAI 还可取出,所以,在其时,只有相当小一部门出借方可以随本身心愿收回其存入的 DAI。
由于我本身并不是一名智能合约安详专家,因此我向 samczsun 寻求辅佐——samczsun 以发明白 0x 合约中一个要害 bug 而着名(其时 0x 合约已经接管过顶级公司的多次审核) ,他也因此得到了 10万美元的酬金。关于 Compound 的中心化单点妨碍(我存眷的重点),他提供的陈诉如下:
若能得到价值预言机的锚点打点员资格,进攻者可以:
Compound 团队对这种活动风险的处理惩罚都很直接,他们在白皮书中举办了相关先容:
1. 智能合约安详近乎完全没问题。
根基上,我们应该支持、勉励项目做与 Robert Leshner(Compound 的首席执行官)相反的工作:
· 使得某一资产的价值偏离其真实价值的 10%
综上所述,操作率到达最大时存在活动性危机以及迫在眉睫的银行挤兑风险,而出借方独一能做的事就是但愿 Compound 利用打点员特权更新而且增加利率,,从而鼓励借钱方送还贷款进一步提高想要退出的出借方所需的活动性。
中心化单点妨碍
结论
· 通过 redeemAllowed 函数返回 false 防备赎回已有 cTokens
通过 cToken 的打点员资格,进攻者还可以替换利率模子,从而实现:
Certora 审计陈诉
对付 cDAI 而言,根基利率 = 5%, 乘数 = 15%(这些值都被硬编码到了合约中)。操作率 为 100% 时,借钱人付出的利钱为20%。这意味着当 DAI 操作率最大时,借钱人的资金本钱也只是 20%——因此,假如他们相信 ETH(贷款抵押品)这一年的涨幅会高出 20% 的话,他们就没有动力送还贷款。 这大概会导致许多 cDAI 持有者在很长一段时间内还将继承持有 cDA。
sam 的陈诉中也提到了一些更为调皮的进攻,假如进攻者有这样的时机——比起实施更为巨大的进攻,这样可以更快的卷走所有钱。
Today, the interest rate offered to DAI lenders is 10%, which is high enough to turn EthHeads’ heads (see cover photo).
· 每种 cToken 都有一个监察员(comptroller),今朝都被配置为 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B。Unitroller 也有一个打点员,今朝被配置为 0x8B8592E9570E96166336603a1b4bd1E8Db20fa20
基于以上因素,我今朝认为 Compound 智能合约是安详的。
· 通过变动某种 cToken 的质押信息,团结新增 cToken 以及变动价值预言机的本领,进攻者可以通过他们缔造的代币举办抵押借钱,实现窃取系统全部资产。
· 通过 borrowAllowed 函数返回 true 来吸干所有底层资产
· 通过 transferAllowed 函数返回 true 转移作为抵押品的 cTokens
Compound 是如何办理这个问题的?
· 通过 liquidateBorrowAllowed 函数返回 false 防备清算贷款
3. 银行挤兑风险
我不以为 Compound 选择中心化的方法引导其产物是错的(因为这种方法显然是有效的,要否则我也不会写这篇文章),可是我确实但愿智能合约中包括 1000 万~1 亿美元的项目可以或许凭据最高尺度举办,尤其是在向用户转达风险和提供告诫方面。
OpenZeppelin 在他们的 Compound 审计提要中举办了有效总结。
· 通过 transferAllowed 函数返回 false 防备转移现有 cTokens
此刻我依旧没有想好是否要将我打点的 DAI 存储到 Compound 中。大概我会先用 10 万个 DAI 试试水?会出什么问题呢…In Compound We Trust!

上个月,我花了一些时间对通过 Compound 平台放贷存在的几类风险举办了评估:
中心化在技能上大概是正确的,可是我们都知道攻下打点员的步伐有许多…
OpenZeppelin 审计陈诉
Compound 独一能处理惩罚这一问题的东西就是利用中心化打点员进级利率模子,这就是 6 周前,操作率升到 99% 时他们所回收的方案(与上面引用的推文属同一时期)。
像 Compound 这样的协议在中心化和去中心化中保持着微妙的均衡,它
需要衡量快速进级的本领和由此一定引入的中心化单点妨碍。
我将观测研究分成了以下几类,可是在此之前首先需相识的最重要的工作是:
· 通过变动清算鼓励机制,在清算时得到更多的代币
· 将借贷本钱(即:块利率)晋升至 0.0005% /区块
该合约生存的资产至少有六个月高出 2000万美元,至少有两个月高出 5000万美元,当前该合约里生存的资产高出 1亿美元。对我小我私家而言,合约安详最重要的指标是 合约持有总资产×合约生存资产时间,到今朝为止,Compound 的安详性已经获得了大量民众资产的证明。
由于存在 cDAI 提款卡壳的大概性,人们将会对此有所记挂,而且他们的担心大概会自我实现。就是说,当一部门 cDAI 持有者试图一次取出其存入的全部 DAI 时,银行挤兑将有大概产生,因为有许多 cDAI 持有者都担忧这种环境的产生。
若能得到价值预言机的 poster 资格,进攻者可以:
· 每种 cToken 都有一个打点员。今朝,所有 cToken 的打点员都被配置为 0x8B8592E9570E96166336603a1b4bd1E8Db20fa20

总结一下 samczsun 的陈诉:Compound 合约被设计为可以通过中央打点员举办适当的进级。最重要的合约是署理合约,其指向包括了逻辑实现的逻辑合约地点,打点员拥有随意修改地点指针的权利。由于所有的 cTokens 利用沟通的打点员 ,假如打点员私钥泄露了,那么所有质押在 Compound 中的资产都可以被轻松窃取。
只要能得到一种 cToken 的打点员资格,进攻者就可以替换监察员实现,然后执行以下一项可能多项操纵:
作为 SpankChain 的 CEO,打点包罗近 50 万 DAI 的公司储蓄是我的职责。假如不把我们的 DAI 放到 Compound 平台上,凭据 10% 的年利率,那么我们将每个月损失近 4000 美元。这是相当大的一笔时机本钱。可是投资需要紧记的是:天下没有免费的午餐。所有的投资都有风险,在 Compound 平台上放贷也不破例。
Dharma 首席运营官之前的的这条关于竞争性贷款平台的推特,带我打开了新世界的大门,让我大白了 Compound 这类平台的银行挤兑风险。

3. 在 Compound 上放贷不担保能随时提取资产。假如您实验提取您的资产,可是其时所有资产都锁定在未送还的贷款中,那么您的提款生意业务将失败。

陷入 cDAI 银行挤兑的出借方可以选择等之后再取出其 DAI,也可以通过出售 cDAI 以得到 DAI,可是这样会发生手续费,并且,假如有很多其他出借方也在出售 cDAI ,那么价值大概会更差。 假如出借方选择期待危机竣事并继承持有 cDAI,在此期间他们仍可以享受到出借资金所得的利钱。
Compound 基于 cToken 特定的 “利率合约” 为每种 cToken 确定借钱人的利率。该合约今朝实现了 cDAI 的利率模子。公式为:

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读