本集简介
双语字幕
仅展示文本字幕,不包含中文音频;想边听边看,请使用 Bayt 播客 App。
来自互联网的现场直播,这里是比特币。
Live from the Internet, this is Bitcoin.
解释性资源。
Explained resource.
你好。
Hello.
你怎么样?
How are you?
已经有一段时间了。
It's it's been a while.
已经过去几天了。
It's been a few days.
是的。
Yeah.
我们一直没有制作节目,因为我一直坚持只在现场亲自制作节目。
We we haven't made an episode because I, we always committed to only making episodes live in person.
曾经有一些例外,但我想我们俩都不太喜欢那样,所以我们就把它定为一条规矩。
There were some exceptions, but I think neither of us really liked that, so that we we kinda made it a rule.
但我已经很久没去荷兰了,更不用说乌得勒支了,所以我们没法这么做。
But I haven't been in The Netherlands for a while now, never mind in Utrecht, so we couldn't do it.
我们决定不管怎样,接着之前的地方继续下去。
We decided to pick up where we left anyways.
是的。
Yeah.
尤其是因为这个话题几乎没人谈论,而我认为我们确实应该谈谈。
Especially because this is a topic that really nobody talks about, and I think we should we should.
对。
Yeah.
据说出现了一款非常冷门的新软件发布,叫做 Bitcoin Core 30,我们觉得也许现在是时候有人把它引起注意了。
There's apparently a very obscure new software release called Bitcoin Core 30, and we thought maybe it's time that someone brings it under the attention of
没错。
Exactly.
那些在外面的人。
Of the people out there.
关于这一点,我想先稍微谈一下,因为我觉得这可能是最
On that point, I do wanna start with that a little bit because I I think this has been the most
我们想感谢我们的赞助商吗?
we wanna thank our sponsor?
是的。
Yes.
谢谢 CoinKite。
Thank you, CoinKite.
感谢你们成为我们的赞助商。
Thanks for being our sponsor.
谢谢你们制造了出色的冷钱包以及其他所有神奇的设备。
Thanks for making brilliant the the the brilliant cold cards and all the other magical devices you put out there.
Sjosh 是什么?帮我想一下。
What's the Sjosh, help remind me.
那个小USB设备叫什么来着?
What's the little USB thingy called?
我想是Coin,那个Cold Power。
I think it was the coin, the the cold power.
但你是说那个OpenDime吗?
But it's like a oh, you mean the OpenDime?
OpenDime?
The OpenDime?
是的。
Yeah.
传奇。
The legend.
对。
Yeah.
是的。
Yes.
传奇的CoinKite。
Legendary legendary CoinKite.
感谢所有赞助商的支持。
Thanks for sponsors sponsoring us all.
天哪。
Oh my god.
好的。
Okay.
我认为OpenDime仍然不支持Taproot,因为我曾经提交过一个让它支持Taproot的拉取请求,但他们关闭了它,说不够‘蟑螂’。
I think the OpenDime still doesn't support Taproot because I opened the pull request once to make it use Taproot and they closed it because it wasn't cockroach enough.
总之。
Anyhoo Anyways.
我们来聊聊这款名叫
Let's talk about this obscure piece of software called
哦,对。
Oh, yeah.
是的。
Yeah.
所以我想问你一下,好吧。
So I I wanted to ask you, you know, Okay.
我们今天主要会做一个没有争议的节目。
We're mostly gonna be making a drama free episode here.
乔,你知道的,我们要讨论一下比特币核心30版本中真正的新内容。
Joe, you know, we're gonna discuss what's actually new in Bitcoin Core 30.
正如我所说,这似乎是迄今为止最具争议的比特币核心版本发布。
Like I said, it does seem like this has been probably the most controversial Bitcoin Core release ever.
就像,社交媒体社区对此一直热议不断。
Like, the the social media community has been sort of ablaze over all of this.
我觉得自从区块大小战争以来,还没见过这么糟糕的情况,甚至在某些方面比区块大小战争还要严重。
I don't think I've seen it this bad since the block size wars wars and in some ways even worse than the block size wars.
我只是想知道,作为一位比特币核心开发者,你怎么看。
And I'm just sort of wondering you as a Bitcoin core developer.
我知道你不使用 Twitter。
I know you're not on Twitter.
你也不用 X。
You're not on X.
那么,你看到多少这种情况?它对你或其他人有多大影响?
Like, how much are you seeing of this, or how much does it affect you and maybe others?
你能给出某种估算吗?
Do you have a can you give some sort of estimation of that?
是的。
Yeah.
我认为,与区块大小之争相比,因为当时社区规模更小,所以这次在相对比例上可能反而更小。
I guess compared to the block size wars, like, because the community was smaller too, this is probably actually smaller in relative terms.
嗯。
Mhmm.
对吧?
Right?
但社交媒体上有更多的钱可赚,也更容易获得关注。
But it's just there's just more more money to be made and more attention to be had on social media.
也许社交媒体比十年前更糟糕了。
Probably, maybe social media is just worse than it was 10 ago.
是的。
Yeah.
对。
Yeah.
正如我所说,我尽量忽略大部分事情,除了那些实际的事实,因为在Twitter甚至Nostr上和人争论实在太耗精力了。
Like I said, I I try to just ignore things as much as possible other than, like, the actual facts because just arguing with people on Twitter or even Nostr is just a huge energy drain.
我们确实录了一整期节目,专门讨论其中最具争议的部分。
We did record a whole episode on probably the most controversial part of it.
那就是我们上一期节目,《时机的回归》,大家可以去听一下。
That's our previous episode, the return of the opportune, so people can listen to that.
我认为没有什么变化,尽管我觉得我们会在发布说明中提及一些非常小的细节。
And I don't think anything has changed, although I think we'll address a couple of very minor things here in the release notes.
是的。
Yeah.
是的。
Yeah.
但没错,我觉得这其实是个不错的、不剧透的提醒。
But, yeah, I mean, that's a good sort of non spoiler warning maybe.
我们不会花半小时讨论这个改动,因为我们已经专门做了一期节目来谈它。
We're not gonna spend half an hour discussing this change because we made a whole episode about it.
任何想了解Shorz或我对这个问题看法的人,可以去听之前的节目,我们当时已经深入讨论了这个上限调整的问题。
Anyone who wants to know how Shorz thinks about that or me can go to the previous episodes previous episodes, and that's where we really discussed the, you know, the up return limit change.
是的。
Yeah.
嗯,
Well
我想说,如果你看一下GitHub仓库,你会发现比特币核心99%的工作都与这些有争议的改动完全无关,那些工作依然照常进行。
I would say if if you look at, say, the GitHub repo and, you know, 99% of the work of Bitcoin Core is completely unrelated to these controversial changes, and that work just continues as before.
有趣的是,GitHub 仓库里有大约五十个开放的拉取请求,它们几乎都是相互孤立的。
It's interesting how there's like three fifty open pull requests on the GitHub repo, and they're almost all like silos.
一个拉取请求可能非常热闹嘈杂,而另一个却完全无人问津,根本没人看。
So one pull request can be super crowded and noisy and the other one is completely deserted and nobody's even looking at it.
是的。
Yeah.
我想我以前打过一个比方,说 Bitcoin Core 项目有时候就像一座巨大的粗野主义风格的办公楼,每个人都有一个小隔间。
I think I've made the analogy before that the Pitman core project sometimes feels like you have a very large brutalist office building and everybody has a little cubicle.
如果你在那个隔间里,你的拉取请求就像是你的隔间。
And if you're in that cubicle, your pool request is like a cubicle.
也许你可能会在多个隔间里,我想。
You might be in multiple cubicles, I guess.
但如果没人经过,那就没人能听到你。
But if nobody comes by, then, you know, nobody can hear you.
是的。
Yeah.
好的。
Okay.
不过,不管怎样,我们还是先从这个具体话题开始吧,把它解决掉。
Well, regardless, let's actually kick off with that specific topic just to get it out of the way.
基本上,op return 的策略限制已经被完全取消了。
So the op return policy limit has been lifted basically entirely.
对吧?
Right?
嗯。
Mhmm.
再说下去,我觉得我们已经讲得够多了。
Again, I think we've said enough about that.
谁要是想了解这方面的情况,可以去听上一期节目。
Anyone who wants to know, you know, the the about that can go to the previous episode.
不过,还有一个与此相关但我们在上一期没讨论过的改动,那就是现在除了更大的 op return 外,一笔交易中也可以包含多个 op return 了。
However, there is also another related change that's close to it, but that we did not discover discuss in the previous episode, which is there's all I I think there's also a policy policy rule is that it's now also possible besides bigger upper turns to include multiple upper turns in one transaction.
对吧?
Right?
我们上期没讲过这个。
We did not cover that last
我不确定我们有没有讲过,但我们可以再重复一遍。
I'm not sure if we did, but we we can just repeat it.
好的。
Yes.
所以你可以做一个达到交易最大尺寸的上层输出,或者做多个较小的上层输出,最终加起来达到同样的大小。
So you can either make one upper turn that is the maximum size of a transaction or less, or you can make multiple ones, which can ultimately add up to the same size.
是的,这一点很重要,要注意。
Yeah, that's important to note that.
我觉得这更多是一种简化。
I would say that's mostly a simplification.
但这一点很重要,因为在这整个混乱中,这也被当作是BigQuery核心开发者做的另一件所谓的坏事提了出来。
Well, it's important to note be because, you know, in this entire shit storm, it has been brought up as well as as, like, another supposedly bad thing that BigQuery core developers have done.
但正如你所指出的,即使一个交易中有多个上限轮次,这些上限轮次的总大小仍然受限于设定的限制。
But as you point out, even if there are multiple upper turns in a transaction, the total size of this upper turn are still bound to whatever the limit is.
而且这个限制,即使在Baker Core中,仍然是可配置的。
And this limit, even in Baker Core, is still configurable.
对吧?
Right?
是的。
Yeah.
所以我们在这方面来回讨论了很久。
So we kinda went back and forth on that.
最初的想法是完全取消它,因为它本质上只是安慰剂,但你知道,当时引发了大量争议。
The initial idea was to completely drop it because it's essentially placebo, but, you know, there was a lot of drama.
所以最终,我认为默认值已经更改了。
So eventually, I think now the default has been changed.
比如,现在没有限制了。
Like, there's no limit.
但如果你设置了限制,那么现在和以前的唯一区别是,这个限制适用于整个交易的总和。
But if you do set a limit, the only difference between now and before is that the limit applies to the total for a transaction.
比如说,你把限制设为83字节。
So let's say you set the limit to 83 bytes.
我想,那以前是默认值。
That was, I think, the previous default.
嗯哼。
Mhmm.
那么,如果有人想这么做,他们可以创建20笔每笔2字节的操作交易。
Then somebody could make, I guess, you know, 20 opera turns of two bytes each if they somehow wanted to.
但现在这样做对他们来说会非常昂贵,因为每个输出都有开销。
Now that'd be pretty expensive for them because every output has an overhead.
是的。
Yeah.
我提这一点是因为之前有人批评过,正如我所说,现在你可以更改默认设置了。
I'm pointing it out because there was a point of critique as I mentioned that, okay, you can change the default setting now.
你可以把它改回原来的样子,但批评者指出,现在你仍然可以在一笔交易中包含多个机会。
You can change it back to where it was, but the critic was, but now you can still include multiple opportunities in a transaction.
然而,重点是,如果你把它改回,比如说83字节,那么即使你在一笔交易中放入多个机会,它们的总大小仍然只能是83字节。
However, the point is that if you if you do change it back to, let's say, 83 bytes, then if you then put multiple opportunities in a transaction, then their combined size can still only be 83 bytes.
所以,即使你更改了它,如果你出于任何理由真的想改回默认值,那仍然是对上层交易的实际限制。
It's So, not even if you change it, if you do change the default for whatever reason you may think you wanna do that, then that is still the actual limit for upper turns.
是的,你可以把它拆分成两个不同的上层交易,但在这种情况下,总大小仍然是83字节,对吧?
Yeah, you can split it up in two different upper turns, but it's still 83 bytes in that case, right?
嗯。
Mhmm.
是的,好吧。
Yeah, okay.
所以你之前说做出这个更改的原因是什么,我再次具体指的是你可以包含多个机会这一点。
So then why you said the change was made, and I'm talking again specifically about the the fact that you can include multiple opportunities.
这个更改是为了简化。
That was made as a simplification.
这就是你的方式
That's how you're
是的
Yeah.
我的意思是,这取决于你怎么看,我想。
I mean, depends on how you look at it, I guess.
但你知道,原本的设想是只能有一个,所以这个限制已经取消了。
But the, you know, the idea was there can only be one, so that restriction has dropped.
现在有多少个输出是机会都没关系了。
Now it doesn't matter how many outputs are opportunities.
所以规则简化了。
So it's the the rules are simplified.
不管代码里是不是真的简化了,这还有待商榷。
Whether that actually is simply in the code, that's debatable.
对吧?
Right?
现在你需要将总数与多个输出进行核对。
Now you have to check the total against multiple outputs.
只要这个选项存在,就总会有一些复杂性。
As long as the option is there at all, there's some complexity.
一旦你移除了这个选项,事情就会变得更简单,因为你根本不再统计它了。
As soon as you remove the option, it becomes simpler because you're just not counting it at all.
是的。
Yeah.
但现在,你知道,它必须被统计。
But now, you know, it has to count.
比如,看看第一个输出,看看第二个输出,看看第三个输出,然后当总数超限时再抱怨。
Like, look at the first output, look at the second output, look at the third output, and then complain when when something goes over it.
而且因为,你知道,我们在讨论的是一个策略规则,我再强调一下:如果您的节点收到一个包含交易的区块,而该交易的返回值超过了您当前设置的限制,您仍然会接受它,这并不适用于共识规则。
And because, you know, because we're talking about a policy rule, you know, just to repeat this point, it does not apply to the consensus rules if your node receives a block with a transaction in it that has, you know, bigger up returns than whatever setting you're you're switching it to, then you'll still accept that.
对。
Yeah.
事实上,一个区块可能包含一个四兆字节的操作符在单个交易中,对吧?这在新的比特币核心通过内存池的情况下甚至不可能实现。
In fact, you know, a block could contain a a four megabyte operator in a single transaction, right, which would not be even possible with the new Bitcoin Core over the Mempool.
是的。
Yeah.
所以一般来说,每个交易被限制在100千字节以内。
So this So each transaction is limited to a 100 kilobyte in general.
对。
Yeah.
因此,这个特定情况下技术上的新变化是,现在一个交易中可以有多个上限值,你可以设置任意大小,只要在该大小范围内,你的内存池就会接受并将其转发给其他节点。
So what is technically new in this specific instance is that there can now be multiple upper turns in a transaction on whatever size you want to put that setting, and then if it's within that size, you will accept it in your mempool and relay it to other nodes.
对吗?
Correct?
是的。
Yes.
再稍微多讲一点背景,为什么说——我的意思是,首先,如果这个设置被完全移除(这原本是最初的设想),实际上反而是一种简化。
And so just a little bit more background on why, you know, such as I mean, first of all, if there was if the setting was entirely removed, which was the initial idea, it's actually a simplification.
但由于这个设置仍然存在,我们仍然需要查看总和。
But because the setting is still there, we still need to look at the total.
所以你可以说这并不是真正的简化,但从长远来看确实是。
So you could argue it's not really a simplification, but it it is in the long run.
但这样做的另一个原因是,如果有人需要多个op_return,我不知道目前是否有人有这样的需求,但如果有的话,而我们仍然限制每个交易只能有一个op_return输出,那么就会促使人们绕过内存池,使用加速器,这会带来我们最初试图解决的中心化压力。
But another reason to do this is because if somebody has a need to have multiple op returns, and I don't know if anybody does at the moment, but if they do and we still have this limit of one upper turn transaction per upper turn output per transaction, then there is another incentive for people to go outside the mempool and to use accelerators, which creates the centralization pressure that we tried to solve in the first place.
是的。
Yeah.
关于这一点,我觉得值得一提的是,你提到我们不知道是否存在这样的使用场景。
And on on that point, what I also find interesting to sort of highlight here is that your reasoning you said we don't know if there's a use case for it.
可能有,也可能没有。
Maybe there is, maybe there isn't.
这本身已经引发了很多人的看法:除非你能证明有使用场景,否则就不应该做任何更改。
That in itself has drawn a lot of There seem to be a lot of people that feel that unless you can prove that there is a use case for it, you shouldn't make any changes.
而你,我同意你的观点,认为只要没有危害,那有什么问题呢?
While you, and I agree with you, see it more as, well, if there's no harm, if there's no harm, then what's the problem?
比如,如果没有危害,而且你简化了代码,那这看起来就是一种改进。
Like, if there's no harm and you simplify the code, then that seems like an improvement.
是的。
Yeah.
不过,我想在这种情况下,困惑来自于最初的想法是完全移除这个设置。
Though, I guess in this case, the confusion comes from is or potentially comes from is that initially the idea was to drop the setting entirely.
而因为我们现在并没有完全移除它,所以简化性的论点就没那么强了。
And because we haven't dropped it entirely now, simplicity argument isn't as strong.
但问题是,这些替代性用例如果等到它们已经完全部署并绕过内存池后再去处理,那时候你再取消限制,可它们早就已经绕过内存池了。
But, yeah, the the problem with these alternative use cases is if you wait until they're actually fully deployed and they go around the mempool because, you know, they're already deployed, now you lift the limit and well, they were already going around the mempool.
所以,你知道,它们为什么要改变什么呢?
So, you know, why would they change anything?
如果你一直追着这些事情跑,可能会为时已晚,而比特币核心每六个月才发布一次。
So you might be too late if you keep chasing these things, and Bitcoin Core only releases once every six months.
我们还有另一个话题会涉及类似的情况,那是对实际行为的回应。
And we'll have another topic on the list where something similar happens where it was a response to actual behavior.
所以我们当时是
So we were a
有点儿,所以如果你
little bit So so if you're
这次,我想。
this time, I guess.
是的。
Yeah.
对。
Yeah.
所以如果你对这些事情采取被动应对,实际上已经太晚了。
So if you you say if you're being reactive on these things, you're actually too late.
如果这样做没有坏处,那就最好现在就做,以防有人需要它。
And then if there's no harm in doing it, then it's better to just do it now in case someone might need it.
是这样吗
Is that
尤其是因为总数并没有改变。
Well, especially because, like, the total amount doesn't change.
对吧?
Right?
就像你说的,你可以把它分散到多个输出中。
Like you said, you can spread it over multiple outputs.
是的。
Yeah.
没错。
Yep.
好的。
Okay.
我们继续往下说吧。
Let's let's move on from that point.
任何专门来听关于机会戏剧内容的人现在可以关掉了,因为我们接下来要聊的是 Bingo 卡 30 中其他有趣且显著的改进。
Anyone who was listening specifically to hear more about the opportune drama can now switch off because we're gonna talk about other interesting notable improvements in Bingo card 30.
对吧?
Right?
或者你还有什么想说的吗?
Or was there anything else you wanted to say about this?
有的。
Yes.
但我只是调整了我们待办事项列表中项目的顺序。
But I was just changing the sequence of of items on our to do list.
好的。
Alright.
那我们来谈谈最低中继费用吧。
Let's talk about the minimum relay fee then.
因为这属于同一类改动,之后我们再转向完全不同的改动。
Because that's sort of in the same area of changes, and then we'll move on to completely different changes.
好的。
Okay.
非常重要的是要在谷歌文档中调整这一点,只有你和我能看到。
It was very important to adjust that in the Google Doc that no one else will see besides you and me.
很好。
Good
你做得对。
thing that you did that.
没错。
Exactly.
好的。
Okay.
所以,是的。
So, yeah.
这是另一项政策变更,好吧。
So this is another policy change, which okay.
因此,交易中包含的最低手续费现在可以更低,Bitcoin Core节点才会将其接受并中继给其他节点。
So that's the the minimum fee that is included in the transaction is now can now be lower before Bitcoin Core node will accept it in the mempool and relay it to other nodes.
对吧?
Right?
是的。
Yeah.
以前是每虚拟字节1聪。
So it used to be 1 Satoshi per v byte.
现在是每虚拟字节0.1聪。
Now it's a 0.1 Satoshi per v byte.
这就是人们开始这么做,而比特币核心不得不跟进的例子。
And this is a case of people start doing things, and Bitcoin Core has to follow.
否则,所有人都会绕过内存池。
Otherwise, everybody will go around the mempool.
所以发生的情况是,由于手续费市场如此成功,人们希望支付更低的手续费。
So what started happening is because the fee market is such an amazing success, yeah, people wanted to pay less fees.
而且,正如我所说,我目前不上社交媒体。
And well, like I said, I'm not on social media myself at the moment.
所以我的理解是,曾经有一个推特上的运动,鼓励人们各自将中继费用降低到原来的十分之一。
So but what my understanding is that there was sort of a Twitter movement to for people to individually configure their relay fee to go lower by a factor 10.
是的。
Yeah.
而这一直
And that was that was always
跟随了这个做法。
Followed that example.
所以确实是这样。
So that was Sure.
这在比特币核心中一直是可以实现的。
That was always possible with Bitcoin Core.
任何个人用户都可以自行降低主中继费用。
Any individual user could already lower the main Relay fee.
是的。
Yeah.
这只是一个更改设置的问题。
It's it's a matter of changing a setting.
请注意,如果你自己重新编译DeconCore,一切皆有可能。
Now keep in mind, everything is possible with DeconCore if you recompile it yourself.
但在这个情况下,这仅仅是更改设置的问题。
But in this case, it's it's just a matter of changing a setting.
是的。
Yeah.
因此,你已经可以将其降低到每字节1000分之一个Satoshi。
So you can already lower it to 1,000 of a Satoshi per fi byte.
嗯。
Mhmm.
不是更低了,因为内部处理的精度就是这个级别。
Not lower because the amounts internally are processed at that resolution.
嗯。
Mhmm.
所以如果你想再调得更低,就得做更多修改。
So you'd have to do some more changes if you wanna go even lower than that.
嗯。
Mhmm.
但我猜,是的,人们普遍设定了大约低10倍的值,一些矿工也跟着这么做了,这就意味着这些交易会被打包。
But I guess, yeah, people settled on about 10 x lower and some miners followed, and that means these things get mined.
但这意味着,如果你不更改默认设置,现在你可能会对哪些交易进入区块感到意外。
But that means if you don't change your default setting, now you're kind of surprised about what gets into blocks.
这种意外会影响紧凑区块中继等功能。
And that surprise hurts compact block relay among other things.
我们之前的一期节目讨论过紧凑区块中继,但总的来说,它的理念是:如果你要将一个区块发送给下一位节点——也就是你的某个对等节点——如果你知道他们内存池里有什么,你其实只需要发送区块头和交易的摘要,比如交易ID列表,而不是发送包含所有内容的完整区块。
So the we talked about compact block relay in our previous episode, but generally, the idea is that if if you already if you're sending a block to the next person down the line, to one of your peers, if you know what's in their mempool, you really only need to send the header of the block and a summary of the transactions, like a list of the transaction IDs rather than the full block with all its contents.
但如果你不知道别人内存池里有什么,因为他们更改了某些设置,你就不得不发送整个区块。
But if you're if you don't know what's in somebody else's mempool because they changed some setting, now you have to send the whole block over.
因此,这会导致全网的传播延迟。
And so this delays propagation network wide.
是的。
Yeah.
如果区块能够尽可能快地传播到整个网络,对网络的健康更有利,这就要求内存池能准确反映实际被挖出的区块。
It's it's better for the health of the network if blocks, you know, find their way across the entire network as fast as possible, and that requires that Mempools closely reflect the actual blocks that are being mined.
所以,如果出于任何原因区块开始变得不同——比如极低手续费的交易开始进入矿工的视野——那么让所有人采取一致的行为,对网络健康实际上更有利。
So, if for whatever reason the blocks start to look different, in this case, because very low fee transactions start to make their way to miners, then it's actually better for the health of the network that everyone, you know, adapts the same behavior.
在这种情况下,比特币核心(Bitcoin Core)也做出了相应调整,这同样与上一个话题密切相关:比特币核心决定允许更低手续费的交易进入内存池,并将其中继给其他节点,以便更好地使内存池与实际挖出的区块保持一致。
So in this case, Bitco in this case, N also very relevant to the upper turn issue, but in this case as well, Bitcoin Core has decided to allow lower fee transactions in the mempool and relay it to other nodes in order to better reflect the mempool with blocks that are being found.
总结得不错?
Good summary?
因此,这已经成为当前几个不同话题中的一个共同主题。
And so this has been a general theme now over a few different topics.
我们已经看到RBF、完整RBF的变更。
We've seen with RBF, full RBF, the changes.
我们也看到了OpReturn方面的变化。
We've seen it with OpReturn.
现在我们又在手续费率上看到了这种情况。
Now we're seeing it with the fee rate.
在不同情况下,回应也略有不同。
And the response has been slightly different in different cases.
在完全RBF的情况下,有人积极推动这一概念,发布了一个替代客户端,而比特币核心直到某些矿工或至少大部分矿工都在这样做,且紧凑区块中继被破坏后,才跟进。
So in the case of full RBF, you had somebody basically promoting that concept, releasing an alternative client, and then Bitcoin Core did not follow until at some point, all the miners or at least a large chunk of the miners were doing this and compact block relay was broken.
于是比特币核心说:好吧,我们开启RBF吧。
And so then Bitcoin Core said, okay, let's turn RBF on.
所以,可以说有点太晚了。
So arguably, was too late.
但因为我们已经出现了紧凑区块中继被破坏的情况,而且你知道,让这种中心化风险持续的时间越长,也许到某个时候,损害就不可逆转了。
But because we already had broken compact block relay and, you know, the the longer you let that sort of centralization risk exist, you know, maybe at some point, the damage is irreversible.
但在这种情况下,可能不会这样。
Probably not in this case.
好的。
Okay.
所以我们后来遇到了返回功能的情况,比特币核心开发者看到一个使用场景即将出现,试图提前应对。
So then we had the up return stuff where Bitcoin Core developers saw that a use case was imminent and tried to preempt it.
这引发了巨大的争议。
That caused an enormous amount of drama.
而现在,它处于一种中间状态:用户自发地改变了策略,而VipinCore则在一个月或两个月后才跟进。
And now it's kind of in between, like, this spontaneous change in policy by users, and VipinCore follows it just a month or two later.
是的。
Yeah.
我确实
I I do
我认为,对于如何最好地处理这个问题,其实并没有真正的共识。
think I it's I don't think there's really consensus on how to best deal with this.
比如这三种选择,你要么太早,要么太晚,要么恰到好处。
Like, these these three options, you can either be too early or too late or right on time.
而且在某些时候,可能会出现一种政策上的偏离,这种偏离是完全不可接受的,因为它会导致不安全,引发DOS问题。
And some and there might be at some point, there might be a deviation from from in policy that is simply not acceptable, as in it would just be unsafe, cause a DOS problem.
是的。
Yeah.
在那一点上,比特币核心团队除了提出共识变更,或者接受节点运行缓慢、存在漏洞或其他类似问题之外,别无选择。
And at that point, there's nothing Bitcoin Core can do other than propose a consensus change or just accept that nodes are slow or vulnerable or something bad like that.
我认为这并不是一种健康的发展,但人们总是会做他们想做的事。
So it's not a healthy development, I think, but people do what they do.
对吧?
Right?
这是一个开源的开放系统。
It's it's an open source, open system.
是的。
Yeah.
我认为这里有一个重要的观点需要强调,因为这充分说明了比特币核心项目是如何运作的:你知道,你们作为比特币核心开发者,并不把自己视为决定他人如何使用甚至应该使用该网络的权威。
And I think that's an important point to emphasize here because this says a lot about how the Bare Bittlacore project sort of operates is that, you know, you guys, you know, you are one of the Bitcoin Core developers, you don't see yourselves as authorities that decide how other people can or even should use the network.
人们发送什么样的交易、矿工挖掘什么样的交易,这些都不在你们的控制之中。
It's not in your control how people what kind of transactions people send or what kind of transactions miners mine.
Bigel Core 只能适应这种情况。
Bigel Core can only, you know, adjust to that.
所以,正如你所说,有几种方式可以应对,要么提前看到趋势时就行动,要么等到为时已晚才行动,这中间的平衡是个难题。
So and then, like you said, there are, like, a couple of ways to do that, which is either sort of, you know, do it in advance when you see it coming or only do it when it's kinda too late, and that's sort of the difficult aspects here to balance.
或者更糟。
Or or worse.
比如,你根本无法采取行动,因为可能会有无法接受的权衡。
Like, you can't do it at all because there might be some trade off that's really unacceptable.
是的。
Yeah.
但这也正是一个很好的例子。
But this so this is a good example of that as well.
用户已经开始转发极低手续费的交易。
Users were already starting to relay very low fee transactions.
矿工也开始打包这些交易。
Miners were already starting to mine that.
所以在这个版本中,Bitcoin Core 表示:好吧。
So then Bitcoin Core in this release said, okay.
我们打算降低手续费最低标准,以便更好地
We're gonna lower the fee minimum in order to better to
更好地接入比特币。
better access the Bitcoin.
我不认为这个改动特别糟糕,因为上次降低这个限制时,我记得当时的限制是每GB 10笔交易,或者可能是5笔,而如今比特币价格已经上涨了上万倍。
I don't think this change is particularly bad because the last time this limit was lowered, I think it was 10 sets per gigabyte in the past or maybe five, and the price has gone up ten ten thousand x.
所以如果你看这个问题,你必须把它看作是一种拒绝服务保护机制。
So if you look at this you you gotta have to look at it as as a DOS, like a denial of service protection.
如果最低手续费中继设置得太低,那么有人就可以用极低的成本让你和所有人消耗大量带宽。
If the minimum fee relay is too low, then somebody can just cheaply cause you to use a lot of bandwidth, everyone to use a lot of bandwidth.
对吧?
Right?
所以我认为多年前最初的计算是基于这样的考虑:好吧。
And so I think the initial calculation years ago was done on like, okay.
如果有人大量创建亚马逊笔记并开始向我们发送随机数据,你知道,这对他们来说成本是多少,而对整个生态系统来说成本又是多少?
If somebody spins a bunch of Amazon Notes and just starts flooding us with random data, you know, how much does it cost them versus how much does it cost the ecosystem?
对吧?
Right?
攻击者需要付出多少成本,而如果把每个人的节点成本加总起来,他们浪费了多少社区资源?
How much cost does the attacker have and how much resources of the community are they wasting if you add up everybody's node costs?
所以我认为我们在这个权衡中仍然处于安全的一侧,对攻击者来说成本很高。
And so I think we're still quite on the safe side of that equation, where it's expensive for the attacker.
他们需要花费相当多的聪来促使人们消耗带宽。
They need to spend quite a lot of SATs to cause people to use bandwidth.
是的。
Yeah.
好的。
Okay.
关于这一点,我还想最后提一下,因为我注意到在图形界面中发生了这个变化。
One last note on this point because I noticed that in the GUI GUI that change.
是的。
Yeah.
所以在用户界面中,这个更改并不适用。
So in the user interface, that change is not does not apply.
比如,如果你想发送交易,最低手续费仍然和以前一样。
Like, the minimum fee if you want to send the transaction is still the same as it ever was.
对吧?
Right?
从技术上讲,是钱包不受影响。
Technically, it's the wallet that's unaffected.
所以这个钱包既可以在图形界面中使用,也可以通过命令行使用。
So the wallet can be used in the GUI and from the command line.
当然。
Sure.
你会惊讶于有些人确实通过命令行使用它,而且他们很喜欢。
You'd be surprised some people use it from the command line, and they like it.
但是,嗯,就我所知
But, yeah, I as far as I
我知道,我对这个没问题。
know, I'm good with it.
钱包仍然将每个视图字节设为最低费用。
The wallet still has one set per view byte as a minimum.
我认为你可以手动将其设置得更低。
I think you can manually set it lower.
但我猜测钱包会在下一个版本中跟进。
But my guess is the wallet will follow in a in a next in a later release.
对吧?
Right?
你得确保网络确实中继你的交易,因为假设我们现在把钱包改成使用0.1聪每字节,你启动GUI时,可能只有五个节点,而它们都没有这个自定义设置。
You kinda wanna make sure that the network actually relays your transaction because let's say we change the wallet now to use this 0.1 SAT per byte, and you start your GUI, and you have maybe five peers, and none of them, you know, have this custom setting.
因为你知道,很多人确实这么做了,但不是所有人都这么做。
Because, you know, a lot of people do, but not everybody does.
所以你可能根本连接不到使用这个设置的人。
So you might not be connected to anyone who does.
所以你发送了每字节0.1聪的交易费用,但你的节点却直接拒绝了它。
So you sent your 0.1 per fee by transaction, and it just gets rejected by your peers.
而且他们根本不会告诉你交易被拒绝了。
And they don't tell you it's rejected.
你只是发送了交易,然后关掉钱包去睡觉,第二天早上却纳闷:为什么这笔交易还没确认?
So you just you send it, you close your wallet, you go to sleep, and the next morning, you're like, why isn't this confirmed yet?
这是因为你的交易根本没传出去——你只打开了钱包五分钟,而你的所有节点都没接受你的交易。
It's because it never went anywhere because you only had your note open for five minutes and nobody none of your peers accepted your transaction.
所以在钱包设置上,你最好还是保守一点。
So you kinda wanna be a bit conservative when it comes to the wallet.
但如果你真想这么做,也可以手动调整。
But I think you can just do it manually if you if you want to.
对。
Right.
从这个意义上说,你知道,Bitcoin Core 实际上也会根据网络上的情况做出调整。
So in that sense, you know, Bitcoin Core actually also adjusts to the situation on the network.
只有当它有很大可能性能够成功通过网络时,才会在钱包中实现。
It will only be implemented in the wallet once there's a good enough likelihood that it will actually make its way through the network.
是的。
Yeah.
而且,当然,Bitcoin Core 中负责钱包开发的人数非常少,这本身就是一个瓶颈。
And, of course, there's also a bottleneck of just that very small number of people that work on the wallet in general in Bitcoin Core.
我认为我们还没有适应新的 RBF 现状,比如这一点。
I don't think we've adjusted the new RBF to we I don't think we've adjusted to the new RBF reality yet, for example.
怎么会这样?
And there's some How so?
你不能在 Bitcoin Core 中使用 RBF。
You can't use RBF for Bitcoin Core.
对吧?
Right?
是的。
Yeah.
比特币核心钱包多年来一直为钱包交易设置RBF标志。
Well, Bitcoin Core Wallet has been setting the RBF flag for wallet transactions for many years.
嗯。
Mhmm.
我们不再需要了,因为已经取消了。
We don't have to anymore because it's gone.
对。
Right.
但我认为这么做也没什么坏处。
But there's also no harm in doing it, I guess.
不。
No.
而且实际上,关闭它反而会有害
And and well, there's actually harm in turning it
展开剩余字幕(还有 453 条)
关闭。
off.
隐私?
Privacy?
是的。
Yeah.
你可以
You can
如果我们更改这个,就能看到谁升级了。
see who upgraded if we change this.
也许类似的情况也适用于手续费率。
And maybe something similar applies to fee rates.
如果我们突然取消它,就能看出谁升级了。
If we suddenly drop it, then you can see who's upgraded.
所以我不确定那里正确的做法是什么。
So I'm not sure what the right path is there.
对。
Right.
好的。
Okay.
我们继续下一个议题吧。
Let's move on to the next point.
不错。
Cool.
实际上,我认为这里还有一个政策问题。
Actually, I think this is also there there's another policy issue.
有一个新的政策规则。
There's a new policy rule.
如果我说得不对请纠正我,但有一个新的政策规则,限制每笔交易或每输出的签名操作次数,SIGOps?
Just correct me if I'm saying anything wrong, but there's a new policy rule that restricts the number of signature operations, SIGOps, per transaction or no, per output?
对吧?
Right?
是的。
Yeah.
我们曾经在第93期节目中详细讨论过关于共识清理与恢复软件的提案,该提案旨在应对时间扭曲攻击。
So we did a whole episode 93 about the great consensus cleanup restoration software proposal, which deals with time warp attacks.
SoftWark提出的一种攻击方式是防止有人创建一笔交易,需要在树莓派上耗时一个半小时来——抱歉,是创建一个在树莓派上需要一个半小时才能生成的区块,对吧?
And one of the attacks that SoftWark proposed SoftWark is trying to deal with is preventing somebody from making a transaction that takes like an hour and a half on a Raspberry Pi to oh, sorry, to create a block that takes an hour and a half on a Raspberry Pi to Right.
嗯。
Mhmm.
而在现代计算机上可能需要几分钟。
And maybe several minutes on a on a modern computer.
因为如果一个恶意矿工生成了这样的区块,他们就能拖慢竞争对手的进度,从而获得领先优势。
Because if if a if a malicious miner produces such a block, they can stall their competition and maybe get a head start out of that.
而这一问题的解决方案正是依赖于这一特定规则。
But in and and the way that was fixed involves that particular rule.
所以这个每笔交易2500个SIGOps的限制,我认为是针对每笔交易的。
So this this 2,500 SIGOps limit per I think it's per transaction.
好的。
Okay.
所以简单说一下,它的意思是,如果我理解得没错,你可以创建一个交易或一个输出,但你不确定到底是哪一个?
So just say what it what it is, it means, basically, if I understand correctly, you can make a transaction or an output with what so you're not sure which of the two it is?
它到底是交易还是输出?
It's either a transaction or an output?
我觉得是每个交易限制,但你要统计的是输入和输出中的SIGOPs。
I I think it's it's per transaction, but what you're counting is you're counting SIGUPs in the inputs and in the outputs.
好的。
Okay.
所以一个交易中最多只能有2,500个签名,对吧?
So that can be a maximum of 2,500 signatures basically in a transaction then.
对吗?
Right?
这就是它的意思。
That's what that means.
我
I
是的
Yeah.
签名操作略有不同。
Signature operations is slightly different.
例如,多重签名的旧式多重签名或裸多重签名,正如我们所称的那样。
So for example, a multisig legacy multisig or bare multisig as as we called it.
我认为它算作20次左右。
I think it counts as 20 or something like that.
我对这里的细节有点模糊,但基本上,这是对签名操作数量的限制。
I I'm a little fuzzy on the details here, but basically, it's a limit in the number of signature operations.
任何合理的交易都不会超过这些限制。
No sane transaction would actually go over those limits.
比如,有
Like, there's
因为不是几百,而是几千。
Because no because it's thousands.
是的。
Yeah.
对。
Yeah.
没错。
Exactly.
你需要一种非常、非常疯狂的多重签名。
You'd need a very, very insane kind of multisick.
所以,唯一会发起这种交易的人,要么是试图攻击网络的人,要么是做实验的人。
So the only people who would be making such a transaction are people trying to DOS the network or people doing experiments.
我认为历史上确实有过一些实际违反这些限制的案例。
I think there were some historical examples of of of these actually violating them.
好的。
Okay.
所以现在,如果你发起一笔包含3000个SIG OPS的交易,那么
So right now right now, if you make a transaction with 3,000 SIG OPS, well,
仍然可以是3000个SIG OPS。
can still be 3,000 SIG OPS.
是的。
Yeah.
对。
Yeah.
它仍然可以被打包进一个区块中。
It can still be mined in a block.
它仍然是共识有效的。
It is still consensus valid.
对吗?
Correct?
是的。
Yeah.
这一点不会改变。
And that doesn't change.
对吧?
Right?
这是一个策略变更。
This is a policy change.
是的。
Yeah.
所以你现在不能再中继它了。
So it's like you can't relay it anymore.
对。
Right.
如果有人向你发送这样的交易,而你正在运行比特币核心30版,那么你将不会把它包含在你的内存池中,也不会中继给其他节点。
So if if someone sends a transaction like that to you and you're running Bitcoin Core 30, then you're gonna not include that in your mempool and not relay it to other nodes.
但如果它在区块中,那仍然没问题。
But if it's in a block, again, then that's still fine.
是的。
Yeah.
这个团队的存在是为了保护未来的矿工。
And this team is there to protect future miners.
它并不是真的为了保护网络,因为我不认为它们会那么糟糕。
It's not really there to protect the network because I don't think they're that that terrible.
但对于未来的矿工来说,当且仅当这成为软分叉时,它就成为了共识。
But a future miner, when when and if or if and when this becomes a soft fork, then it is consensus.
我们不希望矿工意外地挖出这个东西。
And we don't want a miner to accidentally mine this thing.
所以这是其中一个原因。
And so that's one of the reasons.
政策规则的目标之一就是防止意外挖出某些内容。
That's one of the goals of policy rules is to prevent accidentally mining something.
矿工那里有一个标准交易。
The miner does there's a standard transaction.
他们永远不会看到它。
They'll never see it.
他们永远不会挖出它。
They'll never mine it.
对。
Right.
所以这是为了预期可能在未来发生软分叉,提前让网络行为朝那个方向发展。
So it's kind of in anticipation of hopefully, potentially a future soft fork to already sort of Yeah.
你知道,推动网络行为朝那个方向发展,这样当软分叉发生时,它只是一个相对较小的改动,不会引起太多问题。
You know, push network behavior kind of in that direction so that when the soft fork happens, then it's a relatively small change that can't really cause too much problems essentially.
对吧?
Right?
是的。
Yeah.
没错。
Exactly.
你希望软分叉对用户和矿工来说都尽可能安全。
You want soft forks to be as safe as possible for users, but also for miners.
是的。
Yeah.
而且我认为这也关联到另一个观点。
And I think also so that ties in with, I guess, another point.
我们似乎又稍微回到了Oprethorn问题上。
We we do apparently keep getting back a little bit to the Oprethorn issue.
总体而言,我认为Bitcoin Core项目的目标是尽可能消除策略规则,使节点接受和中继的内容尽可能接近实际的共识规则。
As a general sort of direction, I think the goal of the Bitcoin Core project is to essentially, you know, as much as possible, just get rid of policy rules and make what nodes accept and relay as close as possible to the actual consensus rules.
对吗?
Is that correct?
有一种理念认为,策略和共识应当趋同。
There is a there is a philosophy that says that policy and consensus should converge.
是的。
Yeah.
没错。
Exactly.
我不知道这是否现实,但其中一个原因是,策略的一个目标是升级钩子。
I don't know if that's realistic, but and one of the reasons is that one of the goals of one of the one of the use cases for policy is upgrades, upgrade hooks.
嗯。
Mhmm.
升级钩子的意思是,比如SegWit版本二、三或四目前不是标准的,因此不会被中继。
Upgrade hooks means that, say, SegWit version two or three or four currently is not standard, so it will not be relayed.
但它在共识上是有效的。
But it is consensus valid.
只是如果你挖出它,它就没有意义。
It's just that if you if you mine it, it has no meaning.
所以这是一种我们不希望它们相同的情况,因为那样你就永远无法升级。
And so that's a case where we don't want them to be the same because you would never be able to upgrade.
当然。
Sure.
是的。
Yeah.
对,是的。
I yeah.
所以我理解你的理念,你不想设置那些有些人称之为教条的限制,比如交易大小限制或RBF机制。
So I get the I get the philosophy of like you you don't wanna have these pedantic limits as some people would call them, like the opportune size or RBF things.
嗯。
Mhmm.
但我认为,说共识和策略不能完全一致是不对的,因为那样的话,你将永远无法对比特币进行升级。
But it's not I don't think it's true that consensus and policy cannot be identical because you would never be able to upgrade Bitcoin anymore.
是的。
Yeah.
是的。
Yeah.
你仍然得为……留出空间
You still gotta leave the room for
一个币。
a coin.
或者你会根据情况说,你可能会让它变得完全不安全。
Or you'd make it depending on how you could also say, well, you'd make it completely unsafe.
所以你也可以这么说,那就直接允许SegWit版本三中继,别管它了。
So you could also say, well, let's just allow SegWit version three relay and not worry about it.
但那样的话,人们可能会不小心伤害自己,把钱转出去,因为你可能会得到一个B C 1 f地址,这可能是未来的某个SegWit版本。
But then people can shoot themselves in the foot and give away their money because you would get a B C 1 f address, which might be some future SegWit version.
我不知道字母f对应的是什么。
I don't know what the letter f maps to.
嗯。
Mhmm.
你会直接把钱发到那个地址,钱就消失了,甚至不会落到任何人手里。
And you would just send to it, that money would just disappear, and it wouldn't even go to anyone.
好的。
Okay.
为了给我们的听众一个大致的概念,因为现在的限制是2500。
What's just to give our listeners a sort of rough idea because so now the limit is 2,500.
正如你提到的,这个数字远远超过任何人实际使用时可能需要的量。
Like you mentioned, that is probably far beyond anything that anyone would ever use for any real reason, essentially.
嗯。
Mhmm.
这对一个节点实际上会产生什么影响?
What kind of impact does this actually have on a note?
假设这个限制被触及了。
Let let's say this limit is touched.
比如,有一笔交易确实包含了2500个SIG操作。
Like, there is a transaction that actually has 2,500 SIG ops.
我们说的是这笔交易会让你的节点卡顿一秒钟,还是连一秒钟都不到?
Are we talking about a transaction that's gonna stall your note with like a second or not even that?
或者大致的范围是怎样的?
Or what what's what's sort of ballpark
你有没有考虑过?
do haven't think about?
我看过具体的数据,但我觉得影响可以忽略不计。
Looked at the exact numbers, but my guess is it's negligible.
对于单笔交易来说,这非常安全。
Like, this is very safe for individual transactions.
其中一个原因是,还有一个策略限制,将交易大小限制在100,000千字节以内。
And one of the reasons is that the policy there's another policy limit which limits transactions to a 100,000 kilobytes.
嗯。
Mhmm.
而且
And
所以我认为,真正更危险的是这些高数量的SIGOps与超大交易的结合。
so my guess would be that the combination of these these high numbers of SIGOps and a very large transaction are what what really is more dangerous.
你必须记住,比特币中存在这种二次方现象。
You gotta keep in mind that we have this quadratic phenomena in Bitcoin.
所以二次哈希,这就是SegWit解决的问题,但传统交易仍然如此。如果简化来看,两个各一KB的交易,每个都有一次不良计算。
So quadratic hashing, that's what solve a SegWit, but legacy transactions still If you simplify it, two transactions of one kilobyte have like one bad each.
对吧?
Right?
加起来就是两次不良计算。
It adds up to two bad.
但如果你做一个两KB的交易,可能会变成四次不良计算。
But if you make a two kilobyte transaction, it might be four bad.
这是不良计算乘以不良计算。
It's it's bad times bad.
是的。
Yes.
所以,如果是一个大交易,其危害远大于多个小交易的二次叠加。
So if it's one big transaction, it's much worse than several small transactions quadratically.
因此,这可能就是为什么单个交易违反这个策略限制不会构成问题,但矿工却可能包含一个更大的交易。
And so that's probably why, like, in an individual transaction violating this policy limit is not gonna be a problem, but a miner could include a bigger one.
对。
Right.
但无论如何,总结一下,一个包含2500个SIG操作的交易,实际上根本不可能有真正的使用场景,但同时仍在安全范围之内。
But in any case, you know, to summarize this, you know, a transaction that has 2,500 SIG ops is both very impossible to be used for any real reason while at the same time also still well within sort of safety limits.
所以这就是为什么至少这个数字是大致这么选定的。
So that's why at least that's a ballpark that number was picked.
对吧?
Right?
是的。
Yeah.
而且总的来说,这种共识清理的想法是为了缓解最坏情况,同时不没收任何合法用途,也不会接近合法用途。
And and in general, you'll the idea of this consensus cleanup thing is to mitigate the worst case scenario without confiscating any legitimate use case or getting anywhere near legitimate use cases.
是的。
Yeah.
所以这里存在一种权衡。
So there is a trade off.
你可能无法完全解决,仍然会存在验证速度较慢的区块,但不会那么慢。
You might not be able to solve There might still be blocks that are slow to validate, but not as slow.
你不可能做到完美解决方案,因为那样可能会危及到某些非常隐蔽但仍可能真实存在的使用场景。
You can't make it you can't have a perfect solution because then you're gonna start risking that you confiscate somebody's very obscure, but still potentially real setup.
是的。
Yeah.
好的。
Okay.
我们继续下一个议题。
Let's move to the next point.
另一项改进是单父单子的孤儿区块处理,或者在这方面有所提升。
And other improvement is one parent, one child orphanage, or there's something improved in that sense.
你能提醒我具体是什么吗?
Can you remind me what it is?
是的。
Yeah.
我们在之前的节目中已经讨论过这一点,但简要回顾一下:单父单子交易和交易包对像闪电网络这样的工具特别有用。
We have covered this in previous episodes, but a quick recap is that one parent, one child transactions, packages are useful for especially tools like Lightning.
在闪电网络中,当两个人建立了一个通道时,他们需要就强制关闭交易或惩罚交易达成一致。
So in the Lightning Network, when two people have a channel, they need to agree on the on a forced closed transaction or a penalty transaction.
基本上,就是你可以单方面关闭通道的交易。
The basically, the transaction that you can unilaterally close the channel with.
所以,如果你和我有一个通道,而其中一方离线了,我们各自都有一笔交易,可以在不与对方沟通的情况下关闭通道。
So if if you and I have a channel and one of us is offline, we both have a transaction to close the transaction without talking to the other side.
是的。
Yeah.
但我们必须决定这笔交易中包含多少手续费,而我们无法预知未来手续费会是多少。
But we have to decide how much fees go into that transaction, and we don't know how much fees the future is gonna hold.
因此,这一直是闪电网络中的一个复杂问题。
So that's always been a bit of a complexity in Lightning.
解决这个问题的通用方案是锚点交易,即允许你稍后添加一个子交易。
And the general solution to that is anchors where you, like, allow yourself to add a transaction later, a child's transaction later.
嗯哼。
Mhmm.
当时有不同的机制来实现这一点,但很多都遭受了钉住攻击——你添加了一个交易,但别人又添加了另一个,导致你无法提高手续费,交易永远无法确认,结果就来不及了,人们就崩溃了。
And there were different mechanisms to do that, and a lot of them suffered from pinning attacks where, like, you would add a transaction, but somebody else would add another one, and and you wouldn't be able to bump it, and it would never get confirmed, and you'd be too late, and people cry.
但后来人们提出了‘瞬态尘埃’的概念,这可不是芬兰金属乐队,它允许你创建一个手续费为零、金额为零的输出交易。
But then we people came up with the concept of ephemeral dust, which is not the Finnish metal band, which basically lets you make a transaction with a zero fee, zero amount output.
然后子交易花费这个零手续费、零金额的输出,并在最后一刻支付所需的任何手续费。
And then the child spends that zero fee, zero transaction output and pays whatever fee is necessary and can decide that at the last moment.
是的。
Yeah.
而要做到这一点,当然你需要添加一些自己的币。
And and to do that, you, of course, have to add some of your own coins then.
基本上,你是在将这个零金额输出与你自己的一些真实比特币一起花费给自身,并在新交易中包含手续费。
Basically, what you're doing is you spend that zero amount output to yourself in combination with some real money Bitcoin sets that you're sending to yourself, and you include a fee in that new transaction.
因为这是一个新交易,你现在可以准确知道应该包含多少手续费,才能在合理时间内确认。
And if that you know, now now because this is a new transaction, you basically know exactly how much fees you're supposed to include for it to confirm within a reasonable time.
是的。
Yes.
而且你可以替换它,是的。
And you can replace it Yeah.
如果手续费立即上涨的话。
If fees go up immediately.
所以这是一个不错的解决方案。
So so that's a nice solution.
通常情况下,你不允许中继一个手续费为零、完全没有手续费的交易。
Normally, you're not allowed to relay a transaction that has a zero fee, zero that has no fees in general, of course.
这样的交易不会被中继。
That's not gonna relay.
嗯。
Mhmm.
拥有一个零金额的输出也不会被中继,因为我们有尘埃限制。
And having an output with a zero amount is also not going to relay because we have a dust limit there.
嗯。
Mhmm.
所以想法是,你可以将它们作为一个交易包中继,即一个子交易和一个父交易。
So the idea is that you can relay them as a package, a one child, one parent transaction.
因此,这是一种临时的尘埃,因为尘埃确实存在,但它被立即花费了,并且总是以一对的形式在同一区块中出现。
So it's ephemeral dust because the dust exists, but it's immediately spent, and it always goes as a pair in the same block.
所以区块本身不会产生任何尘埃。
So the block never creates any dust.
只有交易本身会。
Only the transaction does.
是的。
Yeah.
它就是那个零零交易,其输出在同一区块中被立即花费。
It's it's the the zero zero set transaction is immediately or output is immediately spent in the same block.
它只是立刻消失了。
It's just it's immediately gone.
对吧?
Right?
这就是重点。
That's the point.
是的。
Yeah.
那么BitCover 30有什么改进?
So what's the improvement in BitCover 30?
改进在于,这个底层机制依赖于一个叫做“孤儿池”的东西。
The improvement is that this this mechanism under the hood relied on something called the orphanage.
孤儿池是BitCover用来识别的一种方式:嘿。
And the orphanage is a way for BitCover to see, hey.
我刚收到一笔新交易,但我不知道它的父交易是什么。
I just got a new transaction, but I don't know what the parent is.
所以我先暂时保留它,然后向对等节点询问父交易。
So I'm just gonna keep it for a little bit and then ask the peer for the parent.
所以
And so
因此,孤儿池专门用于那些通过点对点网络到达你这里、但你无法在区块链上看到其来源的交易。
So the orphanage is specifically for transactions that do make it to you over the peer to peer network, but you don't see basically where it's coming from on the blockchain.
它它
It it
是的。
Yeah.
它并没有花费任何你知道的币。
It's not spending anything you know.
所以你会问:告诉我它的父交易是什么,然后父交易发送,对等节点就会把它发送给你。
So you ask you're like, tell me what the parent is, and the parent sends sends and the peer sends it to you.
对。
Right.
对。
Right.
这个机制自29版本以来就一直存在了。
That mechanism has, you know, has been around now for, I think, since version '29.
这个机制的问题在于,它非常容易受到攻击。
The problem with that mechanism is that it's very easy to attack.
你可以通过无限的子交易来淹没孤儿池,这些交易完全可以是垃圾交易,因为它们知道无法判断一个子交易是否真实。
So you can flop the orphanage basically with infinite child transactions just that can just be complete garbage transactions because they know there's no way to know that a child is a real transaction.
嗯。
Mhmm.
所以,如果你知道你想影响哪个节点,你只需向他们大量发送孤儿交易,这几乎是免费的。
So it's essentially free to you know, if you know what peer you want to influence, you just, you know, just flood them with with orphans, basically.
这是一个先进先出的系统。
And it's a first in first out system.
一旦孤儿池中有100个孤儿交易,你就可以全部替换掉它们,这样就再也没有孤儿交易了。
So once a 100 orphans are there, you just replace all 100 of them, and there's no orphans anymore.
因此,这个中继机制是无效的。
And so this relay mechanism doesn't work.
所以在闪电网络的场景中,如果你试图攻击你的交易对手,并且大致知道他们连接了哪些节点,
So I guess in the lightning scenario, if you if you are trying to attack your counterparty and you roughly know what peers they're connected to,
也许你可以
maybe you
向他们的孤儿交易池发起轰炸,使他们的对手无法发出惩罚交易。
can blast their orphanages out, and then your peer will not be able to get their penalty transaction out.
类似这样的情况。
Something like that.
这就是潜在的风险。
That would be the risk.
是的。
Yeah.
那问题出在哪里?
So what's the deal?
所以版本30大大增强了孤儿交易池的强度。
So version 30 makes the orphanage a lot stronger.
它基本上——我不太了解完整的机制,但简而言之,假设你有10个节点,如果其中一个节点不断向你发送大量孤立交易,你并不会直接全部丢弃它们。
It basically well, I don't understand the full mechanism, but it boils down to if if one one of your let's say you have 10 peers and one of your peers starts misbehaving by sending you tons and tons of orphans, you're not just going to flush them all.
只有当另一个节点也向你发送了相同的孤立交易时,你才会保留它。
You're only if if another peer also sends you that orphan, you're gonna hold onto it.
因此,这里有一个更好的账务系统,使得攻击孤立交易池变得更加困难。
So there's just a better accounting system that makes it more difficult to attack the orphanage.
比特币核心在保护孩子们。
Bitcoin Core is protecting the kids.
没错。
Exactly.
是的。
Yeah.
对。
Yeah.
保护孩子。
Protect the children.
好的。
Okay.
所以,孤儿池现在更健壮了。
So the orphanage is more robust now.
下一个点?
Next point?
是的。
Yes.
有一个比特币命令,但我认为这有点太技术宅了。
There's a Bitcoin command, but I think that was a bit too nerdy.
我不知道你是否在意这个。
I don't know if you cared about it.
哦,是的。
Oh, yeah.
不。
No.
不。
No.
不过你尽管说吧。
Go for it, though.
是的。
Yeah.
一个命令来统领所有。
One command to rule them all.
以前有Bitcoin D、Bitcoin QT、Bitcoin,也就是Bitcoin d和Bitcoin QT,基本上是这样。
So there used to be Bitcoin D, Bitcoin QT, Bitcoin well, Bitcoin d and Bitcoin QT, basically.
然后还有一些即将推出的更改,会加入Bitcoin node和Bitcoin GUI。
And then there's some other changes coming up that would add Bitcoin node and Bitcoin GUI.
而且,其他开发者也说,好吧。
And, you know, other developers are like, okay.
这变得越来越混乱了。
This is becoming a confused mess.
有人下载了比特币,看到有15个以比特币开头的命令。
Somebody downloads Bitcoin, and they see, like, 15 commands that start with Bitcoin.
现在该怎么办?
What to do now?
所以解决方案是增加一个名为比特币的命令。
And so the solution is to add another command, which is just called Bitcoin.
你调用这个命令,然后告诉它具体要调用哪个其他命令。
And and you call that command, and then it and you tell it what what what else to call.
它有一个文档说明。
So it has a it has a documentation.
你输入比特币 node。
You call Bitcoin space node.
它会启动比特币d。
It starts Bitcoin d.
一共有15种标准。
There are 15 standards.
这标准太多了。
That's too many standards.
我们需要一个统一所有标准的标准。
We need a standard to rule them all.
现在有16个标准了。
Now there are 16 standards.
是的。
Yeah.
没错。
Exactly.
所以
So
这是给那些用命令行的极客准备的,但正如你所说,命令行对我来说根本不存在。
this is for nerds that use the command line, which as as you said, is I command line doesn't exist for me.
如果它不在图形界面里,那我就当它不存在。
If it's not in the GUI, sure, so I'm not aware of its existence.
我不在乎这个,但这是给像你这样的人用的,不知为何他们更喜欢用命令行。
I don't care about it, but this is for those people like yourself that, for some reason, prefer to use that.
对吧?
Right?
是的。
Yes.
好的。
Okay.
嗯,这类用户可能只是少数。
Well, such user might be a minor.
当然。
Sure.
我的意思是,我相信有很多人使用它。
I mean, I'm I I I I'm sure there's a lot of people that use it.
只是
Just
嗯,这只是一个过渡到下一个话题的桥梁。
Well, that that was a bridge to the next topic.
哦,你真聪明。
Oh, so you're clever.
IPC挖矿接口。
IPC mining interface.
是的。
Yeah.
我不记得这是什么了。
I don't remember what this was.
告诉我。
Tell me.
是的。
Yeah.
所以告诉我,我们之前几期聊过Stratum v2。
So tell me what we're We talked about Stratum v two a couple episodes ago.
我们确实有,是的。
We had, yeah.
嗯,我们确实讨论过。
Well, we did.
我认为在多个集里都提到过。
I think in multiple episodes.
一直有个想法,就是去中心化挖矿。
There has been the idea of, well, decentralizing mining.
Stratum v2 就是一种实现方式。
Stratum v two is one way to do that.
它首先增加了加密功能,还允许单个矿工创建自己的模板,从而实现一定程度的分离,你知道的?
It adds encryption for one thing, and it also adds the ability to add to for individual miners to create their own plug templates to kinda separate you know?
而这正是
And that is
主要是作为一种去中心化矿池的方式。
mostly It's basically a way to decentralize mining pools.
对吧?
Right?
矿池,是的。
Pool Yes.
矿池中的矿工可以自行决定在区块中包含什么内容。
Miners on a pool can, for themselves, decide what they put in blocks.
是的。
Yeah.
这主要存在于比特币核心之外。
And this mostly exists outside of Bitcoin Core.
有一个名为Stratum参考实现(SRI)的项目。
There's a particle called the Stratum Reference Implementation, SRI.
嗯。
Mhmm.
他们开发了各种软件工具,比如运行你自己的矿池、在Stratum v1和Stratum v2之间转换、创建自己的区块模板等。
They make all sorts of software tools, like, to run your own pool, to convert between Stratum v one and Stratum v two, to make your own block templates, etcetera.
但他们确实需要 Bitcoin Core 来做一件事,那就是生成区块模板,以及在找到区块时提交解决方案。
But they do need Bitcoin Core for one thing, which is to make the block templates and also to send the the the solution if you if you find a block.
这一部分被称为模板提供者。
And this this part is called the template provider.
因此,在最初制定规范时,设想的是由 Bitcoin Core 作为 Bitcoin 的模板提供者,只是要
And so the original idea was for when the spec was written, was for Bitcoin Core to be the template provider for Bitcoin Just to
为了明确这一点,模板基本上就是指进入区块的所有内容。
to be very clear about this, templates basically just means everything that goes into a block.
是的。
Yeah.
除了区块的解决方案之外。
Except the solution for it.
是的。
Yeah.
除了那些无意义的东西。
Except the nonsense.
除了哈希。
Except the hash.
是的。
Yeah.
当然。
Sure.
还有支付相关的内容。
And and the payout stuff.
是的。
Yeah.
所以 Bitcoin Core 擅长生成模板,但问题是,为了让 Big Concord 做到这一点,它必须支持 Stratum v2 协议。
So Bitcoin Core is good at making templates, but the the problem was that in order for Big Concord to do this, it would have to speak the stratum v two protocol.
因此,它必须支持相同的加密标准和新的消息格式。
So it would have to support the same encryption standards and new messages.
因此,我和一些其他人实现了这个功能,但当时对添加这些额外的复杂性、增加这些加密方法、监听端口以及处理消息等,存在一些阻力。
And so this was implemented by me and a few others, and there was some resistance to adding basically, to adding all this extra complexity, adding these these extra cryptographic methods and listening to ports and processing messages, etcetera.
于是我们达成了一个妥协:让比特币核心通过我们称为IPC(进程间通信)的协议进行监听,它并不直接支持Stratum v2,但能够支持Stratum v2所需的那些消息,或者提供Stratum v2所需的信息。
So then a compromise was reached, which is that, well, we'll have Bitcoin Core listen on a protocol we call IPC, interprocess communication, and it's not directly supporting Stratum v two, but it does support the messages that Stratum v two needs, or it can give the information Stratum v two needs.
它可以提供区块模板。
So it can give a block template.
它可以推送区块模板等等。
It can push a block template, etcetera.
这就是比特币核心第30版所实现的内容。
And so that's what in the that's what in that's what's in version 30 of Bitcoin Core.
然后你可以使用一个独立的应用程序连接到比特币核心,将这些信息实际转换为Stratum v2的协议语言。
And then you can use a separate application to connect to Bitcoin Core and actually basically translate this to the actual Stratum v two language.
对。
Right.
让我复述一遍,看看我有没有理解对。
So let me repeat this back to you and see if I get it.
所以Stratum v2本质上是一个独立的项目。
So stratum v two is basically a different project.
这是一个专门用于挖矿的项目。
It's a mining specific project.
它为矿池提供了一种方式,使其能够去中心化部分运营,特别是单个哈希算力用户,也就是矿池的矿工。
It's like it says set a way for mining pools to decentralize part of their operations, namely individual hashers, you know, users of the pool miners.
他们可以决定哪些交易被打包进区块,但为此,他们需要使用比特币核心来获取网络上的交易信息等,并利用这些信息来构建区块。
They can decide what goes into a block, which transactions go into a block, but for that, they would actually use Bitcoin Core to, you know, hear what transactions are on the network, etcetera, and use this to construct essentially the block.
现在,有一种桥梁或方式可以连接到Stratum v2协议,从而使整个系统协同工作。
And then now there's kind of a a bridge, a way to connect with the stratum v two protocol in order to make it all work.
这个总结够准确吗?
Is that a good enough summary?
是的。
Yeah.
对,没错。
So yeah.
完全正确。
Exactly.
所以,在VaconCore和整个Stratum v2生态系统之间有一个桥梁,它使用了这个新的IPC系统。
So there's a bridge between VaconCore and the rest of the stratum v two ecosystem, and it uses this new IPC system.
对。
Right.
这个系统原本是为完全不同的目的设计的,即进程分离。
So was intended for something completely different, namely the separation of processes.
它的设计目的是将节点与钱包和图形界面分开,这样如果其中一个崩溃,其他部分也不会崩溃。
So it was designed to split the node from the wallet and from the GUI so that if one of them crashes, the other doesn't crash.
我们可能仍然会这么做,但目前我们基本上是重新利用了这个工具。
And it might we might still do that, but for now, we we basically repurposed this tool.
对。
Right.
目前我知道的唯一使用Stratum v2的矿池是Demandpool,但我觉得他们还处于初创阶段。
I don't so right now, they're the only mining pool that I'm aware of that uses Stratum v two is Demandpool, but they're kind of still in startup phase, I think.
还有Brains。
And Brains as well.
他们使用它吗?
Do they use it?
是的。
I Yes.
但我不认为他们自己做,我不认为他们提供自定义模板。
But I don't think they do their own they I don't think they offer template custom templates.
他们只是支持新的加密算法。
They just support the new cryptography.
但这已经是一个改进了,因为如果你是ASIC矿工,现在如果你连接到任何Stratum v1的矿池,你的路由器、互联网服务提供商或任何人都可以窃取你的算力。
But that's already an improvement because if you're ASIC if you're If you run your ASIC farm and you connect to any seven v one pool now, your router or your internet provider or anyone can just steal your hash rate.
是的。
Yeah.
是的。
Yeah.
是的。
Yeah.
这不太好。
That's no good.
短的。
Shors.
但确实如此。
But yeah.
好的。
Okay.
但Brains目前还不允许个体矿工构建自己的区块,至少还没有。
But Brains does not or at least not yet allow individual miners to construct their blocks.
我不这么认为。
I don't believe so.
Demandpool计划这么做,但我认为他们还没有真正推出这项功能。
And and Demandpool does plan to do that, but I don't think they've actually launched this yet.
所以这就有点像鸡生蛋还是蛋生鸡的问题
So there was a bit of a chicken
我恰好知道,他们快要真正上线了。
I happen to know that they're getting close to launching for real basically.
哦,这是个好消息。
Oh, that's good news.
在比特币核心这边,一直存在一个鸡生蛋还是蛋生鸡的问题,因为即使这个新的IPC接口本身也颇具争议,部分原因在于当时还没有人使用它。
Has been a bit of a chicken egg problem on the Bitcoin Core side because shipping this new even this new IPC interface was also controversial partially because nobody was using it yet.
所以有些人说,我们应该先在矿池中彻底测试它,确保万无一失后再发布。
And so there's some people that say, well, we should first thoroughly test it with the pools and etcetera to make sure it's right and then ship it.
而反对意见是,如果这个功能没有被整合进比特币核心,矿池是不会去测试的,因为让他们编译一个自定义的实验性版本实在太麻烦了。
Whereas the counter argument to that is, well, the pools are not gonna test it if it's not already shipped in Bitcoin Core because it's too much of a pain for them to compile some custom experimental version.
尤其是当他们还不确定这个功能最终会不会被部署时。
And especially if they're not sure that it's actually gonna be deployed.
对吧?
Right?
他们至少需要有一些信心。
They need to have at least some confidence.
是的
Yeah.
之前确实存在这个鸡生蛋、蛋生鸡的问题,但现在它已经进入发布版本了。
There was that chicken egg, but now it's in the release.
但还不是很最终版本,所以下一个版本中可能还会有一些破坏性变更。
But it's not completely final yet, so it might still make a few breaking changes in the next release.
好的。
Okay.
我本来就想说。
I was just gonna.
所以我本来想问,现在这个完全可以直接使用了吗?还是比特币核心这边还有工作要做?
So I was gonna ask, is this completely good to go now, or is there still work to be done on the Bitcoin Core side?
没有。
No.
还有很多工作要做。
There's still good.
我的意思是,它已经可以使用了,但我认为还能改进。
I mean, it should it it's usable, but I think it can be improved.
对。
Right.
当然。
Sure.
好的。
Okay.
在我们转到最后一个话题之前,对这个话题还有什么最后的想法吗?
Any last thoughts on this topic before we move to the last last one on Let's our move.
好的。
Okay.
我们列表上的最后一个问题是,你给我解释一下。
Last one on our list is you you explain this to me.
NAT的BMP和端口控制协议PCP。
NAT's BMP and port control protocol, PCP.
嗯。
Mhmm.
所以我们之前几期已经讲过这个了。
So we have covered this in earlier episodes.
外面的世界很孤独,尤其是如果你从住宅环境运行你的节点的话。
You're it's a lonely world out there, especially if you run your node from a from a residential place.
通常,你的路由器会阻止任何连接到你的请求。
Typically, your router will block any connections to you.
所以你的节点可以访问外部世界,但外部世界无法连接到你。
So your node can can reach the outside world, but the outside world cannot reach you.
而且有多种常用的方法来解决这个问题。
And there's various methods that's often used.
这是一种‘别给我们打电话,我们会给你打’的模式。
It's it's a don't call us, we'll call you kind of
是的。
Yes.
逻辑。
Logic.
而现在,在游戏和种子下载等领域,已经开发出了一些方法来改变这种情况,让你能够接收外部连接,因为这样做在性能上有好处,也有其他原因促使你这么做。
And now, you know, in the world of gaming and torrents, etcetera, there have already been methods developed to change that so that you can actually listen to people connecting to you because there's some performance reasons that you wanna do that and other reasons why you wanna do that.
比特币核心从很早以前就开始使用这种方法,比如2012年甚至更早。
And Bitcoin Core was using that from very early on, like 2012 or even earlier.
但当时使用的方法并不安全。
But the method it was using back then was unsafe.
它被称为UPnP,因此默认是关闭的。
It was called UPnP, and so it was kind of turned off by default.
它一直存在。
It's there.
它一直都在,但因为软件存在太多漏洞,所以默认是关闭的。
It's always been there, but it was, like, off because of too many vulnerabilities in the software.
而最近,我们有了一个全新的方法。
And as of recently, we have a brand new method.
所谓全新的方法,其实是一个大约十年历史的标准,叫做PCP(端口控制协议)。
By brand new, I mean, it's a ten year old standard probably, called PCP port control protocol.
Bitcoin Core 已经从零开始实现了这个协议。
It's been implemented from scratch in Bitcoin Core itself.
从第30版开始,它默认开启。
And as of version 30, it's on by default.
这意味着,如果你全新安装一个节点,并且你的路由器支持这个协议——它可能支持,也可能不支持,但我认为许多现代路由器都支持——那么你的节点就会处于监听状态,这意味着你可以建立更多连接,网络也会更加稳健。
So that means if you install your node freshly and if your router supports this protocol, which it may or may not, I think a lot of modern routers will support it, your note is listening, which means you can have a bit more connections and the network is gonna be more robust.
是的。
Yeah.
所以,通常情况下,当你启动一个节点时,你可以连接到其他节点,但其他节点却无法连接到你,这就导致比特币核心节点中出现了一个子集,或者你可以称之为子社区,这些节点为网络其他部分提供了更多的服务或连接。
So, basically, normally, if you start up a node, then you can connect to other nodes, but other nodes cannot connect to you, which means there is essentially a subsection or, you know, a a sub community, whatever you wanna call it, of Bitcoin Core nodes that are providing more services or more connection to the rest of the network than others.
是的。
Yeah.
这些节点的连接性会更好,而且对这些节点的需求也很高,因为数量有限,每个人都想连接到它们。
They're gonna be better connected, and also there's a demand on those nodes because there's only a limited number of them and everybody wants to connect to them.
是的。
Yeah.
所以这实际上是一个略微中心化的因素,因为最初每个人都依赖它。
So it's a slightly it's a slightly centralizing factor actually that everyone sort of initially
依赖。
relies on.
中心化是因为这类节点数量不少,但它们可能会过载。
Centralizing because there's plenty of them, but it could they could get overloaded.
比如,如果比例变得过于不对称,那些正在监听的少数节点就会完全不堪重负。
Like, if the ratio is too is too becomes too asymmetrical, then the few notes that are listening will get completely overwhelmed.
而且这一点我
And this I
我的意思是,我并没有说它是中心化的,但我会说这确实是一种中心化的倾向。
mean, I didn't I didn't say I didn't say centralized, but I would say that is a sort of centralizing aspect.
对吧?
Right?
如果所有节点在这一点上都大致平等,每个人互相帮助,而不是都依赖某个子集,那就更好了。
It's better if all notes are sort of equal in that sense and everyone helps each other rather than everyone relying on some subset.
这样确实更好,但我认为这里并没有集中的风险。
It's better, but I don't think there was a risk of centralization here.
是的。
Mhmm.
但我确实认为,这些资源有被过载的风险。
But I do I do think there's just a risk of of overloading these resources.
问题的一部分在于,我们希望远离比特币节点通常只连接到少数节点的做法——我不是在‘觉醒’这个词的语境下说的,而是指连接来自世界各地、不同国家、不同网络的节点,这样就更难被某个网络运营商欺骗。
And part of the problem is because we want to move away from so so we Bitcoin nodes, want to connect to a diverse set of peers, and not in the the in the woke sense of the word, but in the as many places in the world, like different countries, different networks, so that it's harder to trick you for one network operator to trick you.
我们几年前在播客里讨论过一个新项目,叫ASMAP,它试图绘制互联网地图,然后确保节点能真正连接到不同国家等地方。
And there's a new project we talked about years ago in a podcast called ASMAP, where we try to map the Internet and then try to connect it really to different countries, etcetera.
这个项目的一个副作用是,我们可能会开始连接到一些非常冷门、非常冷门的地方,许多节点会因为试图过度多样化而纷纷连接到这些地方。
And one of the side effects of that project is that we might start connecting to very obscure very obscure places, and a lot of nodes would start connecting to those very obscure places because they're trying to diversify a bit too much.
于是,比如你在南美洲某个偏僻地方运行了一个互联网服务商,里面只有一个比特币节点,结果成千上万的节点都会试图连接到你,因为你实在太独特、太稀有了。
And then those, like, you run-in some random place in South America, you have an Internet provider with just one Bitcoin node in it, and then, like, thousands of nodes try to connect to you because you are very unique and special.
因此,如果更多的节点在监听,那么在这个偏远的互联网提供商上,也会有更多节点在监听。
And so if more nodes are listening, then hopefully on that obscure Internet provider, there's also gonna be more nodes listening.
这样,流量就不会全部涌向那一个监听节点。
So not all the traffic just goes to that one listening node.
是的。
Yeah.
好的。
Okay.
那么,Bitmap Core 中到底有什么新内容?
So this is so what exactly is new in Bitmap Core?
这现在只是一个功能吗?
Like, this is now just a thing?
或者
Or
这个功能从上一个版本起就已经存在了,但现在默认启用了。
So this feature has been in there since the last version, but it's now on by default.
所以如果你升级了,而且没有手动开启或关闭它,它就会默认开启。
So if you upgrade and you didn't manually turn it on or manually turn it off, it will be on.
那么
Then
如果你关闭了它,它就不会再被自动开启。
If you turn it off, it's only it's not gonna be turned on.
那么它就可以被外部世界调用。
Then it can be called by the outside world.
如果你的路由器支持的话。
If your router supports it.
是的。
Yes.
好的。
Okay.
路由器通常支持这个功能吗?还是有什么前提条件?
Do routers generally support this, or what's the if there?
我不确定。
I'm not sure.
比如,我们会弄清楚的。
Like, we we'll find out.
比如,从统计数据中应该能明显看出,监听节点的数量会大幅增加。
Like, it should be pretty clear in the stats that the number of listening notes would go up dramatically.
因为没错。
Because Right.
因为目前,大多数监听节点都在Tor上,因为人们设置Tor节点的方式通常也包含监听功能。
Because at the moment, most of the listening notes are on Tor because the way people set up their Tor notes usually is such that they're also listening.
所以有些人会说,大多数比特币节点都在Tor上。
So that's why some people are saying, Oh, the majority of Bitcoin nodes is on Tor.
但这并不正确。
Well, that's not true.
大多数监听比特币节点确实在Tor上。
The majority of listening Bitcoin nodes is on Tor.
对。
Right.
但这种情况最终可能不再成立。
But that might no longer be true eventually.
对。
Right.
对。
Right.
PCP也是一种毒品。
PCP is also a type of drugs.
这不在我的专业范围内,但你来说说看。
That's not my expertise, but you tell me.
巧合?
Coincidence?
我觉得每一个三个字母的缩写大概都是。
I think every three letter acronym probably is.
所以
So
好的。
Okay.
我想我们已经把列表过完了,Chors。
I think we made it through the list, Chors.
是的。
We did.
那么,这种情况下,除非你还有什么要补充的?
Well, in that case, unless you have anything to add?
没有。
No.
人们在哪里可以找到这个?
Where can people find this?
人们在哪里可以找到 Bitcoin Core 30?
Where can people find Bitcoin Core 30?
Bitcoincore.org。
Bitcoincore.org.
好的。
Okay.
谢谢,乔治。
Thanks, George.
感谢收听Bitcoin
For listening to Bitcoin
X Play。
X Play.
关于 Bayt 播客
Bayt 提供中文+原文双语音频和字幕,帮助你打破语言障碍,轻松听懂全球优质播客。