Stephan Livera Podcast - Pieter Wuille 解释集群内存池 | SLP730 封面

Pieter Wuille 解释集群内存池 | SLP730

Cluster Mempool Explained with Pieter Wuille | SLP730

本集简介

斯蒂芬·利弗拉与皮特·武耶讨论了比特币核心的集群内存池,其动机以及对比特币用户和矿工的影响。当前内存池设计存在哪些问题?为何保持透明且可靠的开放内存池至关重要? 皮特·武耶还解释了交易聚类的复杂性,以及新框架如何提升效率并有助于保持比特币挖矿的开放性。 时间戳: (00:00) - 引言 (01:05) - 什么是集群内存池? (03:05) - 它对普通比特币用户有何影响? (06:21) - 当前内存池是如何工作的? (11:52) - 当前内存池的启发式方法与问题 (16:37) - 审查抵抗与经济需求 (22:56) - 对交易所和矿工的实际影响 (26:12) - 集群内存池如何工作? (29:29) - 交易聚类与内存池动态 (37:27) - 节点网络中的内存池是否应保持一致? (43:47) - 其他比特币实现如何? (48:17) - 比特币开发的其他有趣领域 (52:11) - 结语 链接: https://github.com/bitcoin/bitcoin/pull/33629 https://bitcoinmagazine.com/print/the-core-issue-cluster-mempool-problems-are-easier-in-chunks https://delvingbitcoin.org/t/an-overview-of-the-cluster-mempool-proposal/393 https://delvingbitcoin.org/t/mempool-incentive-compatibility/553 斯蒂芬·利弗拉链接: 在 X 上关注我:@stephanlivera 订阅播客 订阅 Substack

双语字幕

仅展示文本字幕,不包含中文音频;想边听边看,请使用 Bayt 播客 App。

Speaker 0

我甚至可以说,这就是比特币采用工作量证明的全部原因。

I would go as far as saying this is the entire reason why Bitcoin has proof of work.

Speaker 0

拥有工作量证明的意义在于,任何人都可以加入挖矿市场。

The point of having proof of work is that anyone can join the mining market.

Speaker 0

比特币的去中心化和抗审查性,最终在情况严重恶化时才真正体现出来。

Bitcoin's decentralization and censorship resistance ultimately boils down if things go really wrong.

Speaker 0

最终的保护措施是,你可以成为自己的矿工,即使亏损,也希望不会亏得太惨。

Final protection is you can become your own miner, maybe even at a loss, but hopefully not at a big one.

Speaker 0

是什么激励着现有的大型矿工接受每一笔交易?

What is it that incentivizes existing large miners to basically accept every transaction?

Speaker 0

因为他们知道,如果他们开始可靠地审查某些有经济需求的交易,总会有人冒出来继续挖这些交易。

It is the knowledge that if they start reliably censoring some transactions that have economic demand, someone will just pop up and mind them anyway.

Speaker 1

大家好,欢迎回到斯蒂芬·利维拉播客。

Hi, everyone, and welcome back to Stephan Livera podcast.

Speaker 1

今天,我邀请到了皮特·武耶。

Today, I'm joined by Pieter Wuille.

Speaker 1

他是一位资深的比特币开发者和研究员,目前在Chaincode Labs工作。

He is a long time Bitcoin developer, researcher, and he is working at Chaincode Labs.

Speaker 1

我们今天将讨论一下Cluster Mempool,这是一个即将登陆比特币核心v31新版本的项目,我认为是这样。

And we're gonna be talking a bit about Cluster Mempool, which is a a new project that is landing in the new version of Bitcoin Core v 31, I believe.

Speaker 0

没错。

Correct.

Speaker 1

所以,Pieter,欢迎来到节目,我们先从为什么开始吧。

So, Pieter, welcome to the show, and let's start with start with why.

Speaker 1

你为什么会对Cluster Mempool这个项目感兴趣?

Why were you interested in this project of Cluster Mempool?

Speaker 0

是的。

Yeah.

Speaker 0

你称它为一个新项目。

So you call it a new project.

Speaker 0

我们大约三年前就开始了这个项目,当时直接的动机是Suhas在Chaincode Labs做的一场演讲,谈到了当前内存池设计中存在的某些问题。

We started this, just about three years ago and the immediate motivation for this project was a talk that Suhas gave here at Cinco Labs about some of the existing issues with the current mempool design.

Speaker 0

直接的动机是这样一个例子:在当前的内存池中,你实际上可能会陷入一种状态。

The immediate motivation was this example of actually you can end up in a state today in a mempool.

Speaker 0

显然,这种情况不太可能发生在正常情况下,而更可能出现在一种病态的、恶意构造的场景中——当内存池填满时,最先被驱逐的交易,恰恰是你最希望打包的那笔交易。

Obviously not likely would need a pathological, adversarially constructed situation, but where the very first transactions that would be evicted if the mempool fills up, the first thing that gets evicted is actually the very first transaction you'd want to mine.

Speaker 0

这显然是不可取的。

And this is obviously undesirable.

Speaker 0

这对矿工来说是不利的,但更糟糕的是,当网络无法合理判断交易的盈利能力时,问题会更加严重。

It's undesirable for miners, but it's actually far worse than that when the network is sort of unable to reason about proper profitability of transactions.

Speaker 0

因为显然,无论是不是矿工节点,你都希望被驱逐的交易大致对应于矿工最后才会包含的交易。

And because obviously you'd want eviction and mining, even if you're not a mining node, like you would want the things you evict to roughly correspond to the very last things a miner would want to include.

Speaker 0

因此,我们最初的动机是想说明:当前的设计在许多方面都存在缺陷。

And so that was the motivation to show like actually the current design we have is broken in many ways.

Speaker 0

这并不一定意味着可以被利用,但它确实使得我们很难对系统行为进行合理推理。

That doesn't necessarily mean exploitable, but it sort of makes it hard to reason about things.

Speaker 0

我们希望解决这个问题,于是设计了一个很棒的方案,最终它演变成了一种彻底取代内存池内部所有机制的方案,同时也改变了相关的中继策略。

And we wanted to address that, came up with a cool design, and it grew into something that ended up replacing everything in the mempool, basically, internally touching on some relay policies that change along with it.

Speaker 0

是的,所以现在已经合并了。

And yeah, and so it's been merged now.

Speaker 0

它将被包含在 Bitcoin Core 31 中,预计下个月发布,我想。

It will be in Bitcoin Core 31, which is slated to be released next month, I think.

Speaker 0

所以非常令人兴奋

So pretty excited

Speaker 1

对此。

about that.

Speaker 1

太好了。

Great.

Speaker 1

为了帮助听众理解,这个项目对普通比特币用户有什么意义?

And so just to motivate this for listeners, why does this project matter for everyday Bitcoin users?

Speaker 1

他们可能会看到什么影响,或者说,嗯,是什么影响。

What is the impact that they might see or the know, what is yeah.

Speaker 1

简而言之,普通比特币用户会在这里感受到什么影响?

Basically, is the impact that an everyday Bitcoin user will see here?

Speaker 0

希望什么都不会发生。

Hopefully nothing.

Speaker 0

我认为这个举措的动机更多是出于网络长期健康的问题,而不是直接改善用户的体验。

I I think the the motivation is is more a long term health of the network question than it is directly improving things for users.

Speaker 0

现在,他们可能会看到一些变化。

Now, they might see a few changes.

Speaker 0

最明显的变化是,如今,在当前的比特币核心版本中,我们有包含祖先限制和后代限制的中继策略。

The most noticeable, I think, is how today, so up to the current Bitcoin Core release, we have relay policies that include ancestor limits and descendant limits.

Speaker 0

这意味着任何交易及其所有未确认的祖先交易合计不得超过25笔。

That means any transaction together with any and all of its unconfirmed ancestors cannot be more than 25.

Speaker 0

同样,任何交易及其所有未确认的后代交易合计也不能超过25笔。

And similarly, a transaction together with all its unconfirmed descendants cannot be more than 25 transactions.

Speaker 0

有时候你会看到这种‘剥离链’:有人发起一笔交易,把找零发回给自己,再用这笔钱进行另一次支付,又发回给自己。

And this sometimes you see these peeling chains of someone makes a transaction, sends a change back to themselves, use the chain to do another payout, sends it back to themselves.

Speaker 0

希望他们会把这些交易合并成一笔,但如果他们没有这么做,这种链条在任何时刻都会被限制在25笔交易以内。

Hopefully they would batch this and turn it into a single transaction, but if they don't, this this sort of chain is limited to 25 transactions at any given time.

Speaker 0

并不是说无法继续拆分,而是你需要等待其中一些交易确认后,后续的交易才能传播开来,而Cluster Mempool改变了这一点。

It's not that it's impossible to peel further, but you'll need to wait for some of them to confirm before the later ones propagate across And this changes with Cluster Mempool.

Speaker 0

不再有祖先或后代的限制。

Are no more ancestor or descendant limits.

Speaker 0

取而代之的是集群限制。

Instead, are cluster limits.

Speaker 0

可以把这想象成继续沿用家族树中祖先和后代的类比。

Think of it as a Continue with the analogy of ancestors and descendant in a family tree.

Speaker 0

集群就是最广泛的扩展家庭概念。

Cluster is just the widest possible extended family thing.

Speaker 0

它就像你的父母和孩子、祖父母和孙子女,还有叔伯姑姨、侄子侄女,以及他们的父母和子女。

It's like your parents and children, your grandparents and grandchildren, also aunts and uncles, niece and nephew, their parents, their children.

Speaker 0

任何通过‘是父节点’或‘是子节点’关系相连的交易都算在内。

Anything that is related through any combination of is parent of or is child of.

Speaker 0

你有时会看到一些相当复杂的情况,比如一个用户向多个其他用户付款,然后将这些币与从另一方获得的另一个输出一起花费。

And you can and sometimes do see fairly complicated things where you have one user that pays a number of other users and then they spend those coins together with another output that they got from yet another party.

Speaker 0

所有交易都会在同一个簇中变得相关。

All become related in a cluster.

Speaker 0

因此,在簇内存池中,我们对一个簇的交易数量限制为64笔。

And so in Cluster Mempool, we have a limit of 64 transactions in a cluster.

Speaker 0

这个数字是我们根据内部算法的性能特征选定的,就像过去祖先和后代限制设为25一样,那是基于我们仍能高效推理、而不会让节点计算时间失控的考量。

That's a number we pick based on performance characteristics of the algorithms inside, similar to how the ancestor and descendant limits of 25 in the past were picked based on Well, these are the things we can sort of efficiently reason about still without the computation time for nodes blowing out of the water.

Speaker 0

是的。

Yeah.

Speaker 0

因此,最直接的影响可能是,你可以构建长达64笔而非25笔的剥离链。

So from the most obvious direct impact is probably you could build these peeling chains up to 64 rather than 25.

Speaker 0

但这并不是简单地增加数字,因为你还要算上随之计入的整个扩展家族关系。

But it's not like just increasing the number because you also have this extended family thing that gets counted along with it.

Speaker 1

好的。

Okay.

Speaker 1

我们能简单概述一下当前内存池的工作原理吗?

And so can we just overview a little bit on how the mempool works today?

Speaker 1

那么,您认为这其中主要的问题是什么?

And then what are the main issues that you see in that?

Speaker 1

我想您之前提到过一些关于祖先和后代限制的问题。

I think you were touching on some of that around the ancestor and descendant limits.

Speaker 1

然后我们可以进一步介绍一些其他概念,帮助我们更好地理解。

And then we can sort of go into some other concepts to help make this understandable for us.

Speaker 1

所以,先简单概述一下当前的内存池以及存在的问题。

So just an overview on the mempool today and the issues.

Speaker 0

比特币核心采用了一种设计,每个节点——而不仅仅是矿工——都会维护一组它预期在短期到中期被挖出的交易,按照默认配置,大约涵盖一天内的交易量。

So Bitcoin Core uses a design where it maintains every node, not just miners, maintains a set of transactions that it expects to be mined in the short to medium term, up to roughly a day worth of transactions with default configurations.

Speaker 0

它将这组交易保持为一致的状态,因此内存池中永远不会出现两个相互冲突的交易。

It maintains this set as a consistent set, so we'll never have two conflicting transactions in the mempool.

Speaker 0

如果你试图去推理这种情况,会变得极其困难。

Just becomes awfully hard if you try to reason about that.

Speaker 0

因此,它的用途有很多。

So its purpose is that there are many uses for this.

Speaker 0

一方面,矿工可以从这里选择交易,但或许更重要的是,它能让网络中的节点了解当时交易市场的状况。

One is obviously for miners to pick their transactions from, but maybe more importantly, it's for nodes in the network to get an idea of what the transaction market at that point is like.

Speaker 0

它用于手续费估算。

It's used for fee estimation.

Speaker 0

它用于决定是否进行交易替换。

It's used for deciding what replacements to make.

Speaker 0

如果你看到两个相互冲突的交易,就需要决定是否替换另一个。

If you see two conflicting transactions, will need to replace the other or not.

Speaker 0

你会保留旧的那笔交易。

You stick with the old one.

Speaker 0

你如何判断,这实际上是一种改进吗?

How do you reason about, well, is this actually an improvement?

Speaker 0

如果我们能确定这笔新交易对矿工来说确实更好,我们就应该假设它会传达到那些矿工,从而让我们能够预测未来的行为。

If we can decide that this new transaction actually looks better to miners, we should assume it will make their way to those miners and thus for us to be able to predict the future behavior.

Speaker 0

我们也希望它们出现在我们的内存池中。

We want them in our mempool to.

Speaker 0

这基本上是对当前时刻区块空间市场状况的一种建模。

It's basically a modeling of what we think the block space market is like at this very instance.

Speaker 0

而今天,这种建模是通过一系列启发式算法来引导的。

And the way this is guided by a whole number of heuristical algorithms today.

Speaker 0

例如,在Cluster Mempool出现之前,挖矿使用的是基于祖先集的挖矿方式,即对每一笔交易,计算其所有祖先交易的集合——正如我之前解释的,过去这个集合被限制在25笔以内,然后查看整个集合的平均费率。

So before Cluster Mempool, for example, mining used something called ancestor set based mining, which is for every transaction you compute the set of all its ancestors, which, as I explained, was limited to 25 in the past, And look at the average fee rate of that whole set.

Speaker 0

举个例子,我付给你钱,而你现在想花掉这些钱,但我支付的手续费非常低。

And the reasoning is like, say I pay you and now you take the but I attach a very low fee only.

Speaker 0

你因为某种原因想尽快花掉这些币,于是你用这些币支付给其他人。

And you want to spend those coins for some reason, and you want to do so urgently, so you take those coins, pay someone else with it.

Speaker 0

但我的交易还没确认。

But my transaction hasn't confirmed yet.

Speaker 0

所以你想要做的是提高手续费。

So what you want to do is bump the fee.

Speaker 0

这被称为子交易支付父交易,即你附加一个比正常更高的手续费,来弥补我所欠的那部分费用。

This is called child pays for parent, where you attach a higher fee than you normally would to sort of pay for the missing fee I have.

Speaker 0

因为矿工在没有包含我的交易的情况下,是不允许包含你的交易的。

Because miners are not allowed to include your transaction without including mine as well.

Speaker 0

因此,通过附加更高的手续费,你激励矿工同时包含这两笔交易。

And so, but by attaching a higher fee, you incentivize them to include both of the transactions at the same time.

Speaker 0

这种机制通过基于祖先集的挖矿方式建模,而挖矿逻辑或区块模板生成逻辑——在实际矿工介入之前——会将这两笔交易作为一个整体来看待,因为它们构成了一个祖先集,并计算整个集合的平均手续费率。

And this is sort of modeled using this ancestor set based mining where the mining logic or the block template building logic this is long before there's an actual miner involved will look at the two set transaction combined because they form an ancestor set and sees this is the average fee in this whole set.

Speaker 0

我打算把它当作一个整体一次性打包挖矿。

I'm gonna try treating it as a package that gets mined in one go.

Speaker 0

这就是今天儿童支付父交易(CPFP)能够运作的原因。

So this is what makes child pays for parent work today.

Speaker 0

这种机制自2015年以来一直如此。

And it has since since 2015.

Speaker 0

实际运作方式是:我们预先为内存池中的每笔交易计算其所有祖先交易的集合,计算这些祖先集合的平均手续费率,并根据平均祖先集手续费率对交易进行排序。

Practically how it works, we pre compute for every transaction in the mempool the sets of all its ancestors, compute the average fee rate of all of those ancestor sets and sort the transactions by their average ancestor set fee rates.

Speaker 0

我们几乎会优先打包手续费率最高的祖先集,然后重新开始,直到区块填满。

And we pretty much eagerly include the highest ancestor set fee rates package and then start over until the block fills out.

Speaker 0

这是一个相当不错的近似方法。

This is a pretty good approximation.

Speaker 0

但恰恰相反,我们希望做完全相反的事情,因为网络中的每个节点并不都是矿工,但每个节点都有理由试图预测这种行为——即驱逐。

But the opposite, we would like to do the very opposite because again not every node in the network is a miner, but every node has reasons to try to predict that behavior is eviction.

Speaker 0

而在驱逐时,我们要做完全相反的事:为每笔交易计算其后代集合,因为当你想要驱逐一笔交易时,必须同时驱逐它的所有后代。

And in eviction, do the exact opposite, which is we compute the descendants sets for every transaction, because whenever you want to evict the transaction, you must also evict all their descendants.

Speaker 0

它们会变得无效。

They become invalid.

Speaker 0

我付了你钱,你又付给了别人。

I paid you, you paid someone else.

Speaker 0

如果我的交易被驱逐,你就拿不到钱了,所以你的交易也必须消失。

If my transaction gets evicted you don't get your money anymore, so your transactions need to disappear as well.

Speaker 0

因此,我们会为每笔交易预先计算其后代集合及其平均费率。

So we do we pre compute for every transaction the descendant sets and the average fee rate of that descendant sets.

Speaker 0

在驱逐时,我们会选择平均费率最低的后代集合。

And when evicting we pick the descendant set with the lowest fee rate.

Speaker 0

这感觉非常像挖矿算法的反面。

And this feels very much like the opposite of what a mining algorithm is.

Speaker 0

但事实证明,你可以构造出涉及菱形依赖关系的奇怪边界情况。

But it turns out you can construct weird edge cases that involve diamond shaped dependencies.

Speaker 0

你有一个父交易和两个子交易,而某种机制会导致这两个子交易被重复计算。

You have one parent and two children and something that spells those two children that causes things to be counted double.

Speaker 0

因此,这两种排序方式——优先处理祖先集合最高的和优先处理后代集合最低的——并不是彼此的对立面。

As a result, these two orderings, like highest ancestor set first and lowest descendant set first, are not opposites of each other.

Speaker 0

但还涉及许多其他启发式方法。

But there are many more heuristics involved.

Speaker 0

例如,对于RBF,我们长期以来一直遵循BIP 125规则,这些规则规定了在满足某些条件时,你的交易将被接受替换。

For example, for RBF, we've had for the longest time the BIP 125 rules that sort of give a number of conditions on if you satisfy this and this and this, your transaction will be accepted for replacement.

Speaker 0

它试图启发式地回答:这是否真的能提高矿工的手续费收入?

And it tries to heuristically answer, does this actually make things better for miners in terms of fee income?

Speaker 0

因为如果确实如此,矿工会希望如此,而我们不希望人为制造理由,让人们将交易提交给矿工,从而使区块空间市场变得近乎私有化。

Because if it is, they'll want it and we don't want to introduce a reason for people to submit their transactions to miners and make the block space market basically private.

Speaker 0

为了避免这种情况,我们需要能够分析这种盈利能力。

So to to avoid that, we we we need to be able to to reason about this profitability.

Speaker 0

BIP 125 是在 Cluster Mempool 之前对此的一种尝试。

And bit one twenty five was an attempt at that in pre Cluster Mempool.

Speaker 0

还有像费用估算这样的功能会使用内存池。

There's more things like fee estimation uses mempool.

Speaker 0

比如,如果你突然同时收到大量交易,我们不希望压垮我们的对等节点,因此我们会逐步发送。

There's decisions like if you suddenly get a flood of transactions at the same time, we don't want to overload our peers, so we trickle them out.

Speaker 0

我们应该优先发送哪些交易?

Which ones do we send first?

Speaker 0

当然是我们认为更好的交易。

Well, the transactions that we think are better.

Speaker 0

所以我们优先发送手续费率更高的交易,以此类推。

So we try to send the ones with a higher fee rate first, and so forth.

Speaker 0

如果要总结今天的内容,我认为内存池本质上是试图近似当前区块空间市场的需求状况,它有一整套启发式规则来决定保留哪些交易、剔除哪些交易、发送哪些交易以及接收哪些交易,以尽可能贴近这种经济现实。

That's sort of how I think if I had to summarize today is like we have mempool is an attempt at approximating the current view of demand for the block space markets, and it has a whole bunch of heuristical rules to decide what to keep and what to evict, and what to send and what to receive that try to approximate this economic reality.

Speaker 0

我认为Cluster Mempool正在用一个真正能合理处理这些事务的框架取代所有这些,它能考虑依赖关系的任意性,摒弃所有启发式规则,只保留一条准则:这样做会让情况变得更好吗?

I'd say Cluster Mempool is replacing all of that with a framework that can actually reason about things properly, taking dependent arbitrary dependencies into account and do away with all the heuristics and replace it with one rule is does this make things better or not?

Speaker 1

好的。

Okay.

Speaker 1

所以按照我的理解,简单来说,我们有一个mempool,人们把他们的交易放进去。

And so as I'm reading you then, it's like in simple terms, okay, we've this mempool, people put their transaction in this in there.

Speaker 1

但正如你所说,围绕祖先和后代以及驱逐机制存在一些启发式规则,而这些启发式规则并不总是正确的,因为它们本质上只是启发式方法。

But as you said, there are certain heuristics around ancestors and descendants and eviction, what we're saying, and some of these heuristics aren't necessarily always correct because they're heuristics.

Speaker 1

也许作为一条经验法则,它们大部分时候是有效的,但有时这些启发式规则也会出错或失效。

And maybe as a quote unquote rule of thumb, they might kind of mostly work, but then there are some times where maybe the heuristic goes awry or goes wrong.

Speaker 1

有些情况下,矿工本应包含某个交易及其后代交易,但由于这些启发式规则,它们却被剔除了。

And there are examples where maybe a miner would have or should have wanted to include a particular transaction and the descendants of that transaction, but actually because of the heuristics, they would cut them out.

Speaker 1

是的。

Yep.

Speaker 1

你想要表达的就是这个意思吗?

Is that what you're getting at?

Speaker 0

是的。

Yep.

Speaker 0

对。

Yeah.

Speaker 0

对。

Yeah.

Speaker 0

而这并不理想,因为我们需要在这里做一个说明:最终,只有人们实际做的事情才重要。

And and this is undesirable because we do have to make a caveat here is that, ultimately only the things that people actually do matter.

Speaker 0

比如,如果没有人创建极其复杂的交易依赖图,那就没有真正的经济需求。

Like if nobody creates super complicated dependency graphs of transactions, there's no real economic demand for that.

Speaker 0

它并不重要我们如何处理这些情况,因为只有经济现实才是关键。

It doesn't really matter how things like it doesn't matter that we treat those sub optimally because it's only an economic reality that matters.

Speaker 0

但问题不仅在于我们的决策可能是次优的,还可能是不一致的。

But the problem becomes not just that our decisions may be suboptimal but they may be inconsistent.

Speaker 0

不一致性可能更糟糕,因为现在不仅仅是矿工在某个没人真正使用的边缘情况下少赚了一点钱。

Inconsistency can be a lot worse because now you it's not just okay, miners make in this weird edge case that nobody really does make a tiny bit less money.

Speaker 0

谁在乎?

Who cares?

Speaker 0

但如果我们讨论的是驱逐规则,也许有人希望发起这些交易,但它们并没有传播开来。

But if there's If we're talking about eviction rules, maybe you you get some well, someone may wants to make those transactions and they're not propagating.

Speaker 0

所以现在你是在激励市场参与者再次转向私有内存池。

So now you're incentivizing market players to move towards private mempools again.

Speaker 0

没错。

Exactly.

Speaker 0

我认为这正是核心问题:我们试图让公共点对点透明内存池市场尽可能完善,但这种情况非常脆弱。

And I think that is really the core issue here is like it's a very tenuous situation how we're trying to make the public peer to peer transparent mempool market as good as possible.

Speaker 0

而我们的期望是,如果它足够完善,人们就没有动力去绕过它。

And the hope is that if it is sufficiently good, there's just no incentive for people to bypass it.

Speaker 0

它。

It.

Speaker 0

我们看到了绕过它的尝试,那到底是什么?

We see attempts at bypassing it, There are what is it?

Speaker 0

加速

Acceleration.

Speaker 0

没错

Exactly.

Speaker 1

很多矿池多年来一直在使用不同的加速机制。

Different accelerators that a lot of the pools have had for years.

Speaker 1

这并不是什么新东西。

It's not a new thing.

Speaker 0

是的

Yeah.

Speaker 0

我觉得这令人担忧。

And I think it's worrying.

Speaker 0

我不认为今天这一定是个问题。

I don't think it's necessarily a problem today.

Speaker 0

我认为这些服务的总收入大部分可以忽略不计,除非在某些特定时刻。

Think that the total income from those services is mostly negligible, except maybe at certain times.

Speaker 0

但如果我们陷入这样一种情况,即大量经济活动通过这些私有交易通道进行,而网络完全无法看到这些活动,最终会使得进入挖矿市场变得更加困难。

But if we were to end up in a situation where just that there is so much economic activity going through these private transaction rails where the network just doesn't have visibility into it, it ultimately makes it harder to enter the mining markets.

Speaker 0

因为假设只有三家大公司拥有私有内存池,你可以向它们提交交易,而作为矿工,你实际上别无选择,只能与其中一家或多家签订合同,否则你就会错失大量手续费收入,无法与那些这样做的人竞争。

Because say there's three big companies that, you know, have a private mempool that you can submit things to, and as a miner you really have no choice but to contract with one or most of these because otherwise you just miss out on a substantial portion of fee income and are unable to compete with those who do.

Speaker 0

这使得尤其是匿名参与变得更加困难,而我们非常希望世界上任何一个人都是可能做到的。

It just makes it harder to especially anonymously, like we would very much like it to be possible for any one in the world.

Speaker 0

当然,你需要接入互联网、电力和硬件,但如果你认为有利可图,或者对其他人审查的交易感到不满,你并不需要获得任何人的许可就能进入挖矿市场。

Obviously, you need access to Internet, electricity and hardware, but you don't need permission from someone to enter the mining market if you are if you think there's there's money to be made or if you are unhappy with the set of transactions that are being censored by others.

Speaker 0

现在我们来到了核心问题:抗审查性。

Now we get to the core issue, censorship resistance.

Speaker 0

这真的太重要了。

And it like so much.

Speaker 0

因此,我甚至会说,这正是比特币采用工作量证明的全部原因。

So I would go as far as saying this is the entire reason why Bitcoin has proof of work.

Speaker 0

工作量证明的意义就在于,任何人都可以加入挖矿市场。

The point of having proof of work is that anyone can join the mining market.

Speaker 0

比特币的去中心化和抗审查性最终在情况严重恶化时才真正体现出来。

Bitcoin's decentralization and censorship resistance ultimately boils down if things go really wrong.

Speaker 0

最后的保障是你自己可以成为矿工,即使亏损也无所谓,但希望不要亏太多。

Like the final protection is you can become your own miner, maybe even at a loss, but hopefully not as a big one.

Speaker 0

那么,是什么激励现有大型矿工接受所有交易呢?

And so what is it that incentivizes existing large miners to basically accept every transaction?

Speaker 0

这是因为,如果他们开始可靠地审查某些有经济需求的交易,就会有人冒出来继续挖这些交易。

It is the knowledge that if they start reliably censoring some transactions that have economic demand someone will just pop up and mind them anyway.

Speaker 0

但这一切只有在用户创建并具有经济需求的交易流是公开的情况下才有效。

And but this all of this only works when access to the stream of transactions that users create and have economic demand for is public.

Speaker 0

你不需要参加私人聚会才能获得这些经济活动的访问权。

You don't need to go to a private party to get access to that economic activity.

Speaker 0

因为如果你这么做了,他们就会成为守门人。

Because if you do that, they become the gatekeepers.

Speaker 0

他们可以制定规则说:你是个匿名矿工。

They could enforce a rule and say, well, you're anonymous miner.

Speaker 0

你无法获取我们的交易流。

You don't get our stream.

Speaker 0

因此,我认为这正是所有这些工作的根本动机。

And so I think this is ultimately the motivation for all of this work.

Speaker 0

我们希望确保公共网络能够可靠地传播用户希望创建、矿工希望挖掘的交易,让所有人都能访问这些交易。

We want to make it so that the public network is able to reliably relay transactions that users want to create and miners want to mine out into the public so everyone has access to them.

Speaker 0

不幸的是,在去中心化系统中,抵御拒绝服务攻击是一个非常困难的问题。

Unfortunately in a decentralized system denial of service resistance is a very hard problem.

Speaker 0

我们不能仅仅转发每笔交易。

We can't just relay every transaction.

Speaker 0

我会把我的视频流通过它传输,并将其编码成相互冲突的交易。

I'd stream my video over it and code it into transactions that they're all conflicting with one another.

Speaker 0

确实存在一个网络会免费转发每笔交易。

There's a network out there that will free relay every transaction.

Speaker 0

但这行不通。

That doesn't work.

Speaker 0

因此,长期以来,比特币核心中内存池设计的哲学是:假设我们可以可靠地预测哪些交易会被挖出,因为矿工是经济主体,那么我们的拒绝服务防护机制基本上就是:我们内存池中的交易会被确认,并且它们支付了手续费。

So what is and this has for a long time been sort of the philosophy behind the mempool design in Bitcoin Core is under the assumption that we can reliably predict what will be mined because miners are economic actors, then our denial of service protection is basically well, transactions in our mempool will get confirmed and they pay a fee.

Speaker 0

这就是防护机制。

This is the protection.

Speaker 0

即使它们没有支付给我们中继节点,它们也支付给了其他人,因此它们必须消耗有限的资源。

They pay a fee even if it's not to us as a relaying node, they're paying the fee to someone, so there's a finite resource they have to spend.

Speaker 0

所以我们需要启发式方法来决定哪些交易应该中继,哪些不应该,这些方法本质上都是预测交易的盈利能力。

So we need heuristics to decide what will be relayed, what won't be, and those boil down to predicting profitability of those transactions.

Speaker 0

我之前提到的所有关于挖矿、驱逐和排序的例子,都是试图推断盈利能力的有时不准确的启发式方法。

And all the examples I gave about mining and eviction and deciding the order in which things go are sometimes faulty heuristics that try to reason about profitability.

Speaker 0

而通过集群内存池,我们可以更可靠、更一致地做到这一点。

And so with Cluster Mempool, we can just do that much more reliably and consistently.

Speaker 1

好的。

Okay.

Speaker 1

是的。

Yeah.

Speaker 1

所以让我复述一下,我从中理解到的是,与其使用这些启发式方法,不如转向新的集群内存池模型,这能让节点运行者或矿工更准确地判断哪些交易更有可能被确认。

So just replaying some of that, the understanding I'm taking from it is instead of using these heuristics, moving to a new model of Cluster Mempool, which allows, let's say, that that node runner or that miner to more accurately, let's say, get an idea of what transactions are likely to be Yep.

Speaker 1

最有利可图的。

The most profitable.

Speaker 1

正如你所说,这不仅仅是优化利润,更是为了让挖矿保持开放性,让新矿工能够

And as you said, it's not just about optimizing the profit, it's about making it so that it's an, mining remains an open thing that a new Making miner can

Speaker 0

可预测,即使面对可能复杂的交易组合也能保持可预测。

it predictable, but even predictable in the face of possibly complicated constellations of transactions.

Speaker 0

举个非常简单的例子,这不是一种攻击:我之前提到过‘子交易支付父交易’的机制,即一个子交易可以通过提高手续费来提升父交易的手续费,因为父交易的手续费太低。

So as a very simple example and not an attack or anything is to So I've talked about child pays per parent where you can have a single child that bumps the fee of a parent because the parent paid too little fee.

Speaker 0

你也可以让一个子交易同时提升多个父交易的手续费,但你不能让多个子交易同时提升同一个父交易的手续费,因为祖先集框架下,每个子交易都有自己的祖先集,它们永远不会被当作一个整体来处理。

And you can have one child that bumps multiple parents at the same time too, but you cannot have multiple children that bump the same parents because of this ancestor set framework, each of the children has its own ancestor sets, and they're never treated as a single set.

Speaker 0

我认为这并不是集群内存池的原始目标,因为我还没真正讲清楚它是什么。

And I think this was not the original goal of Cluster Mempool, because I haven't really talked about what it is yet.

Speaker 0

但目标并不是为了改进或增加更多复杂的使用场景,比如子交易为父交易支付手续费。

But the goal wasn't so much improving or adding more crazy use cases that someone could construct, like children pay for parent.

Speaker 0

只是为了让事情保持一致。

It was just making things consistent.

Speaker 0

但在这个过程中,我们发现实际上出现了更优秀的算法,这些算法能够考虑到这些更复杂的结构,并几乎以最优方式处理它们。

But then along the way we discovered that there were actually much nicer algorithms that became available that that can take these much more complicated constructions into account and still deal with them almost optimally.

Speaker 1

是的。

Yeah.

Speaker 1

好的。

Okay.

Speaker 1

当我试图研究和理解这将产生哪些影响时,正如你所说,挖矿显然是其中一个方面。

And so as I was trying to research and understand where this will impact, so as you said, mining is is an obvious one.

Speaker 1

据我理解,闪电网络和Layer 2也可能受到一些影响。

Lightning and l twos, as I understand it, it might have some impact to them.

Speaker 1

然后举个例子,交易所的提币场景。

And then maybe as an example, the exchange withdraw case.

Speaker 1

据我了解,一些交易所可能会这样做,比如说

So as I'm understanding some exchanges, they might do, like, they might let's say

Speaker 0

你只能

You can only

Speaker 1

比如,我是交易所,我有大约一百个客户,我可能进行一笔大额提现,但随后我会持续使用 CPFP 或 RBF 来不断向这笔交易中添加新的输出,分别支付给这些客户。

link let's say, I'm the exchange and I've got like a 100 customers, I might be doing a big withdraw, but then I might be continually doing either CPFP or RBF to continually add new outputs to that transaction to go out to the the customers.

Speaker 1

我推测,集群内存池在这种情况下也能提供帮助,因为它们能更可靠地处理这种情况。

And I presume then Cluster Mempool might help in this context also because they can more reliably do that.

Speaker 0

是的。

Yeah.

Speaker 0

所以我看到过交易所做的一些操作。

So the there were there's a number of things that I've seen exchanges do.

Speaker 0

比如,它们可能会进行批量处理,用一笔交易同时支付给大量用户。

So they might do batching where you have one transaction that pays out tons of people at the same time.

Speaker 0

我认为这不会受到太大影响,或者你可以使用这些找零。

I don't think that that will be affected too much, or you can have these change.

Speaker 0

你谈的更多是持续的替换。

You're talking more about continual replacements.

Speaker 0

所以我不知道它们是否会受到影响。

So I don't know if they will be affected.

Speaker 0

但规则变了,因为在Vipone 25之前,某些明显是改进的操作是被允许的。

But the rules change there, because with Vipone 25, used to be the case that there are certain things that are obvious improvements.

Speaker 0

比如,创建一个支付更高手续费的交易来替换另一个交易,并做出一些更改。

Like, make a transaction that just pays a higher fee, it replaces another one, it makes some changes.

Speaker 0

但之前是不被接受的。

But wouldn't be accepted.

Speaker 0

而反过来,有些明显不是改进的操作,却反而会被接受。

And the other way around, where you have something that's clearly not an improvement and yet it would be accepted.

Speaker 0

我认为从宏观上看,情况变得更简单了,你可以采用一种策略:直接提高手续费。

I think at a high level things become simpler in the sense that you can adopt a strategy of I'll just bump the fee.

Speaker 0

比如,我做一次替换,如果没成功通过,我就再稍微提高一点手续费。

Like, I do a replacement, it doesn't make it its way through, I just bump the fee a bit more.

Speaker 0

如果还是不行,我就再提高手续费,用另一个交易替换它。

And if it still doesn't work, I bump the the fee more, replace it with another transaction.

Speaker 0

这样就能正常工作了。

And this will just work.

Speaker 0

也就是说,只要交易真的更好了,它就会被处理。

Like, the transaction will go the as soon as it's actually better.

Speaker 0

过去你可能会尝试遵循BIP25规则,但据我所知,实际上没人这么做。

Where in the past you could try to follow one twenty five rules, but as far as I know nobody actually does.

Speaker 0

实际上,人们早就采用了这种试错的方式。

In practice people already adopt this, you know, try and see approach.

Speaker 0

比如你提高手续费,如果没成功,我就再提高一点。

Like you bump the fee, it doesn't work, I'll I'll bump it some more.

Speaker 0

现在,只要你真正改善了情况,交易就会通过。

Now it'll go through whenever you've actually improved the situation.

Speaker 1

对。

Right.

Speaker 1

所以实际上,人们本来就在用一种试错的方式,是的。

So it's kind of like in practice, people were just doing sort of a trial and error approach anyway Yeah.

Speaker 1

关于这些

On these

Speaker 0

我认为,从理论上讲,这种新方法最大的缺点是我不能再给你一套简单的规则了,比如‘如果你满足这些条件,这个交易的费率就高于那个’。

And I think this is In theory, I think this is the biggest downside to the new approach is I cannot give you a simple set of rules anymore that are of the form like, if you satisfy these rules, the fee rate of this is bigger than the fee rate of that.

Speaker 0

还有这个的大小小于那个之类的规则。

And the size of this is less than that and whatever.

Speaker 0

我保证替换机制。

I guarantee replacement.

Speaker 0

这种情况不再成立了。

That's no longer the case.

Speaker 0

没有简单的规则了。

There's no simple rules.

Speaker 0

你必须让事情变得更好。

Is you have to make things better basically.

Speaker 1

是的。

Yeah.

Speaker 1

好的。

Okay.

Speaker 1

所以,我的意思是,我们已经设定了一些背景,我认为这对听众来说是有帮助的。

So, I mean, we've set a bit of a context and I think it was useful for listeners.

Speaker 1

现在让我们实际来看看Cluster Mempool到底是怎么运作的?你能给我们做一个概述吗?

Let's actually go now to, you know, how does Cluster Mempool actually So can you take us through an overview on that?

Speaker 0

是的。

Yeah.

Speaker 0

主要的观察是,为了可靠地预测在当前算法下,这些交易是否比那些更好,哪一个会先被挖出?

So the main observation is in order to reliably predict how, you know, make judgments about are these transactions better than these, will this one get mined before this one today with the algorithm we have?

Speaker 0

我想实际弄清楚,让我们谈谈驱逐的情况。

I wanted to actually figure out, let's talk about the eviction case.

Speaker 0

如果我想可靠地确定今天最后一个会被挖出的交易是哪一个?

If I wanted to actually reliably figure out today what is the last transaction that would be mined?

Speaker 0

想象一下,没有新的交易进来,不管怎样。

Imagine no new transactions come in, whatever.

Speaker 0

我给你一个包含4000笔交易的内存池,你想要找出最后会被打包的那笔交易,因为如果我资源受限,我就想剔除这一笔。

I give you a mempool of 4,000 transactions, 4,000 and you want to figure out what is the very last one that would be mined because that's the one I want to evict if I'm somehow resource constrained.

Speaker 0

如今唯一的方法是运行挖矿算法,但不是针对一个1MB大小的区块,而是针对一个包含10万或9999笔交易的区块,然后看看哪一笔交易没有被包含进去。

Well, the only way you have today is you run the mining algorithm but not for a one mega V byte block but for a 100,000 or 9,999 transaction block and you see what's the one transaction that doesn't go in.

Speaker 0

那就是我想剔除的那一笔。

That's the one I would want to evict.

Speaker 0

可惜的是,这种方法在计算上根本不可行。

Sadly, that's just computationally not feasible.

Speaker 0

我们不能每次想剔除一笔交易时,都重新运行整个区块模板构建流程来确定哪一笔会最后被包含。

Cannot anytime we want to evict a single transaction run this entire block template building thing to see what goes in last.

Speaker 0

那么,作为计算机科学家,显而易见的解决方案是什么?

So what is the obvious answer as a computer scientist?

Speaker 0

我们需要预先计算这些内容。

Well we want to pre compute things.

Speaker 0

我们需要缓存它们。

We want to cache it.

Speaker 0

不幸的是,事实证明,在这里的白板上画出来对听众帮助不大。

Unfortunately, turns out that Yeah, I don't think drawing it on a whiteboard here is helpful for listeners.

Speaker 0

但我已经提供过一些例子和书面材料,说明你可以构建一些病态的内存池,其中有一连串交易,每个父交易都有两个子交易,每个子交易又有两个父交易,它们以网格形式连接,最优排序是从左到右。

But I've given examples and write ups about this where you can construct pathological mempools where you have like a whole sequence of transactions where they're all like every parent has two children and every child has two parents and they're sort of connected as a trellis where the optimal ordering is going from left to right.

Speaker 0

最好的交易在左边。

The best transactions are in the left.

Speaker 0

最差的交易在右边。

The worst transactions are in the right.

Speaker 0

现在,一个新交易突然进入,并在右侧附着,支付了极高的手续费。

And now a single new transaction comes in that pays a huge huge fee and attaches on the right.

Speaker 0

于是,最优排序突然变成了从右到左。

And now suddenly the best order becomes you go from right to left.

Speaker 0

这看起来很反直觉,但如果你仔细推导,就会发现这是真的。

And this is pretty unintuitive, but it's true if you work it out.

Speaker 0

因此,这里的观察是:一个单独的交易附加到一个庞大的交易集群上,可能会彻底改变该集群内所有交易的优劣排序。

So the observation here is that a single transaction attaching to a huge cluster of transactions can basically completely overhaul how good things are within that cluster.

Speaker 0

因此,我们以为可以预先计算好顺序,然后只做些小调整,这种想法行不通,因为一个新交易的加入就可能要求我们重新计算全部内容。

So this notion of we can just pre compute what the order is and and make small changes to it doesn't work because a single thing can come in that requires us to recompute everything.

Speaker 1

我明白了。

I see.

Speaker 1

另外,出于好奇,像 mempool.space 这样的服务是怎么处理的呢?

And just, I mean, out of curiosity, how does something like mempool dot space do it?

Speaker 1

我的意思是,它们似乎会预测区块可能会包含哪些交易。

I mean, they they kind of project out what they think the blocks will be.

Speaker 1

这真的计算成本太高,还是根本不可行?

Is that just, really computationally expensive or, like, just not feasible?

Speaker 0

我不知道它们后台运行的是什么。

So I don't know what they run-in the background.

Speaker 0

我猜它们可能使用了比特币核心节点来获取数据,这些节点会做些处理,但结果可能不是最优的。

I assume they have Bitcoin Core nodes that they pull things from, which do something, but it may be it will be suboptimal.

Speaker 0

我不太清楚,比如那个,是的。

I don't know, like the Yeah.

Speaker 0

实际上,你会对所有事情进行近似处理,然后得到一些输出。

In practice, you make an approximation for for everything, anything, and and you'll get some output.

Speaker 0

它可能并不对应于真正最优的方案,从这个观察来看,在一个假设的对抗性构造的内存池中,你不会看到90%的内存池是由一两个交易簇组成的。

It just may not correspond to what is the actual best And thing to from this observation that a single transaction in a hypothetical adversarially constructed mempool, you won't see like, know, 90 of the mempool is one or two transaction clusters.

Speaker 0

这里没有问题。

There's no problem here.

Speaker 0

但在最坏的情况下,可能会有一个交易进来,迫使你重新计算所有内容。

But in the worst case, you can have a single transaction comes in that requires you to recompute everything.

Speaker 0

我要明确一下,当我说到重新计算所有内容时,这可能只是几十毫秒的时间。

And to be clear when I say recompute everything this may be tens of milliseconds or something.

Speaker 0

但我们无法对每一个进入的交易都这样做。

It's just not something we can do for every single transaction that comes in.

Speaker 0

对的。

Right.

Speaker 0

我不是在说这会花费数小时来计算。

It's not like I'm claiming this will take hours to compute.

Speaker 0

这可能是几十或几百毫秒。

It's like tens or hundreds of milliseconds.

Speaker 0

但每次有变化时都这样做,代价太高了。

But that is too much to do all the time every time a change comes in.

Speaker 0

因此,聚类的想法就出现了,因为事实上我们并不需要整个内存池的完整排序。

And so that's where the idea of the clustering comes in, because it turns out we don't actually need the ordering of the entire mempool.

Speaker 0

我们只需要每个交易簇内部的排序。

We just need the ordering within every cluster of transactions.

Speaker 0

如果我预先计算,比如有一组相关的、有依赖关系的交易,但这是一个小群体,我知道如何对它们排序。

If I pre compute, like I have a bunch of related transactions with dependencies and whatever, but it's a small group and I know how to order those.

Speaker 0

然后我有另一个簇,我知道如何对它们排序,还有另一个。

And then I have another cluster and I know how to order those and yet another one.

Speaker 0

我知道如何对它们排序。

And I know how to order those.

Speaker 0

你可以非常高效地将它们合并成一个对内存池的统一视图。

You can very efficiently sort of merge them into a single view of the mempool.

Speaker 0

这就是集群内存池概念的由来。

And this is where the idea of Cluster Mempool comes in.

Speaker 0

如果我们能限制这些集群的大小,那么任何新进入的交易都只会影响其所在集群的顺序。

If we were to just able to be limit how big those clusters can get then any individual transaction that comes in will just affect the order of that one cluster.

Speaker 0

我们最终选定64笔交易作为提案数值,因为对于这种规模的集群来说——它们并不算太小——64笔交易远大于当前系统所支持的数量。

And 64 transactions is the number we ended up with as our proposal because for such small clusters and they're not tiny, 64 transactions is significantly larger than what things are supported today.

Speaker 0

是的。

Yeah.

Speaker 0

当一笔新交易进入时,你只需要重新计算该小部分集群的顺序。

A new transaction comes in, you you will just need to do the recomputation for that small group of clusters.

Speaker 0

我们不需要担心单笔交易会带来影响。

And we don't have to worry about a single transaction, you know.

Speaker 1

比如颠覆整个区块的排序

Like upending the whole block kind

Speaker 0

这样的情况。

of thing.

Speaker 1

没错。

Exactly.

Speaker 1

相反,你只是重新考虑那个特定的集群。

Instead, you're just reconsidering that particular cluster.

Speaker 1

是不是

Is it not

Speaker 0

在我之前那个假设性的例子中,我谈论的不只是一个区块。

in in my previous, like, hypothetical example, I wasn't just talking about one block.

Speaker 0

我谈的是整个内存池,成百上千个区块的交易在假设情况下都可能需要被追加。

I was talking about the entire mempool could could, hundreds of blocks worth of transactions could need to be appended in a hypothetical situation.

Speaker 0

举例来说。

Example.

Speaker 0

在这里就变得有限制了。

Here it becomes limited.

Speaker 0

因此,集群内存池转向了一种策略规则,根据我们的直觉、信念和观察,限制集群的大小,因为用户实际上并不关心超大的集群。

And so Cluster Mempool is switching to a policy rule that imposes a limit on how big the clusters can get based on our intuition, belief, observation that users don't really care about huge clusters.

Speaker 0

然后就可以预先计算每个集群内的挖矿顺序,由此可以隐式地定义整个内存池的排序,现在你需要做出决定。

And then it becomes possible to pre compute the mining order within every cluster, and from that you can implicitly define a whole mempool ordering, and now you you to decide.

Speaker 0

这比那个更好吗?

Is this better than this?

Speaker 0

这是一种改进吗?

Is this an improvement?

Speaker 0

最佳的选择是什么?

What's the best thing to pick?

Speaker 0

我们最后应该剔除什么?等等。

What's the last thing we should be evicting and so forth?

Speaker 1

然后你的想法是,这些类别,我想是分块吗?

And then the idea is that these classes you'll have, I guess, is it chunks?

Speaker 1

然后你将一个分块与另一个进行比较,比如,集群或分块B的手续费率高于分块A,因此我会倾向于选择B,等等。

And then you assess one chunk against another to say, oh, the fee rate in cluster or chunk b is higher than chunk a, so I'm gonna, you know, preference that in favor of, you know, etcetera.

Speaker 0

是的。

Yeah.

Speaker 0

这些块实际上是CPFP交易组的泛化形式。

So the chunks are sort of the generalization of CPFP groups of transactions.

Speaker 0

每当有一些交易为其他交易支付费用时。

Whenever you have some transactions paying for other transactions.

Speaker 0

因为,比如说,我们有一个单独的父交易同时支付了我们两个人。

And because, say, we we have a a single parent transaction that pays both of us.

Speaker 0

你和我都得到了一个输出。

You and me both get an output.

Speaker 0

但这是一个手续费很低的交易,我想加速它。

But it's a fairly low fee transaction and I want to accelerate it.

Speaker 0

所以我花掉了我的输出,但用了一个很高的手续费。

So I spend my output, but I spend it with a huge fee.

Speaker 0

你花掉了你的输出,但你并不在意,你用的是很低的手续费。

You spend yours but you don't really care you spend it with a low fee.

Speaker 0

你希望的是我的追加交易能提升父交易的优先级,但你的交易不需要,因为你的手续费本来就低,你根本不在乎。

What you want is my bumping transaction to bump the parent but yours doesn't in the sense that yours is low you don't care.

Speaker 0

所以,尽管这是一个集群,它会变成两个块。

So even though this is one cluster, it will become two chunks.

Speaker 0

第一个块是同时吸引我们两人的父交易以及我用来提升它的交易。

The first chunk will be the parent that bait both of us and my transaction that bumps it.

Speaker 0

第二个块则是你的交易,它依赖于父交易。

And then the second chunk is yours that becomes dependent on it.

Speaker 0

这与交易的排序密切相关。

And it's very related to the ordering.

Speaker 0

我不认为我应该在这里深入太多细节。

I don't think I should go into the details too much here.

Speaker 0

但如果我给你一个集群中交易的排序,你就能找出哪些是块,哪些内容需要合并。

But if I give you an ordering of transactions for a cluster, you can find what the chunks are like, which things need to be combined.

Speaker 0

事实上,找到最优排序问题与找到块的问题是同一个问题。

And actually finding the optimal ordering is the same problem as finding the chunks, it turns out.

Speaker 0

好的。

Okay.

Speaker 0

我认为这是描述什么是区块最简单的方式。

It's I think the simplest way of describing what a chunk is.

Speaker 0

取你的集群,它是一组相互依赖的交易,不管怎样,可能有几十笔。

Take your cluster, which is a whole group of dependent transactions, whatever, can be dozens.

Speaker 0

你称一个拓扑集合为包含其所有祖先的交易集合。

You call a a topological set is a set of transaction that includes all its own ancestors.

Speaker 0

所以在我们的例子中,仅父交易就是一个拓扑集合,父交易加上我的交易是一个,父交易加上你的交易也是一个,或者三者一起也是一个拓扑集合。

So in our example just a parent would be a topological set, the parent together with mine would be one, the parent together with you would be, or all three would be topological.

Speaker 0

然后在所有的拓扑集合中,选择费率最高的那个。

And then among all the topological sets pick the one with the highest fee rates.

Speaker 0

这个就成为你的第一个区块。

And that becomes your first chunk.

Speaker 0

从集群中移除它。

Remove it from the cluster.

Speaker 0

然后对集群剩余部分重复相同的计算。

And now you redo that same computation on what remains of the cluster.

展开剩余字幕(还有 204 条)
Speaker 0

尝试在剩余部分中找出费率最高的拓扑集合。

Try to find in what remains the highest PheRate topological sets.

Speaker 0

我认为直觉上这是有道理的,因为显然你只能包含拓扑集合。

I think that intuitively they make sense because obviously you can only include topological sets.

Speaker 0

你不能包含缺少父交易的交易。

You cannot include something where a parent is missing.

Speaker 0

在所有这些集合中,选择费率最高的那个。

So among all those, pick the one with highest fee rates.

Speaker 0

这就是分块问题,也是线性化问题。

So that is the chunking problem and that is the linearization problem.

Speaker 1

当你提到费率时,我们讨论的不只是绝对手续费,而是每虚拟字节的手续费,对吧?

And when you say fee rate, what we're talking about is like not just absolute fee, what we're talking about is fee per V byte, right?

Speaker 0

是的。

Yes.

Speaker 0

我指的是整个集合中平均每虚拟字节的手续费。

And I'm talking about the average fee per V byte in the whole set.

Speaker 0

所以,这是集合中所有交易的手续费总和除以所有交易的大小或权重总和。

So it's the sum of all the fees of all the transactions in the set divided by the sum of all the fee sizes or weights.

Speaker 0

实际上,内部所有的计算都是基于权重进行的。

Actually internally all the computation is done with weights.

Speaker 1

好的。

Okay.

Speaker 1

是的,我觉得我正在慢慢理解这个概念。

Yeah, I think I'm slowly getting the idea.

Speaker 1

然后我想,这个思路是这样的。

And then I guess the idea is yeah.

Speaker 1

所以你是在扩展,简化交易组的限制。

So you're you're expanding out the you're simplifying transaction group limits.

Speaker 1

你正在消除之前关于未确认祖先数量的某些限制,因为现在不再是25个,而是提升到64个,但这是在聚类层面进行的。

You are taking away certain previous limitations on how many unconfirmed ancestors because now instead of 25, we're going up to 64, but that's at a cluster level.

Speaker 1

然后我在想,大概是关于L2和这个东西。

And then I'm, I guess, kind of thinking about l twos and this thing.

Speaker 1

我在想,也许这不是一个精确的技术术语,但我听过人们谈论像展开或展开这类概念。

I'm thinking about maybe it's not the exact precise technical term, but I've heard people talking about these concepts like unfurling or unrolling, this kind of thing.

Speaker 1

比如,未来当人们试图退出某种共享的UTXO时,这可能会派上用场。

Like, maybe in the future, this would be relevant for that when people are trying to let's like, exit out of some kind of shared UTXO.

Speaker 1

这和这个有关吗?

Is that is that related to this?

Speaker 0

是的。

Yes.

Speaker 0

但我对这方面并不专业。

But I'm not the expert at that.

Speaker 1

明白了。

Gotcha.

Speaker 1

对。

Right.

Speaker 1

但理论上,这可能会为某些这类的L2方案铺平道路。

But it's I guess in theory, it would be it might ease the pathway for the some of those kinds of l twos That kind of thing.

Speaker 1

是的。

Yeah.

Speaker 1

好的。

Okay.

Speaker 1

让我再看一下。

And then let me just see.

Speaker 1

所以,这个概念我们也之前提到过。

So so this notion as well, like, we we we're touching on this before.

Speaker 1

你认为内存池是否应该在网络中大致保持一致?

Do you believe that mempool should roughly align across the network?

Speaker 1

这大概就是这个意思吗?

Is that like, that's the rough idea?

Speaker 0

我们做不到。

I we can't.

Speaker 0

对吧?

Right?

Speaker 0

显然有很多原因,不行。

There are many reasons for obviously, no.

Speaker 0

他们无法,或者我们无法保证这一点,因为如果可以,我们根本不需要区块链。

They cannot, or we cannot guarantee it because if they would, we wouldn't need a blockchain in the first place.

Speaker 0

先接受共享内存池中的任何交易。

Just accept whatever transactions are in the shared mempool first.

Speaker 0

整个共识问题就解决了。

The whole consensus problem is solved.

Speaker 0

我们无法这样做,因为没有一个中心化方能对所有内容强制实施单一的排序。

We just cannot do that due to, you know, that there's no centralized party that can impose a single ordering on everything.

Speaker 0

每个人都有自己的视角。

Everybody has their own view.

Speaker 0

你可能会遇到冲突,比如双重支付:如果有人将一个输出以两种不同方式花费,一种版本给我,另一种给你。

You might have conflicts that arise from even just double spends like what if someone has an output spends it in two different ways gives one version to me gives another to you.

Speaker 0

如果其中一个明显优于另一个,那么在某一方向上可能可以进行替换。

If one is obviously that better than the other than a replacement might be possible in one or the other direction.

Speaker 0

但如果它们同样好呢?

But what if they're equally good?

Speaker 0

没有客观的标准来选择其中一个而放弃另一个。

There's no objective measure of picking one over the other.

Speaker 0

这个问题因我们需要拒绝服务保护规则而更加严重,因为即使我们能定义一个数学上最优的集合,我们也无法保证达成一致,因为要判断哪个实际上更好可能在计算上不可行。

This is worsened by the fact that we need denial of service protection rules because So even if we could define a mathematically optimal set, we can't really guarantee convergence because it might be computationally infeasible to do the work to figuring out if it's actually better or not.

Speaker 0

当然,还存在政策差异,这些差异有其合理原因,比如不同的节点可能有不同的资源限制。

And then obviously there's policy differences which have good reasons like different nodes might have different resource limits.

Speaker 0

不,我们无法保证这些事情。

No, we can't guarantee things.

Speaker 0

这意味着我们在推理质量上存在局限性。

And this does mean that there are limitations to the quality of the reasoning we can make.

Speaker 0

因此,我不认为目标是让内存池保持一致。

So I would not say the goal here is making mempools uniform.

Speaker 0

现在每个人都是独立行动的,只是有了一个更好的框架来评估盈利能力。

It's it's really everyone for themselves is now given a better framework to reason about profitability.

Speaker 0

还有其他一些限制,意味着并非每个人都会得出相同的结论。

And there are still other limitations that mean not everyone will find the same outcome.

Speaker 0

但是,是的。

But, yeah.

Speaker 1

我明白了。

I see.

Speaker 1

所以,正如我所说。

So as I Yeah.

Speaker 1

理解。

Understand

Speaker 0

我认为我们不应无端地在它们之间引入不一致,但目标并不是统一。

I think we shouldn't gratuitously introduce inconsistencies between them, but the goal is not uniformity.

Speaker 0

目标是尽可能在本地做出最好的推理。

The goal is make the best reasoning you can locally.

Speaker 1

好的。

Okay.

Speaker 1

因此,据我理解,以及我从不同比特币核心开发者那里读到的内容来看,大家对区块传播等问题有很多担忧,确保其延迟非常低。

And so as I understand and from what I've read from different Bitcoin Core developers, there seems to be a lot of concern about things like block propagation, making sure that it's very, you know, very low latency.

Speaker 1

所以我想,这大概是一个相关的想法,如果你知道,理论上如果它们大致相同,那会很好,这样就能做到。

So I guess that's kind of a related idea then that if you know you I guess in theory it would be nice if they sort of were roughly the same so that there's Yes.

Speaker 0

我们可以

We can

Speaker 1

在一定程度上保证这一点,但你无法完全保证。

around guarantee that, but you can't guarantee that.

Speaker 1

那就是说,是的。

That's is that Yeah.

Speaker 0

是的。

Yeah.

Speaker 1

好的。

Okay.

Speaker 0

你已经看到,安东尼·汤斯最近提出了一种区块模板共享的思路,能在一定程度上解决这些问题。

You've seen that there's been a relatively recent idea by Anthony Towns to do this block template sharing, which addresses some of this in a limited way.

Speaker 0

但这只是一个相当简单的想法。

But it's a pretty simple idea.

Speaker 0

所以这个想法是添加一个协议扩展,让节点之间可以协商。

So the idea is like add a protocol extension that nodes can negotiate with each other.

Speaker 0

这不是共识变更,而是完全可选的,你可以询问你的对等节点:如果你现在要创建一个区块,它会包含什么内容?

It's not a consensus change or anything entirely opt in where you can ask your peer, If you were to create a block right now, what would it contain?

Speaker 0

或者你可以更进一步,比如:你现在用内存池会构建出前两个什么样的区块?

Or you can even go a bit further like: What are the first two blocks you would construct with your mempool right now?

Speaker 0

如果它包含了我还没见过的交易,我会尝试把它们加入到我的内存池中。

And if it includes transactions I haven't seen yet, I'll try to insert them into my mempool.

Speaker 0

显而易见,我为什么不这么做呢?

Obviously, why wouldn't I?

Speaker 0

如果可能的话,我会尝试验证它们。

I'll try to validate them if I can.

Speaker 0

但即使我无法验证,我也会先保留它们。

But even if I don't, I hold on to them.

Speaker 0

所以,即使由于某种原因你的策略略有不同,或者出现了双花,导致我们无法完全达成一致的视图,我仍然会问你:‘你现在会把哪些交易放进区块里?’

So even if somehow you have a somewhat different policy or there's a double spend that results in us being unable to come to an exactly identical view, it will be the case that I ask you for, Hey, what would you put in a block right now?

Speaker 0

你会给我一些交易,其中有些我甚至不想验证,或者超出了我的某些策略范围,但我仍然可以保留它们。

You give me these transaction like some of these I I don't even want to validate or outside of some policy I have but I can still hold on to it.

Speaker 0

因此,如果这些交易中的一些后来被发现出现在某个区块中,我早就已经拥有它们了。

So if it then turns out that some of those transactions are found in a block, I already have them.

Speaker 0

即使我没有提前获得验证速度的优势,我依然能享受到传播速度的提升。

And I get the propagation speed benefit, even if not the validation speed benefits from having them fetched ahead of time.

Speaker 0

只要网络中存在这样的情况,我就不会说这是策略差异造成的,因为内存池出现分歧可能有很好的原因,并不一定是策略不同导致的。

And so this works as long as you have a network where, and I shouldn't say policy differences because there can be good reasons for mempool divergence that are not related to policy differences.

Speaker 0

每当内存池分歧的边界出现时,每个人都会与边界另一侧的某个人相连。

So whenever sort of the boundary of mempool divergence, everyone is connected to someone across the border.

Speaker 0

比如,如果你处于一个世界中,存在两个大型群体,但它们各自高度聚集——用户A主要与其它用户A连接,而用户B主要彼此连接,那么模板共享只会在它们之间的边界上起作用。

Like if you end up in a world where there's two big groups, but they're very clustered together, the of users A are very much connected mostly to other users A and then there's B mostly connected to each other, the template sharing will only help on the border between them.

Speaker 0

这与一个较早被称为‘弱区块’的想法有些相关,即矿工被允许传播那些几乎满足工作量证明定义的区块。

It's somewhat related to an older idea called weak blocks, where miners are allowed to propagate blocks that almost meet the definition of proof of work.

Speaker 0

它们还没有完全到位,但我们仍然可以中继它们。

They're not quite there, but we can relay them.

Speaker 0

因为有工作量证明,它们可以在整个网络中中继,并获得优先处理。

Because there's proof of work, they could be relayed across the network everywhere and given preferential treatment.

Speaker 0

不用担心拒绝服务攻击,因为工作量证明是昂贵的,即使只是真实难度的10%,也包含了相当数量的工作量证明。

Like there's no DOS concern because there's proof of work and proof of work is expensive even if it's just 10% of the real difficulty there's a substantial amount of proof of work.

Speaker 0

但这是一种更复杂的想法。

But it's a much more complicated idea.

Speaker 0

我也看到一些反对意见,但即使忽略这些,它也比‘你现在会把什么放进区块’这个想法复杂得多,因为它以更底层的方式与基础设施交互。

I've seen some objections against it too but even ignoring that it's much more complicated in that it interacts with minor infrastructure at a much more low level way than this tell me what you would put in a block right now.

Speaker 0

我喜欢这个想法。

I like this idea.

Speaker 0

是的。

Yeah.

Speaker 0

它在一定程度上有助于传播速度和内存池收敛。

It helps somewhat with propagation speed and mempool convergence.

Speaker 0

但同样,它并不能保证任何事情。

But again, it doesn't guarantee anything.

Speaker 1

好的。

Okay.

Speaker 1

所以回到你之前提到的,据我理解,Cluster Mempool 是 Bitcoin Core 的功能。

So coming back to you were touching on this before, but as I understand, Cluster Mempool, it's a Bitcoin core thing.

Speaker 1

当我们谈论其他实现,比如 BTCD 或其他任何项目时,这又是怎么运作的呢?

How does that work when we're talking about, let's say, other implementations, like, I don't know, BTCD or whoever else is out there?

Speaker 1

如果一个 Bitcoin Core 31 节点与其他比特币实现通信,这意味着什么?

What does it mean if a Bitcoin Core v 31 node is talking to other implementations of Bitcoin?

Speaker 0

是的。

Yeah.

Speaker 0

或者,即使它们与 Bitcoin Core 30 或 29 通信呢?

Well Or even what if they're talking to a Bitcoin Core 30 or 29?

Speaker 1

对。

Right.

Speaker 1

一个较旧的调用

An older call

Speaker 0

版本。

version.

Speaker 0

我之前提到过,这关乎提升本地推理能力。

I've touched on this before in that it's about improving local reasoning.

Speaker 0

你连接的是使用不同甚至可能更差的推理方式的人,但这并不妨碍你自己做出更好的决策。

The fact that you are connected to people who use different and probably, I don't know, inferior reasoning doesn't prevent you from making better decisions yourself.

Speaker 0

就可预测性而言,一旦到了这样的阶段:网络用户能否开始默认依赖Cluster Mempool在网络中中继一些可能较为复杂、且依赖部署的内容?

In terms of predictability in that, once it comes to a point of like: Can network users start soft relying on Cluster Mempool on being deployed on the network to relay maybe somewhat non trivial things that will depend on deployment?

Speaker 1

但我猜,几年后,网络中的大多数节点都会运行v31或更高版本。

But I guess you would assume that in a few years' time, most of the network would be running v31 or later.

Speaker 1

到那时,也许这种假设就更合理了。

And then at that point, I mean, maybe that is a more fair assumption to make.

Speaker 0

是的。

Yeah.

Speaker 0

对。

Right.

Speaker 0

但这实际上取决于每个用户自己的判断。

But this is up to individual users really to assess.

Speaker 0

我的意思是,如果做不到这一点,那我们通过让公开市场足够透明来实现抗审查的目标可能就失败了。

Mean, does go to If it doesn't, then maybe we have failed in this goal of censorship resistance through making the public market transparent enough.

Speaker 0

如果确实存在需求,那么网络上就必须有对某些复杂交易组合进行中继的需求,而如果因为没有部署这个功能而导致无法实现,那就成问题了。

If there's real demand, there has to be demand for some complicated constellation of transactions being relayed on the network and it doesn't due to non deployment of this.

Speaker 0

或者,这可能是由于Cluster Mempool的局限性造成的。

Or maybe it's due to limitations of Cluster Mempool.

Speaker 0

我们仍然存在一些反DoS规则,导致某些钉住问题。

We still have anti DOS rules that result in certain pinning problems.

Speaker 0

有些问题仍然存在,但并没有完全消失。

Some are affected, but they're not gone.

Speaker 0

所以,无论出于什么原因,如果最终发现存在经济需求的交易组合,我们却因为未部署、功能无效或其他原因无法可靠地中继,从而未能实现让这个市场保持公开的目标。

So for whatever reason, if it turns out that there is economic demand for transaction constellations that we cannot reliably relay due to non deployment or due to ineffectiveness or whatever sort of fails at its goal of keeping this market public.

Speaker 1

我明白了。

I see.

Speaker 0

但这还有待观察,我很喜欢Cluster Mempool框架让这种推理变得容易得多。

But that is to be seen, and I like how the Cluster Mempool framework just makes it so much easier to do this reasoning.

Speaker 0

过去曾有人讨论过批量中继的问题。

In the past there's, for example, been talk about package relay.

Speaker 0

我们目前有一些有限的批量中继功能。

We have some limited form of package relay.

Speaker 0

现在有人提出疑问:我们能否实现批量RBF?

Now there are questions about like, can we do package RBF?

Speaker 0

但在Cluster Mempool出现之前,我认为我们根本无法想象批量RBF会涉及哪些规则——比如内存池中存在多个相互依赖的交易,然后又进入另一组依赖交易,其中一些可能替换掉原有的交易。

But before Cluster Mempool, I don't think we could really conceptualize what rules would be involved in a package RBF like you have multiple dependent transactions in a mempool and you get another set of dependent transactions in and some of those might replace some of those like it.

Speaker 0

这非常复杂,即使有了Cluster Mempool,这仍然相当困难,但至少现在有了一个可以讨论这些问题的框架。

It's a very hard it's still pretty hard even with Cluster Mempool, but at least there's a framework to talk about those things.

Speaker 0

我想还有其他几件事。

I guess that's couple other things.

Speaker 0

最重要的是,不仅仅是网络获得的已部署功能,而是我们拥有了一种评估这些事情的心理框架。

Most about it, even not the deployed capabilities that the network gains, but the fact that we, you know, have a mental framework to assess these things.

Speaker 1

好的。

Okay.

Speaker 1

所以,是的,我本来想问一下,你提到在我们讨论内存池相关话题时,还有其他相关的内存池想法吗?

So, yeah, I was gonna ask, I mean, you mentioned any other, you know, while we're here talking about mempool stuff, other related mempool ideas?

Speaker 1

你提到了包中继和v3交易。

So you mentioned package relay, v three transactions.

Speaker 1

还有其他你感兴趣或正在关注、想讨论的内容吗?

Anything else that you're interested in or focused on that you wanna discuss there?

Speaker 0

是的。

Yeah.

Speaker 0

我之前提到了区块模板共享。

So I I touched on on on the the the block template sharing.

Speaker 0

我认为我们可以将这视为一种交易中继的方面。

I think that we can think of that as a transaction relay aspect.

Speaker 0

最近对早期交易也重新产生了兴趣。

There's some renewed interest in early as well.

Speaker 0

这些是非常独立的改进,对吧?

These are very orthogonal improvements, right?

Speaker 0

它们并不是关于评估交易好坏的推理。

They're not about reasoning about how good transactions are.

Speaker 0

它们更多是交易中继的基础设施层面的改进。

They're more infrastructure level improvements to transaction relay.

Speaker 0

是的,我对这些感兴趣。

Yeah, I'm interested in those.

Speaker 0

也许在未来,我会专注于帮助实现其中一些改进。

Maybe helping out with some of those is is something I'll be focusing on in in the future.

Speaker 1

如果再放宽一点视角,除了内存池和集群内存池之外,你认为比特币开发和协议开发中还有哪些其他有趣的方向?

And I guess zooming out a little bit more, like, out of just, let's say, mempool and Cluster Mempool, What are some other areas that you're seeing as interesting, like, in Bitcoin development protocol development just more more broadly?

Speaker 1

还有没有其他让你感兴趣的内容?

Is there anything else that is interesting to you?

Speaker 0

当然。

Sure.

Speaker 0

对。

Yeah.

Speaker 0

我的兴趣随着时间发生了变化。

My my interest shift shift over time.

Speaker 0

比如,我可以告诉你我现在在思考的事情。

Like, I can tell you the things I'm thinking about now.

Speaker 0

我正在考虑研究如何让验证过程在内部更加异步,这在比特币核心中会有一些影响——这纯粹是实现细节,而不是协议层面的改动,但它会影响延迟:如果我发送给你一个缓慢的交易呢?

I'm considering looking into making validation more asynchronous internally, which has some bearing on on in Bitcoin Core specifically, this would be very much an implementation detail, not a protocol level change, but it would have some impact in terms of latency where you can have: What if I send you a slow transaction?

Speaker 0

一个验证缓慢的交易,能在多大程度上拖慢你的节点?

Slow to validate transaction, to what extent can I slow your node down?

Speaker 0

如今,由于处理方式是同步且阻塞的,这仍然是一个令人不安的现实。

That is today an uncomfortable reality due to how synchronous and blocking things are done.

Speaker 0

我想研究一下这个问题,但确实如此。

I'd like to look into that, but yeah.

Speaker 1

是的。

Yeah.

Speaker 1

那么在验证过程中,我们指的是IBD阶段,还是泛指一般情况?

And so is that mentioned When validation, are we talking like at an IBD stage or just in general?

Speaker 0

我是说泛指,但我认为影响主要体现在稳定状态。

I mean, general, but I think the impact would mostly be on the steady state.

Speaker 1

好的。

Okay.

Speaker 1

也就是说,正确地保持在链尖上,这在某种程度上是松散的。

As in like staying at the chain tip correctly is kind of loosely Yeah.

Speaker 0

还有网络交互,你作为一个节点连接着许多其他节点,它们向你发送消息,你能多快地响应它们?

And the interaction the network, you being a node connected to many others that give you messages like how quickly can you respond to them?

Speaker 0

这并不是让事情变得更快,而是让它们显得更灵敏,这么说吧。

It isn't about making things faster, it's more about making them snappier, so to speak.

Speaker 0

如果你能同时处理多件事,举个简单的例子,你给我一个非常慢的交易,而另一个人给我一个区块。

If you can do multiple things at the same time, even if Dumb example, you give me a very slow transaction, someone else gives me a block.

Speaker 0

也许我想中断你交易的处理,优先处理那个区块。

Maybe I want to interrupt processing your transaction and give priority to that block.

Speaker 0

这在今天是做不到的。

This is not something we can do today.

Speaker 1

我明白了。

I see.

Speaker 1

是的,我明白了。

Yeah, I see.

Speaker 1

是的。

Yeah.

Speaker 1

因为当你一开始这么说的时候,我想到的是IBD相关的内容,比如SwiftSync和AssumutxO。

Because at first when you said that I was thinking about like IBD stuff and like, you know, like SwiftSync and AssumutxO

Speaker 0

就那种东西。

and just kind of that

Speaker 1

或者U3xO,类似那样的领域。

kind of, or U3xO, like that kind of area.

Speaker 1

但据我理解,这属于一个稍微不同的领域。

But as I understand, this is a bit bit of a different area.

Speaker 0

这更多是一个实现细节。

This is this is much more an implementation detail.

Speaker 0

不是,不是那样。

Not not yeah.

Speaker 0

是的。

Yeah.

Speaker 0

那正是我在考虑的事情。

That's something I'm thinking of.

Speaker 1

我想,我看到人们讨论的其他一些事情,比如契约之类的东西。

I guess, I mean, other kind of things I see people talking about are things like, you know, covenants and things like that.

Speaker 1

这些对你来说有意思吗,还是完全不感兴趣?

Is any of that interesting to you at all or not really?

Speaker 0

我正努力在隔离见证之后,甚至更在塔普罗特之后,尽量远离所有共识变更的讨论。

I've I'm I'm trying very hard to sort of after to an extent after SegWit, but even more after Taproot, I'm trying to stay out of all consensus change discussions.

Speaker 0

我只是觉得我已经在这方面投入够多了,宁愿不再参与。

Just feel like I've had my fair share there and I'd rather stay out of that.

Speaker 1

当然。

Sure.

Speaker 1

是的。

Yeah.

Speaker 1

好的。

Okay.

Speaker 1

所以,假设Cluster Mempool在下一个EIP-31中推出,对你来说接下来可能关注的是你提到的AJ Towns的区块模板共享想法,或者并行验证这类事情。

So I guess, let's say Cluster Mempool, you know, comes in in this next e 31, and I guess next thing for you would be maybe looking at things like you mentioned the block template sharing idea from AJ Towns or this parallel validation.

Speaker 1

这些可能是你最感兴趣的领域。

Those are probably the the main areas that you'd be interested in.

Speaker 0

对。

Yeah.

Speaker 0

我脑子里现在确实有些想法,但谁知道呢?

There there there are things that are currently on my mind, but who knows?

Speaker 0

也许一个月后,我在想别的事情。

Maybe in in a month, I'm thinking about other stuff.

Speaker 1

是的。

Yeah.

Speaker 1

如果从生态系统层面来看,即使不涉及共识,你认为生态系统还需要在哪些方面改进?

And I guess just zooming out as, like, at an ecosystem level, even if even if it's not consensus related, what other things do you think people what other things do you think the ecosystem needs work on?

Speaker 1

比如,是钱包吗?

Like, is it wallets?

Speaker 1

是自我托管吗?

Is it self custody?

Speaker 1

是挖矿相关的问题吗?

Is it mining stuff?

Speaker 1

是二层解决方案吗?

Is it L2 stuff?

Speaker 1

你对这些领域有什么看法吗?

Like, do you have any thoughts on those areas?

Speaker 0

不太确定。

Not really.

Speaker 0

有很多不错的工作。

There's lots of good work.

Speaker 0

你提到挖矿。

Like, you're talking about mining.

Speaker 0

我很高兴看到Stratum V2的演进。

I'm I'm happy to see the evolution with Stratum V2.

Speaker 0

我希望它能成功推广。

I I hope it takes off.

Speaker 0

我自己在这方面贡献不多,但现在想不出其他具体的事情。

I I haven't had too much contribution myself there, but nothing really comes to mind right now.

Speaker 1

好的。

Okay.

Speaker 1

明白了。

All right.

Speaker 1

好吧,我想我们就此收尾吧。

Well, I guess let's wrap things up then.

Speaker 1

我想简单概括一下,或者快速说说关于集群内存池,人们最应该记住的关键见解是什么?

I guess maybe just give a quick like, overview or just kind of a quick what's the the key insight for people to take away on Cluster Mempool?

Speaker 1

如果只能记住一点,他们应该从理解集群内存池中带走什么?

You know, if there's one takeaway, what should they take away with understanding Cluster Mempool?

Speaker 0

理解依赖交易是很困难的。

Reasoning about dependent transactions is hard.

Speaker 0

我们现在有了一个可以做到这一点的框架。

We now have a framework to do that.

Speaker 0

未来,比特币核心将能够利用这种推理,希望这能让我们更长时间地保持区块空间市场的公开性。

Bitcoin Core will be able to use that reasoning in the future, and hopefully, that results in us keeping the block space market public for longer.

Speaker 1

非常好。

Excellent.

Speaker 1

各位听众,链接会在节目笔记中,你们可以关注皮特的在线工作,了解更多关于集群内存池的内容。

Well, listeners, the links will be in the show notes, so, you can follow Pieter's work online, and read more about Cluster Mempool.

Speaker 1

皮特,感谢你参与我的节目。

Pieter, thank you for joining me.

Speaker 0

是的。

Yeah.

Speaker 0

谢谢你的邀请。

Thanks for having me.

Speaker 0

非常愉快。

It was great.

关于 Bayt 播客

Bayt 提供中文+原文双语音频和字幕,帮助你打破语言障碍,轻松听懂全球优质播客。

继续浏览更多播客