加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > 幣贏 > Info

首發 | 回天乏術 一開始就注定失敗的YAM投票拯救行動_BASE:REBASEAPY

Author:

Time:1900/1/1 0:00:00

36小時內,眼看他起高樓,幾分鐘內,眼看他樓塌了。

北京時間08月13日上午03時整,備受矚目的DeFi項目YAMFinance宣布啟動流動性挖礦,僅僅一天時間鎖倉資產價值就超過了6億美元,其鎖定資產增量和增速都達到了近乎癲狂狀態。且照此發展,一些早期給池子注入流動性的羊毛黨年利率甚至可逼近200倍,其瘋狂程度可見一斑。

不過,正當大家都陷入挖礦狂歡的時候,意外發生了。

北京時間08月13日凌晨,YAMFinance發現其智能合約的彈性供應機制存在漏洞,導致合約第二次rebase觸發時會鑄造大量額外代幣,這意味著未來社區將無法獲得足夠的代幣來執行任何治理操作,YAM將成為一個失控的機器,最終將徹底失去社區用戶的信任。

該如何拯救我們的YAM小紅薯呢?

在發現漏洞后,YAM團隊發起了“拯救行動”,稱他們需要16萬委托投票才能提交治理提案,于是向社區發起呼吁投票。很快,這場轟轟烈烈的社區投票行動就完成了。

然而,就在大家以為只是虛驚一場的時候,北京時間08月13日下午16時01分,YAM創始人BrockElmore卻發推特稱,對不起大家,我失敗了。這究竟是怎么回事呢?

PeckShield安全人員介入分析后,迅速定位到問題的本質在于:彈性供應機制存在一個代碼公式的錯誤,致使第二次rebase觸發時系統會自動增發10^18個新代幣,如果行情一直保持高位的話,那么以后的每次rebase觸發時都會進行指數級的增發,這將使小紅薯YAM的數量變成一個可怕的天文級數字。這意味著,無論后期社區怎樣委托投票,都無法獲得足夠的投票量對系統進行控制,整個系統將陷入失控無主狀態。

《精靈達人3D》正式首發 Cocos-BCX 主網:據官方消息,近日,由生態合伙人 DAPPX 參與開發的《精靈達人3D》正式首發于游戲公鏈 Cocos-BCX 主網。《精靈達人3D》是一款以精靈寶可夢為題材的抓寵游戲,游戲美術采用全3D 制作。用戶可通過 CocosWallet , DAPPX 或 IMCOCOS 登錄 COCOS 主網賬號即可體驗。截至目前,Cocos-BCX 主網已上線《加密騎士團》《惡龍必須死》《XPEX怪獸世界》《Go Block》《可可奪幣》《熊貓運動會》等多款玩法多樣的趣味性鏈游,游戲公鏈生態在逐步壯大和完善。[2020/8/20]

本來YAM官方號召廣大YAM持有人通過代理投票的方式,一起完成此次投票“拯救行動”,以修復這個存在的漏洞。然而,PeckShield安全人員進一步分析發現,當YAM官方開始發出呼吁的時候,這次拯救行動其實就已經注定失敗了。

原因有二:

1)時間來不及:?YAM官方或許忽略了一點,在其提案投票拯救行動準備工作完成后,也需要至少12.5個小時才能被執行生效,而按照現在的時間節奏,當其執行生效時,第二次rebase早已觸發。

2)新部署治理合約無法被有效執行:由于第二次rebase觸發,因此官方原先預期要執行的新治理合約到了執行時間后,卻發現由于投票總量遠遠無法達到合約約定的總量的4%,故而無法被有效執行。

動態 | 可信教育數字身份在廣州白云區首發 采用區塊鏈等技術:12月25日,可信教育數字身份(教育卡)廣東省應用試點首發儀式與應用研討在廣州市白云區舉行。

據介紹,可信教育數字身份融合采用國產密碼、區塊鏈等核心技術,創新簽發“云計算、邊緣計算、移動計算”網絡環境下的一體化數字身份,實現一體化密鑰管理,構建“可信教育身份鏈”。(中國新聞網)[2019/12/25]

究竟是為何呢?接下來上技術干貨:

技術概要

首先介紹下YAM智能合約的彈性供應機制:

1)系統會根據市場價格浮動來動態調整代幣的供應量,當市價上漲時則按比例增發代幣,以降低單位代幣的價值,直至降至1美元。

2)每天分別執行兩次rebase,每次rebase會改變代幣供應量,根據市場現價增發或銷毀一定量的代幣。

再說一個實施提案的關鍵因素:持有者進行委托投票,投票數超過總量的1%,則提案才可以進行執行排列,且按合約約定執行排列時長需要等待12.5小時,而提案執行時,則投票需要超過總量的4%。如此新治理合約才能執行生效,項目才能繼續正常運轉。

有了以上幾個技術要點的鋪墊,我們再來看一下,YAM官方的跟進時間表,就能明白此次拯救行動為什么注定會失敗。

如下圖時間線所示:

首發 | 螞蟻礦機S17真機圖首次曝光 采用雙筒風扇及一體機設計 ?:繼正式宣布在4月9日現貨銷售后,比特大陸即將發布的新品螞蟻礦機S17又有了新動態。據悉,螞蟻礦機S17真機圖今天在網上首次曝光。

從曝光的圖片來看,螞蟻礦機S17延續上一代產品S15的雙筒風扇設計,且采用一體機的機身設計。有業內人士認為,采用雙筒設計可有效縮短風程,礦機出入風口的溫差變小,機器性能將得到很大改善。

此前比特大陸產品負責人在接受媒體采訪時表示,新品S17較上一代產品相比,無論是在能效比還是單位體積的算力等方面,均有較大提升。[2019/4/3]

②是第一次rebase觸發的時間,由于合約的bug導致totalsupply資產發生異常暴漲,官方發現BUG存在并進行了披露。

③是官方宣布提議部署新治理合約的時間,在此之后社區開始啟動投票。

④是投票目標初步完成,新治理合約進入執行排列的時間,自此等待執行12.5小時合約正式執行。

⑤是第二次rebase的觸發時間。

⑦是其新治理合約投票通過后正式執行的時間。

⑥在第二次rebase觸發后的第31分鐘時,或許是項目方發現了已經無力回天了,提案取消成功,項目方正式宣布YAM失敗。

①之后的綠色區域是投票和提案拯救行動可以成功的“黃金急救期”,需要整個拯救行動準備工作在第一次rebase觸發之前半小時內完成。。

首發 | 百度推動246家博物館線上藏品上鏈:金色財經訊,近日,百度超級鏈聯合百度百科,基于區塊鏈技術創建 “文博藝術鏈”,推動百科博物館計劃中的246家博物館線上藏品上鏈。基于“文博藝術鏈”,百度將與博物館共同推動線上藏品版權的確權與維護,同時探索線上藏品版權數字化交易方式,為合作的博物館提供更全面的服務和更多的權益。據介紹,此項目將分階段進行,一期將完成線上藏品的入鏈確權,為每一件藏品生產專屬的版權存證證書。讓每一名用戶可以在百度百科博物館計劃的PC端和WAP端的藏品頁查看證書。后續,百度還將推動AI與區塊鏈技術在文博領域的結合應用,用來保障上鏈數據與藏品相匹配,為后續進行藏品圖像版權數字化交易奠定基礎。[2019/1/30]

這意味著,YAM官方應在第一次rebase(北京時間08月13日凌晨04:08)之前就應該發現這個漏洞,并且留有足夠的時間完成新治理合約部署和投票。

可是事與愿違,官方發現漏洞并披露呼吁投票的時間還是太晚了,錯過了唯一能夠成功的黃金急救期。而更糟糕的是,按照官方的時間節奏,當新治理合約到了⑦執行的時間后,投票數要超過總量的4%才行,而此刻的總量已經擴大了10^18*10^18,此前累積的投票數已然杯水車薪,根本無濟于事。

所以,這次拯救行動一開始就注定了會失敗。

下面我們會對此次事件做下詳細分析:

IMEOS首發 EOS Go公布新增兩條復選條件 :據金色財經合作伙伴IMEOS報道:今日,EOS Go在 steemit上公布新增的兩條復選條件為:

1. 保證安全的計劃:候選節點是否在steemit上發布文章介紹該節點的安全方法和計劃,“安全方法”標準是向EOS選民展示安全最佳實踐知識和組織實施計劃的機會;

2. 立場:描述該節點分享通脹獎勵和/或向EOS代幣持有人派發股息的立場(候選節點在steemit發布)。主要闡述以下兩個問題:

該組織是否會出于任何原因向EOS令牌選民提供支付,包括BP選舉和社區建議?

該組織是否有書面的無票付款政策?如果是這樣,請提供一個鏈接。[2018/4/27]

詳細過程分析

首先我們看下當第一次rebase發生了什么:

圖1.第一次rebase資產變化

如上面鏈上信息所示,當第一次rebase?之后,totalSupply從3,500,000*10^18暴漲到一個極大值。

我們進一步分析代碼,看下在代碼中發生了什么:首先從鏈上信息我們能看到rebase操作調用的是YAMRebaser合約的YAMRebaser::rebase()?函數,我們最終發現它通過調用YAM合約的rebase()?函數重新計算totalSupply,在第340行的totalSupply賦值操作可以看到,這一行代碼有個明顯的錯誤——沒有除BASE,從而導致totalSupply的值暴增了10^18倍。

YAM官方在第一次rebase以后發現了這個問題,于是披露rebasebug事件啟動了投票拯救行動。

圖2.YAMToken::rebase()得到一個異常大的totalSupply值

而在12小時之后,YAM又觸發了第二次rebase,這個數據又是以基于錯誤的totalSupply來計算的,從而導致initSupply的數值同樣出現了異常。

圖3.第二次rebase資產變化

我們繼續分析造成initSupply異常的成因,關鍵在上面提到過YAMRebaser::rebase()?函數,這個函數實現的主要邏輯:先基于yam.totalSupply()計算出本次rebase需要增發的YAM數額mintAmount,在afterRebase()?函數經過數層調用后進入YAM的?_mint()?函數,基于異常的mintAmount給initSupply進行賦值。由于在第一次rebase中,totalySupply已經變成一個極大值,所以基于此異常值的后續一列操作最終導致initSupply也計算錯誤,變成了一個天文級的數值。

圖4.YAMRebaser::rebase()?用錯誤的totalSupply計算initSupply

當第一次rebase出現異常時,項目方已經發現問題并決定提出一個修復系統的提案,希望通過投票的方式將此提案排入執行隊列并且執行。當此題案收到足夠多的投票,治理合約允許任何人通過調用GovernorAlpha::queue()函數將此題案排入執行隊列。但由于此治理合約代碼邏輯的實現,導致無論是在第二次rebase之?前或是之后進行修復,都無法正確執行這個拯救行動。

為什么說項目方準備工作完成的太晚了?

我們看下圖中的GovernorAlpha::queue()代碼,我們注意到了在調用_queueOrRevert函數之前的第224行中設置變量eta=currenttimestamptimelock.delay,這就使得生效時間必然在加入隊列的12.5小時以后,而第二個rebase時間是與第一次間隔12小時,這就意味著要執行成功需要將拯救行動提前到第一次rebase之前至少半小時以上,否則將永遠無法執行。

圖5.GovernorAlpha::queue()?函數設置eta

又為什么說已經做出的拯救行動,根本無濟于事呢?

當觸發合約GovernorAlpha::execute()?時首先會先執行state函數來獲得當前提案狀態。

圖6.GovernorAlpha::execute()?檢測提案狀態

在下面的state()?函數第330行,如果proposal.forVotes<=againstVotes(),提案狀態被設置為失敗。

圖7.GovernorAlpha::state()?執行返回Defeated錯誤

從代碼中能看出來,項目方在設計系統時,投票數被設計為必須大于initSupply總量的4%,此提案才能是合法的狀態,如下圖所示。然而,當第二次執行rebase以后,initSupply已經被搞成一個極大值。這就導致了,投票票數永遠不可能>=quorumVotes(),從而總是返回Defeated。

圖8.GovernorAlpha::quorumVotes()?返回一個錯誤的異常值

除了提案狀態異常的問題之外,如圖9、圖10所示,當第二次rebase發生以后,由于GovernorAlpha::propose()檢查投票數必然小于proposalThreshold(1%的initSupply),因此新的提案也再也無法被提出,更遑論要投票執行了。

圖9.GovernorAlpha::propose()?檢測投票數是否大于1%initSupply?

圖10.GovernorAlpha::proposalThreshold()?返回1%initSupply

總結

此次?YAM漏洞事件,最終造成治理合約中75萬枚?yCRV?被永久鎖定,而且短時間內的急速暴跌和無力回天的局面,不知道有多少人被埋在了價格高點,其瘋狂程度成了如今DeFi流動性挖礦的最真實寫照,其殘酷魔幻程度何嘗又不是?倘若項目方在部署合約之前但凡測試過一次rebase流程,必定能捕捉到漏洞的存在。足以見得,DeFi項目做安全審計的重要性。

綜上分析,PeckShield?想借此勸誡諸君,在區塊鏈世界里,務必要對每一行合約代碼保持敬畏,因為任何細微的疏漏都可能造成無法挽回的局面。畢竟,代碼是人寫的,漏洞也很難被徹底避免,因此需要項目方在合約部署上線前就做好充分的測試和第三方安全審計工作,這會幫助其更早發現并排查合約代碼潛在的安全漏洞,不至于等到,漏洞發生后,亡羊補牢,為時已晚。

Tags:BASEBASREBASEEBASECoinbase Pre-IPO tokenized stock FTXMoonbaseREBASEAPYCubeBase

幣贏
防騙指"北"!Filecoin挖礦需知_WEB:WEBOO幣

想象這樣一個世界,4k視頻不用緩沖的,脫機并不會結束你的在線辦公,電子商務對商家是免費的,并且任何機構無法阻斷互聯網的訪問.

1900/1/1 0:00:00
探索 DeFi 世界下一個寶藏領域:加密原生保險的機遇和挑戰_EFI:BTCDEFI

DeFi領域潛在風險逐漸浮出水平,加密原生保險值得關注。NexusMutual與Opyn這類加密原生保險構建起來很難,但前途無量.

1900/1/1 0:00:00
幣圈小蘿莉:主流幣漲跌頻繁 理性追牛_加密貨幣:coinwatch手表價格圖片沃奇

不要認為失去了一切,不好為這點小事而沮喪,成功的路不只1條,重新開始,再來一次,其實,還有很多機會,只要咱們能好好的把握住.

1900/1/1 0:00:00
CoinBene滿幣上線JUST(JST)的公告_OIN:kucoin高管被抓

尊敬的用戶: CoinBene滿幣將上線JUST(JST),支持JST/USDT交易對,邀您體驗.

1900/1/1 0:00:00
關于“HPB火熱上線,樂享30000HPB”活動獎勵發放公告_SAFE:TPS

尊敬的用戶: “HPB火熱上線,樂享30000HPB”活動已于2020年8月2日23:59:59結束,活動獎勵已經發放到賬,您可登錄WBF賬戶,并在“資產”—“資金流水”中查看所獲得的獎勵.

1900/1/1 0:00:00
五湖四海八方匯聚 “滬”朋喚友不醉不歸局成功舉辦_OIN:CampusCoin

2020年8月12日,由58COIN及499Block聯合主辦的五湖四海八方匯聚——“滬”朋喚友不醉不歸局在上海浦東新區白馬英式餐廳舉辦。現場氣氛火熱,全場座無虛席.

1900/1/1 0:00:00
ads