By:小白
背景概述
上期我們了解了利用tx
functionmakeMoney(addressrecipient)publicpayable{require(msg
}contractVault{addressprivatemaker;addressprivateowner;uint256transferGasLimit;constructor()payable{owner=msg
modifierOnlyMaker(){require(msg
modifierOnlyOwner(){require(msg
Gucci在韓國游戲和社交平臺Zepeto上推出“Cruise”系列:金色財經報道,奢侈品巨頭Gucci在其官推宣布在韓國游戲和社交平臺Zepeto上推出“Cruise”系列,利用該平臺的化身為他們穿上最新跑道設計的數字渲染版本。與 Zepeto 的合作使 Gucci 能夠個性化化身并創建虛擬世界,使用戶能夠將他們的自拍轉換為 3D 動畫化身并與 Zepeto 世界上的其他人互動。 作為此次合作的一部分,用戶可以通過應用內購買為自己的化身穿上 Gucci 的標志性作品,同時還可以探索 Zepeto x Gucci 世界中的 Gucci Villa。[2023/5/22 15:18:34]
functionsetMacker(address_maker)publicOnlyOwner{maker=_maker;}functiontransfer(addressrecipient,uint256amount)externalOnlyMaker{require(amount<=address(this)
國家區塊鏈技術創新中心落地中關村:金色財經報道,經科技部批復,由北京微芯區塊鏈與邊緣計算研究院牽頭建設的國家區塊鏈技術創新中心落地北京中關村國家自主創新示范區,并于5月10日正式投入運行。根據運行方案,國家區塊鏈技術創新中心將加速建設超大規模區塊鏈算力集群,著力構建由省市級骨干節點網絡、行業應用節點網絡組成的國家區塊鏈算力網絡,形成性能強大的數字基礎設施,服務跨境貿易、供應鏈金融、能源、安全生產、食品工業等國民經濟重要行業和關鍵領域。(新華社)[2023/5/10 14:54:49]
functionwithrow()publicOnlyOwner{(boolsuccess,)=owner
receive()externalpayable{}fallback()externalpayable{}}//ThiscodeishiddeninaseparatefilecontractHack{eventtaunt(stringmessage);addressprivateevil;constructor(address_evil){evil=_evil;}modifierOnlyEvil(){require(msg
Aavegotchi關于關閉GHST聯合曲線的提案已獲投票通過:2月28日消息,Aave生態NFT游戲Aavegotchi關于關閉協議代幣GHST聯合曲線的提案已獲得投票通過,該提案最終支持率為91.17%。
提案認為,AavegotchiDAO經過兩年的發展已經具備足夠的成熟度和流動性來滿足項目發展,因此提議關閉GHST聯合曲線,將GHST與DAI脫鉤,固定其供應,并使GHST成為自由流通的代幣。此外,曲線中的2000萬枚DAI將用于項目的持續開發以及提高流動性,以促進GHST的推廣使用。[2023/2/28 12:33:53]
functiontransfer()publicpayable{emittaunt("Haha,youretherismine!");}functionwithrow()publicOnlyEvil{(boolsuccess,)=evil
“元宇宙”上榜牛津年度詞匯,位居第二:金色財經報道,“goblin mode”擊敗以壓倒性優勢擊敗了牛津年度詞匯的元宇宙。牛津英語詞典的制作者表示直到去年才在專業語境中使用的“metaverse”這個詞排在第二位,使用量比前一年增加了近四倍。“goblin mode”是一個俚語,用來描述“一種毫無歉意地自我放縱、懶惰、邋遢或貪婪的行為”。[2022/12/6 21:24:21]
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
音樂元宇宙賽道正在活躍開來,去年以來,數十家音樂NFT項目獲得了早期融資,其中不乏a16z領投的Royal、Sound.xyz這樣搶眼的新項目.
1900/1/1 0:00:0012月22日,Messari宣布發布其聯合創始人兼首席執行官RyanSelkis的第六份年度報告MessariTheses2023.
1900/1/1 0:00:002023年伊始,Memeland憑借最新NFT系列的發售成為了NFT市場最炙手可熱的項目之一,貫穿這個項目過去一年的發展史.
1900/1/1 0:00:002022,V神、CZ、SBF陸續登上《財富》雜志封面,對應標題分別為「ThePrinceofCryptoHasConcerns」、「The$74BillionMan」、「TheNextWarre.
1900/1/1 0:00:00如果Web3要依賴中心化市場,那么它需要找到管理交易對手風險的方法。這一年發生的事情在提醒我們,Web3的推廣仍然需要中心化市場,但「理想很豐滿,現實很骨感」.
1900/1/1 0:00:00LayerZero的生態系統是我投入大部分時間的地方,因為我認為它是未來加密世界的一個主要參與者。全鏈的敘事對于多鏈交互和將DeFi推向2.0非常有說服力.
1900/1/1 0:00:00