据了解,
以太坊虚拟机处理交易时,虚拟机会根据交易中确定的一个一个的操作指令进行逐个处理,而每个操作指令都有明文规定的Gas消耗量。
以太坊系统规定了两个账户:一个是正常账户,一个是智能账户。那么,普通的转账交易,也就是调用正常账户,所需要的Gas是固定的21000;而调用智能账户的的话,因为智能合约的复杂程度不同,使得所需要的Gas也不同,处理交易占用的资源(计算量、内存等)越多,那么所需要的Gas也就越多,比如:执行一次加法运算将消耗 3Gas,如果执行更复杂的运算,那么消耗的Gas就更多。
那么大家可能会问一个问题:当用户的交易涉及一个恶意的智能合约,这个合约超级复杂,执行这个合约要消耗无限的燃料,怎么办呢?以太坊系统的方案是:为了避免恶意智能合约引起无限的Gas消耗,用户需要在发送交易时设定允许消耗的燃料上限,即 GasLimit,这样一来,就算有恶意智能合约,最坏情况也只是消耗 GasLimit 所规定的燃料范围之内。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。