Steaker Learn

策略分析|如何評估 DeFi 項目的耕收風險及效益(一)

1月 21, 2021

本文改寫自 Steaker 創辦人 Wilson 去年九月的 Medium 文章:《DeFi 熱潮下,如何評估耕收風險與效益》,針對專有名詞補充詳細資訊,並將文章分解為兩篇,希望能幫助剛接觸 DeFi 不久的讀者更了解文章內容。

本文整理 Steaker DeFi Team 在進行 DeFi Farming 時會先行確認的清單,可說是我們評估是否進場耕收某個新 DeFi 項目的 SOP/Checklist。在閱讀本文之前,建議讀者先看過 Steaker Learn 中關於 DeFi 和 Yield Farming 的介紹,將對文章內容有更加充分的了解。

DeFi(去中心化金融):DeFi 基於以太坊,透過智能合約執行資產或是協議,組合成新的項目或是金融產品,因此也被稱為「貨幣樂高」。在這種概念下,金融服務不必非得透過中心化機構如銀行運行,用戶在其中擁有很大的參與自由度,實現了最初「去中心化」、「透明化」的理念。
什麼是DeFi?
Yield Farming:提供流動性給 DeFi 協議以賺取獎勵(流動性挖礦 Liquidity Mining),藉由操作不同 DeFi 協議,將加密貨幣資產報酬率極大化的交易策略,這個行動被比喻成耕作(farming)收益(yield)。
什麼是Yield Farming?
很多人以為 DeFi 耕收就是像上圖右邊的 Chad DeFi Degen,看哪個項目 APY 高就把錢放在那,但這樣操作的結果通常不會太好;而 Steaker DeFi Team 則是屬於上圖左邊的保守分析師 (Virgin DeFi Analyst),經過縝密的研究、分析,有策略地去進行配置。

Part 0: 評估 DeFi 項目的基本原則

市場上許多 DeFi 項目炒得火熱,但詐騙或駭客駭入的事件也層出不窮,在此情況之下,如何挑選出安全且獲利較佳的項目?Steaker DeFi Team 會從下列三個部分審視,再決定是否進場做流動性挖礦,其中智能合約的內容更是重中之重,要先確認沒問題,才會繼續進行下一步評估:

1. Smart Contract 智能合約

智能合約是一組在區塊鏈上執行的程式碼,可以針對不同的應用去設計不同的協議,在無需雙方信任下,只要滿足協議所設定的條件,就會被觸發並自動執行協議的內容,且因區塊鏈的特性,使得智能合約具有公開透明、效率高等優點。然而智能合約的程式是人為寫入的,因此要多留意有沒有可疑的函數,任何多餘不必要的程式碼都有其風險,本文後半篇幅會深入說明需要注意的重點。

2. Token/Economics 代幣與策略平台的經濟模型

不同項目都會設計自己的代幣經濟模型,以便讓平台能有好的運作模式,吸引更多使用者提供流動性,常見的幾個面向在於共識機制、代幣供應量、供應規則像是增發率、費用市場、驗證者收益率和目標質押比例等等,甚至一些新興 DeFi 項目還會設定投票規則等社群治理的功能,深入研究才能發現其中的投資機會與潛在風險。

3. Community 團隊與社群經營

每個 DeFi 項目背後都有各自的團隊,而在加密貨幣的世界裡,社群經營很重要。建議務必要評估,團隊是否值得信賴;就算是匿名團隊,也可以觀察是否有用心在經營社群,例如 Twitter, Discord, Telegram, Medium 等平台,都是常見的社群網站,能觀察此項目的用戶活躍程度以及開發團隊是否對項目負責,以降低項目失敗或詐騙的風險。

第一點「智能合約」會在本文後半部詳盡介紹,「代幣與策略平台的經濟模型」、「團隊與社群經營」兩點會留到《如何評估 DeFi 項目的耕收風險及效益(二)》中討論。

Part 1: 智能合約 Smart Contract

第一原理(First Principle)
在區塊鏈的世界裡,程式碼就是第一原理,所以有問題大多能在智能合約內先發現或是預防,這也是為何我把 Smart Contract 放第一個的原因。

Wilson 在原文中指出智能合約裡程式碼的重要性,接下來我們可以從第三方審計、項目分岔 (fork) 前後比對、以及開發團隊的設定等方面,來判斷智能合約是否有安全疑慮。

a. 是否有第三方審計?

在看到一個 DeFi 項目時,可以先提出安全性相關的問題,例如:這個項目有沒有經過可信的第三方審計公司看過?有沒有主動提供公開的報告?知名的 DeFi 項目都有經過審計,如果發現沒有的話就要謹慎評估一下,沒有審計過的項目可能伴隨著風險。但是產業的實際情況是新出來且收益不錯的項目皆不會有此類報告,因為審計公司動作很慢,等到報告出來再進場時,收益已經被稀釋,年化也降了下來。

Steaker DeFi Team 對於區塊鏈技術和智能合約開發都非常熟悉,所以不會等到有報告出來才動作,會直接去看 Etherscan 上驗證 (verified) 過的 source code,檢查過風險與相關報酬後,確認沒問題基本上就能直接進場,搶到最新又安全的耕收獲益。

b. 是否由其他項目分岔出來的?

沒有審計報告也沒關係,如果項目宣稱是分岔 (fork) 自哪個行之有年的項目,其實就能找找看有沒有相關 Diff (比較程式碼差異)的報告,無論是項目方自行提供的或是自己去抓程式碼來比對都可。這個方式會比等審計報告來得更快,以這個文件為例 Check Diff,像 Cream Swap 就有主動提供與 Balancer 的 Diff 報告,他們改了哪些部分、增加了什麼功能都能在上面清楚看到。

備註:Added seize to move the unbound tokens to the pool controller. This is useful when the rewards are distributed to the pool(e.g. COMP or CREAM).

這段敘述表示加了這個函數是為了拿出不必要在此資金池出現的資產,通常是誤傳的數位資產,在意外獲取其他種類的代幣和救援一些打錯代幣的使用者時非常有用。

c. 有任何可疑的函數?智能合約最大權限者能否大量拋售代幣?

智能合約裡面還需要檢查有沒有可疑的函數,比方說可以改動數位資產報價或是無限增發代幣數量等等,甚至是移動流動池資金的功能,任何多餘不必要的函數或是程式碼都會有其風險。

d. 有沒有燒掉私鑰(Burn Key)或設置時間鎖(Time Lock)等保護措施?

這是實務上常見的作法,智能合約最大權限的角色稱為 Admin/Owner,大多數情況會是部署智能合約的 Deployer,可以細看智能合約中有權限做增發、凍結、暫停或是燒毀等等動作的是哪個地址,或是說這個地址還有沒有權限做這些 rug pull 使用者的動作。

Rug Pull在幣圈裡通常是指有權限者等大家把錢放進來後大量拋售,將資金一次抽走,造成幣價快速滑落。

像 YFI 系列的玩家,在進行多池流動性挖礦前,都會很在意智能合約有沒有燒掉私鑰(Burn Key),這時可以看 Admin 的地址是不是一個看起來不可能有人擁有的地址,或者是說,沒有人可執行增加或移動資金的函數。以 based.money 舉例來說,他們一開始就在官網上直接聲明:The only rule of BASED is that no one can change the rules. There are no owners, and because the private keys have been burned, the contracts cannot be changed. This makes an exit scam impossible.

如果真的去看智能合約,就能夠驗證以上聲明,這一部分是取信於用戶的方式。

另一個方式是設置時間鎖(Time Lock),如果項目需要保持日後修改的彈性,但又想取得大家對項目的信任,就會設時間鎖,常見天數是兩到三天。也就是說,一旦項目方想要把錢都移走,或是進行一些違背當初約定的操作,他的動作都會揭露在區塊鏈上,必須要等兩到三天才會真正執行,這時間長度足夠讓大眾能夠反應,如果察覺有異狀,代幣持有者可以馬上賣掉其代幣或是把資金移走。

但如果項目方是要真的在更新或改善項目的話,就會先公布給用戶,進行真正的改動時,用戶們也能在兩到三天內於區塊鏈上檢閱改動內容。

Steaker 小結

在本篇文章中,相信大家對評估一個 DeFi 項目已有一個基本的認知,尤其智能合約為第一原理(First Principle),一切項目的根本都寫在裡面,智能合約的評估可從審計、Diff 報告了解整個項目的風險,透過仔細檢查程式碼,能過濾可疑的函數以及了解 Admin 的權限與設定。

在確認智能合約沒問題後,我們可以去觀察項目的經濟模型以及團隊的社群經營,會對整個 DeFi 項目有更全面的了解,不要錯過《如何評估 DeFi 項目的耕收風險及效益(二),閱讀完下篇後你就可以開始 DeFi 研究了,加油!

本文內容不構成任何投資建議,純粹分享經驗與分析,嘗試任何 DeFi 項目之前應自行研究理解,並只使用你可以承擔損失的資金進場。