过去几个月来,DeFi 生态经历了巨大的动荡,数次攻击之下,许多未被利用过的缺陷也被报道出来。
虽然代码中无可避免会有 bug,但还是有很多方法能降低缺陷发生的频率,以及降低缺陷带来的负面影响。
作为一个审计员,我们想要帮助 DeFi 用户问一些比较尖锐的问题;问这些问题的目的,一方面是让开发人员认真去考虑系统安全性的优先级,另一方面,让用户能分辨出回答得好的协议,然后把钱投入这些协议。
以下问题能帮助用户了解 DeFi 开发团队对于安全性的立场,答案不一定有对错之分,而且也不是每个团队(or 独立开发者)都有资源全盘顾及所有方面。但不论如何,用户有权利知道这些信息,来决定自己愿意承受的风险。
我们希望通过以下提问,促使后续开展更多正面的讨论。
管理员权限
大部分的主流 DeFi 协议都存在一些中心化的机制——允许特定的 “管理员” 地址以强硬的手段干预协议的运行。
这样做虽然在安全上有好处,但这意味着你必须相信这些 “管理员” 不会滥用他们的特权;而且但凡这些管理员遭到黑客攻击,他们的私钥泄露所带来的后果会更加严重。
管理员账户可以是以下几种形式:单一地址、多重签名钱包,或是由 DAO 管理的投票过程。那么,
1.管理员能采取哪些措施?
暂停整个系统?
Militia.Games将于10月29日23:00上线NFT盲盒:据官方消息,Militia.Games将于10月29日23:00上线NFT盲盒。MILIT里玩家拥有的MILIT NFT,会随着英雄PK、训练、合成、重铸等级会越来越高。使用 NFT 英雄训练功能,玩家无需出售 NFT 即可从他们的 NFT 中获得被动收入。Militia.Games 由MILIT基金会打造。[2021/10/29 6:19:59]
修改账户余额?
设置 代币/用户 的 白名单/黑名单 ?
升级某个子系统?
升级整个系统?(等同于万能...)
其他权限?
2.如果采取上述行为,是否有延迟执行机制?
3.如果有延迟时间,那是多长?
4.多少人有管理员权限?
5.采取上述行为前,需要经过多少管理员同意?
6.有哪些权限是由链上治理程序(即 DAO)来掌控的吗?
7.我该去哪里了解提议更新协议的提案?
以上某些问题的回答已经可以通过 DefiWatch 跟踪了解。
外部依赖
因为是公开的网络,以太坊上充斥着不怀好意的攻击者,因此开发者不能假设本系统外的合约一定会采取什么样的行为。但在许多 DeFi 应用中又不得不作出这样的假设,因为服务本身就是在已有的一些合约上建构出来的。
这些问题能帮助用户了解该项目在外部依赖上存在的风险。
1.你的系统依赖什么预言机(Oracle)?
2.你的系统依赖什么交易所?
3.你用什么第三方智能合约(如,OpenZeppelin)来建立系统?
4.你的系统支持哪些代币,你对这些代币(合约)的行为模式有怎样的预期?
可靠的的披露系统和奖励计划
对于才华横溢的黑客来说,攻击 DeFi 协议对他们有着强大的金钱诱惑。制定奖励计划能激励大家发现并揭露漏洞,而非钻漏洞。对于白帽黑客来说,通过激励系统揭露代码漏洞也是提高自身声誉的好方法 —— 既有好处又不违法。
任何公司要运行 DeFi 协议,或是涉及在线托管金钱的业务,都应该设有奖励系统。你可以就他们的奖励计划及披露流程提出以下问题:
1.你们的合约代码能够被所有人看到吗?
2.从你们的网站和 git 代码库,能够很容易找到安全的联系方式吗?
3.你们的合约有没有设置奖励计划?
4.哪些合约在奖励计划内?
5.奖励计划具体金额是?
6.你们是否支付过奖励计划的奖金?
7.对于 bug 报告,你们是否曾拒绝支付过?
8.从你们的网站和 git 代码库,能够很容易地找到奖励计划的详细信息吗?
理想情况下,这些信息应该放在 “website.com/security” 页面下,而且能搭配 Github 的 SECURITY.md 功能使用。
应急预案
当面对某些安全突发状况的时候,新消息如潮水般涌来,用户持续在 Twitter、Telegram、Discord 上提出棘手的问题......,这时候开发者很难头脑清楚地应对突发状况。
所以如果有应急预案的话,就能证明项目正朝着安全方向发展。要求项目公开他们完整的计划可能不太现实,但我们还是能提出以下基础的问题去侧面了解:
1.你们是否有处理突发安全事件的计划提纲?
2.你们的应急预案适用于哪些紧急情况?
3.如果你们的系统是可升级的,这些升级步骤是否记录在案?
4.如果你们发现某个系统漏洞可能让资金面临风险,你们是否能通过应急预案先发制人,保护资金安全?
审计与安全发展
审计并非万灵丹,而且审计的内容总多多少少有点区别,但对于部署任何的 DeFi 合约之前,进行审计是至关重要的一步。
下面的问题不一定有 “正确答案”,但学识渊博的社区群众们,应该能从项目的回答中看出开发团队对于安全性的立场。
1.你们最近一次审计是什么时候?
2.这次审计投入了多少精力(以标准开发者的一小时来做单位)?
3.哪个机构做的审计?
4.审计报告公开吗?
5.你们系统中有任何部分是没有被涵盖在审计的范围内吗?
6.最近一次审计之后,你们有对合约进行更新吗?如果有,更新了什么?
7.你们有和哪个安全团队进行长期合作吗?
8.在合并代码之前,开发者会彼此做 code review 吗(至少检查 Solidity 文件)?
9.你们的合约代码中,做过单元测试的比重是多少?
10.审计过程中,你们用过其他的安全分析工具吗?
昨日,加密货币市场突然大跌,BTC从7000美元,10分钟内跳水到5500美元。其他加密货币同样疯狂抛售,市值前十的币种,24小时内跌幅普遍在20%以上。 全网24小时总计爆仓20亿美金,合约市场一片哀嚎。据称有8万人成为爆仓受害者。作为链圈和币圈的老朋友,飒姐感到如鲠在喉。
3月12日BTC持续下跌,一度跌破5600美元 ,价格创近两个月来新低。在疫情及全球资本市场动荡时刻,投资者对于加密市场后续走势充满担忧。 比特币持续下跌 投资者场外比特币转入场内交易 3月12日20:00,火币全球站数据显示, BTC再度突破6000美元,现报6018美元,价格创近两个月来新低。 与此同时链上数据也印证了市场正在受到波动的影响。
这是一篇很有意思的文章,原文标题:Crypto Anthropology。作者为我们介绍了加密世界里的那些形形色色的,具有代表性的角色,以及他们的群体特征。虽然作者文风偏谨慎,但我嗅到了一些她想但未表达的调侃和幽默,于是我和几位小伙伴擅自做主,在一些地方进行了二次加工。
北京时间3月16日凌晨5点,美联储再度紧急宣布降息,将基准利率降至0%-0.25%水平,降息幅度达100个基点,这是美联储史上规模最大的单日降息幅度,也是美联储半个月内第二次紧急降息。 美联储称,新冠疫情已经给包括美国在内的很多国家的社会和经济造成损害,为应对疫情的影响,美联储从15日起降息至零,并推出7000亿美元规模的量化宽松计划。
周末的行情终于给市场一丝喘息的机会,近日市场情绪也逐渐反映出来传统金融市场和币圈的区别。从传统金融市场而言,大多数投资者往往将在大跌之后的反弹看作是出逃的机会,但币圈投资者经历过深V走势后第一时间考虑的却是抄底,这点从行情到达3800时部分抄底资金介入致使USDT大幅溢价即可反映出。 目前市场依然在给投资者营造错觉:周五的深V反弹+USDT溢价=抄底。
2020年3月12日是一个被载入史册的日子,原是平平无奇的植树节,一棵棵大树却被连根拔起,全球股市暴跌,九国熔断,美股暴跌56万亿人民币,蒸发了一个A股的市值,连投资大鳄巴菲特都说,太吓人了,我活了89岁才见证了美股的3次熔断,而我们一周内就见证了两次,何其壮哉! 3月12日的币圈更是堪称惨烈,比特币当日最大跌幅达到30.3%。