首页>资讯>区块链 > 正文

什么是Mempool?探秘加密货币的交易等待室

2026-07-15 14:22 loading...

Gate.io

币安Binance

币安交易所是全球加密货币交易所龙头,在手机上即可买卖比特币等数字货币!

官网注册  APP下载

内存池是区块链网络中每个全节点在其工作内存中维护的一个未确认交易数据库。当你在钱包中签名一笔交易并点击发送时,这笔交易并不会传到某个中央服务器去处理,因为不存在这样的服务器。相反,你的钱包将签名后的交易交给一个节点,该节点开始将其传播给它的对等节点,这些节点再传播给它们的对等节点,直到网络中的大部分节点都持有该交易的副本。每个收到交易的节点都会进行一系列检查,如果交易通过,就将其放入本地内存池中等待。

这个词本身是"内存"(memory)和"池"(pool)的缩写,"内存"部分至关重要。节点将内存池保存在RAM中而非写入磁盘,因为速度是关键。当矿工组装候选区块时,它需要在几分之一秒内根据手续费对数千个待处理交易进行排序,并选出最有利可图的一组。当网络中其他地方传来新区块时,如果该区块中的大部分交易已经存在于节点自己的内存池中(经过检查并准备就绪),节点就能更快地验证该区块。

内存池是一个中转区域,是用户活动混乱而持续的流与区块生产严格而周期性的心跳之间的缓冲带。

为什么区块链需要一个等候室

传统支付处理器在交易到达的瞬间就完成确认,因为单一公司控制着账本,可以直接写入记录。而公共区块链没有这样的权威。数千个独立节点必须就单一历史达成一致,它们通过离散的步骤(一次一个区块)达成共识。在区块之间,网络需要一个共享的、非正式的图景来了解用户接下来想要做什么,内存池提供了这一功能。

等待期还承担着关键的安全工作。在节点将交易接入内存池之前,它会验证数字签名是否有效、发送方是否确实控制着所花费的资金、交易格式是否正确,以及同一笔资金是否未被花费两次。最后一项检查的重要性远超字面意思。两笔冲突的交易(都花费同一笔资金)完全有可能同时从不同入口进入网络。一些节点先看到其中一笔,另一些节点先看到另一笔。每个节点都会拒绝后到达的那笔冲突交易,而冲突最终会在矿工将其中一笔打包进区块时得到解决。内存池正是这些竞赛举行和解决的地方。

内存池还充当着网络的早期预警系统。快速填满的内存池预示着需求激增、恐慌、空投申领窗口或手续费飙升,而这些在已确认的区块中尚未显现。交易员、矿工和钱包费用估算器都会像气象学家读取气压系统一样读取内存池。

交易的生命周期:一步步详解

首先是创建:

你的钱包构建交易,指定金额、接收方以及你愿意支付的手续费,并用你的私钥签名。签名证明了所有权,而不暴露密钥本身。

其次是广播:

钱包将签名后的交易发送给一个或多个节点,这些节点开始在点对点网络中转发它。传播到网络大部分节点通常需要几秒钟,这一步不需要信任第一个节点,因为每个后续节点在转发之前都会独立地重新验证交易。

第三是验证:

每个收到交易的节点都会独立检查它。无效交易、错误签名、资金不足、格式错误的数据会被当场丢弃,永远不会进入内存池。

第四是等待:

交易现在位于网络中数千个内存池中,任何运行节点或使用公共内存池浏览器的人都可以看到。等待时间几乎完全取决于所附手续费相对于其他人手续费的高低。

第五是选择:

工作量证明链上的矿工或权益证明链上的验证者,通过从其内存池中选择待处理交易来组装候选区块,几乎总是按费率密度排序,以使区块获得最大奖励。

第六是确认:

区块被挖出或提出、传播并被网络接受。每个节点将区块中的交易从其内存池中移除,你的交易现在成为链的一部分。每个在其上构建的额外区块都会增加一次确认,并使撤销变得指数级困难。

费用市场如何决定谁先走

区块空间是稀缺的,需求波动,因此区块链通过拍卖来分配空间。在比特币上,手续费以"聪每虚拟字节"(satoshis per virtual byte)计量,这是交易数据大小的单位,因此交易的费率取决于你支付的金额和交易占用的空间。在以太坊上,手续费以Gas计量,包括协议销毁的基础费用和归验证者所有的优先小费。两个系统的逻辑相同:区块生产者是利润最大化者,因此他们首先用支付最高的交易填满区块。

这意味着你在队列中的位置并非固定不变。如果需求激增,一笔在中午看似价格合理的交易到了晚上可能就会变得严重偏低。钱包通过读取当前内存池、查看待处理交易提供的费用以及最近区块的饱满程度来估算费用,然后给出一个可能在你选择的时间窗口内被确认的费率建议。这些估算是有根据的猜测,而非保证,并且在波动市场中会迅速失效。一笔在安静的周日能在下一个区块中确认的费用,在清算级联期间可能会让你等待数小时,因为其他人的支付意愿发生了变化,而你的却一成不变。拍卖从不关闭,并且持续重新定价。

当你支付过低时,大多数网络提供了逃生舱。比特币支持"手续费替换"(Replace by Fee),允许你以更高的手续费重新广播同一笔交易,从而覆盖原交易。一个相关的技巧是"子代付父"(Child Pays for Parent),即附加一笔高手续费的后续交易,花掉被卡住交易的输出,从而激励矿工同时确认这两笔交易。以太坊钱包允许你用相同的nonce和更高的Gas价格重新提交交易,这会替换待处理版本。知道这些工具的存在,能将卡住交易从紧急事件转变为不便。

不存在单一的内存池

人们说起"内存池",仿佛存在一个唯一的规范队列,但现实更混乱也更有趣。每个节点都维护着自己的内存池,没有两个是完全相同的。交易在不同时间到达不同节点,节点应用略有不同的接收策略,每个节点管理自己的内存限制。我们所说的内存池,实际上是数千个私有内存池的松散统计重叠。

在实践中,重叠度很大,因为大多数节点运营商运行默认设置。一个典型的比特币节点将其内存池上限设为约300MB,交易最多保留两周,并拒绝任何支付低于约1聪/虚拟字节的最低中继费率的交易。当内存池超过容量上限时,节点首先驱逐费率最低的交易,并提高其最低接受门槛,这就是为什么非常便宜的交易在拥堵期间会完全消失,而不仅仅是等待。一旦在各地都被驱逐,该交易实际上就被取消了,资金仍然未花费地留在发送者钱包中。

内存池的分布式特性带来了一个微妙的后果:待处理状态并非承诺。在浏览器中显示为待处理的交易,仅仅存在于某些节点的内存中。它可以被驱逐、替换或双花,直到它被包含进区块。接受零确认支付的商家通过惨痛教训学到了这一点,而这正是51%攻击在链层面利用的机制——攻击者重写最近的区块,并将被逆转的交易倒回内存池,仿佛它们从未被确认过。2025年对Monero的重组攻击正是通过这种方式,将一百多笔已确认的交易推回了待处理队列。

政策、标准性以及节点为何拒绝有效交易

共识规则定义了区块链会接受什么区块。内存池策略定义了单个节点会持有和中继什么,两者不是一回事。一笔交易在共识规则下完全有效,但仍可能被大多数内存池拒绝,因为它违反了比特币开发者所称的"标准性"(standardness):非正式的策略规则,用于过滤粉尘输出、过大脚本、极低手续费以及可能给网络带来负担的奇特交易形态。策略是节点级别的免疫系统,是第一道防线,确保共享队列可用。

这种区别造成了现实中的困惑。被公共内存池拒绝的交易,如果直接到达矿工那里,仍然可能被挖出,这就是为什么存在一些服务,它们带外接收非标准交易并直接提交给矿池。这也意味着你通过浏览器观察到的内存池反映的是该节点的策略,而非某种普遍真理。两个浏览器可能对你的交易是否处于待处理状态存在分歧,仅仅是因为它们的节点应用了不同的过滤器。

策略的演进也比共识更快。多年来,节点反复收紧和放松了关于数据铭文、粉尘限制和替换行为的中继规则,每一次改变都在不触及共识的情况下重塑了待处理队列的面貌。对用户而言,实际要点很简单:如果钱包警告交易是非标准的,问题通常出在交易的构造上,而非其背后的资金。

内存池还有一群更安静的机构受众。交易所监视待处理存款以更快地记账,合规团队在确认前筛查传入交易,支付处理商通过检查交易的传播状况以及是否有冲突花费在流通来评估零确认转账的风险。网络大多数内存池都同意的交易,其被双花可能性远低于传播不良的交易,机构会根据这一差异进行定价。

拥堵、垃圾交易以及内存池满溢的感觉

内存池拥堵是网络在喘口气。需求超过区块空间,队列变长,及时确认所需的手续费攀升。用户感受到的是交易昂贵和等待漫长。比特币2017年末的狂热、2020年的DeFi夏季、NFT铸造浪潮以及2023年的序数铭文热潮,都曾造成长达数天的内存池积压,数十万笔交易排队,费率在一夜间翻倍。在最糟糕的时候,低手续费交易要等待一周以上,节点运营商看着自己的内存池达到容量上限,并开始丢弃最便宜的交易。

拥堵也可以是人为制造的。垃圾交易攻击用大量低价值交易淹没网络,以堵塞队列并降低其他所有人的服务质量,这是一种低成本的拒绝服务形式。网络通过最低中继费率、驱逐策略以及最终的经济手段来防御,因为持续的垃圾攻击会让攻击者付出真实的手续费成本。2017年对以太坊测试网络的垃圾攻击展示了在弱费用压力下,洪水式攻击能有多有效,这推动了费用市场设计在研究议程上更靠前的位置。

拥堵也是信息。膨胀的内存池伴随着上涨的手续费,预示着紧急需求,通常发生在交易所挤兑、清算级联或重大市场变动期间。老练的观察者会像债券交易员观察收益率那样关注内存池深度,多家分析公司正是销售这种数据流。

黑暗森林:MEV与池中的窥视者

内存池的定义性特征——完全透明——也是其最大的弱点。每笔待处理交易在执行前都是公开的,这意味着任何人都可以读取你的意图并抢先行动。在智能合约链上,这催生了一个围绕"最大可提取价值"(MEV)的掠夺性行业,即任何控制交易排序的人都能获得的利润。

典型的攻击是"三明治攻击"。机器人发现你在去中心化交易所上的一笔大额待处理兑换,它首先买入同样的代币以推高价格,然后让你的交易以更差的价格执行,接着立即卖出,从中赚取直接来自你执行的利润。抢先交易、尾随交易和清算狙击都遵循同样的原则:看到待处理交易,在其周围布局,捕获差价。一位研究者曾著名地将公共内存池描述为"黑暗森林"——任何可见的东西都会被猎杀。研究人员估计,仅以太坊上的MEV提取自2020年以来就已达数十亿美元。

作为回应而成长起来的防御产业如今已相当庞大。私密交易中继,如Flashbots Protect,允许用户直接将交易提交给区块构建者,完全绕过公共内存池,从而使机器人永远看不到订单。批量拍卖交易所用单一结算价结算多笔交易,消除了排序优势。钱包越来越多地默认将大额交易路由到受保护渠道。这些都不能消除MEV,但改变了谁能被猎杀。经济学很简单:隐藏订单的价值随着其规模增长,因此大额交易者现在将内存池隐私视为传统基金对待暗池一样的基本操作卫生。转移少量资金的零售用户面临的风险小得多,但一笔通过公共队列在薄利交易对上进行的大额兑换,可能在几秒钟内向三明治机器人支付三位数的代价。

Solana的方案:删除内存池

Solana在所有主流网络中做出了最激进的设计选择:它根本没有公共内存池。Solana的"湾流协议"(Gulf Stream)不会在整个网络中广播待处理交易,而是直接将交易转发给预定生产下一个区块的验证者(称为领导者)。领导者日程表是提前已知的,因此钱包和节点确切知道在哪里发送交易。交易从用户直达领导者,几乎没有公开等待时间。

该设计将速度放在首位,并移除了三明治机器人所依赖的经典观察窗口,因为待处理交易从不广播以供公众检查。它并没有消除MEV,而是使其演变为一种私人拍卖经济,其中搜索者通过Jito等基础设施支付小费,以让领导者将他们的交易包放置在有利位置。这一教训具有普遍性:排序在任何区块链上都有价值,移除公共队列改变的是价值被捕获的位置,而非是否存在价值。

其他网络正在走向中间路线。加密内存池在排序锁定之前隐藏交易内容。以太坊的"提议者-构建者分离"将选择交易的职责与提出区块的职责分开,将MEV推向更透明的拍卖。2030年的内存池很可能看起来与2020年的开放市场大不相同。不会改变的是根本约束:每个区块链的某些组件必须在创建和确认之间持有交易,而能够观察或影响该组件的人,对无法做到这一点的人拥有权力。

自己读取内存池

你不需要运行节点就能观察队列。公共内存池浏览器实时可视化待处理交易、费用分布和预计确认时间,它们是最快回答每个被卡住用户都会问的两个问题的方式:网络有多繁忙?现在实际需要多少费用才能立即确认?

当你的交易被卡住时,诊断几乎总是相同的:你的费用低于当前通行费率。你的选择(按大致偏好顺序)是:等待拥堵缓解;使用手续费替换或nonce替换来提升费用;在支持的情况下使用子代付父;或者,在比特币上,如果该笔支付不再重要,干脆等待被驱逐。你不应该做的是恐慌。资金不会丢失。未确认的交易要么被确认,要么实际上不复存在,在后一种情况下,代币从未离开你的钱包。

理解浏览器实际显示的内容也有帮助。费用直方图显示每个费用水平上有多少待处理量,这告诉你当前清算价格在哪里。预计区块视图显示如果立即生产下一个区块,哪些交易会填满它们,这告诉你队列在你前面有多深。而在比特币浏览器上,清除线(purge line)显示的是节点正在主动驱逐交易的费率,即市场的有效底部。花十分钟学习这三个读数,在首次费用飙升时就能收回成本。

还有一个值得养成的好习惯:在交易前检查内存池,而不是之后。花三十秒查看当前费率,既能避免在平静时期多付,也能避免在风暴中少付。队列是公开的,很少有人费心去阅读它,而这正是阅读者拥有优势的原因。同样,网络升级导致链分裂(如硬分叉与软分叉的相关指南所述)时,总会引发一阵内存池戏剧,因为分裂双方的钱包和节点要理清哪些待处理交易属于哪里。

常见问题

简单来说,什么是内存池?

内存池是区块链交易的等候室。当你发送交易后,它会在内存池中可见且待处理,直到矿工或验证者将其打包进区块。每个全节点在内存中维护自己的队列副本。

为什么我的交易卡在内存池中?

几乎总是因为所附手续费低于其他待处理交易提供的费用。区块生产者优先选择支付最高的交易,因此定价过低的交易会一直等待,直到需求下降或被完全逐出队列。

内存池中的交易可以取消吗?

有时可以。在比特币上,手续费替换允许你用新版本覆盖待处理交易,而被所有内存池逐出的卡住交易实际上已被取消。在以太坊上,你可以用相同的nonce和更高的Gas价格发送新交易来替换待处理版本。

整个网络只有一个内存池吗?

不是。每个节点维护自己的内存池,内容因时机、设置和内存限制而略有不同。人们所说的内存池是数千个独立队列的粗略重叠。

交易可以在内存池中停留多久?

在比特币上,默认节点设置会保留交易最多两周,但如果内存池满且费用低,逐出可能更早发生。其他网络有自己的保留和驱逐规则。

内存池和MEV之间有什么联系?

公共内存池中的待处理交易在执行前是可见的,因此机器人可以读取它们并围绕它们进行交易,通过三明治攻击和抢先交易提取价值。这种可见性是大多数MEV(如以太坊上)的原材料。

Solana有内存池吗?

没有公共的。Solana将交易直接转发给即将到来的区块领导者,而不是广播到整个网络,从而移除了公共等候室。Solana上的MEV转而通过基础设施提供商运行的私有捆绑拍卖流动。

如果交易从未被确认,资金会丢失吗?

不会。从未被确认的交易最终会从内存池中移除,代币仍留在发送钱包中,仿佛交易从未发生过。直到交易被包含进区块,什么都不会被扣除。

Gate.io

欧易OKX

全球专业交易所,来欧易注册免费赢取新用户奖励!

官网注册  APP下载
声明:文章不代表币圈网观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
相关阅读相关阅读
热门资讯热门资讯
风险
提示

币圈网数据及信息均来源公开资料,不构成任何推荐或投资建议。炒币属投资行为,市场有风险,投资需谨慎。

粤ICP备2024291203号 Copyrigh© 币圈网 Alibtc.com