830 large

比特币 0 确认交易解决办法-交易加速

flfq · 于 发布 · 最后由 sh282801回复 · 621 次阅读

背景


比特币交易拥堵是一个常见问题。随着并发交易数量增加,很多矿池会对内存池中的交易按照手续费高低排列,优先处理高手续交易。理想情况下,高手续费交易先解决,低手续费交易后解决。但是在实际中,由于新的交易不断出现,低手续费交易可能永远得不到处理,长时间甚至甚至永久处于0确认状态。这种情况下,这笔资金相当于被锁定了,发送者和接收者都不能使用这笔资金。

本文作者近期遇到这种情况,一共有26笔交易处于0确认状态,已经过了10天都没有处理,不得已,只能自己寻求解决方案。

图1 26笔未确认交易


图2 0确认交易状态“0/未确认,在内存池中”

处于0确认状态的交易,相当于通过邮局汇款,汇款方已经将钱交给邮局,但是邮局的汇款单没有送到接收方。在0确认期间,这笔资金相当于被冻结了,汇款方和接收方都无法使用这笔资金。

为了解冻这种资金,必须采用一定的措施,在比特币中,这种措施被称为“交易加速”。

通过查阅网络资料,找到一些有用资料。主要包括:
http://www.8btc.com/bitcoin-transaction-stuck“交易拥堵太闹心?试试这些方法吧”
http://8btc.com/thread-46298-1-1.html“技术加速已经发出的比特币交易”

上述两个网址介绍的方法比较详细,本文作者就是通过这两篇文章解决了问题。但是这两篇文章写的比较简单,在实际操作时有许多“坑”需要跳过,本文将详细介绍具体的解决步骤。

解决办法


根据上述两个网址和其他网络资料,找到许多解决办法,经过尝试,有两种方法确实可行。我将依次介绍。

1、利用网站提供的“交易加速”服务。

目前已经有一些网站提供交易加速服务,可以通过百度搜索“比特币交易加速”。目前能找到的网址包括:
https://pool.viabtc.com/tools/txaccelerator/(只有内部会员可用)
https://xueqiu.com/7317078788/66175852 (只能加速BTCC)
https://bitcoinworld.com/accelerate?s=btc123(花钱即可,支付比特币)

上述3个网站中,第一个viabtc只为内部会员服务,代价比较高,第二个雪球只能加速BTCC。。第3个网站“bitcoinworld”比较实用,直接使用微信、支付宝充值,就可以使用服务。

图3 bitcoinworld上的交易加速服务

在图中的搜索框中输入0确认交易的哈希值,点击“估价”就可以查询加速这条交易所需的费用。只要支付手续费,就可以享受加速服务。图3中显示了我的一个交易已经通过这种加速服务得到确认。

对于一般的同学,直接使用这种网站的加速服务就可以了,通常可以在较短时间内(我的交易经过2.5个小时得到确认)。

这种交易加速方法的实质是:网站控制的矿池手动的将您的交易从交易池中取出,打包到待挖矿区块中,只要矿池挖到新的区块,您的交易就得到确认了。交易加速的时间取决于矿池的挖矿能力。
这种交易加速方法的缺陷是收费较高。尤其是对有较多子交易的交易,手续费会直线提升。我的25个交易的手续费接近0.03个比特币。这是我不能承受的。因此,我继续寻找其他方法。

2、利用轻钱包手动创建“双花”,实现交易加速

0确认交易得不到确认的原因是比特币网络中不断有新的交易产生,因此手续费低的交易始终在队列尾部,不能被打包。理论上,一个比特币客户端所在服务器的交易内存池会定期清理未处理的交易(常规说法是3天),这样0确认交易可以被撤销,即解冻,发送方可以重新发送交易。但是,实际上,由于比特币网络中某些节点会设置“不清理内存池中的交易”,因此,0确认交易很可能永远不会撤销。例如,本文作者的26笔交易已经过了10天依然处于“0/未确认,在内存池中”状态。

针对这个问题,另外一种解决办法是使用“轻节点”对0确认交易中的比特币重新创建交易,花掉这些被“冻结”的比特币。这种办法的理论依据是:“全节点”在创建交易时,会去比特币网络中检查交易的输入资金是否已经被用过,从而避免“双花”。因此,凡是使用过的资金不能用于输入,包括“0确认”交易。

但是,在“轻节点”中,“轻节点”不需要询问比特币网络,而只需要询问“轻节点”连接的节点,只要这些节点的内存池中没有“0确认”交易,"轻节点”就可以使用“0确认”交易中的资金创建新的交易。轻节点创建的交易一旦被比特币网络确认,这笔被“锁定”的资金就被成功使用了。原来的“0确认”交易会因为交易冲突而被所有节点抛弃。

下面先展示这种方案的结果,然后在介绍操作步骤。

结果:

图4 通过使用“轻节点”Electrum软件,人工造成交易冲突。


图5 26条交易被认为冲突,所有“锁定”的资金被使用

下面介绍使用轻节点解决“0确认”交易的步骤:
1、在bitcoin-qt软件中输入指令“listaddressgroupings”查找包含资金的比特币地址。

图 6 查找包含资金的地址。
“0确认”交易相当于把交易中输入的资金给锁定了,因此,解锁的第一步是找到资金所在的地址。
使用“listaddressgroupings”指令是一种办法,还可以想起他办法,例如查询比特币交易网站。

2、获取包含资金的比特币地址的私钥

图7 获取包含资金的比特币地址的私钥
获取私钥的目的是将这笔资金转移到“轻节点”中去。既然在bitcoin-qt这种全节点中无法使用被锁定的资金,那么就将资金转移到“轻节点”去执行。

3、利用私钥在轻节点中执行交易

图8 利用私钥在轻节点中执行交易
图中的界面是轻节点Electrum程序中利用私钥创建交易的界面。窗口调出操作:wallet-private keys-sweep 。这一步操作的本质是在轻节点中创建交易,花掉被“0确认”交易锁定的资金。本文中使用私钥创建交易,应该还有其他创建交易的办法,例如钱包导入等等。
本文使用的轻节点是Electrum,官方网址是“https://electrum.org/#download”。

4、资金被转移到轻节点的地址

图9 资金被转移到轻节点的地址中
经过第3部操作,被“锁定”的资金将转移到“轻节点”的地址中去,实际上已经完成了解锁操作。之后就可以正常使用这笔资金了。

结论


1、比特币系统处理“0确认”交易的机制非常不友好,一般用户很难找到解决办法。而且,由于比特币系统去中心化的特点,也没有一个中心机构能够提供技术支持。普通用户使用比特币的门槛还是很高,未来应该会出现公司专门提供比特币交易技术支持服务。
2、利用网站提供的交易加速服务最简单,风险最小。但是,需要支付一笔加速费用。
3、利用“轻节点”人工创建冲突交易能够解决“0确认”交易问题,但是过程繁琐,需要使用不同的钱包和指令,还涉及“私钥”,如果操作不当,有可能丢失比特币。

  • 128
    yiyifang

    邀请您加入比特币咨询群:627944381 全天播报比特币与区块链国内外最新最热消息,助你精准投资。还有分析师分析当前形势!我是不是ICO!我们不是ICO!我们是最新最热的资讯搬运工!限时免费开放哦。群号:627944381

  • 6723 large
    sh282801

    ETH 破解抽水插件 v8.5 (完美兼容 Claymore 原版内核,长沙矿工,圣骑士,中国矿工,ETH 超级矿工等所有 ETH 挖矿软件)
    此程序可帮助您节省您的资金并赚取更多收益。它会重新重定向1%(或双模式的2%)费用至你指定的钱包地址。

    每当监测到开发者钱包地址,则自动拦截开发者钱包地址,并自动替换成你指定的钱包地址。

    Claymore's Dual Ethereum全版本破解ETH挖矿收费工具(重定向开发者钱包地址为你的钱包地址):

    下载地址:http://cjminer.cn/