假如川普可以虛假計票:Mercurity.finance智能合約安全漏洞分析
今年美國大選雖說有了廣泛意義上的塵埃落定,但競選結果並未明確。
如今拜登團隊宣布勝選,美國媒體紛紛宣布拜登當選下屆美國總統。而另一方面,川普拒絕接受敗選結果,他持續進行計票,並宣稱要採取法律行動。
造成如今這個混亂結果的首要原因在於美國沒有設立獨立的對大選事務具有權力的權威性的選舉委員會,在默認情況下,是新聞機構承擔了這個角色。假如川普獲得過大的權力,控制了大多新聞機構,營造虛假選票,結果尚未可知。
這就意味著某種程度上,可以說是極盡中心化的“推特治國”後的又一“媒體選舉”。
從選舉,到互聯網,到區塊鏈,2020年,中心化不再是權威的體現,而是“獨斷”、“專權”的代名詞。
北京時間11月9日,CertiK安全研究團隊發現DeFi項目Mercurity.finance智能合約代碼部分存在中心化風險。
圖片描述
圖片描述
ERC20Token.sol
圖片描述
https://github.com/MER-DAO/MEE-core/blob/main/contracts/tokens/ERC20Token.sol
https://etherscan.io/address/0xe1b583dc66e0a24fd9af2dc665f6f5e48978e106#code
圖片描述
圖片描述
圖三: 具有鑄幣方法的issue函數
如圖一所示,項目擁有者在ERC20Token.sol智能合約中的構造函數可以將自身設置為issuer身份。由於在智能合約部署時,其構造函數會被自動執行,因此項目擁有者會自動成為issuer。
通過圖二中顯示的onlyIssuer修飾詞的限制,任意擁有issuer身份的外部調用者將可以執行任意被onlyIssuer修飾詞修飾的函數。
圖片描述
圖片描述
AwardContract.sol
圖片描述
https://github.com/MER-DAO/MEE-core/blob/main/contracts/AwardContract.sol
部署地址:
https://etherscan.io/address/0x8Ea43ce113456f45defd0E27e809d719b9CA2362#code
圖片描述
圖片描述
圖六:addFreeAward智能合約函數
當AwardContract.sol被項目擁有者部署到區塊鏈上時,AwardContract合約的構造函數會被自動執行,也就意味著圖四中43行代碼被自動執行後,項目擁有者會自動被賦予governor身份。
圖片描述
圖片描述
圖七:withdraw智能合約函數
綜上分析,Mercurity.finance項目中智能合約存在的後門漏洞均來自於項目擁有者權限過大。在該類中心化治理機制中,項目擁有者得到了可以隨時獲利或者摧毀項目經濟系統的權利。
CertiK安全研究團隊建議Mercurity.finance更新項目中採用的治理系統,引入社區管理的機制。
CertiK在此提醒廣大用戶:
1. 合約代碼需要經過嚴格的安全驗證和審計才可被允許公佈。
2. 投資者在投資採用中心化治理機制的項目時需衡量風險,謹慎投資


