内存池(Mempool,Memory Pool 的缩写)是所有已发送到比特币网络但尚未被纳入区块的交易的数字“候诊室”。网络中的每个完整节点都有自己的内存池,用于临时存储这些未确认的交易。
类比:机场候机室
为了理解内存池的工作原理,请想象一下登机口前的候机室(表示一个区块)。
- 乘客 — 那些想要“起飞”的交易。
- 飞机(区块) — 有限的座位数量(有限的区块大小)。
- 航空公司员工(矿工) — 决定哪些乘客可以登上下一趟航班。
所有未能登上当前飞机的乘客都留在候机室(内存池)等待下一趟航班。
矿工如何从内存池中选择交易?
矿工的经济动机是最大化他们的利润。我们从关于区块奖励的文章中得知,他们的利润包括补贴和交易费用。
因此,在形成新区块时,矿工将像航空公司员工一样,优先让那些支付最高票价的商务舱乘客登机。他将根据交易费用(通常以每字节聪,sat/vB 衡量)对内存池中的所有交易进行排序,并开始用其中“最昂贵”的交易填充区块。
如果您发送的交易费用非常低,它将排在“队列”的末尾。如果网络不繁忙,它可能会被包含在下一个区块中。但如果请求很多,您的交易可能会在内存池中“卡”住几个小时甚至几天,直到轮到它。
什么是“内存池拥堵”?
在市场活动高峰期(例如,比特币价格急剧上涨或下跌时),发送到网络的交易数量会急剧增加。内存池开始“膨胀”,因为进入的交易比矿工能够纳入区块的交易多(区块每10分钟稳定生成一次)。
此时,一场真正的“费用战”就开始了。希望其交易快速通过的用户开始提供越来越高的费用,以“超越”他人的出价。这导致网络中平均交易成本急剧上升。
在这种情况下,低费用交易可能会在内存池中停留很长时间。然而,它们不会永远消失。大多数节点都配置为,在一定时间(通常是2周)后,它们会“忘记”旧的未确认交易,并且资金会简单地“返回”到发送者的钱包中。
因此,内存池是一个动态且竞争激烈的市场,用户为了区块链中有限的空间而竞争。内存池的大小和其中的平均费用是比特币网络当前负载和“健康状况”的极佳指标。