本文来自?braiins,原文作者:braiins,由Odaily星球日报译者Katie辜编译。
你有没有经历过比特币转账卡在等待状态,无法得到确认而束手无策?
当被卡在内存池时,如何验证被卡住的BTC交易?
跟着我们往下看,一起了解交易被卡住的原因和解决方案。
交易被卡往往是因为你设置的交易费过低。简单来说,手续费太低意味着矿工会优先考虑将设置高交易费的交易添加到他们的区块上。除非交易量减少,不然你的交易无法得到确认,资金也无法达到预定地址。
然而,你的资金不会永远亏损。矿工要么最后验证你的交易,要么过段时间节点放弃了你的交易,然后资金重返你的钱包。
疑似SBF位于巴哈马的一套顶层公寓正以4000万美元的价格挂牌出售:11月14日消息,疑似属于FTX前首席执行官Sam Bankman-Fried(SBF)的位于巴哈马的一套顶层公寓正以4000万美元的价格挂牌出售,该房产位于新普罗维登斯岛上的奥尔巴尼度假村,面积1.2万平方英尺,虽然尚未最终确认这是否为SBF的房产,但这套房产的照片与SBF介绍采访时的背景相似。
此前11月11日消息,FTX集团已在美国申请破产,SBF辞去CEO职务。11月13日消息,经前FTX员工证实的政府文件显示,FTX今年在巴哈马购买了价值约7400万美元的房产。[2022/11/14 13:02:39]
同时,你也有几个选择来加速你的交易,这取决于你用来发送它的钱包具有的功能。接下来我们将一起看看预防被卡和加速交易的方法。
分析内存池:如何确定一笔合适的手续费
内存池是待定交易的集合处,这些交易已经过节点验证但尚未被矿工确认。内存池内置于网络中,交易费过低的交易会被立刻拒绝。换句话说,节点不会将交易包含在它们的内存池中,也不会广播到其它节点。
Yearn Finance不支持以太坊PoW分叉,旧版本的Yearn保险库许可功能存在风险:9月6日消息,Yearn Finance发布关于许可功能的安全公告,低于0.4.4版本的Yearn保险库具有许可功能,容易受到分叉网络中的重放攻击。Yearn不鼓励在其他分叉网络中的Yearn保险库中使用许可方法。
Yearn不打算在合并后支持任何以太坊工作量证明 (PoW) 分叉,并且不能保证除了官方支持的其他网络中的保险库的正确功能。如果之前在以太坊主网中使用过该功能,请使用该approve(spender, 0)功能重置permit限额,并使用一个非无限的到期期限。[2022/9/6 13:11:24]
你也可以把手续费当做支付交易所占的区块空间。区块空间以字节为单位,这就是为什么比特币的交易费用不取决于所转移资金的数量,而是取决于需要包含在区块链中的数据量的原因。
该图将帮助你可视化交易费随时间的变化。但对区块空间的需求很大时,即交易量大时,费用就会上涨。从本质上看,你作为用户必须与其他用户进行竞争,以此激励“看钱办事”的矿工将你的交易添加到他们的区块上。
分析:Nomad攻击者利用合约process函数进行提取:金色财经消息,北京时间8月2日中午,成都链安链必应-区块链安全态势感知平台舆情监测显示,跨链通讯协议Nomad遭遇攻击,成都链安安全团队现将解析结果分享如下,通过被攻击合约(0x88a69b4e698a4b090df6cf5bd7b2d47325ad30a3)的转账交易看到,许多地址都进行了攻击。通过找到一笔相关交易,可以到看到攻击者利用了(0xb36f6479b1aa5582ce862bfb6eb94591e1b0e0b977188c2e8ca85699efcd6183)合约中的process函数进行提取。
在process函数中,可以看到合约对_messageHash进行了判断,而输入的messages[_messageHash]为0x000000....时,相当于任何未使用的hash,都可以判断通过。然后跟进acceptableRoot函数,因为_root设置为零(x000000....),而confirmAt[_root]等于1,导致判断恒成立,攻击者就能提取资金。成都链安链必追平台将对被盗资金进行实时监控。[2022/8/2 2:53:05]
美国30年期国债收益率自4月以来首次跌破2.92%:金色财经消息,行情显示,美国30年期国债收益率自4月以来首次跌破2.92%。美国20年期国债收益率跌10个基点至3.11%。[2022/8/2 2:52:23]
你的钱如何最终回到你的手里
正如以上提到的,如果你的交易费设置太低,你的交易最终可能被节点放弃。这是因为节点的内存池的空间是有限的,典型的节点限制是300MB。但内存池达到最大容量时,节点通常会放弃最低费用的交易,选择更高交易费的交易。一旦这种情况发生,你就可以重新利用被放弃了的交易中的资金。
下图是实际操作情况。在图的左侧,内存池在定期清理未被确认的交易,意味着如果你再等待一段时间,那么即使只有1-2sat/vBytes的交易费也足够了。但是在图的右侧,如果费用低于5-6sat/vBytes,那么你的交易没有可能继续在内存池里。
以太坊信标链网络验证者数量突破37.7万:金色财经消息,据Ethereum官方网站最新数据显示,以太坊信标链(The Beacon Chain)网络验证者数量已突破37.7万,截止目前为377,163个。此外,当前以太坊信标链总质押量为12,648,265ETH。[2022/5/14 3:16:12]
你的交易可能因为节点重启和内存池过期而放弃。一般情况下,这需要几天的时间,并且你需要重新获得资金的使用权。但这取决于交易量和其它变量,因此有时可能需要更长的等待时间。
对于这些情况,你也可以尝试以下的方法来确认交易。
别尝试“双花”
如果你想创建一个新交易,将相同的资金发送到相同的地址,但交易费更高,遇到这种情况该怎么办?从节点对待新交易的角度看,你刚刚已经双花,如果被发现,节点将会删除最新的交易。
比特币节点遵从“第一眼”原则,意味着节点软件认为它们接收到的第一笔交易是有效的,而任何后续试图花费相同的交易费的交易被认为是无效的,也不会被广播。
所以,当你的交易被卡在内存池中并且不想等待验证或被节点放弃,有什么最常用的解决方法?
交易重发
2016年,BIP-125提出了一项政策,即允许替代交易。本质上,当你想替换交易时,可以提前通知节点。
假设你发送了一笔交易,为了避免交易费设置太低,你想要能够替代这笔交易。如果启用了交易重发的功能,并且节点执行了交易重发的政策,那你的机会就来了。但替代交易要被发送到节点时,新交易将代替旧交易,并将其广播到其它节点。
接着矿工就会看到新的高交易费的交易,如果他们想赚更多的钱,那么就会把你的交易添加到他们的区块上。
记住,这只能由发送交易的人发起,如果你是接收这笔交易的一方,应该了解以下的“父子交易”。
父子交易
在“父子交易”应用场景中,你可以通过使用待处理的交易中的一部分资金将另一笔交易发送给自己来确认这笔待处理的交易。你可以有效地创建一个“子”交易来支付,但要支付更高的费用,如下所示。
以“父子交易”为例;为简单起见,假设两个交易具有相同的字节。
与交易重发不同,父子交易可以由在父交易中接收UTXO的任何一方发起。换句话说,上例中的A2或B交易方都可以使用其在父交易中收到的资金来支付子交易中较高的交易费用。
这就是为什么它可以将卡住的交易添加到区块上。虽然矿工希望只添加子交易,因为它出的交易费更高,但这是不可能的。子交易是基于待确定的父交易,所以只有父交易也在区块链上时才有效,父子交易是捆绑在一起的。
这意味着两次交易的累计交易费必须满足一定的交易费标准才可以被确认。换句话说,这两笔交易费的平均值必须大于确认新交易所需的当前交易费标准。
实际上,创建父子交易要困难得多,因为需要从未经确认的交易中先支出一笔费用,目前许多钱包不支持该功能。
交易加速器服务
如果交易重发和父子交易不适合你,你可以尝试一种更迂回的方法来将交易添加到区块上,即交易加速器。
这是矿工提供的一项服务,他们将接受外部付款,如山寨币、PayPal或微信支付,从而将你的交易添加到一个区块上。你可以通过向矿工支付额外的费用给矿工提供足够的经济激励。
这些外部交易费被称为“带外”支付,它们可能导致矿工收入降低,因此存在争议。
你的选择由你的钱包做主
由每个钱包开发人员选择他们想为用户提供的方案。例如,交易钱包通常会强制收取固定的费用,而不管发送的金额是多少。这有一定道理,因为卡住的交易肯定会引起用户的不满并为他们带来麻烦。在可以自己控制自己的私匙的自我监管的钱包中,通常会有更多的方式来帮助解决被卡住的交易。
作为一个比特币玩家,你有机会做自己的银行,这有很多优点,包括审查和抗阻力,但也意味这你有时会面对棘手的情况,比如交易被卡住。希望通过本文可以帮助你解决以及防止交易卡住这种情况再次发生。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。