系统怎么判断哪些交易不算有效交易啊?
4 个回答
系统判断交易无效主要看几点:交易是否被打包进区块,这是核心的条件。如果没被打包进去,或者被打包进去后又被回滚了,那就无效了。其次要看交易的输入是否是真实的未花掉的UTXO,UTXO可以简单理解为交易来源,如果交易来源不存在或者已经被花掉了,系统也会判为无效。除此之外,比如签名错误,手续费不够,时间戳异常之类的也会导致交易无效。数字货币系统是根据共识规则来验证交易是否有效的,如果不符合规则,这笔交易就会被系统抛弃或者回滚。你所遇到的转账失败或回滚,多数情况下是上述原因之一。希望能对你理解交易机制有所帮助。
系统判断无效交易的依据有:1、共识失败。比特币交易需要网络中的大多数节点认可,如果没有得到认可,那么交易就失败;2、签名失败。如果私钥不正确,或者签名错误,系统会将其视为无效交易;3、手续费过低。矿工会优先打包手续费高的交易;4、转账失败或回滚。这种情况是因为区块被打包以后又撤销了,以及双花攻击导致的。
这些机制组合在一起,就能判断出无效的交易。
判断无效交易主要从以下几个方面判断:1、签名错误,任何签名错误的交易都不会被接受。2、余额不足,如果发起账户余额不足,则交易无法执行。3、重复交易,如果交易已经处理过,那么再次提交该交易会被系统忽略。4、网络拥堵(打包进区块前),如果交易在被打包到区块之前网络拥堵,可能会丢失。5、回滚交易,如果该交易被回滚,那么说明之前打包的区块被撤销了,该交易也无效。
总结:系统判断交易无效有以下几个因素:
(1)没有被打包进区块,即没有上链;
(2)签名错误,用错误的钱包私钥进行签名;
(3)余额不足;
(4)双花,即某笔钱花出去后又再次发送一笔相同的交易;
(5)交易费过低;
(6)节点数据未同步,此时可能处于回滚阶段;
(7)违反特定区块链项目的共识协议规定以及该区块链项目自身对交易的要求。如转账失败或转账被回滚等都是由于网络层面或该区块链项目本身协议层面导致的,从而致使该区块链项目最终没有确认此笔交易。