headphones
金色百科|比特币内存池是什么?如何运作?
Boss Wallet
Boss Wallet
05-08 14:41
Follow
Focus
了解内存池是什么、它如何运作,以及为什么健康和开放的公共内存池对比特币如此重要。
Helpful
Not Helpful
Play

来源:Bitcoin Magazine;编译:五铢,金色财经

每个使用过比特币的人都使用过内存池(mempool)。那么,内存池是什么呢?

从技术角度来说,并不存在所谓的“唯一”内存池。每个比特币完整节点都运营着自己的内存池,它是已广播到网络但尚未在区块中确认的有效比特币交易的缓存。节点之间会相互交换消息,以查看自身拥有或未拥有的交易,并交换自身没有的交易。

每个内存池本质上都是一个独立的“岛屿”,拥有自己的一组未确认交易,有时甚至拥有自己的配置变量和设置。内存池的大小可以配置,默认为 300 MB。此外,还有一个最低费率,它会动态调整,并且可以配置为一个值。这用于决定在内存池已满且更多交易不断涌入时,哪些交易会被踢出内存池。还有一些其他可配置选项,例如 datacarrier 和 datacarriersize 选项,它们会影响包含 OP_RETURN 输出的交易。

不同的节点运行内存池的原因各不相同,因此需求也各有不同,但最终,这些需求的满足是通过所有节点同步运行各自的内存池并相互交互来实现的。

可以将每个内存池想象成一个真正的池子,它们通过底层的通道相互连接。内存池越大,底层的池子就越深。矿工、交易所、区块浏览器,这些都将成为最深的池子。他们都有各自的动机,想要了解每一笔等待被打包成块的未确认交易。矿工,是为了确保他们拥有下一个区块中最有利可图的交易。交易所,是为了确保他们了解所有待处理的交易。区块浏览器,因为他们的整个服务都在尽可能完整地展示关于区块链和内存池的数据集。你的普通节点实际上只需要足够深,以包含“内存池”中最高的费率部分。

现在将每笔交易想象成一滴液体,费率越高,液体的密度就越大。这些液体在矿池之间的通道中流动,到达每个矿池后,收到的一滴液体会被复制,然后通过通道发送到任何其他尚未收到该液体的矿池。随着矿池的填满,液体溢出时,密度较低的液体(费率较低)会首先溢出矿池边缘。

最终,一些幸运的矿工会从矿池底部舀出一定量的液体,并将其倒入最新的玻璃槽中,形成一条蜿蜒的长长玻璃槽,槽中装满液体,并永远停留在那里(区块链)。这只是一种直观地思考系统并涵盖其大部分动态的方式。

这种矿池互连的安排为不同的用户提供不同的用途。

交易者

用户进行交易时,内存池有两个用途。首先,也是最重要的,是将他们的交易发送给矿工。如果交易没有进入矿工的内存池,就不可能被打包成块。内存池之间相互链接和共享交易,确保交易一旦被放入一个内存池,最终都会进入所有矿工的内存池。拥有一个强大且去中心化的网络,能够确保交易最终能够从用户发送到所有矿工,而不受网络连接变化和碎片化的影响,这非常宝贵。

第二个用途是费用估算,这对于 Layer 2 用户尤其重要,因为他们随时都需要确保对无效状态的响应交易能够及时确认。仅通过查看这些区块中交易的费率,可以在一定程度上估算费用,但这并不能提供任何关于最新区块之后内存池状态的信息。它无法解释突发峰值、投机取巧者涌入内存池,或下一波尚未结束的交易激增。由于无法查看内存池,费用估算无法确保其是否考虑了待处理交易的当前状态。

接收方

当您收到比特币时,您的节点会验证该交易以及包含该交易的整个区块。支付给您的交易会被广播,最终进入矿工的内存池,矿工会找到一个区块,该区块会被广播到网络,然后您的节点会下载并验证该区块。

但实际工作方式并非如此(除非您禁用节点的内存池并以仅区块模式运行)。您的节点会在内存池首次收到每笔交易时进行验证,并将其缓存为有效的比特币交易。当矿工找到一个区块时,他们实际上只会转发区块头和一小段压缩信息(由于缺乏更好的简单解释),这些信息可以用来确定区块中包含哪些交易。然后,您的节点会抓取预先验证的交易,验证区块头,如果全部通过,则将“紧凑区块”转发出去。

这种优化实际上就是为什么矿工不再依赖中心化且需要许可的中继网络,例如之前由 Matt Corrallo 维护的 FIBRE 和短暂存在的 Falcon Network。由于点对点网络的中继速度较慢,矿工过去必须连接到 Falcon Network 才能保证与其他矿工的区块中继延迟较低。

矿工

矿工显然希望看到所有内容。他们是利润驱动的实体,希望能够从尽可能大的待处理交易集合中筛选出包含最高支付费用的交易。这就是他们最大化利润和赚取收入以继续扩展业务并保持竞争力的方式。

他们实际上是从内存池中获取资金。他们获取任何有效付费交易的动机是如此强烈,以至于他们在历史上、现在以及几乎可以肯定的未来都建立了众多系统,甚至是社会上可用的非正式安排,旨在允许用户直接向矿工提交交易,而不是通过开放的点对点网络。

区块浏览器、链上分析工具等等

他们和矿工一样,希望看到每一笔已创建并向全世界广播的待处理交易。两者之间的主要区别在于,矿工直接通过这些交易收取费用来获利,而区块链浏览器和分析公司则通过在可盈利的产品中展示、分析并提供信息分析来间接地将这些交易获利。

我无法列举任何涉及缓存内存池数据的具体例子,但众所周知,链上分析公司会定期购买私下获取的链上交易活动元数据。他们还运营着女巫比特币节点,这些节点会尽可能广泛地与整个网络中的节点进行对等连接,以便缩小最初广播交易的节点范围。

区块浏览器也通过区块链和内存池数据的可视化展示来获利,他们的整个商业模式都围绕着这一点。如果能够以实用或新颖的方式展示这些信息或从中获取的信息,那么访问更多数据并向用户展示就意味着可以获得更多的潜在盈利信息。

信息渴望流动

所有这些不同类型的用户都受益于“一个”公共内存池,原因很简单:信息在它们之间自由流动。只要有足够的费用通过最低中继过滤器,它就符合共识,并且不会对单个节点造成合法的拒绝服务或资源耗尽风险,它就能为各类用户在网络中每个单独的内存池中传播信息提供价值。

如果没有一个功能齐全的公共内存池,对于所有这些不同用途的个人用户来说,唯一可行的替代方案就是中心化的解决方案,或者是一个难以管理的混乱局面,即草率且杂乱无章地尝试构建碎片化的公共内存池,每个用户都需要单独跟踪这些公共内存池。

这不仅可能带来操纵费率数据、欺骗用户以及因私下中继交易而导致矿工可提取价值的担忧。如果没有一个健康开放的公共内存池,这些都是比特币必须面对的问题。

在后续文章中,我将研究这些问题,以及不同类型的内存池过滤器及其存在的原因。

Open the app to read the full article
DisclaimerAll content on this website, hyperlinks, related applications, forums, blog media accounts, and other platforms published by users are sourced from third-party platforms and platform users. BiJieWang makes no warranties of any kind regarding the website and its content. All blockchain-related data and other content on the website are for user learning and research purposes only, and do not constitute investment, legal, or any other professional advice. Any content published by BiJieWang users or other third-party platforms is the sole responsibility of the individual, and has nothing to do with BiJieWang. BiJieWang is not responsible for any losses arising from the use of information on this website. You should use the related data and content with caution and bear all risks associated with it. We strongly recommend that you independently research, review, analyze, and verify the content.
Comments(0)

No comments yet

edit
comment
collection
like
share