我们跟中国最懂 DeFi 的一线从业者聊了聊如何预防及应对 DeFi 攻击|DeFi Garden #7
Curator.DAO 是一个去中心化的信息孵化器,Curator.DAO Blockchain Newsletter 带您速览区块链行业全面的 PoW、PoS、DeFi、投资、政策周报。更多信息可以查看我们的网站:www.curatordao.com,欢迎加入我们的社群,并得到目前成员的推荐加入我们。

本期作者

🌳Williams:有趣孤僻且勤奋的区块链园丁,服务于 Nervos (个人博客
🐦LeftOfCenter:币圈手艺人(文章链接
👾潘致雄:链闻研究员(领英链接
🐱小毛哥:链闻作者,旅居曼谷 (文章链接

本期特约嘉宾

🚀Bowen:DDEX & Hydro Protocol 联合创始人
👹曹寅:数字文艺复兴基金会(公众号:Web3DAO)
💡潘超:MakerDAO 中国区负责人
🦄️Flona He:IOSG 投资总监
🦑余弦:慢雾创始人
🎸吴家志:Peckshield 研发副总裁
☠️咕噜:币乎创始人
🏈徐勇:DeBank 产品负责人
🌟代代:DeFi Labs 创始人

本期导语

🌳Williams:这次 Uniswap 和 Lendf.me 等接连产生合约攻击,除此之外,今年也持续的看到了许多 DeFi 的攻击,例如 bZx、Curve、Sythetix 、312 Maker 事件等等,但其实这些攻击其实并没有击倒 DeFi ,这个去中心化的金融生态依旧在成长中,并且会将这些在起步阶段所承受的攻击成为学习的养分,发展茁壮,因此以下有些简单的问题,想请您回答,并且给 DeFi 这个正在兴起的行业说一些话。

问题一:攻击发生前,从项目方和用户的角度,如何防微杜渐有效减少这类安全事故的发生?

☠️咕噜:
(1)项目方在智能合约代码的设计和编写上须投入更多资源,包括增加更多更严格的安全审计。
(2)用户在投入资金前,应更充分地去评估智能合约的代码风险:
(a)看有没有安全审计,哪家机构做的审计,有多少家审计机构参与?
(b)对于较新的智能合约投入更少的资金,随着时间的推移逐步增加投入。
(3)钱包方作为应用的入口,对于上架的应用须有代码安全方面的要求,并以浅显的语音告知给用户。
(4)区块链行业里成立智能合约安全的评级机构。

🏈 徐勇:
对项目方来说,要足够重视安全和技术的投入,类似于中国互联网更侧重于市场的打法,可能在 DeFi 领域是不适用的。另外安全不仅仅是上线前的代码审计,必须囊括项目运营的全生命周期。这次事故就是因为在后续的运营中引入了 imBTC,但是没有注意到 erc777 和 之前 erc20 标准代币的差异。最后,如果有更完善的实时监控和应急响应机制,这次黑客盗币的数量也能减少很多,比如监控借贷协议的 imBTC 锁仓余额和平台资产负债表是否一致(这个规则在这次攻击中很有用)。

对用户来说,尽量选择头部的 DeFi 产品吧,另外不建议放太多资金在 DeFi 上,比如不要超过个人数字资产的 20%。

🦑余弦:
首先是这样,需要做好一种心理准备:任何新事物在进化过程中都会有安全风险,这是进化法则告诉我们的,越早期这种风险越大,最终要么死亡,要么就会趋于某种比较稳定的平衡。
基于这种心理准备,我们来看 DeFi,这是个新事物,有几个比较重要的风险:技术安全风险、业务安全风险、合规安全风险。我们简单展开提下(以以太坊为例):

1 技术安全
首先看公链本身,是否久经考验,足够安全,以太坊基本满足这点;然后看智能合约的设计是否足够安全,Solidity 并不大满足;再看相关的标准(如 ERC20, 223, 721, 777 等等)实现是否足够安全,这里最大的坑在于很多时候一个“特性”会变成一种“缺陷”;再再看基于标准的成熟框架是否安全,如 OpenZeppelin 很优秀;最后看项目方开发出来的是否是真的严格安全实践,这个就非常不好说了,很明显,开发的质量是参差不齐的。

2 业务安全
业务决定于 DeFi 的设计,要做出什么,抵押借贷?闪贷?交易?等等,业务需要特别考虑的是安全风控,比如暴跌暴涨怎么办?比如突然出现的大额转币如何处理?比如如何解决第三方安全风险(如:接入第三方代币、和第三方联动等)?

3 合规安全
如果是一个灰色或黑色边界的 DeFi,一不小心被一些国家的执法机构打掉或自己跑路了,怎么办?

说这些内容,主要是给项目方和用户一起抛出的参考,都是需要关注的。另外特别补充一些和用户角度有关的判断:
1 项目方内部有实力不错的安全团队或有丰富安全经验的核心人物把关
2 项目方近半年内被第三方专业安全机构安全审计过并公开安全审计结果
3 项目方有很长期持续紧密合作的第三方专业安全机构
4 项目方核心成员对待安全的态度是坦然开放,勇于认错并持续真的把安全放在第一位, 而不是仅喊喊口号
5 项目方对安全工作充满敬畏与尊重

基于上面这 5 点可以延伸出一些事实,比如:口碑、真实用户数、数据透明度、安全透明度等等。

🎸吴家志:
由于 DeFi 项目大多是开源的,这意味着藏在暗处的黑客随时有入侵攻击的可能。所以项目方应该有足够的安全防护意识,目前我们从专业安全公司的角度可以给到一些建议:1、项目上线前应该请专业的第三方安全公司做已知漏洞排查,出具安全审计报告;2、项目在运营工程中应在业务层处理安全风险建立一套风控机制,比如及时熔断、合约调用异常分析、账本异常监控等等;3、项目方涉及到跟其他产品的组合,务必要针对双方业务逻辑进行组合安全风险评级,最好组合双方的合约都有统一的安全公司进行审计,以排查可能存在的业务逻辑风险。

🦄️Fiona (IOSG):
正如 Vitalik 说的那样,我们觉得现在 defi 做的越来越复杂,专注于做出简单并稳定运行的项目比较少。项目方在设计时应该谨慎考虑目前底层设施的成熟度是否能支撑项目的复杂度。项目要重视风控,以及审视过往已发生过的危机事件。我们看到大部分项目如果足够重视这方面的信息并及时采取预防措施,是可以避免部分攻击的。除以上两点之外,项目方也要做好用户的风险教育,当然,这里的教育不是简单地在网站上列明“如果用户使用,请自行承担风险”,而是详细披露风险点,这样项目方也能自行梳理风控的重点,起到防范的作用。对用户来说,要明确 DeFi 目前还是非常早期,要自行检测风险偏好,在参与时对项目多做了解。

💡潘超:
首先要保证自己的代码本身是安全的 (Sythetix),此外与其他协议组合后是安全的 (ERC777, bZx 和 Curve),再有即使底层公链出现问题 (312 拍卖) 金融应用也可以保持安全。

👹曹寅:
从项目方来说,
首先还是代码,即使不是源代码开发者,DeFi 运营者也必须吃透协议代码,并且应该同源代码开发者保持密切沟通,最好能够重要变动上征询源码开发者的建议。毕竟源码开发者最了解自己的代码。

其次,要同预言机、资产、托管等合作伙伴保持紧密沟通,可以像航天设计单位一样,同合作伙伴建立问题清单制度,所有问题清单都要确保两边清零,互相督促,而不是“你以为我以为我没问题了”;

另外,要 7*24 小时随时监测异常情况,及时发现及时处理。

从用户角度,
如果在某个 DeFi 协议或者平台上有大量资产或者头寸,一定要对该协议和平台的代码、团队、治理机制进行亲自了解,而不是道听途说,或者随波逐流。
此外,如果资产规模较大,也应该分散资产,尽可能将资产放在不同的协议上。
最后,建议在目前阶段,仅仅将 DeFi 当作理财的选项之一,不要将所有资产都放在 DeFi 上。

🌟代代:
项目方:应该设立一套完整的审计-监控-预警机制。

行业内现在也在自我完善,自组织地推出 AuditDao、合约评级等预防措施。

用户:我们对从业者、对项目方的要求应该远远大于对用户的要求,否则就是在不断拔高 defi 的使用门槛。
我建议审计行业形成行业规范,除了生成供业内开发者参考的专业审计报告,也出品面向 c 端用户的易读的审计和风控报告。并且项目方有义务在产品网站公开审计结果供读者知晓。

问题二:攻击如果真的发生了,对 DeFi 设施而言有没有比较好的应对措施来降低损失?如果一个完全去中心化的 DeFi (没有管理员、没有人可以升级或关闭)协议被黑客攻击,谁该负责?是不是用户自己负责?有没有可能为 DeFi 社区设立一个全局的兜底或保险机制?

☠️咕噜:
不管是不是完全去中心,还是有 Admin Key,只要应用是以盈利为目的的,都是运营方承担最终的责任。如果运营方是公司,那么以公司的资产为限承担有限的责任,或者进入破产清算程序,或者以债务的方式向受损失的用户承担责任。全局性的 DeFi 保险机制不合适,保险机制同样应该遵循市场机制,以单个 DeFi 应用为单位,独立购买保险。

🏈徐勇:
几乎所有的 DeFi 协议目前只有业务逻辑,而没有风控逻辑,这在传统或互联网金融领域是不可想象的。以后不管是链上协议,还是链外监控,都需要更完善的风控措施,并且这可能会在实质意义上,改变当前 DeFi 的形态。

如果完全去中心化的协议被攻击,一定说要有人负责的话,排在第一的只能是用户自己(当然这句话很残酷)。另外协议的开发者声誉也会受损,长远来看其实是整个行业在买单。所以 DeFi 从业者应该一起努力,来减少用户被伤害的可能。

关于 DeFi 保险的问题,比较可行的还是用项目的平台币来担保,比如之前 MakerDAO 拍卖 MKR 填补亏空。这有两个好处,一是,用户在使用产品前,能根据平台币的市值和流动性,大致判断出平台的安全性,特别是兜底的能力;二是,因为存在金融杠杆,它的兜底能力是很强的。最后,基于上述逻辑,未来平台币有可能会成为 DeFi 项目的标配。

🦑余弦:
如果攻击真的发生了,这个真的取决于这个项目是否有成熟的安全风控机制,没有的话,就很麻烦了。如果这个项目完全去中心化,那用户也确实需要更加谨慎,因为出问题了,基本就是无力回天。项目方可以在用户使用这样的项目前做好足够清晰的风险声明,因为用户有知情权。由于 DeFi 是新事物,并不像我们现在世界的成熟金融体系,有很足的法律保障,司法解释,出问题后到底是谁来负责,这个很难说,往往最终都会说「让社区来处理」。至于 DeFi 社区的兜底或保险机制,我们希望有,这不是技术问题,这是有没有人愿意做的问题。

🎸吴家志:
如果攻击已经发生,DeFi 协议目前最佳方案是寻求区块链生态协作力量帮忙找回资产,比如 DeFi 协议里有大量的稳定币资产,可以赶在黑客尚未对稳定币进行有效处理的时候对其进行封堵,基本可以确定挽回这部分资产损失。又比如,黑客如果分散资金流入交易所进行洗钱时,应第一时间跟关联交易所进行交涉,同时立案尽可能的通过交易所方面的 KYC 信息掌握黑客的一些身份资料,进而和黑客进行谈判以寻求资产被退回的可能。另外对于项目方而言可以考虑在产品体系中组合加入保险产品,这样对用户而言有一个保险机制。

完全去中心化的 DeFi 一旦出现问题是没办法进行问责的,因为这类平台一般依赖社区治理,任何补救决策都要通过社区投票。

理论上来讲在完全去中心化的世界里,code is law,用户是要自己承担损失。因为用户在选择投资前就应该认识到和收益存在对等的风险。比方你现在买了比特币,结果你私钥丢了,只有你自己承受损失了,因为比特币是完全去中心化的,没有任何人能帮你找回资产。

现在出现了一些产品组合中包含保险的 DeFi 产品,一旦遭受攻击可根据 DeFi 保险产品的治理规则定义赔付标准,可以帮用户适当的挽回一些损失,但这目前来看也只是杯水车薪。其他存在兜底的平台大多有较强的中心化角色,在遭受攻击后,可以利用平台的激励融资等多个手段来赔付用户。

💡潘超:
相比于去中心化治理,管理员权限在大多数情况下处理危机时效率更高,可以暂停系统或者修改不当参数。但坏处是会牺牲去中心化的目的,增加单点的物理风险,比如管理员私钥的可得性、滥用等。此外,危机发生后,和链下机构的合作也很重要,社区协作本身就是 DeFi 力量的一部分。
原生的全局兜底或保险机制比较困难,因为这实际上意味着税收 + 监管。
项目方治理人需要对用户负责,让用户自担风险是不负责任的。

👹曹寅:
首先应该立刻告知用户,以免有人不明情况而遭受二次损失,如果协议有 Adminkey,可以考虑尽快使用 adminkey 停止协议。其次,应立即想办法通知所有合作伙伴,以免风险向其他协议或者资产扩散。

Uniswap 是典型没有管理员,没人可以升级和关闭的 DeFi,如果开发者已经充分做到了应尽的风险提示义务,那所有因为已知风险而导致的损失应该由用户自己承担,如果是因为未告知风险而导致的损失,则需要根据具体情况讨论,如果协议开发者不向用户提供使用便利的情况下(即不提供应用界面,不主动向用户推广,没有过度承诺),那责任应该是用户。如果协议开发者提供应用界面,主动向用户推广,并且存在过度承诺的话,那协议开发者应该承担责任。

100% 风险覆盖的 DeFi 保险,短期之内应该不大可能,所以在目前阶段,DeFi 应用服务提供者身上的责任比较大。

🌟代代:
在定责方面,我同意蒋涛老师说的「谁收益,谁负责」。如果 defi 产品仍旧是由团队运营,并且团队因此获利,那么就应该承担产品上的任何资金损失。

我们说 defi 是开放的,以普惠金融为愿景的。但这并不意味着你也可以开发一个合约,我也可以部署一个合约,用户把钱放进去,然后会不会丢钱全凭这个开发者代码水平如何,丢了钱能不能找回来,全凭黑客水平如何。

不符合人性的设计,结果只能是自己拒绝了大规模用户。

我认为这也不是目前的社区共识。从目前的趋势看,defi 社区已经在积极寻求更好的安全性和商业性。

我也不认为「全局兜底 / 保险」是一个可行的方案。

问题三:目前 DeFi 用户的需求和 DeFi 协议专注的方向是否不够匹配?这次攻击隐藏着很多基础协议仍然存在一些安全漏洞,未来仍然有可能出现类似的危机,DeFi 从业者是否应该重新思考自己构建的协议的价值?

☠️咕噜:
本次攻击事件不能归咎于基础协议,而是产品的运营事故:在不适用于 ERC777 的协议里纳入 ERC777 代币。举个例子,如果一个塑料桶本来不适用于盛放有机溶剂,有人用它来盛放丙酮,结果造成泄漏,你说是做容器的人的过错,还是把丙酮放入容器人的过错?

🏈徐勇:
我认为目前不匹配是大量存在的,或许是因为行业早期的缘故吧。另外个人观察,整个行业处在一个从务虚转向务实的阶段,务实是指用户需求导向。所以暂时的不匹配,长远来看不用太担心,这是必要的过程。

🦑余弦:
匹配不匹配是进化出来的,也不可能所有的用户需求都能满足,DeFi 其实并不一定需要完全去中心,这是我的个人看法。前面说的:“任何新事物在进化过程中都会有安全风险,这是进化法则告诉我们的,越早期这种风险越大,最终要么死亡,要么就会趋于某种比较稳定的平衡。”但其实不必因此而打击信心,DeFi 一定有自己的定位,但 DeFi 也别想着一统天下,同样话适合 CeFi。我们应该会看到更多 DeFi + CeFi 的混合体出现。

🎸吴家志:
大方向还是匹配的,但也存在一些争议,比如如果一个对安全性和兜底保险更敏感的用户,平台强调去中心化就不太匹配,又比如如果一个用户对去中心化比较敏感,平台任何中心化的用户体验优化都可能遭致用户反感。

代码世界里 0day 漏洞是一直都可能存在的,DeFi 协议构建者应当把安全放在首位,务必注意安全上的保障,在安全基础上再谈去中心化或者理财管理等等比较妥善。

🦄️Fiona (IOSG):目前海外社区主流的思想还是 Joel Monegro 当初提出的 fat protocol (胖协议),但是我们看到协议层频频爆出黑客攻击,且这些协议对安全性仍然不够重视,大多数都会在网站上警示用户风险自担,不想承担任何风险。不同的协议未来仍然会在不同方向进行聚合和升级,在底层需要完善数据备份和安全审计,在面向用户的聚合应用层仍然是有较高潜力捕获价值。单纯降低用户门槛肯定是远远不够的,这样的团队肯定会出安全的问题。只是降低用户使用门槛是不负责任的,最大的隐患还是数据安全。胖应用应该胖在安全和数据上,帮助用户来 verify 技术的安全性。协议层自己说自己是安全的有用吗?就算是有合约审计,审计公司也无法完全承担风险,应用端才应该是对安全负责的机构。

🚀Bowen:
这次的黑客攻击事件, 是一个很大的警钟, 对于用户安全性的考虑,对于资金池产品设计(是单一资金池, 还是多资金池, 是一种抵押物可以借多种抵押物, 还是一种抵押物只能借单一资产), 对于是否抵押物可以再次借出的设计的合理性。

CeFi 和 DeFi 并不是对立面, 而是互相补充。 1000 个人心中有 1000 个哈姆雷特, 每一个用户在意的点都不同, 意识形态之争求同存异, 只有安全平稳发展才是重中之重。

💡潘超:
降低杠杆是加密货币的初心,追求账面高收益无意义。DeFi 需要“幼稚产业保护政策”,警惕协议内“病毒” USDT 带来的负外部性。

👹曹寅:
用户需求多种多样,只能说现在的 DeFi 协议方向满足了现在用户的需求,但是仍然有大量应用方向的有待探索,所以目前 DeFi 的用户数量少。

任何协议,只要有人用,都有价值,只是现在的协议开发者的开发方向太同质化,但这也是因为目前的 DeFi 存在很多协议开发者本身无法解决的瓶颈,比如链上身份、链下资产上链的保全和清算等等问题,这有待于 DeFi 开发者以外的开发者来解决。现在的 DeFi 其实已经在有限的条件下的进行了充分的创新。

🌟代代:
最后,在经历了这些攻击事件后,你还有没有什么想要对关心 DeFi 的朋友们说些什么话?

希望社区的讨论不要总是纠结于 defi 的定义,希望从业者对金融的本质有更深的认知。defi 无可避免地引发一场 hype,又不可避免地开始大浪淘沙。商业化是 defi 生存和发展的唯一选择。这一次,中国 defi 社区证明了自己的团队,后面就到了证明自己商业能力的时候。从碳基文明到硅基文明的过渡,在人类文明的叙事本上,一定有我们的篇章。
最后,在经历了这些攻击事件后,你还有没有什么想要对关心 DeFi 的朋友们说些什么话?

希望社区的讨论不要总是纠结于 defi 的定义,希望从业者对金融的本质有更深的认知。defi 无可避免地引发一场 hype,又不可避免地开始大浪淘沙。商业化是 defi 生存和发展的唯一选择。这一次,中国 defi 社区证明了自己的团队,后面就到了证明自己商业能力的时候。从碳基文明到硅基文明的过渡,在人类文明的叙事本上,一定有我们的篇章。

问题四:最后,在经历了这些攻击事件后,你还有没有什么想要对 关心 DeFi 的朋友们说些什么话?

🏈徐勇:
现在的 DeFi 像极了上个世纪 90 年代的互联网,当初互联网所面临的争议并不比现在的 DeFi 要少。另外在早期判断一个行业,无非就是人性加趋势,我认为 DeFi 在这两点是逻辑自洽的。总之,短期的挫折长期来看并不重要,我个人是依然看好 DeFi 的。

🦑余弦:
保持敬畏,共同进化。

🎸 吴家志:
这次攻击和 312 行业黑天鹅,我相信每一个深处其中的人心情都是蛮沉重的,但无论怎样这都是 DeFi 行业发展路上的必经之路,也是行业必须要经历的压力测试和挑战。我觉得我们应该看清问题的关键,尝试在未来的发展过程中努力克服,寻求一个更好的化解方案。比如 312 暴露出来的市场波动会对 DeFi 平台的稳定性压力测试,Lendf.Me 暴露出来的安全对于 DeFi 世界的重要性,都在提醒我们玩转 DeFi 应该努力的方向,整体而言对大家是有成长和鞭策意义的。

💡潘超
金融仍然是区块链最合适也可能是唯一的落地场景。金融的去中心化是个过程,现在的 DeFi 不会是其最终形态。

👹曹寅
都是成年人了,自己为自己的资产负责。

以上即是 Curator.DAO 发布最新的 PoS 周报,Curator.DAO 是一个去中心化的信息孵化器,Curator.DAO Blockchain Newsletter 为您速览区块链行业全面的 PoW、PoS、Defi、投资、政策周报。目前加入的成员包括链闻 Chainews、真本聪 Realsatoshi、节点易 Nodeasy 等机构,小毛哥 MAO、Haichao、Weiting、Thomas 等区块链行业从业者。创作不易,中国的 Staking 生态需要高质量的原创内容,想要加入 Curator.DAO 或贡献内容,或赞助我们,请联系:mao@blocks.tech

本报告仅提供相关项目信息,不构成任何投资建议。