相关文章:
Rust智能合约养成日记合约状态数据定义与方法实现
Rust智能合约养成日记编写Rust智能合约单元测试
Rust智能合约养成日记Rust智能合约部署,函数调用及Explorer的使用
Rust智能合约养成日记Rust智能合约整数溢出
这一期中我们将向大家展示Rust合约中重入攻击,并提供给开发者相应的建议。本文中的相关代码,已上传至BlockSec的Github上,读者可以自行下载:https://github
TrustBase尔尔:宏观角度来说,牛市会持续很久,从微观角度来讲,做好生态永远都是牛市:在4月12日举办的《佟掌柜的海外朋友们优质海外项目分享》会上,TrustBase中国区负责人尔尔表示,对长久的项目而言没有牛熊市之分,做好产品,服务好客户,做好生态,则是永远的牛市。投机者看到牛市只是挣快钱,对于长期持有者或者共识者来讲,他们看重的是底层技术和生态规划,没有技术就没有生态,我们其实是基于原生元语言包建立起整个生态,不管技术生态还是开发者生态,或是社区生态,以及后期的模型生态,都是基于技术产生的,两者相辅相成。
关于细分赛道的展望,第一是NFT,Trustbase平台会推行大家第一批在实现NFT商业落地,因为开发周期足够短,另外可以产生更多的流量,毕竟金融型用户比应用型用户少很多,所以能让NFT创造更多商业价值,趁着波卡在NFT上发行是我们比较看好的赛道。第二是DeFi,这是不会衰退的赛道,金融本身是区块链的核心根本,DeFi的发展是随着区块链在不断地起伏,但永远不会衰落,这是作为区块链从业者的信仰。
Trustbase底层是波卡原生元,具有扎实底层技术的项目来讲生态规划比较长远,相对来说不惧牛熊,主要是基于未来的生态和规划。[2021/4/13 20:14:00]
...}
动态 | TrustToken正式上线TUSD实时资金审计功能:据BlockTech消息,美国旧金山时间5月13日,TrueUSD发行方TrustToken正式上线TUSD实时资金审计功能。该平台由其与美国独立会计事务所Armanino合作推出。用户可实时查看TUSD的代币余额和抵押资金,实时数据由Armanino独立提交并进行第三方确认,将透明度由原先的每月发布审计报告,提高到每分钟更新数据。[2019/5/14]
在合约B中,withdraw函数开头处的assert!(self
动态 | Prime Trust取消数字资产托管费用:据CoinDesk报道,内华达信托公司Prime Trust宣布,已将加密货币和代币的存储费用降至0美元,与股票和债券的托管费用一致,立即生效。[2019/2/1]
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问题,敬请关注。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。