BTC:Hegic出事,Trail of Bits该背锅吗?来看看Hegic代码评审报告_QBTC价格

撰文:MyCrypto

翻译:PerryWang

来源:链闻

对那些懒得打开PDF文档的读者,这里给大家概括一下「审计报告」。

对那些根本一点不懂的小白来说:

这是一份审计报告的摘要

摘要中有投资预警

阅读审计报告你需要字斟句酌。读这份摘要就清算多了。

第一部分:事实陈述

何时审计,用时多少天

具体审计了什么

由谁进行了审计

就算是小白都知道这种规模的合同,一个工程师用时两天进行审计,不会让我买账。16个小时就想搞懂所有代码、找到bug,找到攻击方法,然后完事交差?

1.1一位熟悉系统底层架构和理念的专家面对总量很小、非常简单、语言非常漂亮的代码库,也许能做到这一点。

此外,他们没有时间考虑代码的经济影响。

Archegos爆仓事件给全球投行造成损失或超60亿美元:接近美国私人投资公司Archegos Capital交易的消息人士称,全球银行可能因该公司爆仓事件而损失逾60亿美元。监管机构和投资者担心,这一事件将产生更广泛的影响。此前,野村控股和瑞士信贷警告称,向Archegos提供股票衍生品交易贷款将造成重大损失,引发全球范围内的银行类股票抛售。(新浪财经)[2021/3/30 19:28:02]

1.2只进行了小型审计,可能是由于Hegic财力所限,我对此表示赞赏。但是,审计的目的是要避免发生坏事,不要将审计作为一种促销手段,出了问题不能说「不是我们的错,只能怪安全审计机构@trailofbits!」

1.3要改善审计的投资回报率,更简单的方式是让审计人员的工作变得更简单

代码干净+恰当的论述

使用所有免费工具来发现基本问题,以便专家可以专注于复杂的问题

请他人帮忙查看代码,提出问题

提供文件,提供摘要+重点/关注领域

第二部分:看看他们在寻找什么问题+找到了什么问题

值得注意的提示:

有三个领域,也被称为「糟糕情况可能出现吗?」

三个领域的答案都是「是Yes」,程度级别不同而已。

另外他们认为这些风险与算法有关

针对以色列加密企业家Moshe Hegog的诉讼在美国法院败诉:上周五,以色列加密企业家Moshe Hegog在法庭上胜诉,美国法官驳回了一名为他的预测平台Stox购买代币的投资者提起的诉讼。2019年,西雅图投资者Sean Snyder起诉Hogeg和STX Technologies (Stox),他曾在该平台上购买STX代币进行预测,但后来以近50万美元的亏损出售了它们。Snyder在诉状中声称,他根据被告的陈述购买了代币,被告应对他的损失负责。该诉讼指控Hegog欺诈、误导性主张和违约。该案现已被驳回,法官表示:“他从第三方(而不是被告)购买了STX代币。因此,他提出进一步诉讼的要求被视为无效。”(Coindesk)[2021/1/27 21:48:29]

(审计报告图片中译)

从资金池窃取财产

以低于预期的行权价创建期权合约

免费创建期权合约我们发现多数问题与算法有关,包括

如果资金池代币的供应量低于资产供应量,攻击者可以吸干资金

如果ETH价格低于1美元,期权合同行权价可以为0

当流动性增加,资金池恶意参数可以允许0铸币

有多个问题可能导致恶意合约所有者伤害Hegic用户,包括:

通过费用收取来窃取期权资产

2.1稍后将详细介绍算法方面,但接下来看看@ChrisBlec所谓的「管理员漏洞」,比特币至上主义者会以此为例证发表所谓中心化目前优于DeFi的胡言乱语。

yearn.finance已上线USDC、DAI和HEGIC v2 yVault:1月20日,yearn.finance官方宣布,USDC、DAI和HEGIC v2 yVault均已上线。[2021/1/20 16:33:58]

他们说的都没有错。你可能不喜欢这个事实,但只能接受它。

有多个问题可能导致恶意合约所有者伤害Hegic用户,包括:

通过费用收取来窃取期权资产

将资金困在期权合约中,阻止流动性提供者撤资

可以免费创建期权合约

2.2<这里插入有关去中心化的渐进论证>

无论如何,你应该注意到这种可能性以及知道审计人员在上面花了时间。在一个全新的金融体系中发现所有的漏洞攻击方法,这16个小时中有多少时间被用于验证有效的、已知的攻击方法?

2.2只有16个小时找到所有攻击方法

数学/密码学中的Bug

比如重入攻击

金融/经济方面的影响

内部作恶者

外部恶意攻击者

意外错误/意外结果

Andre Cronje与Hegic匿名创建者成立300万美元的DeFi基金:yearn.finance(YFI)创始人Andre Cronje与链上期权协议Hegic的匿名创建者Molly Wintermute共同成立了300万美元的DeFi基金“M&A”,该资金由Hegic DevelopmentFund拨款,旨在投资DeFi项目的核心开发人员和代码。MollyWintermute表示,想要获得投资的开发人员只需向其展示代码,而不需要宣传资料。“M&A”发推表示,该基金仅投资DeFi协议或项目,不需要任何来自其他基金等的投资。[2020/11/10 12:09:55]

资金损失

等等等等。

16个小时不可能搞清楚这一切。绝无可能。

2.3审计机构永远不会说:「这些代码烂的像臭狗屎」。

扪心自问,为什么他们指出蛛丝马迹。不要指望他们彻底告诉你想要的东西或他们自己的反应。这就是事情被忽略的完美例证,因为它没有成为Twitter热门话题:另外我们还发现,当资金池增加或减少资产时会出现账簿记录错误,没有体现出期权合约中的相关资产,因此攻击者可能窃取资金池中资产。

2.3我来帮你。

Hegic内的合约并不清楚合约中的资产被谁以何种方式偷走。

我实在不明白如果都不清楚这些情况,资金池还怎么运转。老人看手机脸。

链上期权协议Hegic发布v1.1版本,用户可在到期之前转售期权:链上期权协议Hegic发布v1.1版本。相比v1.0版本,该最新版本可供期权合约购买者在到期之前在流动性资金池中转售期权,以获得收益。另外,v1.1版本中,溢价会在期权合约到期后分配给流动性提供者(LP)。[2020/6/2]

另外请注意:记账簿。

第三部分:推荐

这一直是最重要的部分,因为这里是审计机构字斟句酌的部分。

在实际的审计报告中,会向Hegic指出需要解决的大量代码、漏洞及事情。但这篇摘要是供外部人了解所用的。是给我们普通人的。

由于发现的算法问题较多以及时间限制,无法进行深入的算法验证,(审计机构)TraitofBits推荐使用符号执行和fuzzing测试合约的变量。代码库中可能存在更多问题。

另外TraitofBits作出以下推荐:

未来开发利用crytic.io。采用该平台发现两个问题。

评估和记录合约所有者特权

验证和记录不同合约之间的资产记账

评估和记录系统的套利机会

推荐用户在保障资产的前提下使用提供资产和撤资功能

3.1一定做更多来确保安全!!!

3.2我们真的没有时间展开深入讲,基本的数学问题已经占用了大部分时间,我们连数学问题都没搞懂,更别说更大范围的问题了。

3.3我们当然知道有更多问题,你现在知道了。

3.4你付钱给我们找一些自己本可以用更便宜的方式找到的基本问题,然后付钱给我们找到了另一个错误。

3.5你们的项目文档记录匮乏实在令人厌恶,我们在五点建议中用三条的篇幅去描述这个问题,因为这是你们发现问题、并为安全人员/白帽黑客提供挽救用户资产的最佳机会。

3.6评估合约所有者的特权:我们的工作不到位。

验证你们的算法:小心打补丁。重新查验一切因为你们的算法真的太烂了。

验证套利交易:我们都还没开始考虑这个问题。

也许你们在写文档的时候就会发现问题了。

3.7我真的不知道怎么收尾。

通常在完整审核中,你会发现带有代码片段的内容。事实是这一行代码有分量。

3.8或者是他们选择让读者注意到最后一句特别重要,或者他们也意识到「我们真的检查了所有东西/所有功能了吗」?在概要最后扔下一句。

不管是哪种情况,依据这份审计报告,这是致命硬伤的所在地。

总体心得

1@trailofbits没有足够时间在最佳状况下完成审计。

2代码库没有提供「最佳状态」。

3没有文档纪录。

4要构建金融系统,必须要有出色的数学/记账簿/会计能力。

Hegic有太多问题,让@trailofbits的审计工作更麻烦。但更重要的是,这里存在根本性问题。这一解决方案「更重视数学,在数学方面也更出色」,但「在审计方面很糟糕」。

5Hegic无权利用这份审计报告宣称自己是个安全的系统,或者像当前这样转嫁责任「甚至trailofbits都没有发现问题!」

6Hegic将审计当作敷衍他人的挡箭牌,而不是为了切实保护用户或者了解及确保系统的安全。这种态度显示团队对用户利益的漠视,可能是一种性质恶劣的文化,对我而言总是拉响警报。

7Hegic项目目前不该推出。如果他们是被指着头被迫发布产品,他们也应该宣称自己是未经审计的、受限的Pre-alpha项目。

8@trailofbits没有提到测试。不确定他们为什么在其他审计中有测试。也许是因为在测试前的基本文档就有问题?

有点像如果我的院子里长满了6英尺高的野草,我就去考虑修剪更高的灌木问题。

9作为社区一个整体,我们需要注意,即使是名头最响亮机构所做的审计报告,也不意味着是安全的。也许还更不安全。

来源链接:twitter.com

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

区块博客

[0:0ms0-7:60ms