当您在区块链浏览器(如 Etherscan)或钱包(如 MetaMask)中查看一笔以太坊交易时,可能会看到它处于“待确定”(Pending)、“已确认”(Confirmed)或“已失败”(Failed)等不同状态。“待确定”是每个以太坊用户都会遇到的最常见状态之一,它究竟意味着什么?您的钱是不是丢了?交易会不会失败?本文将为您详细解释以太坊交易“待确定”状态的来龙去脉。
核心概念:什么是“待确定”?
“待确定”(Pending)状态意味着您的交易已经被成功广播到以太坊网络中,但尚未被任何一个区块所收录和确认。
您可以把它想象成您在银行柜台填写了一张汇款单,并交给了银行职员,职员已经接收了您的单据,正在系统中处理,但这笔钱还没有正式从您的账户划出,也没有进入对方的账户,在这个“处理中”的间隙,您的交易就处于“待确定”状态。
一个关键点: 在“待确定”状态下,您的交易记录已经存在于以太坊网络的“内存池”(Mempool)中,内存池是每个全节点(维护以太坊网络的计算机)在打包区块前,临时存放所有待处理交易的“等候区”,交易并非“丢失”,而是在排队等待被矿工(在以太坊合并后,是验证者)打包。
交易为何会进入“待确定”状态?
一笔交易从发出到被确认,需要经过几个步骤,当它成功完成前两步,但卡在第三步时,就进入了“待确定”状态。
- 签名与广播: 您使用钱包(如 MetaMask)用私钥对交易进行签名,然后将这笔交易数据发送到以太坊网络,这一步是即时的。
- 进入内存池: 以太坊网络中的各个节点接收到您的交易,验证其格式是否正确、签名是否有效,然后将其放入自己的内存池中,交易状态通常就被标记为“待确定”。
- 被打包进区块: 这是“待确定”状态持续的原因,内存池中的成千上万笔交易需要等待“打包者”(即验证者)将它们挑选出来,并组织成一个新的区块,然后添加到区块链上。
是什么决定了“待确定”的时长?
为什么有些交易几秒钟就确认了,而有些却要等几分钟甚至更久?这主要取决于以下几个因素:
Gas 费用(最关键的因素)
- Gas 费的作用: Gas 是您支付给验证者,用以补偿他们计算和验证您交易所需的工作量的费用,在以太坊上,计算资源不是免费的。
- Gas 价格: 您可以设置愿意支付的 Gas 价格(Gwei),价格越高,对验证者的吸引力就越大。
- Gas 优先级: 验证者在打包区块时,会优先选择 Gas 价格最高的交易,因为这能为他们带来最高的即时收益,如果您设置的 Gas 价格过低,您的交易就会在内存池中长时间排队,甚至可能因为排队太久(超过了交易设定的有效期)而被丢弃。
内存池的拥堵程度
- 当以太坊网络非常繁忙时(某个热门 NFT 项目发售时),会有大量用户同时提交交易,导致内存池“塞车”,竞争变得异常激烈,只有出价最高的交易才能脱颖而出,即使您设置了合理的 Gas 费,也可能因为网络拥堵而长时间“待确定”。
交易复杂度