在 BTC BRC20 铭文生态,进行批量铭刻最常遇到的问题就是"交易刚打出去,Gas 就起飞了”,这将导致铭刻交易迟迟不上链确认,进而引发两个令人无比头疼的问题:
BRC20 铭文打完了交易才上链确认,币没有拿到;
币没有打到,还没有办法退款。
面对这两个问题,BTCBot.pro 提出并实现了一种新的铭刻方案:多级火箭加速,燃料自动回收。
在讲解 BTCBot 的加速方案之前,我们先来展开阐述当前市场上已经存在的三种加速方案。
BTC 交易 3 种加速方案
我们先来解决第一个问题,有没有办法在 BTC 上给一笔交易加速呢?答案是有的,但这个加速和以太坊交易的加速差距较大,总结下来目前给一个批量铭刻交易加速的方案有三种。
矿池加速
第一种为矿池加速,以币安矿池为代表,用户付款给矿池服务商把交易加到等待队列里,矿池在下次打包交易时,从付费加速的等待队列里,按付费高低排序选取交易进行打包出块。如下图所示,在最低上链 Gas 费率处于 120 – 150 sat/vB 时,来自币安矿池的区块可以强行把 35.3 sat/vB 的交易打包上链。
这种方案利用了矿池算力大、可灵活处理的优势,然而这样的加速方式十分昂贵,在交易大小只有 2113 vB 的情况下,加速费用需要 1690399 sats,相当于以 ~800 sat/vB 重发了这笔交易,而当前上链所需的 gas 费率不过 150 sat/vB,这意味着加速成本比常规费用高出 5 倍以上。而且,这种加速服务不保证上链时间,如果下个区块不是该矿池出块,或者等待队列很长,即使下个区块是该矿池出块但没有轮到我们的交易,交易依旧上不了链,加速效果十分不稳定。
RBF 加速
第二种为 RBF (replace-by-fee) 加速,即用更高手续费的交易覆盖原交易。这里和以太坊交易加速看似相同,却有着巨大区别。在以太坊中加速一笔交易,只需要发出一笔 gas 费率更高的相同 nonce 的交易即可,但在 BTC 中加速一笔交易,新交易不仅需要 gas 费率高于原交易,其 gas 总支出也需要比原交易更高才能覆盖原交易。而且,在 BTC 中一笔未上链交易产生的 UTXO 可以继续使用,允许创建这种前后依赖交易链。当我们覆盖一笔交易时,会直接导致依赖它的交易全部被撤销。所以,当一笔交易存在依赖交易链,想要覆盖掉这笔交易,新的替换交易的 gas 总支出需要高于原交易以及其依赖交易链的总 gas 支出之和。
如上图所示,这是一个批量铭刻 24 张 BRC20 铭文的交易的第一笔交易,其目的是先拆分出 24 个聪,然后在这 24 个聪上刻 BRC20 铭文,所以这笔交易后面会串联 24 笔 mint 铭刻交易。可以看到当前只需要 70 sat/vB 即可上链,但是为了替换低 gas 交易,我们不得已需要将 gas 费率拉到 98 sat/vB,让新的拆分交易消耗的 gas,比之前一笔拆分交易和 24 笔铭刻交易加起来还要多。而且在完成这一笔加速后,我们还需要重新提交 24 笔铭刻交易,这意味着,如果原来是 1 commit + 24 inscriptions 共 25 笔交易的手续费,为了加速原来的交易,现在将变成了 1 commit + 24 inscriptions + 24 inscriptions 共 49 笔交易的手续费,这意味着加速成本比常规费用高了将近 2 倍。
如果此时 gas 还在不断攀升,要再次加速的话,手续费就将变成 1 commit + 24*2 inscriptions + 24 inscriptions 共 73 笔交易的手续费,依次类推。虽然 RBF 加速相对于矿池加速看似更加便宜一些,而且可以通过多次加速来应对 gas 持续攀升的情况,但每次加速都需要额外一倍的费用,加速成本指数级提升,十分浪费资金。
CPFP 加速
第三种为 CPFP (child-pay-for-parent) 加速,即在当前交易后面串联一笔高 gas 费率的交易来拉高两笔交易的平均 gas 费率,即有效费率。如下图所示,当前交易的 gas 费率为 35.9 sat/vB,但有效费率显示为 50.5 sat/vB。
其原因如下图所示,上一笔交易后续串联的一笔交易 gas 费率为 106 sat/vB,将两笔交易的平均 gas 费率,即有效费率提升到了 50.5 sat/vB。而加速成本只比常规费用高了 0.3 倍,相较于 RBF 方案的 2 倍和矿池加速方案的 5 倍,资金利用率得到了极大的提升。
CPFP 在资金利用率大幅提升的情况下,也可以做多次加速,是目前在批量铭刻场景下,最佳的解决方案。
BTCBot:多级火箭加速,燃料自动回收
让我们回到上文提到的两个问题,
BRC20 铭文打完了交易才上链确认,币没有打到;
币没有打到,还没有办法退款。
现在我们将在 BTCBot 里彻底解决它们。
根据我们的回测数据,为一笔交易最多做 5 次加速的情况下,BTCBot可以帮助 99% 的交易在当前区块就上链确认。但由于 BTC 对 Mempool Transaction Chain 长度不允许超过 25 的限制,我们每个区块只能为 20 张打新交易完成 5 次加速。至于为什么是 25 这个数字,在 BTC 源码里有这样一条注释,详情可以查看 https://bitcoincore.reviews/21800。
多级火箭加速方案
基于对当前市场上加速方案的不断研究和回测数据的严格论证,BTCBot 选择以 CPFP 加速方案为基础,进行大幅度优化。
在 BTCBot 采用的 CPFP 加速方案中,加速并不由用户手动完成,而是机器人自动监测,自动加速。机器人每 10s 监测一次,如果发现有打新交易在当前区块无法上链,那么就打包加速最多 20 张打新交易,最多完成 5 次加速,也就是逐级多级加速,这将让这 20 张打新交易在当前区块上链确认的概率达到 99%。
举例,如果用户想打 20 张 BRC20 铭文,那么,会在当前区块内全部被确认;而如果用户想 100 张 BRC20 铭文,在 5 个区块内全部被打包上链。BTCBot 根据当前的链上状况,自动化逐级加速,确保用户能够在可能的范围内,做到最快上链。在面对众人疯抢的某个项目 BRC20 铭文时,AutoBoost 将会是一把锋利的武器,快人一步拿到 Token。这种方案的实践过程就像火箭加速一样,一级推进、二级推进、三级推进等等,所以形象地称其为“多级火箭加速方案”。
采用这种逐级加速而不是一次性加速方案的好处有两点:
应对不断变化的 gas 波动,确保 BRC20 铭文能够上链,用户能拿到 Token;
在确保 BRC20 铭文能够快速上链的同时,将 gas 消耗尽量降低,即为用户节省成本支出。
BTCBot 的 AutoBoost 功能在打新交易卡块时,将被自动激活,无需用户手动设置。
燃料自动回收
燃料(也就是 Gas fee)是铭刻 BTC BRC20 铭文的成本,而对这种成本必须加以控制,才能有更大的盈利空间。事实上,大量的 gas fee 对于用户来说,是一种巨大的负担,同时,这也令很多参与者望而生畏。这些使用 BTC 作为 gas fee 却没有打到 BRC20 铭文的过程被行业称为“打水漂”,意思是钱全浪费了。
在每个新区块出块后,BTCBot 都会自动分析其中所有交易,以检测用户正在打新的 BRC20 铭文是否已经结束,如果没有结束,BTCBot 将继续为用户加速最多额外 20 张;如果已经结束,那么BTCBot 将停止打新,把剩余资金全额自动返还用户。用户不需要提心吊胆 BRC20 铭文打不上后 gas fee 无法回收的问题,基于“燃料自动回收”方案,将会有更多的操作策略诞生。
更多信息
技术方案不仅要解决问题,还要巧妙地有效率地解决问题。不能增加用户的实际支出成本,不能增加用户的使用门槛,还要让技术应用的场景多元化。从铭刻 BRC20,到铭刻任何内容到聪上,只要是批量化的铭刻全部都可以使用 BTCBot 的 AutoBoost 技术。
来源:金色财经