@
helloswiftinuk 总感觉你好像混淆了一些概念?忍不住想多啰嗦啰嗦:
1.用户用私钥签名交易,然后把交易广播到比特币 P2P 网络,也就是发给比特币 P2P 网络里的其他节点。
2.其他节点验证交易,确认交易没有违反规则(比如,没有双花,没有凭空造币,数字签名有效,等等),就会把它加入“内存池”,同时把它继续“一传十十传百”给其他节点(所以说不同节点的内存池的内容并不要求一致,并没有全网统一一致的“内存池”概念;但现实中,不同节点的内存池内容大体上都是一致的,所以观察内存池的情况还是有意义的)。
内存池里的交易都是准备要打包到区块里的,这些待打包的交易还被叫做“零确认”交易。
3.比特币 P2P 网络里面只有极少数节点(矿池,以及极少数 solo 独立矿工)有算力、可以挖矿出块(也就是在区·块·链账本上追加内容)。
矿工挖到新区块时,当然也要把整个区块广播出去(所以实际上每笔交易的数据在网络上被重复传播了一共两次),但是一般用户用不着关心怎么把区块广播出去。
用户关心的是自己的“零确认”交易有没有被打包到区块里(从而被写入区·块·链账本),以及,打包自己的那个区块后面又跟了多少个区块(包括打包交易的区块本身,一共 N 个区块,就是 N 个确认)。
现在的情况,就是内存池里积压的零确认交易太多了,矿工会按照每笔交易的矿工费,除以交易的“虚拟字节数”( vByte,按照规则,隔离见证交易的一部分字节数在统计时要打个折扣优惠,就这样得出比实际字节数少的“虚拟字节数”),算出一个费率( sat/vB,聪 /虚拟字节),费率高的,优先打包进链。
钱包软件(以及用户自己)可以观察内存池的情况来估算手续费,预计等到全网矿工们再新挖出多少个区块后,自己的零确认交易能“上车”获得第 1 个确认。
但是很显然,这个估计是不可能准确的,因为每时每刻都仍然有 N 多用户在产生新的零确认交易,没有人能预知未来,所以不可能知道未来有多少人愿意付出比你更高的手续费来“插队”把你“挤到下一班车”。