# BRC20 铭文转账想省 gas，免费加速实验失败！CPFP 和 矿池加速 逻辑分析

By [Portal_Kay](https://paragraph.com/@portalkay) · 2024-06-25

---

最近 BTC 生态的小伙伴们都沉浸在 $Pizza 空投的一片欢腾之中。我也一样，非常感谢 @unisat\_wallet 送出的这份可口大礼。然后，我也开始对照着 [@lilyanna\_btc](https://x.com/lilyanna_btc) 里里的 [这份教程](https://x.com/lilyanna_btc/status/1798563212608356701)，尝试着批量铭刻转账铭文。

由于领到空投的钱包数不少，所以即使是批量铭刻，在 30+ Gas 的情况下依然要花几百刀的费用。一看这费用，瞬间还是有点肉疼。可能也是被这疼痛刺激了神经，我灵机一动，突然想到一款免费加速神器：[@viabtc\_pool](https://x.com/viabtc_pool)。是的，就是挖到 Epic 稀有聪那家矿池，他家提供了『免费』的 BTC 交易加速服务！

1\. 薅 ViaBTC 羊毛
===============

*   于是一个想法浮现出来：是不是可以按照里里提供的方法，先设置一个低 gas 去铭刻那堆 $Pizza 转账铭文，然后再用 ViaBTC 给这些铭刻 tx 免费加速，那不就可以薅羊毛？（当时脑子里已经出现了樱木花道的画面：“我真是天才”！）
    
*   GeniiData 的批量铭刻功能，其实背后生成的是一堆串联的 CPFP 交易（Child Pays for Parent，父债子偿交易）。如下图所示，这串交易的前一个交易的输出 UTXO（父交易），成为了下一笔交易的输入 UTXO（子交易）。就这样通过环环相扣的方式，把几笔交易关联了起来。
    
*   按照以往经验：只要我把这串交易的一笔交易加速了，那么整串交易都能得到加速。于是，如果我把这串交易的第一笔交易提交给 ViaBTC，那不就可以让这一串转账铭文全部上链？
    

![GeniiData 批量铭刻产生的 CPFP 订单](https://storage.googleapis.com/papyrus_images/5843c534ad9a499355bf6acfccc78a27f3f9a28136b1a3ece01fa72adb639c2f.png)

GeniiData 批量铭刻产生的 CPFP 订单

2\. 免费矿池加速尝试失败
==============

*   于是，我开始了这次的梦幻操作。首先在 GeniiData 里批量铭刻好转账铭文，并且设置 gas 为 16。按照当时正常 gas 36-40 来计算，这样设置可以节省 60% 的费用！然后我复制铭刻转账的第一笔交易 ID，打开加速服务 [https://www.viabtc.com/tools/txaccelerator/](https://www.viabtc.com/tools/txaccelerator/)。输入交易 ID，点击“免费加速”，系统弹出提示“提交成功！”。
    

![ViaBTC 矿池加速](https://storage.googleapis.com/papyrus_images/c1e4efeb63bd3cef0be1a632db1ede311aa865174e52a7ef2e8509fdb4057edf.png)

ViaBTC 矿池加速

*   过了不到一个小时，我提交加速的这笔交易果然顺利上链，ViaBTC 没有让我失望！然而，当我完整去看那一串铭刻交易时，发现除了提交加速的那一笔，其他关联交易并没有如我所愿全部上链。只上链一个交易有啥用？其他几个铭刻交易，都还卡着呢！
    
*   我发出了灵魂拷问：这到底是为什么呢？
    

![矿池加速仅成功一笔](https://storage.googleapis.com/papyrus_images/ac8a4808d644ebf8b1df520aa2167fed9ff7d400a7066f5391c65c06b9963303.png)

矿池加速仅成功一笔

3\. 原因解析
========

*   虽然操作没有成功，但刨根问底的精神不能丢！羊毛没薅成，原因还是得搞清楚！
    
*   首先，我们得知道常规 CPFP 加速的逻辑。BTC CPFP 交易有一个设定，就是所有关联交易可以平摊 gas 费。所以如果交易因为 gas 过低卡住，使用 CPFP 方式来加速的话，就会以卡住那笔交易的输出作为输入，发起一笔转账给自己的新交易。并且把这笔新交易的 gas 设定得比较高，就可以让卡住的父交易也因为交易费平摊逻辑提高了 gas。对这部分逻辑感兴趣的可以看 [@off\_thetarget](https://x.com/off_thetarget) 花椒的这期视频：[https://www.youtube.com/watch?v=Bu20FpZmMp0](https://www.youtube.com/watch?v=Bu20FpZmMp0)，介绍得非常清楚。所以如果是一笔通过 CPFP 加速的交易，在 memepool 的交易详情内，都可以看到“Fee rate”和“Effective fee rate”两项信息。前者就是这笔交易原本设定的 gas，而后者就是平摊了子交易 gas 之后该笔交易实际上链的 gas 费率。
    

![BTC CPFP 订单详情](https://storage.googleapis.com/papyrus_images/c906305f218499653e53f4b9b7c63050b5d99467b1e2433f27ab6b6c8f38aafa.png)

BTC CPFP 订单详情

*   而 ViaBTC 的矿池加速逻辑却完全不同。我们知道，矿池的作用是通过算力挖出新区块，并选择交易放进区块里。一旦交易被打包进入区块，就算是“上链”了。虽然矿池一般都是优先选择费率高的交易打包，但其实他们也可以自主选择。所以当你在 ViaBTC 的加速服务中提交了这笔交易的 ID，那么一旦 ViaBTC 或他们的矿池盟友挖出了新区块，你提交的这笔交易就会优先被打包进区块内。
    
*   然而，也正因为矿池加速是依靠矿池“开后门”的方式优先打包了那笔交易。但是当时提交加速的就只有那一笔，矿池没有义务给所有的父子交易都“开后门”。这里还是过往的经验误导了自己：把常规 CPFP 加速逻辑套到了另一种完全不同的矿池加速方法当中。最后，也只能宣传这次薅羊毛实验以失败告终。
    

最后，吃瓜的各位可能会关心：我那两笔设了低 gas 被卡住的铭刻订单怎么办？还能怎么办，只能走正规渠道，老老实实花钱补 gas 啊（心在滴血🩸）……

---

*Originally published on [Portal_Kay](https://paragraph.com/@portalkay/brc20-gas-cpfp)*
