过去一周,越来越多的朋友向小编咨询一个问题——明明像Magic Eden这样的比特币NFT交易市场是“锁单”的,为什么购买的NFT最后没有到手呢?查看购买记录,显示交易被替换,东西被人“抢单”了。
答案是:你被“RBF”了。
其实这已经不是一个新问题了。去年11月底,在Magic Eden Launchpad上发行的“OrdiBot”系列成为第一个著名受害者,@mulan_art的“Unigraphs”系列也因为当时“RBF”可以使非白名单用户绕过白名单机制而“抢跑”,导致发行延迟。Magic Eden针对这个问题进行了修复,现在Magic Eden Launchpad白名单铸造不再受到“RBF”的影响。
解决方案是铸造交易“Unigraphs”。
去年底,有人以0.0334比特币“抢跑”了5000万个BRC-20代币$RATS的交易。
而上个月,拥有“金色斗篷”(可以在未来免费获得一个Taproot Wizards)的“量子猫”cat0673,最先提交交易的买家也被额外支付了180美元的矿工费,被另一位买家“抢跑”。最终成交的买家转手以1.9比特币的价格卖掉了NFT。
最近比特币生态的火爆让越来越多的人遇到了这个问题,讨论的声音也越来越多。今天凌晨,小编一直在思考为什么比特币网络的费率居高不下,尽管昨天晚上到今天凌晨是项目扎堆发行的一天,但是看链上的情况,并没有出现足以堵塞网络的BRC-20或小图片项目。现在小编终于知道原因了——很多区块30%以上的矿工费都是因为“RBF”狙击导致的。
到这里,您可能会疑问:像Magic Eden上只要购买了,那么网页上就不能再有第二个人点击购买按钮,这些“抢跑”是如何实现的呢?
PSBT交易机制导致的RBF“抢跑”。
首先我们要了解,像Magic Eden这样的比特币NFT交易市场采用的是PSBT,即“部分签名的比特币交易”(Partially Signed Bitcoin Transactions)。简单来说,买卖双方根据NFT交易市场提供的包含交易信息的模板进行签名,卖方的签名在上架时完成,而买方则在提交购买时完成。然后市场将买卖双方的两部分签名组合起来进行广播。
但是问题在交易进入mempool后出现。当广播组合的交易进入mempool后,卖方的那部分签名内容就变得对所有人可见。卖方的签名内容暴露后,所有人都可以作为买方进行签名交易。
这样一来,mempool实际上从“内存池”变为“PVP池”——由于比特币相邻两个区块的时间间隔往往较长,当初始交易被广播后,如果“狙击手”觉得“抢跑”有利可图,就可以使用已经暴露的卖方签名重新签署一个买方交易,并利用RBF将交易费率提高,矿工会优先打包费率更高的交易。(简单来说,RBF就是“费用替换Replace by Fee”,通过支付更高的交易费用来加快交易确认)
当然,“狙击手”们也会失败的时候。比如@robertjfclarke在今年3月提到的一笔NodeMonkes的“RBF”狙击,由于开采出该区块的F2Pool没有允许“full RBF”,导致抢跑交易没有被打包,最终结果是最开始的那位买家成功以低于地板价约60%的价格获得了NodeMonkes,并在半小时后成功翻倍获得了0.2629比特币的利润。
其实PSBT导致的RBF抢跑和以太坊上的拉高Gas是类似的,区别只是比特币的区块确认时间更长。如果比特币生态持续火爆,对于流动性好、市场表现好的资产,将会有越来越多的人进来争夺这块套利空间。小编已经看到有专门提供狙击工具的项目出现,比如@goldmine_tools。这种情况如果真的发生,对于备受追捧的资产来说,预估区块费率实际上会出现一定程度的失灵,交易实质上变成了价格固定但需要出价竞争矿工费的“拍卖”,矿工会更加满意。
对于Magic Eden这样的交易市场,我认为只需要更好地让用户了解购买NFT的流程,然后优化NFT的购买流程即可。比如,为大家提供一个RBF工具,将当前的前端页面锁定改为“该NFT已有待处理交易”,然后允许大家支付更高的费率。以太坊上的NFT聚合器就是这样做的,会出现待处理提示,但愿意提高Gas抢购也没问题。
最后想起大家可能很关心的一个问题——如果被RBF了,会亏矿工费和购买的钱吗?
不会。