相關文章:
Rust智能合約養成日記合約狀態數據定義與方法實現
Rust智能合約養成日記編寫Rust智能合約單元測試
Rust智能合約養成日記Rust智能合約部署,函數調用及Explorer的使用
Rust智能合約養成日記Rust智能合約整數溢出
這一期中我們將向大家展示Rust合約中重入攻擊,并提供給開發者相應的建議。本文中的相關代碼,已上傳至BlockSec的Github上,讀者可以自行下載:https://github
金融科技公司Taurus將在Polygon區塊鏈上進行資產的代幣化工作:6月2日消息,瑞士金融科技公司Taurus周五宣布與Polygon整合,允許銀行在Polygon上“發行、預訂和服務”標記化資產。此次合作將使 Taurus 將股權和債務等資產轉化為 Polygon 網絡上的代幣。
Taurus 確認其 70% 的客戶使用其標記化功能,其中包括瑞士阿拉伯銀行、瑞士信貸和德意志銀行。[2023/6/2 11:55:14]
...}
UTRUST啟動Shopify定制化支付應用方案,賣家可申請接收比特幣支付:加密支付解決方案UTRUST宣布啟動基于Shopify的定制化支付應用方案,目前接受Shopify平臺上的賣家申請使用比特幣等加密貨幣支付。[2021/2/19 17:29:38]
在合約B中,withdraw函數開頭處的assert!(self
資產代幣化平臺TrustToken獲得2000萬美元的種子輪融資:資產代幣化平臺TrustToken剛剛獲得了2000萬美元的種子輪融資,投資方包括Andreessen Horowitz、丹華資本和BlockTower Capital在內的大型風險投資公司。TrustToken是一家位于加州的初創公司,它向全世界的客戶提供了一種新型的技術,客戶可以將他們選擇的任何形式的現實資產轉化為數字貨幣。這項技術將允許任何人為任何資產創造流動性和部分所有權,并為他們的貨幣持有人提供保險和審計。[2018/6/24]
self
...}由于上一次進入withdraw以來,victim合約中的attacker_balance還沒有更新,所以還是100,因此此時仍舊可以通過assert!(self
};}
此時的執行效果如下:
$nodeTriple_Contracts_Reentrancy
}Victim::attacker_balance:40FT_Token::attacker_balance:60FT_Token::victim_balance:140
可見由于此時的Victim合約在withdraw的時候事先更新了用戶的余額,在調用外部的FungibleToken實施轉賬。因此當第二次重入了withdraw的時候,Victim合約中保存的attacker_balance已經更新為40,因此將無法通過assert!(self
}Victim::attacker_balance:40FT_Token::attacker_balance:60FT_Token::victim_balance:140
可見限制跨合約函數調用時的GasLimit也能起到防止重入攻擊的效果。
本期總結和預告
這一期我們講述了rust智能合約中的整數溢出問題,同時給出了建議,在書寫代碼時盡量先更新狀態,再執行轉賬操作,并且設定合適的gas值,可以有效抵御重入攻擊,下一期我們將講述rust智能合約中的DoS問題,敬請關注。
Tags:USTANCTOKENKENtrustwallet大陸無法訪問Yearn Loans FinanceWOW-tokenRelay Token
近年來,隨著“虛擬現實”這一概念逐漸普及,“虛擬偶像”、“元宇宙”熱度攀升,該概念在社交平臺被頻繁關注,而對于元宇宙的控制戰悄然打響.
1900/1/1 0:00:00如果元宇宙的終局就是未來的人類社會形式,那么它將從哪些方面影響人們的生活?毋庸置疑的是,元宇宙必然會有一套自己的經濟&金融體系和邏輯,以打通整個元宇宙世界的流動性.
1900/1/1 0:00:00撰文:Footprint分析師Simon(simon@footprint.network) 日期:2021年12月 數據來源:FootprintAvalancheDashboardFootpri.
1900/1/1 0:00:00都說“科技改變生活”,隨著智能設備、移動支付的普及,現在出門只需帶上手機,就能應付絕大多數支付場景.
1900/1/1 0:00:00大家或許聽說過NFT的快速擴張和發展,各類創造者正在通過NFT——存儲在區塊鏈上用于驗證DigitalAsset的數據單元——致力于構建數字藝術、用戶體驗等諸多領域的未來.
1900/1/1 0:00:00近日VitalikButerin發布名為《加密城市》的文章,在文章中曾表示使用區塊鏈技術可以改變城市.
1900/1/1 0:00:00