By:小白
背景概述
上期我們了解了利用tx
functionmakeMoney(addressrecipient)publicpayable{require(msg
}contractVault{addressprivatemaker;addressprivateowner;uint256transferGasLimit;constructor()payable{owner=msg
modifierOnlyMaker(){require(msg
modifierOnlyOwner(){require(msg
Phi Labs已任命原Sei Labs市場負責人擔任生態系統總監:4月29日消息,據linkedin頁面顯示,基于Cosmos的開發者激勵協議Archway貢獻方Phi Labs已任命原Sei Labs市場負責人Dan Edlebeck擔任生態系統總監,將幫助Archway建立營銷工作和媒體活動,并計劃為Archway創建社區。[2023/4/29 14:34:24]
functionsetMacker(address_maker)publicOnlyOwner{maker=_maker;}functiontransfer(addressrecipient,uint256amount)externalOnlyMaker{require(amount<=address(this)
Web3藝術平臺Ensemble完成100萬美元種子輪融資:3月31日消息,Web3藝術平臺Ensemble完成100萬美元種子輪融資,Collab+Currency領投,Lattice、Builder Capital參投,天使投資人包括Ben Roy與Block0聯創Manu Andorra。
Ensemble已于2022年11月推出平臺的第一個版本,2023年4月5日,將推出升級后的Ensemble平臺。[2023/3/31 13:37:56]
functionwithrow()publicOnlyOwner{(boolsuccess,)=owner
receive()externalpayable{}fallback()externalpayable{}}//ThiscodeishiddeninaseparatefilecontractHack{eventtaunt(stringmessage);addressprivateevil;constructor(address_evil){evil=_evil;}modifierOnlyEvil(){require(msg
新加坡官員:當地銀行的加密貨幣敞口“微不足道”,但執行最高風險權重要求:11月29日消息,新加坡金融管理局(MAS)董事會主席Tharman Shanmugaratnam周一表示,新加坡的銀行必須持有125美元的資本,以對應其100美元比特幣或以太坊等高風險加密貨幣的敞口。
Shanmugaratnam表示,盡管新加坡司法管轄區的銀行對加密貨幣的敞口“微不足道”,占總風險加權資產的比例不到0.05%,但這些類型的加密資產應該受到最嚴格的風險管理要求約束。
他表示,“在框架最終確定之前,MAS要求在新加坡注冊成立的銀行對比特幣和以太坊等風險較高的加密資產的風險敞口執行1250%的風險權重……根據MAS對在新加坡注冊成立、具有系統重要性的銀行的最低總資本充足率要求10%,這意味著在新加坡注冊成立的銀行必須持有125美元的資本,才能有100美元的加密資產(如比特幣)敞口。”
今年8月,新加坡金融管理局表示正與其他監管機構合作,為銀行的加密敞口建立一個審慎的框架。Shanmugaratnam周一表示,新加坡正在遵循國際標準制定者巴塞爾銀行監管委員會(BCBS)建議的要求。BCBS將在年底前確定針對比特幣和以太坊等加密貨幣的資本要求。在該框架最終確定之前,MAS將采用“BCBS資本框架下最高的風險權重”。(CoinDesk)[2022/11/29 21:09:39]
functiontransfer()publicpayable{emittaunt("Haha,youretherismine!");}functionwithrow()publicOnlyEvil{(boolsuccess,)=evil
工信部:中國區塊鏈專利申請數量占全球總量的84%:9月20日消息,記者從工業和信息化部20日舉行的大力發展新一代信息技術產業新聞發布會獲悉,今年1-7月信息技術服務業實現收入3.03萬億元,同比增長12%。在軟件業全行業收入占比65.5%。從細分領域來看,云計算產業平均增速超過30%,全球市場占比14.6%。云計算、大數據、區塊鏈等新興技術加速創新,國際專利申請數量穩步增加,區塊鏈專利申請數量全球占比超過84%;企業上云步伐不斷加快,全國累計上云用云企業超過360萬家。(財聯社)[2022/9/20 7:08:08]
receive()externalpayable{}fallback()externalpayable{}}
騙局分析
可以看到,上述代碼中存在三個合約,我們先結合前置知識中的A,B,C三個角色來區分三個合約分別代表什么角色:
MoneyMaker合約代表A合約;
Vault合約代表B合約;
Hack合約代表C合約。
所以用戶以為的調用路徑為:
MoneyMaker->Vault。
而實際的調用路徑為:
MoneyMaker->Hack。
下面我們來看看攻擊者如何完成騙局的:
1.?Evil部署Vault(B)合約并在合約中留存100ETH資金,在鏈上將Vault(B)合約開源;
2.?Evil部署Hack(C)惡意合約;
3.?Evil放出消息說他將會部署一個開源的賺錢MoneyMaker(A)合約,部署時會將Vault(B)合約地址傳入且會調用Vault.setMacker()將maker角色設置為MoneyMaker合約地址,任何人調用MoneyMaker.makeMoney()向合約中打入不少于一個以太都會得到雙倍以太的回報;
4.?Bob收到消息,了解到MoneyMaker合約的存在,他看了MoneyMaker(A)和Vault(B)合約的代碼并檢查了Vault(B)合約中的余額發現邏輯確實如Evil說的那樣,他在沒有檢查MoneyMaker(A)部署交易的情況下就相信了Evil;
5.?Bob調用MoneyMaker.makeMoney()向合約中打入自己全部身家20ETH,在他滿懷期待等著收到Vault(B)打來的40ETH時等來的卻是一句"Haha,youretherismine!"。
咋回事呢?其實這個騙局非常簡單但是很常見。Evil在部署MoneyMaker合約時傳入的并不是Vault合約的地址,而是傳入了Hack合約的地址。所以當Bob調用MoneyMaker.makeMoney()時并不會像他想像中的那樣MoneyMaker.makeMoney()去調用Vault.transfer()回打給他雙倍的以太,而是調用了Hack.transfer()拋出了一個事件:"Haha,youretherismine!"。最后Evil調用Vault.withrow()將Vault合約中的100ETH轉出,并通過Hack.withrow()將Bob轉入的20ETH轉出。
預防建議
以太坊黑暗森林中你能相信的只有自己,不要相信任何人精彩的話術,交易記錄不會造假,只有自己驗證了對應的那筆交易后才能相信對方說的話是對的。
注:本文參考自《SoliditybyExample》https://solidity-by-example.org/hacks/randomness
Tags:MAKEMakerMoneyONEmakerdao白皮書makerdao下載MoneyRebelShibone Inu
為什么我認為Polygon將會成為未來2-3個月內的DeFi創新發生地?當人們專注于敘事時——建設者一直在努力解決問題。本文帶你了解在Polygon上建立的獨特、新穎的協議.
1900/1/1 0:00:00錢包作為進入加密世界的入口以及通行證在整個加密行業中有著不可替代的地位,使用錢包也是每一個想進入加密世界的人不可避免的一環,錢包的功能也從最初的純記賬功能演化至如今的多鏈多場景使用功能.
1900/1/1 0:00:00即使密碼系統的任何細節已為人悉知,只要密鑰未泄露,它也應是安全的。?——柯克霍夫原則? Fig.1:AugusteKerckhoffs,荷蘭語言學家、密碼學家 一、引言 生而為人,自會有秘密,每.
1900/1/1 0:00:00“不,堅持到底。” 這是CZ在馬斯克發起“是否該辭去推特負責人”這一投票下方的留言。在上周末推特宣布了一個新的政策——不允許用戶在推特上推廣其他社交媒體平臺,如Facebook、Instagra.
1900/1/1 0:00:00到目前為止,位于硅谷的風險投資公司a16z已經籌集了超過76億美元的資金,用于投資加密貨幣和Web3.
1900/1/1 0:00:00一、過去一周行業發生重要事件 1.產業 美國證券交易委員會指控SBF通過FTX欺詐投資者美國證券交易委員會指控FTX創始人SamuelBankman-Fried在FTX中欺詐投資者.
1900/1/1 0:00:00