加密世界需要怎樣的安全機制
本文於2020年2月27日發佈於區塊鏈 海盜號,作者為鄭嘉梁,HashKey Capital 研究總監,並由鄧超,HashKey Capital CEO 審校。
我們回顧了近期 DeFi 安全事件,認為這是一種合成謬誤現象。DeFi 世界中 building block 的敘述值得被反思。有多種安全機制可以減少這種攻擊,包括限制閃電貸額度,限制低流動性資產的額度,使用更好的喂價機制,加強代碼審計,使用保險等。同時討論了不同去中心化的機制和中心化保險的各種形式,認為去中心化保險還比較早期,產品的有效性有待驗證。數字資產的保險可能會先行,智能合約的保險市場容量較小。並在文末對加密世界的保險提出了七點展望。
一、DeFi 安全事件是合成謬誤的體現
最近 bZx 兩次被攻擊事件引起社區極大的關注,牽連出很多話題,涉及到 DeFi 的設計機理,以及和整個加密世界聯動的問題。
回顧一下 bZx 在第一次被攻擊事件中,各方起到的作用:
- dydx:閃電貸款,ETH 流動性提供方
- Compound:提供抵押借貸,wBTC 流動性提供方
- bZx:提供抵押式做空,預言機攻擊發生地
- Kyber:預言機喂價
- Uniswap:提供 token 互換,提供價格,以及 wBTC 兌換場所,套利的最終實現地。
回顧一下 bZx 在第二次被攻擊事件中,各方起到的作用:
- bZx:閃電貸款,ETH 流動性提供方,wETH 兌換場所,預言機攻擊發生地
- Kyber:預言機喂價
- Uniswap:提供 token 互換,提供價格,
- Synthetix:sUSD 流動性提供方
總體來說,攻擊者(使用社區 Attacker 的描述)的操作步驟可以簡述為:
- 通過閃電貸款獲得大量流動性
- 通過低流動性交易所,用部分在步驟 1 獲得的一部分流動性進行價格操縱
- 用步驟一獲得的大部分流動性以操縱後的價格成交
- 返還閃電借貸,完成攻擊
這裡面我們可以看到,閃電借貸部分是沒有受到攻擊的,因為閃電借貸是需要在一筆交易內完成,如果不能歸還,則借出也不能完成,所以閃電借貸本身問題不大,只是提供了攻擊所必要的流動性。比如,假設攻擊者本身就有很多 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 項目仍在早期,有些風險是可以解決的,但需要驗證。
- 最大的問題是流動性問題,流動性問題來源於這個市場太新了。假設 dex 的流動性和 cex 差不多,那很難說用幾千個 ETH 就能操作市場,更不要說 ETH/BTC 的交易對提升到正常情況下的三倍。流動性問題通過不同協議之間的傳導,放大了整個錯誤。回到一個根本性問題,就是 DeFi 的所有組件一定都要去中心化麼,一定需要使用去中心化預言機麼?一邊是去中心化,但是數據不準,一邊是中心化,但是數據準確,取哪一個?中心化是為了擔心被認為操控,現在表明去中心化也不能防範人為操控,所以在認為操控問題上,沒有大的區別。所以或許應該選準確的。
- 攻擊的成本和規模並不很高。攻擊者利用閃電貸接觸的總量基本在幾千 ETH,第一次動用 6800ETH (1300 價格操縱,5500ETH 進行套利),第二次動用 540+20*18=1000 進行價格操縱, 3518 個 ETH 進行套利,所以規模基本在 3000-6000ETH 之間這個樣子。應該是算準了 Uniswap 和 Synthitex 的流動性池子,精確地計算了規模。所以就算兩個產品流動性擴大 10 倍,那只要增加動用的 ETH 就可以了,但是對攻擊者的要求更高,難度更大了。而進行價格操縱的 ETH 數量就約在 1000-1300 個,也就是約 25 萬美元到 32.5 萬美元之間。
- 攻擊不會停止。攻擊者確實有責任,但難以避免。金融世界利用各種不同工具進行套利是非常正常的現象,甚至大規模的套利引發經濟危機,但這並非不允許,只是把規則推到了極限。比如在 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),即某些人 (不一定是保單購買者) 在智能合約上遭受了經濟損失。
符合理賠的三個條件:
- 指定的智能合約地址,或在智能合約系統中與之直接相關的智能合約地址,在「覆蓋期內」遭黑客入侵,是智能合約代碼被不當使用的直接結果 ;
- 由於黑客攻擊,智能合同或智能合同系統的資金出現了重大損失,資金被移動到原所有者或所有者無法控制的另一個地址 ; 或永久不可恢復 ;
- 被保險成員在保險期間內或保險期間結束後 35 天內提出索賠。
理賠中不保的幾個方向:
- 因網絡釣魚、私鑰安全漏洞、惡意軟件、交易所黑客攻擊或任何涉及智能合約的其他活動而導致的資金損失 ;
- 如果智能合同或智能合同系統的部署主要是為了索賠,而不是供客戶實際使用,則任何索賠 ;
- 對於在「覆蓋期」內發生的任何黑客行為,如果在「覆蓋期」開始之前,針對指定的智能合同地址或與智能合同系統直接相關的智能合同地址發生了黑客行為或公開披露了 bug;
- 由於智能合同邏輯在更改後 250 天內引入的錯誤而導致的黑客攻擊。
投資方式,Nexus Mutual 也如同傳統互助保險一樣,提出了未來利用保險池資金的可能,包括:
- ETH 的未來 PoS 機制下的 staking 收入
- 抵押式借貸
- 狀態通道和支付通道的 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 的問題,比如:
- 超額認購:Nexus Mutual 目前正試圖解決 DeFi 的保險問題,但不幸的是會被超額認購,因此無法覆蓋新的買家。因此,在確認用戶需要保險的同時,他們的保險合同被超額認購這一事實是有問題的。
- 人為參與:在 Nexus 模型中,Nexus Mutual 本身扮演著單一風險承保人的角色,這導致了對保險金額的嚴格限制。此外,Nexus 要求索賠和欺詐評估的人员參與,這在主觀案例中非常難以執行。
- 保單覆蓋範圍有限:此外,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 和智能合約特性很快的推出產品,但需要類似安全事件和極端流動性事件的考驗。
七個方向的展望:
- 數字資產保險仍然是傳統保險公司去做,因為潛在市場主要面向傳統機構投資人
- DeFi 安全的保險由去中心化保險會承擔一部分甚至一大部分,因為客戶已經是 crypto player, 對加密資產和去中心化應用已經有了了解,對加密資產更有信念,或學會選擇去中心化產品
- 需要更長時間才能得出加密資產概率損失表
- 隨著加密資產市值擴大,會有保險公司或組織因為加密貨幣安全事件破產或者重組
- 會出現加密資產的再保險公司
- 2B 的保險長期佔據主流,2C 的業務尚需時日。我們看到托管服務商和保險公司的合作相對較多,一個是資產量夠大,另一個是數據更為豐富,方便定價。針對個人的數字資產保險,可能會有,但是業務做不大,盈利也會較少。
- 需求始終旺盛,供應長期不足