讀透熱門 DeFi 專案 Curve:它為什麼重要?為何被「攻擊」?

買賣虛擬貨幣
一個新的 DeFi 專案 Curve.fi 目前是去中心化金融這個賽道中最火爆的明星。這個看上去非常「簡單」、甚至有些「簡陋」的新專案,只解決一個需求:穩定幣之間的互換。你沒有看錯。穩定幣之間的頻繁互換,是不少業內人士的剛需,因為 USDT 出入金更方便,而 DAI 和 USDC 更合規。但是考慮到手續費高和流動性差,轉換成本不低。Curve.fi 就要解決這個痛點。這個初創專案開發了基於以太坊的自動交易協議,專注於解決這個問題,同時又利用了開放式金融的可組合性,以此激勵平臺的貢獻者。簡單來說,Curve 是一個利用了特殊演算法、結合了「特定版 Uniswap」與「Compound」的去中心化交易所協議。稱其為「特定版 Uniswap」,是因為該協議僅僅解決穩定幣之間的互換。

Curve 已於今年 1 月上線了以太坊主網,但仍處於早期開發階段,截止鏈聞發稿時,未公佈合約審計結果。其介面也非常簡陋(或者也可以說是「獨特」),讓人不禁懷疑這是開發者故意這樣設計,模仿了 80 年代的電腦介面以體現目前的開發階段。當然,這樣似乎也能將不瞭解該產品風險的使用者拒之門外。

不過 Curve 的發展速度卻超過了很多人的想象。上線僅一個多月,Curve 已經被多個以太坊的去中心化聚合交易所接入。以 1inch 這個幫助使用者選擇最優路徑(滑點最低)的交易所為例,2 月 17 日至 23 日當週,1inch 周交易量中排名第一的當屬 Curve,佔比 60%,是 Uniswap 的 3 倍、Kyber 的 6 倍。雖然近日資料有些滑落,但依舊佔比很高。這多少也體現出,對使用者而言,穩定幣互換的需求非常迫切。

使用者們喜歡用 Curve 來互換穩定幣,是因為 Curve 的交易成本和滑點都極低,畢竟這才是穩定幣的交易者最關心的因素。Curve 的自動做市演算法是為穩定幣交易場景定製的,比 Uniswap 的通用型演算法更聚焦,所以透過該做市演算法實現的交易滑點較低。另外,Curve 的交易手續費僅為 0.04%,相比之下,Coinbase 的 DAI/USDC 交易對的手續費為 Curve 的 12.5 倍。

另一方面,為 Curve 注入資金的使用者還能獲得超高的年化收益。為了增加協議中的資金量以滿足更大規模的交易需求,Curve 為提供流動性的使用者分配所有的手續費收益,並透過聚合第三方協議來獲得額外收益,讓投入資金的使用者有機會獲得約 20% 的年化收益率——相比之下,Compound 上 DAI 的年化收益目前在 8% 左右。

不過,上週末在 Curve 上發生了一起「使用者損失」事件,更是把這個新產品推上了 DeFi 社羣爭議的風口。大家一開始都以為是由於 Curve 的流動性問題導致了這名使用者損失 14 萬美元,但後來根據交易行為的推測,這名使用者本身可能就是想「攻擊」協議並竊取其中的資金。這個過程非常複雜,我們會在後文專門分析。

不過無論如何,Curve 的產品的確還處於早期階段,產品邏輯中的滑點保護功能尚未完善。在後文中,我們也會一一道來。

穩定幣定製版「Uniswap」

來,讓我們先從介紹 Curve 的執行原理說起。

整體而言,Curve 更像一個專為穩定幣交易而定製的「Uniswap」。

Uniswap 是以太坊去中心化交易協議的基礎設施,優點為產品邏輯簡單,而且因為沒有管理員特殊許可權(admin key),被社羣認為是去中心化程度較高的協議。Uniswap 準確來說可以定義為「自動化做市商」或「流動性池」,英文為「AMM」(Automated Market Maker)或「LP」(Liquidity Pool)。其他一些去中心化交易協議,如 Kyber、0x API,也會將部分交易分配至 Uniswap 完成。

簡而言之,Uniswap 具有兩個功能:注入流動性和提取流動性,對應的兩個角色就是做市商和交易者。注入流動性的做市商可以獲得交易池中手續費分成,而提取流動性的交易者的需求是進行代幣之間的兌換(交易),並支付一部分交易費用。

舉個例子,一名使用者錢包中有 ETH 和 DAI,就可以把 ETH 和 DAI 按照最新的兌換比例投入 Uniswap 的資金池成為其中的做市商。假設他按照新的兌換比例投入了 1 個 ETH 和 200 個 DAI。當有一名交易者希望用 DAI 換成 ETH 時,就可以進入這個池子進行兌換,Uniswap 的「做市商演算法」會計算出這個交易者可以買到多少 ETH。和中心化交易所一樣,Uniswap 也會在交易中產生「滑點」,使用者交易資金越大,滑點越大,也就是交易成本越高。當交易完成,這名交易者付出的交易費用,將會按照池子中所有做市商投入資金的比例進行分配。

Uniswap 採用了一個叫「恆定乘積做市商模型」(Constant Product Market Maker Model)的做市演算法,邏輯非常簡單,所以在大多數的通用場景中可以滿足需求。

不過穩定幣之間的兌換和其他型別的代幣兌換不一樣,值得專門對待。美元穩定幣的價格是錨定 1 美元的,雖然會因為市場波動有些許的變化,但長期來看各個美元穩定幣之間都是等價的,無論是抵押生成的 DAI、合法且有實體資產背書而發行的 USDC、PAX、TUSD,還是號稱「有實體資產背書」的 USDT。既要考慮到「穩定幣之間很多時候是等價的」,也要允許「穩定幣之間存在價格差異」,當這兩個要素組合在一起,就需要一個完全不同於 Uniswap 的機制。

由 Curve 團隊發明的「StableSwap」(穩定互換)機制,就是專為穩定幣之間互換設計的做市商演算法。如果將他們的演算法繪製成曲線(Curve),那這就是介於 Uniswap 曲線和恆定價格之間的一條曲線。如下圖:

讀者們先不用急著理解上圖中的曲線或者公式,因為目前 StableSwap 的所有細節並沒完全公開。但是我們可以給出一些已知的資訊,幫助讀者理解這個演算法的原理。

我們不妨先做兩個假設:

· 假設 1:如果所有穩定幣之間的價格保持恆定為 1 美元,那穩定幣 X 和穩定幣 Y 就是等價的,可以無損互換。在上圖中,如果初始狀態下,穩定幣 X 與穩定幣 Y 各有 5 枚,那基於這個假設建立起的交易池的兌換比例就是 X+Y=10,也就是上圖的那條虛的直線,也可以稱為「恆定價格」做市商。對於需要兌換的交易者而言,用 3 枚 X 就能換到 3 枚 Y,但這個池子有容量上限,必須 X<=10 且 Y<=10;

· 假設 2:如果穩定幣之間採用 Uniswap 的恆定乘積做市商模型,也就是圖中最外部的那條虛的曲線,如果穩定幣 X 與穩定幣 Y 在初始狀態下各有 5 枚,那條曲線就是 XY=25,也總算可以交易超過 5 枚代幣了,但是隨著價格波動,離「恆定價格」做市商的距離非常遠,也就是價格波動非常明顯;

Curve 設計的 StableSwap 機制介於上述兩者之間,既考慮到了「穩定幣之間很多時候是等價的」(也就是假設 1),也允許了「穩定幣之間存在價格差異」(也就是假設 2)。換句話說,這是一個比 Uniswap 演算法更接近「恆定價格」互換的做市商演算法。

StableSwap 最大的優勢是滑點更低,也就是交易成本更少。StableSwap 的白皮書中繪製了該演算法和 Uniswap 的恆定乘積演算法中,賣出數量和價格變化的函式曲線,其中 StableSwap 更能保持在 1 美元,而 Uniswap 的演算法隨著賣出的數量增加,已經把價格快速壓低了。

在我們的測試中,Curve 的滑點不輸中心化交易所。以 Coinbase 中穩定幣之間的交易對 DAI/USDC 為例,將 10 萬美元級別的訂單推入交易系統,以截圖時的快照來看,Curve 略優於 Coinbase,而且 Coinbase 的手續費要比 Curve 多 460 美元。

激勵方式升級:利用 DeFi 可組合性提升收益

在提供了最佳化的做市演算法後,另一個問題就是如何提升整個資金池的大小,因為只有這樣才能提供更大規模的交易和更低的交易成本。

其實 Uniswap 也面臨同樣的問題,就是如何激勵使用者投入自己的資金,成為「做市商」的一員,分享收益。其中,交易費率是一個基礎引數,如果太高了,交易者就可以選擇其他交易費率更低的平臺;如果太低了,提供流動性的「做市商」們分得的利潤就很少。

Uniswap 的費率是 0.3%,Curve 是 0.04%,目前來看,Curve 的交易費率對交易者更友好,對流動性提供方不是很友好。但費用的收入還依賴於總交易量的,所以如果穩定幣的需求量大,以優惠費率吸引到更多人來交易,整體的收入總規模會不輸 Uniswap。

除了費率之外,Curve 還利用 DeFi 的可組合性,為流動性提供方進一步提高收益。

設想有如下兩個場景:

· 以 Uniswap 為例,假設一個想要為 ETH/DAI 注入流動性的使用者投入了 1 ETH 和 200 DAI,該使用者就可以獲得所有相關的交易費收入的分成;

· 以 Compound 為例,假設一個使用者想把 DAI 投入借貸平臺(比如 Compound)獲得額外收入,那就可以獲得 cDAI,這是一種背後有著抵押資產背書,但是又會自動產生收益的包裹後代幣,該代幣可以獲得平臺中抵押借出資產方付出的年化收益的分成。

Curve 正是將這兩個場景結合在了一起,為使用者最大化收益。

具體的流程為:

· 使用者將 DAI 轉換為 Compound 的 cDAI,即獲得了 Compound 的收益,目前約年化 8%;
· 使用者將 cDAI 投入 Curve,即獲得了 Curve 的交易手續費收益,這部分依賴交易量而調整。

還有空間!還能再進一步提升收益

當 Curve 結合了另一個新的 DeFi 協議 iearn 之後,收益還可以進一步提升,最高曾達到年化 30%。iearn 是一個去中心化的收益聚合器(Yield aggregator),也就是會從目前借貸平臺中尋找收益最高的協議,隨著行情的變化,也會自動平衡到收益更高的借貸平臺中。

其實 Curve 和 iearn 的組合產生的效果與 Compound 的組合類似:

· 使用者將 DAI 轉換為 iearn 的 yDAI,即獲得了 iearn 協議挑選的最高收益平臺,年化收益不低於 Compound;
· 使用者將 yDAI 投入 Curve,即獲得了 Curve 的交易手續費收益,這部分依賴交易量而調整。

而 iearn 提供了一個名為 Zap 的功能,可以在一個流程中實現上述兩個操作,撤出資金的流程也類似。這是一個對使用者而言非常友好的聚合工具,否則,對於普通使用者而言,分開兩步操作,太過麻煩。

需要特別寫一筆的是,iearn 專案的創始人是 Andre Cronje。對於加密貨幣世界的老炮來說,Andre Cronje 是個熟人。他曾經是區塊鏈媒體 Crypto Briefing 的首席程式碼評測官,在 ICO 熱潮中,評測過一大批熱門專案的程式碼質量,眼光犀利額,撰寫的文章也以刻薄著稱。不少明星專案的技術能力和程式碼質量被他狠狠奚落。 

專案進度:1 個多月釋出 4 個獨立交易池

據白皮書和 GitHub 的資訊顯示,目前 Curve 的維護者是隱私專案 NuCypher 的技術長 Michael Egorov。

不過根據推特的資訊來看,iearn 專案的創始人 Andre Cronje 也可能是 Curve 的核心人物之一,因為他頻繁參與了 Curve 的產品規劃和外部溝通。

Curve 在過去的一個多月中陸續上線了四個獨立的資金池,也可以稱為 V1、V2、V3 和 V4,分別是:

· Curve V1(Compound):1 月 20 日上線,支援的幣種為 USDC 和 DAI (由 cUSDC 和 cDAI 結算),在交易手續費之外,還可以累加 Compound 的收益;

· Curve V2(USDT):2 月 10 日上線,支援的幣種為 DAI、USDT、USDC。優勢是增加了 USDT 交易,不過沒有額外收益,只能依賴手續費收益;

· Curve V3(Y):2 月 13 日上線,支援 DAI、USDC、USDT、TUSD (由 iearn 的 y 代幣結算),在交易手續費之外,還可以累加 iearn 的收益;

· Curve V4(BUSD):2 月 27 日上線,將 V3 的 TUSD 換成幣安的 BUSD,也就是支援 DAI、USDC、USDT、BUSD (由 iearn 的 y 代幣結算),在交易手續費之外,還可以累加 iearn 的收益。

根據目前四個交易池的資金量和交易量來說,V3 和 V4 版本的資金池更受歡迎,不過從趨勢來看,V4 可能會追平甚至超過 V3。這也就表明了,流動性提供方更喜歡帶有額外收入的 iearn 版本 Curve 資金池,哪怕需要承擔更多的風險。

專案仍處於早期,技術層面風險顯現

在 Curve V1 上線的 5 天后,獨立安全研究者 Sam Sun 向 Curve 彙報了一個漏洞。Sum Sun 指出,該漏洞如果被利用,將會導致智慧合約中的資產損失。

不過幸好,此漏洞尚未被利用。Michael Egorov 調查後發現,該漏洞隱藏在 Curve 的演算法之中,而且白皮書尚未公開這些細節。他隨後透過部署一個全新的智慧合約,並進行前端相關的 UI 調整,將所有資金轉移到了全新的智慧合約中。

Curve 的網站上的提示也很明確告知了風險,不僅程式碼審計的細節還沒有全部公開,Curve 目前也只是處於 Beta 階段,官方希望使用者不要投入無法承擔損失的資產,特別是對於流動性提供方。Curve 網站上稱,對於交易功能使用者來說,風險相對很低。

Curve 在一週前表示,即將公開由 Trail of Bits 進行的安全審計細節,不過總體來說,USDT 和 Y 資金池不需要重新部署,沒什麼問題,但是 Compound 資金池需要重新部署,以修復上述兩個資金池已經修復的問題,因為這是最早的一個合約。

但是風險依然存在,而且不僅在技術層面。

我們必須重新回顧和認識一下 DeFi 世界暗湧的各種風險。以 bZx 最近遭遇的閃電貸套利攻擊為例,這名攻擊者顯然非常瞭解整套 DeFi 生態中的薄弱環節,精通利用流動性缺陷,這不完全是由技術缺陷導致的。所以,Curve 面臨的問題也不僅僅是程式碼審計,而是其他系統性風險。

比如,iearn 協議如果被套利者攻擊,那 V3 和 V4 資金池也會導致損失;如果行情大跌導致 Compound 清算系統產生損失,也就波及了 V1 資金池;風險還包括整個系統中的價格源或者是預言機出現問題,等等。由於 Curve 是基於很多專案搭建起來的,所以風險是自下而上累計的。

真的被「攻擊」了

就在 Curve V4 上線但還未公開時,Curve 平臺遭遇了一次特殊「事故」,也在海外 DeFi 社羣鬧出了不小動靜。雖然這可能不屬於一次駭客攻擊事件,卻暴露出了產品設計以及溝通層面的問題。

2 月 28 日,一名使用者在 Curve V4 流動性不充足的前提下進行了超大額的兌換,雖然團隊發現了該事件,並立即進行了補救,但這名使用者最終還是損失了 14 萬美元。後來,經過對交易記錄的詳細研究,卻發現故事並不是表面這樣簡單。

事後 Andre Cronje 寫了兩篇文章,詳細描述這件事情前因後果,而以下的分析基於他寫的第二篇文章。

該事件涉及 3 個地址,為了方便起見,分別稱之為:

損失者 A 地址
0x44e59f7c598644a68975ef41fed052362c4c8ed3

獲利者 B 地址
0x8183866223445441b6fb9206b9f0b583410977e6

好朋友 C 地址
0x431e81e5dfb5a24541b5ff8762bdef3f32f96354

該事件發生的順序為:

在 Curve V4(BUSD)尚未對外公開時,A 試圖將 V3 的資金挪去 V4,所以進行了多次穩定幣兌換。當時 V4 資金池中僅有 4.28 萬 USDC(相比其他幾個穩定幣佔比更低),但是 A 將自己遠超這個數量級的資金兌換成了 USDC,所以產生了鉅額損失。損失金額最大的一筆也是最後一筆:A 將 44.6 萬美元換成了 2.5 萬 USDC。A 所有操作共記損失 56 萬美元。

A 的操作讓整個 Curve V4 的四個幣種產生了不平衡(特別是 USDC 太少,BUSD 太多),也瞬間拉高了 Curve V4 中的手續費收益率。使用者 B 可能是在觀察到了 Curve V4 中不同尋常的收益率後,嘗試進行套利。他成功將 3.3 萬美元換成了 9 萬 BUSD,但另外兩筆的操作卻發生了虧損。B 所有的操作共計產生收益 3527 美元。

團隊在發現該問題後,立即聯絡了一名在 Curve 中存有大額資金的朋友 C,讓他針對資金池中四個穩定幣的不平衡現象進行了補足,將 9 萬 USDC 換為 46.5 萬美元,將 9 萬 DAI 換成 13.4 萬美元,共產生收益 42 萬美元。

由於各方進行了金額較大且極度不平衡的交易,所以每個人在操作過程中產生的高額手續費。據 Andre Cronje 推測,總共約有 14 萬美元手續費。

所以總結來說,各位的損失和收益為:

A:損失 56 萬美元;
B:獲利 3527 美元;
C:獲利 42 萬美元;

Curve V4 資金池:獲利 14 萬美元手續費。

後來團隊找到了 A 和 B 兩個人,計劃將 C 獲利的 42 萬美元還給 A。但是在他們聯絡 B 之後,他未回覆並刪除了社交網路賬號。

所以最終的結果就是:

A:損失 14 萬美元;
B:獲利 3527 美元;

Curve V4 資金池:流動性提供方獲利 14 萬美元。

該事件在發生後受到了不少 DeFi 業內人士(如 Chris Blec)的質疑和抨擊,指責 Curve 以及 iearn 沒有及時將該事件的細節公開,並且指出,他們的產品因缺少滑點保護功能所以才產生了這次的事故。

當然,也有社羣人士(如 Gnosis 的產品負責人 Eric Conner)認為不必對該事件過於苛刻,因為指責和攻擊這些 DeFi 專案的建立者並沒有任何好處,不如設立起社羣的資源,幫助這個自由的市場更好地識別風險。

後來,DeFi Weekly 的作者 Kerman Kohli 與 Andre Cronje 進行了單獨的溝通,在他獲得了更多的資訊後,他認為指責 Andre Cronje 是不公平的,之後便寫了一份詳細的報告,描述了這件事的經過。其中大多數的細節與 Andre Cronje 自己寫的報告一致,只是更詳細一些,也修復了一些之前的錯誤。

除此之外,Kohli 還在報告中透露了一些新的發現:根據損失者 A 的多次故意產生損失的交易行為判斷,有足夠的理由懷疑這名使用者是在探索 Curve 的做市演算法,以找到合適時機「攻擊」並從中獲利。因為他在已經產生了損失之後,還持續用 BUSD 兌換更少的 USDC,他可能是認為當兩者的匯率有足夠差異的時候,就可以將 USDC 換得更多的 BUSD。但是,中間出現了使用者 B 和使用者 C,讓他沒有能完成這樣的操作,更何況,也許就算他來得及這樣操作,也並不能從中獲利。

但這個事件的連鎖反應還在繼續。iearn 的創始人 Andre Cronje 最終賭氣離開 iearn 這個專案,留下已經開發完的平臺。使用者還可以繼續使用收益聚合器、Zap、一鍵買入 Opyn 保險等,這些都將繼續執行下去,但也有可能隨著其他平臺的更新而逐漸不能使用。

Andre Cronje 表示,自己對 DeFi 社羣非常失望,他認為很多人並沒有瞭解背後的具體原因,就發表錯誤的資訊並攻擊團隊。他還發表了一篇名為《在 DeFi 領域建立專案遜斃了》的文章,輔以截圖,證明社羣不同人士是如何不公正對待他的。

幸好 iearn 目前是開發完成狀態,可以自運營下去,但尚不清楚後續是否有人會接手繼續更新維護。也有部分社羣人士依舊在和他溝通,在推特上表示希望他可以迴歸。

Curve 的流動性不足是導致這件事情的起因,不過其他去中心化協議的流動性也面臨同樣的問題。以 Uniswap 為例,將 40 萬美元的 TUSD (由於 Uniswap 未列入 BUSD,所以用了類似的 TUSD 替代)換為 USDC,也只能換得 2.8 萬美元。更何況 Curve 是個僅執行了一個多月的開源協議,而 V4 資金池遭遇該事件,更是在還未對外公開之前。

但是 Uniswap 自帶的滑點保護功能,卻可以避免很大的滑點,為使用者建立起的一道防禦措施。透過該設定,使用者可以選擇最大可以接受的滑點比例,如果超過該比例,交易就不會成交。而 iearn 的 Zap 作為 Curve 最重要的入口功能,之前未包含這樣的功能。

在該事件發生後,Andre Cronje 也終於給 iearn 加上滑點保護。Andre Cronje 表示,這是 iearn 更新的最後一個功能。

至於剛剛提到的獲利者 B,由於他的以太坊地址中擁有以太坊域名「nigeldesouza.eth」,而被發現其背後的真實使用者可能是 Nigel de Souza,推特賬號為 @nigel_desouza。在該使用者拒絕溝通後,該推特賬號已經刪除。大多數人推斷,這應該是被該使用者自己刪除。

幸好還有「保險」可以買?

作為一個新晉的明星 DeFi 專案,Curve 迅速崛起。同時,該專案和 iearn 連線中出現的問題引發了爭議,並且爭議還在繼續發酵,這成為對 DeFi 體系可能存在風險的討論源頭。

一個難以一句話回答的問題是:對於一個去中心化且開源的協議而言,如果完全按照設定的邏輯執行,產生了意外的獲利或者損失,能否說是這個協議「出錯」?

進而言之,如果該協議中存放著其他人幾百萬美元的時候,協議的開發者究竟有沒有義務為投資者提供實時、清晰和透明的公開資訊?如果協議產生了使用者不正常的損失,誰應該承擔責任,進行賠付?

不過,幸好還有幾個基於區塊鏈平臺的保險業務可以幫助減輕這類風險所帶來的影響。

有兩個基於以太坊的平臺的去中心化產品為 Curve 提供了類似於保險的業務,也算是一種可以對沖資金潛在損失風險的機制。其中一個是 Opyn,為 Curve 的資金池提供了一個名為 oCRV 的看跌期權代幣,購買者相當於購買了一種保險,如果 Curve 資金池歸零,Opyn 需要將之前抵押的 1.6 倍的 ETH 進行賠付。不過 oCRV 上線時成本極高,如果購買的話,將抵消可能在 Curve 賺得的收益。

另一個提供風險對沖機制的是 Nexus Mutual,這更像一個獨立的保險機構,或可以稱為「互助保險社羣」。當使用者的資金真的因為智慧合約漏洞出現損失時,平臺中的使用者就可以對每筆理賠申請進行投票,如果投票透過的話,就可以獲得賠償。在 bZx 的事件中,就有幾筆使用者的損失得到了 Nexus Mutual 平臺的賠付。

除了安全性之外,使用者體驗也是 Curve 目前尚未探索的領域。從目前網站頁面來看,這點並不著急,因為 Curve 更像是在做一個協議,更多的流量應該是來自於接入的服務商。目前來看,Curve 的交易量主要來自於 1inch 這類的聚合交易所,另外還有 ParaSwap 和 0x API 接入了 Curve 的交易功能,而注入流動性的功能主要透過 iearn 的 Zap 實現。

之前 Curve V3 曾經可以提供 20% 的年化收益,這很吸引人,但可能不可持續,因為在安全性、使用者體驗和入口流量的問題解決之後,就會有更多資金注入,成為「做市商」的一員,分攤更多的收益。於此同時,這又會進一步提升資金池的大小,開啟一個良性迴圈。

不過誰知道呢,畢竟這些演算法、引數、交易費都要經過試驗才能知道其有效性。這就像 Curve 在推特說的第一句話:「我們有史以來第一次有能力進行『實驗經濟學』。我們開始做吧!」

他們說的很對。讓我們開始吧,為 DeFi 喝彩,但也不要放鬆警惕。

參考文獻

關於使用者在 Curve 損失 14 萬美元的來龍去脈
https://medium.com/@andre_54855/post-mortem-28-02-2020-6d675a85a33b

Andre Cronje 《在 DeFi 領域建立專案遜斃了》
https://medium.com/@andre_54855/building-in-defi-sucks-b8fdfda0ef58

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;