加密世界需要怎么样的安全机制

快链头条
2021-01-19 16:34
新闻
25162

本文于2020年2月27日发布于区块链 海盗号,作者为郑嘉梁,HashKey Capital 研究总监,并由邓超,HashKey Capital CEO 审校。

 

我们回顾了近期 DeFi 安全事件,认为这是一种合成谬误现象。DeFi 世界中 building block 的叙述值得被反思。有多种安全机制可以减少这种攻击,包括限制闪电贷额度,限制低流动性资产的额度,使用更好的喂价机制,加强代码审计,使用保险等。同时讨论了不同去中心化的机制和中心化保险的各种形式,认为去中心化保险还比较早期,产品的有效应有待验证。数字资产的保险可能会先行,智能合约的保险市场容量较小。并在文末对加密世界的保险提出了七点展望。

一、DeFi 安全事件是合成谬误的体现

最近 bZx 两次被攻击事件引起社区极大的关注,牵连出很多话题,涉及到 DeFi 的设计机理,以及和整个加密世界联动的问题。

回顾一下 bZx 在第一次被攻击事件中,各方起到的作用:

  1. dydx:闪电贷款,ETH 流动性提供方
  2. Compound:提供抵押借贷,wBTC 流动性提供方
  3. bZx:提供抵押式做空,预言机攻击发生地
  4. Kyber:预言机喂价
  5. Uniswap:提供 token 互换,提供价格,以及 wBTC 兑换场所,套利的最终实现地。
回顾一下 bZx 在第二次被攻击事件中,各方起到的作用:
  1. bZx:闪电贷款,ETH 流动性提供方,wETH 兑换场所,预言机攻击发生地
  2. Kyber:预言机喂价
  3. Uniswap:提供 token 互换,提供价格,
  4. Synthetix:sUSD 流动性提供方
总体来说,攻击者(使用社区 Attacker 的描述)的操作步骤可以简述为:
  1. 通过闪电贷款获得大量流动性
  2. 通过低流动性交易所,用部分在步骤 1 获得一部分流动性进行价格操纵
  3. 用步骤一获得大部分流动性以操纵后的价格成交
  4. 返还闪电借贷,完成攻击
这里面我们可以看到,闪电借贷部分是没有受到攻击的,因为闪电借贷是需要在一笔交易内完成,如果不能归还,则借出也不能完成,所以闪电借贷本身问题不大,只是提供了攻击所必要的流动性。比如,假设攻击者本身就有很多 ETH,他其实并不需要闪电借贷也可完成攻击,只是闪电借贷给了他一个极低 cost 的流动性而已。

而攻击者利用了四个缺陷:1) bZx 上依赖单一喂价机制的缺陷 2) bZx 智能合约逻辑问题(根据代码分析,healthy check 没有触发) 3) 去中心化交易所 Uniswap 的低流动性,造成容易被价格操纵。4 铸造代币 sUSD,wBTC 产品比较初期,流动性过低。

DeFi 的特性中最大的就是开放性,其中开放性有两个层面,一个是对用户的开放性,一个合约之间的开放性,这也是为什么社区会热议 DeFi 之前相互会成为 building block 的原因。然而,正是这种 building block 的叙述(narrative),可能一定程度使开发者放下了警觉,把调用其他合约当做正确的事情,而忽视了风险。

所以我们认为这其中非常明显的体现了「合成谬误」现象。合成谬误 (Fallacy of Composition) 是经济学家萨缪尔森提出来的。意思是说,它是一种谬误,对局部说来是对的东西,仅仅由于它对局部而言是对的,便说它对总体而言也必然是对的。DeFi 作为 building block 的开放性,恰恰加剧了合成谬误。传统金融以机构为主导,有监管指导,相对理性。DeFi 较初期,没有监管,更多体现个体和个体之间关系,一个个体的缺陷就会导致一大部分缺陷。以两次攻击事件为例,各个合约之间单独看,问题都不大,普通攻击难以奏效(或者说不经济),而攻击者想出了利用不同平台逐步放大单一小缺陷的策略,导致整体出了问题。

二、DeFi 的风险暴露

我们对 DeFi 体现的风险略说一二,不对项目做具体评价,然而,DeFi 项目仍在早期,有些风险是可以解决的,但需要验证。
  1. 最大的问题是流动性问题,流动性的问题来源于这个市场太新了。假设 dex 的流动性和 cex 差不多,那很难说用几千个 ETH 就能操作市场,更不要说 ETH/BTC 的交易对提升到正常情况下的三倍。流动性的问题通过不同协议之间的传导,放大了了整个错误。回到一个根本性问题,就是 DeFi 的所有组件一定都要去中心化么,一定需要使用去中心化预言机么?一边是去中心化,但是数据不准,一边是中心化,但是数据准确,取哪一个?中心化是为了担心被认为操控,现在表明去中心化也不能防范人为操控,所以在认为操控问题上,没有大的区别。所以或许应该选准确的。
  2. 攻击的成本和规模并不很高。攻击者利用闪电贷接触的总量基本在几千 ETH,第一次动用 6800ETH (1300 价格操纵,5500ETH 进行套利),第二次动用 540+20*18=1000 进行价格操纵, 3518 个 ETH 进行套利,所以规模基本在 3000-6000ETH 之间这个样子。应该是算准了 Uniswap 和 Synthitex 的流动性池子,精确地计算了规模。所以就算两个产品流动性扩大 10 倍,那只要增加动用的 ETH 就可以了,但是对攻击者的要求更高,难度更大了。而进行价格操纵的 ETH 数量就约在 1000-1300 个,也就是约 25 万美元到 32.5 万美元之间。
  3. 攻击不会停止。攻击者确实有责任,但难以避免。金融世界利用各种不同工具进行套利是非常正常的现象,甚至大规模的套利引发经济危机,但这并非不允许,只是把规则推到了极限。比如在 90 年代初,索罗斯攻击英镑的例子就很显著。利用是欧洲各国虽然经济捆绑在了一起,但是周期却不一样的缺陷,英国德国在经济上差别很大,但却挂钩了外汇,索罗斯的做空正是瞄准了这一脆弱的链条。同样,各类衍生品的存在并不是为这种汇率攻击而存在的,但是当系统出现这样的机会,套利者不会错过。只要金融存在,就一定会出现套利者,无论中心还是去中心。借用一句时髦的话说:「资本永不眠」。

三、可用的安全机制

我们这里列出的机制,其实更多地是人为干预,也就是在协议之外加上了「紧急叫停」,可能加强代码审计和保险是更容易被社区接受的机制。

1. 限制闪电贷的规模

其实原理也很简单,闪电贷从头到尾都是流动性的提供方,就类似做空者手上的现货是一定要借的,那只要切断流动性的来源就可以。或者对借出金额进行限制,如上分析,流动性的借出起两个作用,一个是操纵币价,另一部分就是用操纵后的币价套利,操纵币价目前只需要 1000 多等值 ETH 即可,因此限制异常的大额的出借就可以。

2. 限制低流动性货币交易额

社区一直热衷于把 BTC 引入到以太坊的 DeFi 系统中,开发了诸如 wBTC,tBTC,hBTC 等代币开发协议,以及 erc20 版本的以太坊。由于 building block 的思想,这些代币进入了流动交易领域,但是问题就在于量少,而且是在 DeFi 协议中,流动性被分割在不同的池子里。像 Uniswap 的原理展示中,很明白的列出了交易额过大会产生很大的滑点,所以限制一次下单的交易额,使得利用流动性不足操作价格的手续变得麻烦,也是一个选择。(当然也可能遭到社区反对)

3. 使用更好的价格机制

bZx 近期已准备开始使用 Chainlink 的预言机机制了,算是对喂价机制的调整。说明在预言机层面可以更为优化,当然是否使用中心化的预言机,是另外一个考虑。

4. 强化代码审计

从攻击事件上可以看出,若 bZx 的合约代码相关逻辑判定没有出现问题,攻击业内难以进行。所以强壮的代码是必需的,以后 DeFi 项目会更加注重代码审计的结果。

5. 使用保险

由于被攻击事件的广泛关注,社区开始把目光投向了保险。简述一下传统保险公司的运作机制是:1 精算师计算各类事件(如生病、死亡、灾害等)发生的概率;2 产品部门设计相应产品,精算师根据概率进行定价;3 投保人购买产品 ;4 投保人在保单存续期间缴交保费 ;5 发生理赔事件,保险公司核保、定损,并进行理赔金额支付。6 保险公司的保险合同准备金用来做投资。

目前我们看到去中心化的保险机制,不存在精算师,没有投资部门,所以与传统的与公司制运行的保险公司不同,更类似互助保险。当然互助保险也一直存在,也是最古老的保险形式,是采用互助保险合作社的形式进行。全球互助保险市场份额约在所有保险合同的 1/3 左右。

四、中心化和去中心化的保险

去中心化保险:

目前市面上有两类去中心化保险(或者叫保障)机制,我们可以看一下主要的运行机理:

1 互助类型的保险

Nexus Mutual

Nexus Mutual 只提供一种单一定额保险产品:该产品覆盖智能合约「非预期使用」(unintended code usage),即某些人 (不一定是保单购买者) 在智能合约上遭受了经济损失。

符合理赔的三个条件:

  1. 指定的智能合约地址,或在智能合约系统中与之直接相关的智能合约地址,在「覆盖期内」遭黑客入侵,是智能合约代码被不当使用的直接结果 ;
  2. 由于黑客攻击,智能合同或智能合同系统的资金出现了重大损失,资金被移动到原所有者或所有者无法控制的另一个地址 ; 或永久不可恢复 ;
  3. 被保险成员在保险期间内或保险期间结束后 35 天内提出索赔。
理赔中不保的几个方向:
  1. 因网络钓鱼、私钥安全漏洞、恶意软件、交易所黑客攻击或任何涉及智能合约的其他活动而导致的资金损失 ;
  2. 如果智能合同或智能合同系统的部署主要是为了索赔,而不是供客户实际使用,则任何索赔 ;
  3. 对于在「覆盖期」内发生的任何黑客行为,如果在「覆盖期」开始之前,针对指定的智能合同地址或与智能合同系统直接相关的智能合同地址发生了黑客行为或公开披露了 bug;
  4. 由于智能合同逻辑在更改后 250 天内引入的错误而导致的黑客攻击。
投资方式,Nexus Mutual 也如同传统互助保险一样,提出了未来利用保险池资金的可能,包括:
  1. ETH 的未来 PoS 机制下的 staking 收入
  2. 抵押式借贷
  3. 状态通道和支付通道的 guarantor 收入
法律架构层面采用了英国的 discretionary mutual 结构,比较传统,与一般英国互助保险架构相同。

总体而言产品的设计比较简单,当然简单未必不好,对于新的产品,简单的设计让池子支持方避免损失。当然保障能力有限,定额的保单可以覆盖的范围还不够大。另外我们也看到在风险管理层面,Nexus Mutual 也学习借鉴了欧洲新一代保险监管架构 Solvency II (类似于银行业的巴塞尔协议 III),可以不断丰富下去但还不够。所以在保险三个功能,承保、投资和风险控制还有比较长的路要走。

2 期权

期权可以算作一种风险防护机制,严格意义上不算保险。保险最大的特征是有个池子,是把个体风险往集体方向转嫁的一个机制。而在大的层面上说,保险和期权都算作风险管理机制。

Opyn

基于 Convexity Protocol 的 Opyn,就是通过期权实现风险防护机制,目前刚刚推出了对 Compound 用户的存款保险。用户可以通过购买 otoken 保护自己在 Compound 上的存款,就是一种风险对冲机制。Opyn 获得了 Compound、Maker 和 USDC 的支持。

Opyn 的机制在概念上比较容易理解,使用者在平台上发行自己的看跌期权即可,这种看跌期权也是一种 ERC20 的 token, 被称为 oToken。期权的 writer 获得期权金(premium),oToken 也可以在各个 dex 进行交易,购买方获得期权的保障。

有意思的是,在 Convexity Protocol 白皮书中,提到了一些他们认为的 Nexus Mutual 的问题,比如:

  1. 超额认购:Nexus Mutual 目前正试图解决 DeFi 的保险问题,但不幸的是会被超额认购,因此无法覆盖新的买家。因此,在确认用户需要保险的同时,他们的保险合同被超额认购这一事实是有问题的。
  2. 人为参与:在 Nexus 模型中,Nexus Mutual 本身扮演着单一风险承保人的角色,这导致了对保险金额的严格限制。此外,Nexus 要求索赔和欺诈评估的人员参与,这在主观案例中非常难以执行。
  3. 保单覆盖范围有限:此外,Nexus Mutual 的范围有限,因为它只针对黑客攻击 ; 又如其对 Compound 合约提供的保险对流动性危机没有提供追索权。
虽然 Convexity Protocol 认为他们对 Nexus Mutual 有很多优势,但我们认为并不完全如此。Nexus Mutual 的产品形态确实简单,但是简单的产品不代表无效,它针对了非常特定的事件,就是 smart contract 的 failure,而这个是 option 不能保护的。option 只能针对于跟价格有关的事件进行保护,如果该事件不涉及价格,如何保护?当然也可以定价,但比较复杂,相信 option 类产品可以未来继续探索对智能合约的保护。而对特定事件的保护则是可以包含价格变化。

而且 option 要设置很多参数的话,会造成 oToken 流动性的分裂(Convexity Protocol 白皮书提到),所以 oToken 选择尽量少的期权参数,对抗流动性分裂。至于低流动性的 option 会产生什么问题,也确实不清楚,风险未知。当然 oToken 本身是期权,除了保护资产,还可以有更为广泛的用途。所以从这个角度看,两种产品各有千秋。

注:以上关于 Nexus Mutual 和 Opyn 是我们根据有限的信息作出的分析,供参考讨论,不一定准确,也希望看到两个项目可以更加丰富的产品形态,给用户更多选择。

3 预测市场

预测市场也可以作为一种保险机制的用途,但是需要足够的人过来下注,保护能力上还是比较欠缺,这里就不详述。

去年底橙皮书的文章曾经列出了 Nexus Mutual 的创始人对积累去中心化保险的比较,这里把比较结果列在下面:

中心化的保险

目前有据可查的中心化加密资产的保险我们可以做大致的分类(以下部分信息来自于链闻):

1 加密公司自己孵化的保险产品

Gemini 旗下的自建的保险公司 Nakamoto,提供高达 2 亿美元的保额。Nakamoto 将为 Gemini Custody 提供承包,Gemini Custody 为 Gemini Trust Company 的冷钱包存储方,承保范围包括人为损失、自然灾害等情况。

2 托管公司 / 交易所联合保险公司服务

KNØX: KNØX 目前在运营加密货币托管服务,机构客户像资产管理、交易所等可以试用期提供的托管服务。同时 KNØX 和保险服务商 Marsh 合作,为托管的加密或资产提供服务。KNØX 获得过富达集团的投资。Marsh 是一家全球性的专业服务公司,总部位于纽约市,从事保险经纪和风险管理业务。Marsh 是 Marsh&McLennan Companies 的子公司,也是其风险与保险服务业务部门的成员。

Anchorage: Anchorage 也提供加密货币托管业务,曾获得诸多知名方投资,如 Visa,Blockchian Capital 等。Anchorage 岑提出提出面向机构的数字资产「端到端」保险解决方案,和英国保险集团怡安集团(Aon)合作。怡安集团,全球最大规模的保险业集团公司之一,集风险管理服务、保险经纪和再保险经纪、人力资源咨询服务于一体。集团总部设于英国伦敦,并在纽约证券交易所上市交易。

Coinbase:加密货币交易所 Coinbase 自 2013 年 11 月以来就与英国最大的保险组织劳合社(Lloyd's)为其热钱包提供 2.55 亿美元保险。

BitGo:加密托管公司 BitGo 也通过伦敦劳合社保险市场 (Lloyd 's) 为数字资产提供价值 1 亿美元的失窃或密码钥匙遗失保险。BitGo 钱包或其合格托管机构 BitGo Trust Company 持有的冷钱包中的托管资产若受到私人密钥被盗,以及雇员内部盗窃私钥、私人密钥的物理损失或损坏,都将得到保险的保护。但也有信息指出,BitGo 的提供的保险服务实际效果还比较有限,核保和理赔过程比较复杂,单账户保额有一定的上限(可以考虑分拆资产),表明保险公司目前对加密资产的风险承担还需要长时间评估。此外 BitGo 也有一些监管层面的考虑。

Coinbase 和 BitGo 合作的劳合社值得一提,劳合社 (Lloyd 's) 是英国的一家保险人组织。该组织不直接经营保险业务,只是为其会员提供交易场所和有关服务,是世界上由个人承保保险业务的唯一组织。劳合社起源于 300 多年前的英国伦敦,发展到现在,已经占据着伦敦保险市场的半壁江山,经营区域覆盖世界上 200 多个国家和地区。

3 初创公司的保险业务

Coincover 是一家位于英国加的夫的初创公司,其号称推出了有史以来第一个加密货币保险服务,旨在保护用户免受盗窃和资产损失。Coincover 带来的是一个全面的加密货币保险服务。这款产品是唯一一款为加密货币用户提供的不间断监控和保护服务。Coincover 宣城 24 小时保护存储在基于软件的加密货币钱包中的所有资产。不仅如此,Coincover 的目标是通过对发件人进行尽职调查来监控所有的资金来源。

4 传统保险公司直接出售保单

彭博社报道已经有数十家保险公司提供了加密资产的服务,但是这些保单签发者拒绝披露身份。显示他们可能比较保守,或者也处于监管考虑,在业务探索和监管合规方面摇摆。

总结而言,加密资产保险是很多传统巨头都希望进入的领域,许多巨头选择和加密托管服务公司合作,已经成为非常流行的做法,虽然目前整体保额不高,但随着保险公司越来越熟悉加密行业以后,相信保证额度和保障范围都会增加。Crypto native 的保险公司虽然存在,但是其能力有待验证,也希望更多有实力的玩家参与进来,丰富生态。

六、总结以及展望

DeFi 的代码安全和加密货币的资产安全,是未来会被重视的两个方向。加密资产的安全也是阻碍机构投资人进入到加密世界的障碍之一。像保险巨头 Aon 曾表明许多大型保险公司如 XL Group, AIG 和 Chubb 等已经开始静悄悄的加密货币的保险加入到保险政策之中。

目前看专门覆盖 DeFi 的保险还是过于早期了,我们判断数字资产保险的成熟会更早一些,整体加密资产市值达到了 3000 亿美元,比特币的市值已经达到了 1800 亿美元左右,是相对成熟的市场。而 DeFi 锁仓锁仓的 ETH 不过 10 亿美元左右,开发保险产品动力稍显不足。

作为一般财产险公司,3-4 年才可能盈亏平衡,而加密货币的事发频率更高,所以保险的发展不会很快,需要有长期投入的决心。去中心化保险会在产品上贴合 DeFi 和智能合约特性很快的推出产品,但需要类似安全事件和极端流动性事件的考验。

七个方向的展望:

  1. 数字资产保险仍然是传统保险公司去做,因为潜在市场主要面向传统机构投资人
  2. DeFi 安全的保险由去中心化保险会承担一部分甚至一大部分,因为客户已经是 crypto player, 对加密资产和去中心化应用已经有了了解,对加密资产更有信念,或学会选择去中心化产品
  3. 需要更长时间才能得出加密资产概率损失表
  4. 随着加密资产市值扩大,会有保险公司或组织因为加密货币安全事件破产或者重组
  5. 会出现加密资产的再保险公司
  6. 2B 的保险长期占据主流,2C 的业务尚需时日。我们看到托管服务商和保险公司的合作相对较多,一个是资产量够大,另一个是数据更为丰富,方便定价。针对个人的数字资产保险,可能会有,但是业务做不大,盈利也会较少。
  7. 需求始终旺盛,供应长期不足

 

本文链接:https://www.8btc.com/media/589110

温馨提示:
快链头条登载此文本着传递更多信息的缘由,并不代表赞同其观点或证实其描述。
文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。