咕噜踩雷记:DeFi未被证伪,投资需要「分散」

原文标题:《咕噜踩雷记》
原文来源:币乎 作者:咕噜,币乎创始人

律动注:借贷平台 Lendf.Me 在 4 月 19 日早晨遭到黑客攻击,据统计约 2500 万美元的加密资产被盗。在 4 月 21 日下午,黑客基本已将盗走的加密资产归还给平台,虽然此次事件有惊无险,但 DeFi 的问题仍需大家反思。律动BlockBeats分享一篇币乎创始人咕噜的对此次事件发生后所感而写的文章,与大家共同探讨。(关于 Lendf.Me 被盗资产归还事件请看《 借贷平台 Lendf.Me 被盗资产大部分已追回(内附已归还资产数额统计表格) 》  )  

以下为币乎创始人咕噜发表的文章原文 Enjoy~

好像全网都知道了我最近踩了 Lendf.me 的雷,既然都知道了,也是好久没写文章,今天跟大家来分享一些思考。

Lendf.me 属于 Defi 范畴(DeFi,Decentralized Finance 的简称,去中心化金融),是 DeFi 中非常流行的抵押借贷类产品,本文主要讲述 DeFi 类产品的风险识别和规避。
这个世界不存在「无风险收益」,不确定性是这个世界的本质属性,量子力学告诉我们。
巴菲特把 10 年期美国国债的利率作为无风险利率的近似,用到「未来现金流折现公式」里,这个大概是巴菲特能找到的最接近零风险的回报率了吧。巴菲特心里应该清楚,10 年期美国国债的风险不是绝对零,只是风险很小,市场认为美国 10 年内国债违约的风险接近于零。注意,这里所说无风险,是指在美元本位的前提下的论述,别忘了,美元是在通胀和贬值的。

再举个例子,圈内熟悉的搬砖套利不是无风险的。搬砖通常在 2 个中心化交易平台之间进行,那么存放在交易平台上的资产承受着交易平台出事的风险。同时,搬砖本身也存在因时间差而被阻击的风险,另外还有中间链路出问题而导致第二笔无法成交或成交延迟的风险。这些风险都是真实存在的,市场上的每个人对这些风险的评估不同,在特定搬砖回报率的条件下,有的人选择参与,有的人不参与。
回到 DeFi。不同的 DeFi 产品,风险各不相同。那就说说抵押借贷类 DeFi,参与这类 DeFi 产品的风险我认为有这些:(1)智能合约代码安全性引入的风险;(2)智能合约(如果有)Admin Key 引入的运营风险;(3)持有特定资产本身的风险;(4)抵押借贷类 DeFi 本身的市场风险;包括(4a)抵押品迅速跌价导致无法及时平仓的风险、(4b)某一抵押品抵押数量过多导致市场流动性无法消化的风险,(4a)和(4b)是紧密关联的;(5)智能合约平台的风险;(6)用户自身私钥管理的风险。
下面一一分析:
(1)智能合约代码安全性引入的风险。

这是目前 DeFi 应用最主要的风险,我个人认为占了总风险的大多数。智能合约作为管钱的「机器人」,是一段要求不能有 Bug 的代码。代码中引入 Bug 通常有 2 种途径:(a)程序员对需求是理解正确的,但是在写代码的过程中引入 bug,导致代码无法 100% 正确表达需求;(b)程序员对需求的理解有误,或需求本身错了,导致根据此需求写出的代码是错的。严格意义上讲,最近出事的 Lendf.me 不属于以上任何一种,而是智能合约被超出范围地使用:出事的智能合约不应该纳入 ERC777 的代币,而 imBTC 作为 ERC777 的代币被错误地纳入到了抵押品里,导致智能合约被假币欺骗,在智能合约账本内部虚构大量的 imBTC 作为抵押品,借走智能合约里存放着的所有其它资产。

如何识别和规避风险?
首先,安全审计报告是规避智能合约风险的第一道关口,也是最重要的关口,也是目前唯一能前置规避智能合约风险的措施。我个人不会把资产存放在没有安全审计报告的智能合约里。
其次,时间是最好的检验。经过长时间有效实战检验的智能合约,风险显著降低。多长时间算长?我个人认为至少 1 年以上。
(2)智能合约(如果有)Admin Key 引入的运营风险。
什么是智能合约的 Admin Key?智能合约作为一个提供服务的「机器人」,很多时候运营方需要留有人工的权限去控制这个「机器人」,例如关停「机器人」,再例如冻结智能合约中某个账户的资产,等等。如果存在这样的 Admin
Key 人工权限,就会引入额外的风险。有的智能合约是没有 Admin Key 的,例如 uniswap,也就是说,运营方没有权限对智能合约做任何干扰,「机器人」是完全自动运行的。
对于有 Admin Key 权限的智能合约,如何识别和规避风险?
(a)看运营方是否主动披露 Admin Key 权限的存在。智能合约的运营方是否主动披露了 Admin Key 权限,能一定程度上表明运营方的态度。虽然(以太坊上的)智能合约通常都是代码开源的,但很少有人会去真的查看代码,一个负责任的运营方应该有义务主动披露 Admin Key 权限。
(b)看 Admin Key 的权限范围。主要看 Admin Key 权限是否有权动用用户在智能合约中的资产,以及其它会影响用户资产的权限。例如,如果仅仅是关停智能合约的服务,关停之后用户仍然可以提币,像这种「刹车式」的 Admin Key 权限属于保护性质,而不是侵入性质。那些可以冻结、转移、没收用户资产的 Admin Key 权限,需要格外当心。
(c)看是否对 Admin Key 权限设置了延时生效机制。延时生效机制是防范 Admin Key 的侵入式权限对用户造成伤害的有效防御手段,同时也是反应运营方态度的关键看点。例如,MYKEY 作为一款智能钱包,其所依赖的 KEY ID 协议目前设置了 4 天的延时生效机制,也就是说,运营方如果要修改协议,至少 4 天后才能生效,如果待生效的协议对用户不利,用户有 4 天时间可以选择退出并撤走所有资产。随着时间推移,KEY ID 协议的延时长度将逐渐从 4 天提高到 30 天以上。
(d)看持有 Admin Key 权限的运营方本身是否信誉良好,其所处的司法管辖区是否能起到有效的保护作用。
(3)持有特定资产本身的风险。

持有的资产本身具有价格波动的市场风险、资产被 Token 合约本身(如果有)的 Admin Key 冻结/没收的风险,等等。
(4)抵押借贷类 DeFi 本身的市场风险。

核心的市场风险:(4a)抵押品迅速跌价导致无法及时平仓的风险。(4b)某一抵押品抵押数量过多导致市场流动性无法消化的风险,会导致(4a)风险的发生和加剧。
如何识别和规避风险?

(a)在抵押协作中规定针对特定单一抵押品的抵押数量上限,上限的设定须与该抵押品的市场真实流动性匹配,尤其是要考虑泛滥的刷成交量这类因素。
(b)评估抵押协议中的平仓机制设计是否合理,平仓机制是否能有效利用市场中的流动性进行平仓。
(c)评估被纳入的抵押品本身的风险。
(5)智能合约平台的风险。

像以太坊这样的智能合约平台,自身是存在风险的,这个风险的规避与智能合约风险的规避类似:(a)安全审计。例如,以太坊早期做了非常详实的安全审计。(b)长时间的有效实战检验。例如以太坊这样的智能合约平台,上线已经接近 5 年,早期出过一次中等级别的漏洞,导致被 DoS 攻击造成交易拥堵,后来基本运行平稳。
(6)用户自身私钥管理的风险。

用户的私钥存在丢失、被盗的风险。用户发生人身事故,导致用户私钥所管理的资产无法继承的风险。
如何识别和规避风险?

(a)学习私钥保管的相关知识,建立一套完善的、适合自身的私钥管理体系,包括备份、保密机制、物理存放安全、发生人身事故后的预案。
(b)通过使用智能钱包规避私钥管理的风险。注意,智能钱包为私钥保管提供更多安全和便利的同时,同时也引入了智能合约风险和 Admin Key 风险,需充分了解相关风险后根据自身情况选择使用。
好了,大道理说了一堆,那么我是怎么掉进这次 lendf.me 事件的坑里的呢?
首先,作为在 Mt.Gox 丢过几十个 BTC 的人,我对中心化平台的风险认识应该说是充分的,一般不会将资产长时间地存放在中心化平台上,尤其是在当前缺乏监管的行业大背景下。这让我对 DeFi 有天然的好感。
参与 lendf.me 的过程中,我主要关注 3 类风险:智能合约的风险、智能合约 Admin Key 权限的风险、lendf.me 抵押借贷的市场风险。
先说 lendf.me 抵押借贷的市场风险。在 2020 年 3 月 12 日的市场暴跌中,lendf.me 平台(以下简称「平台」)较好地抵御了市场的暴跌,没有出现抵押品清算不利导致资不抵债的情况。所以 3 月 12 日之后,我对平台的信任度有所上升。
关于智能合约 Admin Key 权限的风险,我事先知道平台是留有该权限的。平台的创始人与我相识,平时有不少交流,欣赏创始人的学识。出于对创始人的信任,我对平台的 Admin Key 权限也有连带的信任。
对于最重要的智能合约风险,我主要是通过「长时间的有效实战检验」这一措施来规避,现在看来,有以下几方面今后可以改进:
(a)对「长时间」的定义应更加保守,原来我的定义大约是 6 个月,现在看来至少是 1 年。参与的资产占个人整体资产的百分比的上限,应与智能合约经过实战检验的时间长度成正相关关系。
(b)风险和收益应该成正比才对。我参与平台的主要方式是稳定币理财,刚开始的时候收益率是比较高的,印象中是 5-10%,后来随着收益率的下降,其实风险和收益的对比已经不划算了,但是由于惰性和侥幸心理,我并没有及时去调整头寸,例如出事前 USDT 在平台上的年化收益率不到 1%,显然是与风险不匹配的,理性的选择应该将资产从理财中取出。这是我在这次事件中,犯的最大的错误,今后引以为戒。
(c)更加重视安全审计报告。平台关联的审计报告,我事先并没有去了解,虽然对于本次事件来说,是否去看了审计报告并不会影响事情的结果,但我确实没有事先去看审计报告,这是不对的。
最后,说说展望。
DeFi 作为一个新的范式,并没有因为这次事件被证伪。好好想一想,让一个透明规则的「机器人」来提供金融服务,这是一件多么意义重大的事情,是一种全新的范式转移。这一范式转移,依然令人激动。然而,如何打造更安全的「机器人」,是今后区块链从业者必须要解决的问题,不然,新的范式不会流行。我个人会继续参与 DeFi 的投资和建设,以调整之后的风险意识参与。
想要获得收益,必须接受风险。世界的本质是不确定的,哪里都是风险,没有绝对的安全。想一想这次疫情,好好家中坐,祸从天上来,去超市买菜都存在死亡的风险。接受它,正视它,坦然面对,与狼共舞。
从投资的角度,务必遵守「分散原则」。这次踩雷事件中,我一直笃信和践行的分散原则,起到了最大的保护作用。虽然损失的绝对金额不少,但占比不是太大,当然,调整风险评估体系后,占比应该要更小一些。虽然踩了雷,事后心情固然有短暂的不开心,但并没有强烈的负面情绪,并不沮丧,并不悲观,更谈不上绝望。不然,也不会有心思写此文,此文也就无缘与你相见。分散原则让你夜里可以安睡。
附加说明:
1)这篇文章的作者收益,将捐赠给社区基金。
2)此文首发于币乎(bihu.com),转发请务必注明出处和原文链接。欢迎转发。
来源链接:https://bihu.com/article/1923112424

区块律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。    

咕噜 智能合约 私钥 DeFi Lendf.Me 抵押 观点 分享行业当前最热门的观点