很多朋友都有以太坊区块链上转账失败的经历,由于链上转账不可逆的特点,结果会造成重复转账等损失。
当你看到一笔转账交易,在区块流浪器上显示转账失败的时候,通常是由以下三种原因造成的:
1、Out of gas(Gas 不足)
什么是Gas,我想需要解释一下,就是你转账时候消耗的矿工费,这是以太坊智能合约设定好的机制,对技术安全之类的这里就不多说了,通俗的说,Gas就类似你开车上路时候燃烧的汽油。
如果你要进行一笔转账,就要为这笔转账设置一个 Gas。如果你设置的过低,就会交易失败。失败原因就是 out of gas(汽油不足)。
2、Bad instruction(指令错误)
Bad instruction 的英文翻译过来就是指令错误,可以说是智能合约代码本身的逻辑存在问题。从而导致转账合约在执行的过程中,出现指令错误。
以太坊区块链也是计算机程序机制,这就像一台坏了的机器,你输入一个指令,机器是不能正常运作的。这时候,转账也会失败。
3、Reverted(回退)
reverted回退也是导致以太坊链上转账失败的又一种原因,那么reverted回退又是是什么情况呢?reverted 其实是一个函数,用于立即中止合约的执行,并且把状态回滚。虽然是智能合约,比一般的合约更聪明,但是有些合约在执行的过程中还是会犯错的。
比如,你到饮料自助贩卖机买一瓶可乐,如果按合约执行,当你输入金额,你可以得到一瓶可乐。但是这个合约并没有检查贩卖机里是否有足够的可乐。当贩卖机里没有可乐的时候,后面来的人,即使它输入金额,也不能得到可乐。这时候,你原本的合约,即输入金额就会得到一杯可乐的合约就会失败,它会发出错误的信息并回滚到当前的交易状态。
最后,关于以太坊链上转账失败的原因您理解了吗?