本集简介
双语字幕
仅展示文本字幕,不包含中文音频;想边听边看,请使用 Bayt 播客 App。
如果你使用正确的技术,现在再次强调,我不是在鼓励垃圾信息刷链,但超过一定规模后,如果你使用某种替代操作码。
If you use the right techniques, now again, not endorsing spamming the chain, but above a certain size, if you are using some alternative opcode.
所以假设一下,即使BIP110在最长链上被激活,所有人都在使用带有BIP110的比特币,那些想降低成本的垃圾信息发送者仍可以使用另一种铭刻方式,而他们只需多支付0.4%。
So let's say hypothetically, even if BIP one ten were to be activated on the heaviest chain and it was, you know, everyone was using Bitcoin with BIP one ten, Spammers who want to economize on their cost could use an alternate inscription method and they would be only paying 0.4% more.
你认为,如果有人今天在刷链,你通过让他们多付0.4%就能阻止他们吗?
Do you believe that if someone is spamming the chain today that you are going to deter that person by making them pay 0.4% more?
大家好,欢迎回到Stephan Livera播客。
Hi, everyone, and welcome back to Stephan Livera podcast.
今天做客节目的嘉宾是马丁·哈博维夏克。
Joining me on the show today is Martin Habovstiak.
我和马丁实际上第一次见面,我想是在2019年左右的闪电网络会议。
Martin and I actually first met, I believe, around 2019, around the Lightning Conference.
我知道马丁是一位比特币开发者,并且有一些有趣的观点可以分享。
And I know Martin is a Bitcoin developer and had some interesting views to share.
马丁是knotsles.com网站的创建者,所以我认为很有必要深入探讨一下这些观点,让大家听到不同的声音。
He Martin is the creator of the knotslies.com website, and so I thought it'd be interesting to elaborate on some of these views and have them explained so people can hear a different view.
所以,马丁,欢迎来到节目,跟我们说说你的想法吧。
So, Martin, welcome to the show, and give us some of your, I guess, your rationale.
人们想知道为什么。
People wanna hear why.
你为什么想创建这个网站?
Why did you want to create this website?
谢谢。
Thank you.
大家好。
Hello.
其实,我想大家可能都听说过BIP110的讨论,当时很多人对它做出了各种奇怪的主张。
Well, thing was like, you know, probably everyone heard about the BIP110 discussion and people were making various really weird claims around it.
其中一个说法是,交易中的数据——比如如果是可配置的——可能会带来法律问题。
And one of those claims was that the data in the transaction, Like, if it's configurals, then there could be legal issues stemming from it.
我觉得这个论点非常奇怪,因为如果你是个罪犯,把文件拆分成多个片段,难道你就因为拆分文件就能脱罪了吗?
And I thought that this is a really weird argument because like, if you are some sort of criminal that splits your files into different chunks, then of course you wouldn't be deemed not guilty just because you split the files.
这毫无道理。
That doesn't make any sense.
那么,分割数据又有什么用呢?
So why would splitting the data help?
但早在一开始,我就知道其实存在一些方法——即使你试图强行分割,比如把数据切成块,并在块之间插入一些垃圾数据(从你试图写入链上的格式角度来看,这些当然是垃圾)。
But from very early I knew that there are actually ways, like even if you kind of try to force the issue of splitting by basically chunking the data and putting some garbage between the chunks, garbage from the point of view of the format you are trying to put into the chain, of course.
有一些技术可以只让文件轻微损坏,以至于无关紧要,甚至完全不损坏数据。
There are techniques to either make it corrupt the file only a little bit, so it doesn't matter, or even make it so that the data don't get corrupted basically at all.
从讨论一开始我就知道这一点,当时我展示了一张图片,它的像素每隔250个左右就进行了一次分割。
And I knew it from the beginning, at the beginning of the discussion I demonstrated an image that had like, were added out every five twenty pixels or something like that.
实际上,它呈现红色是因为长度编码的方式。
Basically, it was red because of the encoding of the length.
所以大概是253,而蓝色和绿色则是其他数值。
So that's like two fifty three and there is whatever other number for blue and green.
如果你了解RGB,也就是红、绿、蓝,红色占一个字节,正好与编码完全匹配。
So if you know like RGB, so red, green, blue, red is one byte and it matched the encoding perfectly.
所以如果你以这种方式编码图像,每隔520像素放一个红点,图像会受到轻微损坏,但如果存在非法内容,它仍然对观看者可见,你不可能完全隐藏整张图像。
So if you encoded an image like that, where you would put a red dot every five twenty pixels, it would damage the image a little bit, but if there is illegal content it's still visible to the content, you know, like you won't hide the entire image.
只是在图像上叠加了一堆点而已。
There is just a bunch of dots on top of it.
所以,我当然不认为仅仅在图像上加点就能让一张图像变得合法。
So I don't think it would make an image legal just by putting dots on it, of course.
实际上,我跟一位律师讨论过这个问题,他确认这完全是胡说八道,即使你对图像做了破坏,它仍然是非法的。
And actually I discussed this with a lawyer and he confirmed that this is basically bullshit, that even if you damage the image, it's still illegal.
所以这就是我的论点,但我只发布了那张图像,并说明了一下:‘我做了这个操作。’
So that was my argument, but I only posted the image alone and described like, okay, I did this.
但随后有人反对说,是的,但你知道,你能这么做是因为你懂技术,别人做不到。
But then someone objected to it that, yeah, but, you know, you can do it because you are technical, but others can't.
他不知道我用的是大语言模型,第一次生成就完全正确。
He didn't know that I used LLM that spit it out correctly on the first try.
但无论如何,我觉得这个论点已经被驳倒了,于是我就不再纠结了。
But anyway, I thought that, okay, the argument is debunked and I moved on.
但几个月后,我仍然看到有人声称这种关于配置数据的说法。
But months later, I still saw people making this claim about configurous data.
我当时就想,什么?
I was like, what?
这个话题已经在邮件列表里和开发者讨论过了。
Like, this was discussed to dev on the mailing list.
这已经被驳斥了,我也没听说任何国家的经济学家推荐这种说法,但我对此越来越反感。
It was debunked, and I didn't hear any economists in country recommended people are still saying this, and I got more and more fed up with this.
于是我心想,好吧,我明白问题出在哪了。
And I was like, okay, I can see the problem.
人们基本上假设——有些人,或者大多数人,并没有真正阅读邮件列表,这是第一个问题;但第二个问题是,即使他们看了,也可能认为这全是理论上的东西,或者非常模糊,很难让人信服——你知道,理论上可行的东西,但如果一个人不理解这个理论,要让他信服真的很难。
People are basically assuming, some people, or most people are not actually reading the mailing list, that's the first issue, but the second issue is that even if they are on, they might assume that, yeah, this is all theoretical, or you know, it's very vague, like It's hard to convince someone of something that you know in theory works, but if someone doesn't understand the theory, it's really difficult to convince.
所以,尽管我非常反感垃圾信息,也真的不想把数据上链,但我认为,为了证明这一点,只做一次交易,仅此一次,或许是可以接受的,而且确保这不会轻易被重复——当然,不会公开代码。
So, despite my real distaste for spam and I really didn't want to put data on the chain, I thought that doing just one transaction just once, just to prove the point, might be reasonable and make sure that it's not super trivial to repeat, like not publish the code of course.
于是我写了代码来帮我组装这笔交易,因为手工操作会非常棘手。
So I wrote code actually to assemble the transaction for me, because it would be pretty tricky to do it by hand.
然后我将交易发布到了主链上,但在那之前,我觉得在交易中加入一些清晰的说明来描述这个项目会很好,尤其是因为我实际上不得不往里面放入一些垃圾数据。
And, then I posted into the main chain, but just before, I thought it would be nice to put some clearest into the transaction describing the project, especially because I actually had to put some garbage data into it.
这很有趣。
That's the funny thing.
所以我做的其实是把整个交易转换成了一张图片。
So, the thing I did is actually make the entire transaction into an image.
这和只是把图片放在某个地方,比如见证数据中,是完全不同的。
And it is quite different from just putting an image somewhere in, let's say, witness data.
但如果你玩这种把戏,比如试图把整个交易变成一张图片,就会给它带来某种结构,特别是最小尺寸大约为65千字节左右。
But if you do these tricks, like trying to make the entire transaction into an image, imposes some structure on it and specifically minimum size of something like 65 something kilobytes.
所以这笔交易的大小大约是66千字节多一点,因为还有其他原因会让交易变得更大。
So that's why the transaction has around 66 and something, because also there are some other reasons when the transaction starts getting even bigger.
但你知道,它必须有这个大小。
But you know, it has to have this size.
这并不是因为图像编码之类的原因才导致它有这个大小。
It's not like it had the size because of the image encoding or something.
它必须有这个大小。
It had to have this size.
所以,让我们稍微回退一下,重点是你手动构造了一个交易,或者使用了大语言模型。
So so just walking back a little bit, the point of this is that you crafted a, let's say, a manual transaction or using an LLM.
你构造了一个交易,生成了一个66千字节的图像,这是一个现在存在于链上的TIFF文件。
You crafted a transaction that creates a 66 kilobyte image, is a TIFF file that is now in the chain.
当然,这里存在不同的反驳意见。
And now, of course, there are different counterargument here.
一方面,我想有些人会说,等等。
On one hand, I think some of them were saying, well, hang on.
这个交易不符合BIP 10标准。
This transaction would not be BIP one ten compliant.
另一个主要观点是,你仍然不得不通过链外方式联系矿工来完成这个操作。
And then the other big one would be that, look, you still had to go out of band to a miner to do this.
不过,我推测,如果你使用了Libre Relay或TX Pigeon,也许也能通过这些方式实现。
Although, I presume maybe if you had used Libre Relay or that TX Pigeon, you might have been able to do it through that also.
但你能说明一下,据我理解,你先做了一个适用于当前比特币核心版本的版本,然后又做了一个符合BIP110的版本吗?
But can you address the I guess, first of all, as I understand, you made a a version that went, you know, on the current version of Bitcoin Core or just in general, and then you made a BIP one ten compliant version.
所以你能简单解释一下这两个不同版本吗?
So can you just explain a bit about those different versions?
是的。
Yeah.
基本上,当前版本是按照现行规则制作的,只是为了证明一个观点:尽管有人声称交易包含非连续的数据块,无法使其连续,但我让整个交易完全连续了。
So basically, the current version was made with current rules just to prove a point that despite the claims that the transaction contains some non contiguous chunks, like you cannot make it contiguous, I made like even the entire transaction contiguous.
所以,仅仅通过将数据拆分,并不能强制花费者无法放置连续数据,因为有些文件格式可以跳过这些数据块。
So it's not true that just by splitting the data apart, can force spenders to not put contiguous data, because there are file formats that can skip over these chunks.
甚至极端情况下,交易本身就可以是一个图像。
So, and even to the extreme where the transaction itself can be an image.
但当然,如果你曾经查过各种文件格式的工作原理,它们通常——或者说总是——以某些特定字节开头。
But of course, if any one of you tried, ever look up how various files format work, they usually start, or probably always, with some specific bytes.
比如,TIFF文件以十六进制的49开头,也就是大写字母M,然后是4200,后面跟着交易中的某个偏移量。
So, like, they start, like, let's say, the TIFF files start with forty nine in hex, 49, which is the same as the capital M letter, then there is a 4,200, and there is some offset into the transaction.
如果你仔细想想,比特币交易也是以版本号开头的,但根据当前的标准规则,版本号通常只允许是1,我记得2也可能被允许,不过我不太确定。
And if you think about it, Bitcoin transaction also starts with a version number, but the current standard as rules dictate that the version number is standard only for one and I think also two, if I remember correctly, I'm not sure about it.
所以这并不一致。
So that doesn't match up.
因此,如果你想让整个交易都成为有效载荷,就必须使用非标准的中继方式,而即使是LibreRelay仍然会强制执行版本号限制。
So therefore, if you want to make the entire transaction, then you have to use some non standard relay, and even LibreRelay still enforces the versioning thing.
不过我觉得这也没问题,因为使用奇怪的版本号本身简直就是疯狂的,老实说,我这么做主要是为了好玩,你知道的?
So, which I think is okay, because even the idea of using weird version number is complete insanity, to be honest, So it was mostly to make it more fun, you know?
我本来也可以让它可配置,从某个偏移量开始。
I could still make it configurable, just start it at some offset.
但我其实没必要这么做。
But I didn't have to.
我觉得让整个交易都成为有效载荷会更有趣,因为这样一来,人们就得花更多力气去琢磨,数据到底被我藏在交易的哪个位置等等。
I thought it would be more fun to make the entire transaction, because then, you know, like, people would then need to make more effort to figure out, like, where did I put the data inside the transaction and so on.
但如果我把整个交易都做成可配置的,而大家又已经知道交易本不该是这样的,那么这种矛盾就会变得非常明显。
But if I make the entire transaction configurals, and people already know that the entire transaction, like, supposedly isn't, then then, like, you know, the the discrepancy is very obvious then.
我明白了。
I see.
对。
Yeah.
所以我只是想反映我在Knotscamp上听到和看到的内容。
And so just trying to reflect what I have heard and seen from the Knotscamp.
现在我无法完美地还原这些观点,但根据我所见,像Mechanic这样的人确实提出了这种连贯的论点。
Now I won't be able to perfectly reflect this, but it seems from what I've seen, people like Mechanic have really made this kind of contiguous argument.
他一直在强调这个连贯的论点,而人们也一直在调侃他,比如我记得他曾在一个会议的小组讨论中说,奶奶会砍掉前100个字节,然后某种病毒会以此作为载体传播恶意软件,Ethel会下载区块链并搜索这个特定的bot,这听起来有点奇怪。
He was sort of really makes it about this contiguous argument, and people have been, kind of trolling him as well about I think he was at a conference on a panel on stage saying something like, grandma's gonna chop off the first 100 bytes that there's gonna be a virus somehow that that's gonna be the vector for delivering malware that, you know, Ethel is gonna be downloading the chain and searching, you know, this particular bot, which seems a bit odd.
但我也要说,在Knots camp中,Luke Dasher似乎持有稍微不同的观点。
But I will say also in the Knots camp, Luke Luke Dasher seems to have a slightly different argument.
他的观点更像是:考虑到数据的编码方式,几乎任何东西都可以被视为非法数据,但在他看来,区别在于所谓的‘标准解释方式’。
His argument seems to be more like, well, given, you know, the way data is encoded, you could say almost anything is this illegal data, but what makes it different in his view is this idea that it's the so called standard way to interpret this thing.
对吧?
Right?
所以不知为何,他似乎认为核心版本30特别支持这种非金融数据,认为这是标准的解释方式。
So he for some reason, he seems to say that, you know, core v 30 seems to be especially endorsing this kind of nonfinancial data, that it's the standard way to interpret.
你如何看待这些关于为什么这种行为会被认为是错误的、非法的,或增加比特币节点运营商面临国家风险的不同观点?
What do you make of these different arguments around the the exact, you know, reason it's gonna be wrong or illegal or create raising the risk of the state coming after Bitcoin node operators?
哦,也许人们首先应该问自己的是:什么让某事物成为标准?
Oh, maybe the first question people should ask themselves is what makes things standard?
为什么Obliquins被认为是标准的,而铭文却不是?
Why why is obliquins supposed to be standard and inscriptions are not?
因为如果人们开始大规模使用它们,这和标准有什么不同?
Because, like, if people start using them massively, how is it different from standard?
是的。
So Yeah.
我的意思是,你是在告诉我。
Mean, you're you're telling me.
是的。
Yeah.
另一件事是,即使在v30之前,高达400千字节也被视为标准。
And the other thing is even up to 400 kilobytes, even pre v 30, up to 400 kilobytes is standard.
是的。
So Yeah.
我的意思是
I mean
这在我看来并不一致。
It doesn't seem consistent to me.
所谓的标准,比如标准规则,我的意思是,他可能指的是字节的标准解释方式。
Standard in the like, the stand like, the standardness rules, I mean, like, what he probably meant is standard way of interpreting bytes.
所以是的,他提到了一个观点,比如没人会想着把一笔交易保存为TIF文件,然后试图用图片查看器打开它。
So yeah, he made some point that like nobody would think about saving a transaction as a TIF file and try trying to open it in image viewer.
这听起来完全疯狂,而到目前为止确实如此。
That sounds completely crazy, which is true so far.
但关键是,它在某个时候可能就不会再显得疯狂了。
But here's the thing, it could at some point become not crazy.
有可能已经有一些山寨币开发者在尝试重写我写的代码,他们想开发自己的版本,并从中衍生出一些NFT代币。
It could happen potentially that some shitcoiners are already trying to rewrite the code that I made, they want to write their own version and try to spin off some NFT tokens out of this.
在这种情况下,你知道,如果真的有几千甚至几万笔这样的交易,那谁又能说这不算标准呢?这不过是人为定义的罢了。
And in that case, you know, like if there is like, I don't know, like few thousands or tens of thousands of transactions made this way, then who's to say that it isn't standard, like it's just arbitrary definitions.
另一方面,他说操作符是一种标准方式,但这个标准甚至没有明确定义如何区分文件格式。
On the flip side, he says that operator is a standard way, but that standard doesn't even have like defined way of distinguishing what kind of file format is there.
所以你不得不去猜,讽刺的是,这笔交易本身既是交易又是图像——如果你仅凭数据本身来猜测它是什么类型的文件,就会得到模糊的结果,因为你无法判断这到底是比特币交易还是图像。
So you have to try to do some guessing, which ironically this transaction itself being both a transaction and an image, like basically if you try to guess what kind of file it is just from the data itself, you get ambiguous results because you cannot tell if this is a Bitcoin transaction or an image.
如果你,比如说,没有任何上下文,你
If you, like, if you have no context, you
而且公平地说,即使在你的网站knotsles.com上,你也提到过,你可以自己验证,这里是交易ID,然后你有这个命令:xxd -r -p 转成 .tiff,对吧?因为有不同的图像文件格式,比如.tiff、JPEG、PNG、WebP等等,还有很多其他格式。
And even to be fair, even in your website, knotslies.com, you mentioned here, you can verify yourself, here's the transaction ID, and then you have this command, XXDMinusRMinusP into tiff, like dot Tiff, right, because there are different image files, there's dot tiff, there's JPEG, PNG, webp, whatever, I mean there's many others.
所以我想你的意思是,这个xxd命令是在反向转换十六进制编码。
So I guess the point is this XXD command is, I I guess, reversing the hex encoding.
对吧?
Right?
所以我觉得这是一个转换步骤,对吧?
So I guess that's a a transformation step, isn't it?
是的。
Yeah.
但十六进制编码其实只是一些内部细节。
But the hex encoding is really some, like, internal detail.
之所以会有十六进制编码,唯一的原因是比特币守护进程使用了一种叫 JSON RPC 的东西,它必须将所有数据编码为文本。
It's just basically the only reason there is even the hexec encoding to begin with is that Bitcoin daemon uses something called JSON RPC, which has to encode all data as text.
这效率极低,但也没办法,事实就是这样。
Which is super inefficient, but whatever, it is what it is.
而且因为你无法轻松地将任意数据编码为文本,可能会出现一些奇怪的字符,最终变成表情符号之类的,或者因为控制字符(比如回车符)导致你的终端崩溃。
And because you cannot encode arbitrary data as text easily, you could have some weird characters that would end up as emojis or whatever, and it would be, or it just break your terminal because there will be control characters, so like a carriage return or something crazy.
所以正因为如此,必须将其编码为十六进制。
So because of this, it has to encode it to hex.
因此,这种编码本质上是临时的。
So this encoding is kind of like temporary.
这仅仅是为了数据传输。
It's just for the transfer of data.
十六进制编码并不会存储在磁盘上,因为那样会使数据大小翻倍,这太荒谬了。
It's not like, the hex encoding is not stored on disk because it will be twice as large, which would be insane.
而且在P2P网络层面也不会使用十六进制编码。
And it's not ex encoded at P2P network level.
所以P2P网络仍然使用二进制编码。
So the P2P network uses still binary encoding.
这仅仅是因为JSON RPC接口,当你提取数据时才需要临时进行编码。
It's just because of this JSON RPC interface, that it has to be temporarily encoded when you are pulling it out.
但你可以查看,比如mempool.space API提供了一个端点,可以直接返回未编码的原始数据,这样你就无需进行任何编码或解码。
But you can check for instance the mempool space API provides an endpoint that will give you just unencoded raw data and then you don't have to do any encoding or decoding rather.
所以还有其他API是可行的。
So like other APIs are possible.
比如,你可以通过P2P方式连接到比特币节点,像一个P2P节点那样请求交易,这样你就能获得非十六进制编码的数据。
Like you could conceivably retrieve it via peer to peer IP connect to Bitcoin as if you were a peer to peer node and ask for the transaction that way, and then you would get it not hex encoded.
十六进制编码与此无关。
The hex encoding doesn't have anything to do with it.
更不用说脚本本身也是十六进制编码的。
Not to mention that even the scripts themselves are hex encoded.
所以如果有人想用这个作为论点,比如你必须十六进制解码什么?
So if someone tried to use this as an argument, like you have to hex guess what?
你同样得十六进制解码操作符,或者基本上任何东西,比如脚本。
You have to hex decode operator as well, or anything basically, like scripts.
你要么必须十六进制解码才能手动解析它们,要么可以使用解码脚本命令,但这仍然是另一个你必须运行的命令。
You either have to hex decode if you want to hand parse them, or you can use the decode script command, which is still another command that you have to run.
甚至这个命令也不会对单个字段进行十六进制解码。
And even that command will not hex decode individual fields.
它只会告诉你指令,如果存在包含数据的推送指令,它仍会告诉你编码后的数据。
It will only tell you the instructions, and if there is like push instruction that contains data, it would again tell you encoded data.
所以这不能成为论据。
So like this cannot be an argument.
好的。
Okay.
现在,关于这个论点,Knots或BIP119的支持者可能会在此时回应你,说重点就在于增加难度。
Now what about this argument around now the Knots or one ten proponent could come back to you at this point and say, well, the point is to make it harder.
你必须脱离标准的比特币中继网络,不能直接通过它发送,这正是关键所在。
That the fact that you had to go out of band, you couldn't just send this out on the standard Bitcoin relay network, that's the point.
从他们的角度来看,他们会说,这正是目的所在。
From their perspective, they'll say, that's the point.
你必须脱离标准网络,直接联系矿池才能让它们将这个交易打包,这实际上正是他们的理由。
The fact that you had to go out of band to or directly to a mining pool to get them to put this in, that's actually part of the reasoning.
你对此会怎么回应?
What would you say to that?
嗯,这正是问题所在。
Well, that's that's the issue.
我让这个交易变得更有趣了,但也许在这个过程中让它变得更复杂了。
I I made the transaction more funny, but maybe I made it more confusing in the process.
这是因为版本号的原因。
Because like it's because of the version number.
我可以直接去掉这个。
I could just get rid of this.
实际上,这个想法的第一个版本,我最初写的那个程序,只花了一天就写完了。
And actually the first iteration of this idea, the first program that I called it, it actually took just one day to write it.
不过,公平地说,想出实现方法花了一些时间:我应该通过修改图像编码器来实现,还是应该先构建交易,把图像作为次要部分,或者反过来?
Although, to be completely fair, it took a bit of time to think of a method to write it, should I write it as a, like, by modifying the image encoder, or by, like, maybe to put it differently, should I try to assemble it as transaction first and image as a secondary or the other way around?
所以我得弄清楚这一点,这花了一些时间,但一旦我意识到,直接使用现有的图像编码器并根据我的需求进行修改,会比其他方法更容易,实际上编码只用了一天。
So I had to figure out, so this took a bit, but once I realized that just taking an existing image encoder and modifying it to my needs, it will be easier than it took one day of coding, basically.
而这个只是从某个偏移量开始的图像。
And this was just, so this was an image that started at some offset.
它并不是在交易的开头。
It wasn't at the beginning of the transaction.
所以我得截掉前面的字节,保存为TIFF文件,结果就成功了。
So I had to chop off the first bytes, and save it as a TIFF file, and it worked.
实际上,第一个版本并没有遵循所有标准化规则,因为我并没有把它们全部记在心里,但只要花点时间查一下所有的魔数并适当调整就可以了。
Actually, the first iteration didn't follow all the standardized rules, because I didn't know all of them by heart, but it would be a matter of while to just look up all the magic constants and adjust them appropriately.
这其实真的就是,比如
It would be really, like
所以我想你意思是,为了确认我理解正确,你是在说理论上你可以努力调整,直到找到一种方法,让它既符合标准,又能显示为一个连续的图像
So I guess what you're saying there, just so I'm understanding you, you're saying theoretically you could try to grind it to a point where you found a a way to make it standard while still showing as a contiguous image
是的
Yeah.
如果你再多花点精力去打磨它的话
If you had Yeah.
投入更多努力来完善它
Put in more effort to sort of grind it
出来
out.
这就是区别所在。
That's the difference.
对。
Right.
所以你必须保持在同样的上下文中,截断第一个数字,无论多少字节,因为你使用的是标准版本号,然后你可以这样把它嵌入到交易中。
So that would you would have to be in that same context of cutting off the first number, whatever number of bytes, because you're using a standard version number, and then you could have stuffed it into a transaction that way.
是的。
Yeah.
而且它仍然是连续的。
And it would still be contiguous.
是的。
Yeah.
我喜欢,这是我通话的第一个版本。
I like, this was the first version of my call.
也许遗憾的是,我没有想到要节省你们的时间。
Maybe it's a shame that I didn't think of save saving you guys.
它立刻就开始了,和下一个一起工作,因为我本可以再做一个交易来证明这一点,但算了。
It started immediately, like, working with the next one because I I could have made another transaction just to prove this point, but whatever.
是的。
Yeah.
好的。
Okay.
所以,我理解你的核心观点是,你在探讨过滤机制是否能够应对这个问题。
So I guess the broad point you're trying to get at as I read you is you are kinda talk trying to talk to this idea that filtering, is it going to I guess that's the question.
过滤能否保护节点运营商免受非法内容的影响?
Can filtering protect node operators from illegal content?
它会不会,你知道的,以某种方式……是的。
Does it, you know, somehow yeah.
这就是问题所在。
That's the question.
你根本不可能做到这一点。
There is no way you can do do that.
总会有很多方法可以绕过它。
Like, there will always be many ways of doing it.
这很有趣,因为我最早做的与比特币相关的编程项目,就是专门用隐写术将消息嵌入比特币区块链中,作为一系列有效地址——这些地址甚至不是伪造的,而是完全有效的,你拥有对应的私钥,可以从中支出资金。
It's funny because the first programming project for Bitcoin that I ever made that had anything to do with Bitcoin was specifically to steganographically put messages into the Bitcoin blockchain as a series of valid, and they are not even fake, like completely valid addresses that you have private keys to, so you can spend from them.
因此,它完全无法被区分,而我们知道在哪里能找到它,但别人却找不到。
So it's absolutely indistinguishable, and we have the knowledge where to find it, nobody can find it.
所以这最初只是一个玩具项目,我实际上并没有把任何东西放到链上,只是构思了如何生成一串地址来编码某个秘密消息,如果你把这串地址重新输入解码器并输入密码,它就会输出原始消息。
So this was like first, it was like toy project that I didn't actually put anything into the chain, it was just the idea of generating the sequence of the addresses that encode some secret message that if you put the sequence back into the decoder and put the password there, it will spit out the message.
我明白了。
I see.
是的。
Yeah.
所以我想,这一点也应当回应人们可能会想到的问题:你是在试图向链上发送垃圾信息,还是在让别人更容易向链上发送垃圾信息?
So I guess the point like also, it should sort of answer the point that people will be thinking is, are you trying to spam the chain or make it easier for people to spam the chain?
或者我认为我理解你的意思是,你试图说明,如果你以这种方式进行过滤,只会 elsewhere 引发更严重的问题。
Or I think what I'm reading you as is you're trying to make the point that if you try to filter it this way, you're just going to create worse problems somewhere else.
是的,正是如此。
Yeah, exactly.
这就是问题所在。
And that's the issue.
每一种用来绕过这些限制的技术,最终都会让网络变得更糟。
Every single technique used to bypass these kinds of restrictions ends up getting worse for the network actually.
所以,如果一个人有钱又无聊,想买一张猴子图片,他不在乎是花20美元、30美元、50美元还是5美元。
So if someone is rich and bored and wants to buy a monkey picture, they don't care if it costs $20 or 30 or 50 or 5, whatever.
只要有钱,他们就会付钱。
They will pay it if someone is rich.
而如果一个人没钱,他们就会去买云存储服务。
And if someone isn't rich, they will just buy a cloud storage.
最近我算了一下,我放在比特币链上的这笔交易,花费比我现在支付的云服务月费高出九百万倍。
Recently I have calculated that the transaction I put into Bitcoin chain costed me 9,000,000 times more than monthly subscription to a cloud service I pay for.
像是Dropbox或者Google Drive那样的服务吗?
Like a Dropbox or a Google Drive kind of thing?
某种不同的服务,但总之
Something different, but anyway
这和那个类似。
It's similar to that.
是的。
Yeah.
每个月100GB要三三三欧元左右。
Three three three something euros for a 100 gigabytes per month.
而且
And
对。
Yeah.
哦,抱歉。
Oh, sorry.
你是说更像是VPS服务,而不是Dropbox那样的服务。
You mean more like a VPS service, not like a Dropbox service.
你是这个意思吗?
Is that what you mean?
不。
No.
它就像Google Drive,但经过了加密。
It's it's just the an an it's something like Google Drive, but just encrypted.
好的。
Okay.
明白了。
Gotcha.
是的。
Yeah.
比如Proton Drive就是这样。
So like Proton Drive as an example.
就是这个,是的。
That's the one yeah.
我并不觉得那是重点。
I I don't that's the thing.
也许谷歌云盘的价格更低。
Maybe Google Drive has even cheaper prices.
我不确定。
I I I'm not sure.
我从来没查过他们的价格。
I never looked up the their price.
我只是想把它和我实际支付并知道价格的服务做个比较。
I just was interested, like, comparing it to price of something I actually pay for and know the price.
所以这个比例大约是九百万倍,甚至更多,就那个月费而言。
So it's like the factor was around 9,000,000 times or more, that monthly subscription.
所以这得持续几千年吧。
So it would be for, I don't know how many thousands of years.
抱歉。
Sorry.
所以如果我的目标只是存储数据,跟比特币无关,我就不会用比特币,因为它的费用大概是九百万倍——也许没到九百万倍,因为那是月费,但你明白,假如你说‘我活一百年’,那就是一千二百个月,即便如此,也还是高出几千倍。
So it would be like, if my goal was just to store data, and nothing to do with Bitcoin, I wouldn't use Bitcoin because it's like 9,000,000 times, maybe not 9,000,000 because it's monthly but you know, if you say like okay, I will live for one hundred years, then you can say like okay, twelve hundred months, it's still like thousands of times more.
即使你假设我会活一百年,并且想存储数据一百年,这也太贵了。
Even if you make this assumption that I will live for one hundred years and I want to store it for one hundred years, it's too much much more expensive.
所以这没有意义。
So it doesn't make sense.
因此,任何把东西存入比特币的人,都是因为他们想把东西存进比特币里。
So therefore whoever is putting stuff in Bitcoin is putting it there because they want to put stuff into Bitcoin.
而且因为他们想把数据存储在某个地方。
And because they want to store data somewhere.
所以,让这个过程变得更困难只会让网络本身过载,因为这些限制,比如比较第一笔和第二笔交易,第二笔要大得多,我认为大约有10千字节,这相当显著,最终只是因为我必须绕过限制,被迫添加更多输入,最终我采用了这种方法,把整个交易变成一个评估图像。
So therefore making it harder only overloads the network itself because suddenly, because of these restrictions, for instance, if you compare the transactions, the first one and the second one, the second one is much larger, well, much, I think it's like 10 kilobytes, which is pretty pretty significant, I think, and it ends up being like 10 kilobytes larger just because I had to bypass the restrictions, which forced me to put more input there, which finally, I have this method of making the entire transaction into the evaluative image.
它导致你拥有的输入越多,交易体积就越大,但不仅仅是因为输入本身,还有一些数据会越来越分散,你不得不在中间添加更多无用内容。
What it makes is the more inputs you have, the bigger it has to be, but not just because of the input, but there is some data that shifts more further and further away and you have to add more garbage in between.
所以基本上,你可以往里面添加更多垃圾信息或任何你喜欢的内容。
So basically, you can put more garbage and more text there or whatever you like.
这就是讽刺之处。
So that's the irony.
所以这些过滤器让它变得大了很多。
So the filters made it much bigger.
在某些情况下,这对它来说甚至可能非常糟糕。
And in some cases, this can be even like extremely bad for that.
是的。
Yeah.
好的。
Okay.
那我们来谈这个吧。
So let's get to this.
所以事情有不同的方式可以发生,现在我要说清楚。
So there are different ways things can get and now again, I wanna be clear.
我从未对链进行过垃圾信息轰炸。
I have never spammed the chain.
我从这件事中赚不到钱。
I do not earn money out of this.
我没有投资任何从事垃圾信息发送或垃圾币发行的公司。
I'm not invested in any company that, you know, is spamming or shit coining.
但为了让人们明白,确实存在多种方式可以向链上发送垃圾信息。
But just so people understand, there are different places that that people can spam into the chain.
对吧?
Right?
有伪造的公钥。
There's fake pub keys.
有见证信息垃圾发送,还有OP_RETURN。
There's witness spamming, and then there's op return.
你能为我们详细解释一下这些不同的方法吗?这样人们就能了解其中的权衡和成本,至少能意识到这个问题。
So can you just talk us through some of those different methods just so people understand kind of the the trade offs and the costs of doing this so that people can at least be aware of this issue?
是的,第一个最常见、也最广为人知的是OP_RETURN。
Yeah, so the first one, most popular maybe or most well known is the operator.
这个方法其实挺有意思,因为当数据量达到一定规模时,把它放进见证数据反而更划算,而不是放在OP_RETURN里。
And that one is actually interesting because it's not really viable to put large chunks of data into operating term because at some size it starts to make more sense to put it into the witness data.
之所以存在一个阈值,是因为如果你想把数据放入见证数据中,就必须创建另一笔交易。
And the reason why it's like there is some cutoff, is if you want to put stuff into witness data, must make another transaction.
所以创建第二笔交易会带来更多的开销。
So you have more overhead from creating second transaction.
因此,如果你的数据足够大,节省的费用能够覆盖创建另一笔交易的成本,那就合算了。
And so if your data is large enough, that the saving, covers the cost of making another transaction, then it works out.
有人甚至计算出了精确的数值,但我忘了具体是多少。
And someone even calculated the exact value, but I I forgot what it was.
我觉得是
I think it
160字节左右,我不太确定。
was 160 bytes or some I don't know.
140字节或者类似的数值。
A 140 bytes or something like this.
大概就在这个范围内。
It's like in that range.
所以,让我试着用简单的话解释一下,方便那些不太技术的听众理解。
So I guess just so I'll let me just try and explain it in simple terms for the maybe less technical listeners.
你知道,在比特币中,有输入和输出,而 op_return 就是一种输出。
You know, in Bitcoin, you have inputs and outputs, and op return is an output.
对吧?
Right?
但关于见证数据垃圾信息的有趣之处在于,它实际上发生在交易的输入端。
But the the interesting thing about witness spamming is it's actually on the input side of the transaction.
还有一点背景信息是大家应该知道的:关于铭文(inscriptions),虽然我不支持这种做法,但有一种叫做 Taproot 铭文信封的东西,它使用 op_false、op_if,然后把数据塞进去,接着好像是 end_if 之类的结构。
And another kind of piece of context that people should know is that in inscriptions, again, not endorsing this, but there's this thing called the Taproot Inscription Envelope, and it's like op false, op if, and then they stuff the data there, and then it's like I think it's an end if or something like that.
正如你提到的,这是一种两笔交易的方案。
And as you mentioned, it's a two transaction scheme.
它被称为提交-揭示方案(commit-reveal scheme)。
It's called I think it's called a commit reveal scheme.
意思是,垃圾信息发送者先进行提交阶段,然后在揭示阶段才展示出真正能花费这笔资金的庞大数据,而这些数据就是他们塞进去的内容。
So the idea is that the spammer is kind of first doing the commit stage, and then only on the reveal he's showing, actually, the thing that is valid to spend this is this massive thing, and that's where they're stuffing in the data.
所以这是一个两阶段的过程。
So it's a two stage process.
但问题是,这是对链进行垃圾信息攻击最便宜的方式之一。
But the thing is that is one of the cheapest ways to spam the chain.
对吧?
Right?
所以再说一遍,我不是在支持,但客观地说,一旦超过某个大小,比如大约140字节或类似数值。
So again, not endorsing, but just, like, just objectively speaking above a certain size, which is probably like that 140 bytes or whatever it is.
基本上,任何想把图片注入链上的人,使用见证垃圾攻击通常会更便宜。
Basically, anyone who wants to spam images into the chain, it's generally gonna be cheaper for them to use witness spamming.
因此我认为人们理解这一点很重要,因为有了SegWit折扣,你支付的费用只有使用op_return的25%,而op_return是全额收费。
And so I think it's just important people understand because because of the SegWit discount, you get it's a 25% the cost of putting something in op return, which you pay full full fare.
是的。
Yep.
但仍然存在一个奇怪的边缘情况:如果你想要放入的数据大于80字节但小于某个阈值,比如160字节。
So but there is still a weird edge case is like, if you want to put the data that is, let's say, bigger than 80 bytes and less than whatever the threshold was, let's say 160.
就像Citrael正在做的那样。
Like what Citrael is doing.
如果你需要这样做,那么最便宜的方式是添加另一个输出。
If you need to do that, then the cheapest way of doing it is to put another output.
伪造的公钥。
Fake public key.
这对网络造成了极大的危害。
And that is extremely harmful to the network.
因为对于op_return,只需查看第一条指令就能证明它们是无法花费的。
Because over returns, they can be proven to be unspendable simply by looking at the first instruction.
如果第一条指令是op_return,你可以100%确定这笔交易永远不会被花费,甚至无需将其纳入UTXO集合,因为UTXO就好像它根本不存在。
If the first instruction is of return, you can be certain 100% that this never will be spent, and you don't even need to bother putting it into UTXO set because UTXO is as if it didn't exist.
所以在比特币中,从内部运作机制来看,已花费的UTXO和不存在的UTXO是等同的。
So in Bitcoin, the way it internally works is that spent UTXOs and not existing UTXOs are the same thing.
基本上,一旦UTXO被花费,它就会从数据库中删除,仿佛从未存在过。
Basically once UTXO is spent, it is deleted from the database as if it never existed.
所以基本上,同样的事情也会发生在obrijn上。
So basically this same thing happens with obrijn.
它甚至跳过了存储步骤,根本不会被存入UTXO集合,尽管人们常说obrijn会被修剪,但实际上它从一开始就没被存进去。
It skips even the storing into, there is not even, like people talk about the obrijn being pruned, but it's not even stored in the first place in the UTXO set.
如果你没有启用修剪功能,它仍然会存储在磁盘上,至少会保留一段时间。
It is still stored on disk if you don't have pruning enabled or at least for a while.
如果你启用了修剪功能,它会在几个区块后被删除。
If you have pruning enabled it will get deleted after a few blocks.
所以这是非常重要的一点。
So that's an important part.
如果数据位于中间,那么这对网络来说极其有害,因为公钥会被存入UTXO集合。
If the data is in between, then this is super harmful for network because the public key gets stored into the UTXO set.
而且这个数据永远无法从节点中被修剪,因为如果有人真的删掉了它,可能会导致巨大的链分叉或网络分裂,人们会看到不同版本的交易,这将造成灾难性后果,几乎会摧毁比特币。
And this can never be pruned from the node ever, because if someone did prune it, that could become a huge chain split or network split, so people would see different versions of transactions and this will be completely catastrophic and kill Bitcoin basically.
大概吧。
Probably.
所以这种方式是永远不会被删除的。
So there is no way like this will ever get deleted.
因此,如果有人打算对比特币进行垃圾信息攻击,最好还是采取其他方式。
Therefore it is better if people if they are going to spam Bitcoin.
而且这里有个关键点,我之前说过:那些把数据写入比特币的人,是故意要让数据存在于比特币上,而不是因为只是想找个地方存数据,恰好比特币最便宜。
And here's the thing, again, I said before: people who are putting data in Bitcoin are doing it on purpose to have it on Bitcoin specifically, not because they want to store data somewhere, wherever, and Bitcoin is the cheapest option.
他们拥有比特币,并且愿意支付任何必要的费用来确保数据上链。
They own Bitcoin and they will pay whatever they want, whatever they have to get in.
所以他们一定会这么做。
So they will do it.
因此,如果他们无论如何都会这么做,那还不如让他们把数据放在操作符输出中,而不是伪造的公钥里。
So if they are in this situation where they will do it regardless, then better let them do it in the operator output and not in the fake public keys.
我明白了。
I see.
好的。
Yeah.
所以只是在讨论一下这个 yeah。
And so just talking through the yeah.
正如你提到的,还有更多有害的方式可以对链进行垃圾信息攻击,印章就是其中之一,众所周知。
As as you mentioned, and there are even more harmful ways of spamming the chain, stamps is kind of a well known one of that.
确实有一些人已经在研究这些事情了。
And there there are some of the some of the guys some there are guys out there who are working on some of these things already.
这并不是只存在于理论中。
Like, so it's not like they're just theoretical.
它们确实存在。
Like, they do exist.
它们可以,你知道,我认为 Citroia 这个例子非常具体,因为它只是一个特殊的边缘情况,而大多数垃圾信息实际上我认为很多都是文本,而且通常已经低于 83 字节了。
They can, you know and I think the Citroia thing is like a very specific example because it's like, it's only this kind of edge case sort of whereas most of the spam actually, I think a lot of the spam is text and it's already under 83 bytes anyway.
然后是图片,虽然数量较少,但占用的字节更多。
And then the the images, so they're less by the count, but more by the bytes.
这些图片中,已经有数百万张通过铭文封装被垃圾信息注入到链上。
Those are a lot of those, there have been literally millions of images spammed into the chain using the inscription envelope.
因此,解释这些事情时会遇到这样的挑战:人们可能会看到OP_RETURN图表,显示有多少大容量的OP_RETURN,但实际上,那些想传输图片的垃圾信息发送者并不是在OP_RETURN上进行垃圾信息投放。
And so that's sort of the the challenge of explaining some of these things because people will then look they might look at, oh, here's the op return, you know, chart showing you how many how much, you know, large how many large op returns there have been, but actually, the spammers who wanna put images in, they're not spamming on op return.
他们是在见证数据上进行垃圾信息投放。
They're spamming on the witness.
这就像是一个非常小众的技术话题,你必须深入理解比特币技术细节的方方面面,才能真正理解这些内容。
It's like it's just a diff it's like a very niche kind of technical conversation that you you have to be sort of really into the the guts and the weeds of technical minutiae of Bitcoin to sort of even grasp some of these things.
所以,这让我们谈到你的计算器。
So I guess that brings us to your calculator.
我们来聊聊这个,因为你在网站knotsles.com/calculatorcalculator.html上有一个计算器。
Let's talk about that because you have a calculator at the website knotslies.com/calculatorcalculator.html.
听众可以在节目说明中找到相关链接。
Links will be in the show notes for listeners.
但是,马丁,跟我们说说这个计算器吧。
But, Martin, tell us about this calculator.
你到底在做些什么?
What are you doing?
你在这里展示的是什么?
What are you showing here?
对于人们来说,一些关键要点是什么?
What are some of the the key takeaways for people?
是的。
Yeah.
在我发布所有这些内容后,很多人都说,我注意到很多人基本上都在说同样的事情:是的,但这对垃圾发送者来说也是一种开销,因此成本会更高,从而让垃圾发送者望而却步。
So after I posted all this stuff, people were all like, I noticed that many people were saying the basically the same thing like, yes, but it's it's it's overhead for the spammer as well, so it will get more expensive and therefore spammers will be detracted from it.
我会说,如果垃圾发送者的成本高出一百倍左右,这个论点或许还算合理。
And I would say like, okay, that would be probably a fair argument if it costed the spammer like a 100 times more or something.
但你知道,最好还是有一些实际的数据,比如垃圾发送者到底要花多少钱。
But you know, it's always good to get some real numbers, like how much it will cost to spammer.
我甚至决定去测量不同的技术,因为我也不确定哪种技术才是最好的。
And I even decided to try and measure different techniques because I wasn't even sure which technique is even the best to begin with.
当时还涉及BIP110的含义,他们写的方式让人以为也会限制脚本大小,而这正是让我对哪种技术更优感到不确定的原因。
And there was this thing with the rather, the meaning of BIP110 that what they wrote it in a way that made it look like they will also restrict the script sizes, and that was the exact thing that made me unsure which technique.
如果我从一开始就知道这个限制不适用于脚本,我就会立刻明白,将其放入daproot或见证版本零是最高效的。
If I knew from the beginning that this restriction is not applied to the script, then I would have known immediately that putting it into the daproot or witness version zero is basically the most efficient.
应该放在脚本里,而不是见证里。
Rather do the script, not to witness.
但我还是想展示各种技术,为什么不行呢?
But I still wanted to show various techniques, why not?
编写起来并不太难。
It wasn't too hard to code.
所以这个计算器基本上是模拟攻击者的行为。
So basically what this calculator does is it basically simulates kind of like what the attacker do.
在代码中,它具有UI中的这些参数,比如块限制、推送限制、数据大小等等。
So in the code what it does is it has these parameters that are in the UI, like what is the restriction for like chunk limit, for the push limit, what is the data size and so on.
它会根据这些限制和所采用的技术,虚拟地分割数据。
And it takes these restrictions and based on them and the technique, it virtually chops up the data.
实际上并没有真实数据,它只是在处理数字。
So there is no data really, it just works with numbers.
它会尝试使用一种将数据放入位数的技术,并且我们有一个256字节的限制。
It tries to like, okay, so we use technique that puts stuff into bitness and we have two fifty six byte limit.
所以,无论数字是多少,除以256后,我们就知道有多少个数据块了。
Okay, so whatever the number is divided by two fifty six, and now we have like how many chunks we have.
然后还需要一些处理来判断这些数据是否能放入脚本本身,因为脚本也有大小限制之类的问题,接着它会进一步判断:是否需要更多的输入或输出,比如在超出返回限制的情况下?
And then there is some processing to figure out if it even fits into the script itself, because even scripts can have some size limits and whatnot, and then it tries to process like, okay, do I need more inputs or more outputs in case of over return or whatever?
它会尝试进行所有这些计算,以估算出会有多少开销,最终得出所有尺寸数据并输出结果。
And it tries to like do all this computation to make like, to compute like how much overhead there will be, and then it ends up all the sizes and whatnot, and outputs the numbers.
为了方便起见,还会显示百分比,这就是关键所在:当你尝试不同技术时,通常有一种技术成本极低,尤其是对于大量数据——比如你输入10,000字节的数据并选择Tabscript中的push操作,你会发现仅仅稍作调整,成本仅增加约0.4%。
Then for convenience there are percentages shown, and this is where it gets to the point that you can see that if you try different techniques, usually one of the techniques is super cheap, and especially for large data, like if you put there like 10,000 bytes of data, and you select pushes in Tabscript, you will see that just differentiating slightly will at the cost of like 0.4%.
比如,如果你这么想的话。
Like, if you think Yeah.
那
That
让我为听众强调一下这一点。
So let me highlight that just for listeners.
展开剩余字幕(还有 227 条)
所以,如果你现在使用正确的技术——再次强调,我不是在鼓励刷链,但超过一定大小后,如果你使用某种替代的操作码。
So if you use the right techniques now again, not endorsing spamming the chain, but above a certain size, if you are using some alternative opcode.
假设即使BIP110在最重链上被激活,所有人都在使用带BIP110的比特币,那些想降低成本的刷链者仍可采用另一种铭文方法,而他们只需多支付0.4%的费用。
So let's say hypothetically, even if BIP one ten were to be activated on the heaviest chain and it was, you know, everyone was using Bitcoin with BIP one ten, Spammers who want to economize on their cost could use an alternate inscription method, and they would be only paying 0.4% more.
实际上比这还少一点,但我们暂且说是0.4%。
It's actually a bit less than that, but let's say 0.4%.
对吧?
Right?
听好了,我们来想想这一点。
Listen, let's think about that.
你认为,如果现在有人在刷链,你真的能通过让他们多付0.4%的费用就阻止他们吗?
Do you believe that if someone is spamming the chain today that you are going to deter that person by making them pay 0.4% more?
没错。
Exactly.
所以我认为,这里人们需要理解和明白的关键点是:这涉及的内容很多,我也要特别感谢Moonsettler,他在我和Charlie之前的那期节目中评论过这个话题,解释说,基本上,只要我们还保留比特币脚本,只要还有SegWit折扣,这种情况基本上就会一直成立。
So I think that's the important point that people should learn and understand here, which is that, you know, it's a lot and I you know, shout out to Moonsettler for this as well because, he commented under my earlier episode with, Charlie talking about this and explaining, look, basically, the gist of it is as long as we still have Bitcoin script and as long as we have the SegWit discount, this is more or less gonna be true.
对吧?
Right?
只要我们还保留这两点,大致上就是这种情况。
Like, as long as we have these two things, more or less, that's kind of the situation we're in.
对吧?
Right?
我理解,当然我很欣赏你不想让垃圾信息出现在比特币中的意愿,但现实中存在一些基本的技术事实,除非我们愿意回头取消SegWit折扣,而再次强调,这也会带来自己的问题。
So I understand, like, I certainly appreciate, you know, I understand the desire to not have spam in Bitcoin, but there's just some certain technical fundamental realities on the ground that unless we're willing to go back and unwind the segwit discount, which again, that would have its own problems.
我们当初实施SegWit折扣是有原因的。
There are reasons we did the SegWit discount.
除非我们要放弃比特币脚本,否则这里其实没什么有效的解决办法。
And unless we're gonna unwind Bitcoin script, there's not really a lot that you can do here.
我觉得这就是根本问题所在。
Like, I think that's just the fundamental point.
那你怎么看这个问题?
So how do you see that?
你同意还是不同意?或者你如何进一步阐述这一点?
Do you agree or disagree, or how would you elaborate on that?
一个很有趣的想法,比如说,我们干脆直接去掉比特币脚本,让这些东西彻底消失。
A really funny thing like, let's say like we were like, okay, let's just go to get rid of the Bitcoin script so that there is no no more of this stuff.
姑且设想一下这个情况。
Entertain this idea.
如果我们移除比特币脚本,会发生什么?
What happens if we remove Bitcoin script?
那时候,多重签名和闪电网络这些东西就全都没了。
Mean, multisu and Lightning and all these things are out the window at that point.
如果闪电网络崩溃了,会发生什么?
And what happens if Lightning Network breaks?
所有原本在闪电网络上的咖啡交易都会涌上主链。
All the coffee transactions suddenly go to the chain.
突然间,主链上的交易垃圾可能会增加一千倍、甚至一万倍,这些原本本该在闪电网络上处理的交易。
Suddenly you have like maybe 1,000 times, 10,000 times more spam in the chain from the transactions that would have otherwise been on Lightning.
所以你知道,最大的优化和最大的反垃圾技术就是闪电网络,它是比特币里最有效的反垃圾技术。
So like, you know, like the biggest optimization and the biggest anti That's a funny thing, Lightning Network is the biggest anti spam technology in Bitcoin.
因为如果你通过闪电网络进行交易,成本低得多,所以从经济角度来说,支付更高的通道开启和关闭交易费用是合理的,而这些费用可以驱逐垃圾交易。
Because like if you are putting stuff on, like if you are transacting over Lightning Network, it's so much cheaper that then it makes economic sense to pay higher fees on the channel opening and closing transactions and those can then drive out the spend.
但如果你摧毁了闪电网络,这个机制就失效了,垃圾交易会更多。
But if you destroy Lightning Network then this stops working and you get even auspen.
这里还有另一个很有趣的现象:如果你只看运行一个全节点的成本,一个包含实际转移价值的比特币交易的区块,其验证成本反而高于一个充满垃圾交易的区块。
Here's another really funny thing that if you look only at the cost of running a full node, a block full of Bitcoin transactions that actually transfer some value is more costly to validate than a block full of spam.
我想这其中有一点细微的差别,对吧?
I guess there's a bit of a nuance with that, isn't there?
因为这确实是事实。
Because It is true.
我做过测量。
I measured it.
因为如果我们讨论的是铭文,我认为这一点是对的。
It because if we're talking about inscription, that's I think that's true.
但如果我们将垃圾信息视为BLC,那么就会产生大量小额UTXO。
But if it is a let's say if we're talking about spam as BLC, then that creates a lot of small UTXOs.
对吧?
Right?
因为如果你还记得2023年底到2024年初,有一群人在进行这种竞争性铸造,这才让很多人感到不满。
Because if you remember back in late twenty three, early twenty four, there were these guys doing this competitive mint, and that's why people got annoyed.
对吧?
Right?
克里斯·盖德和另外一些人对高额手续费非常反感。
Chris Guider and a bunch of these other people were really annoyed about the high fee.
不过公平地说,我当时也对那段时间的高手续费感到不满,心想:这到底是什么情况?
Now to be fair, I was also annoyed about the high fees at that time too because I thought, like, what is this?
这些人看起来像是在发垃圾信息,但后来我渐渐意识到,不是这样的。
These guys are like spam but then I sort of realized, no.
这并不是一种可持续的做法。
This is not a sustainable thing.
这些人只是在疯狂花钱,因为他们在赌博。
These guys are just like spending crazy because they're gambling.
现在,好吧,我理解有些人不希望比特币中出现赌博行为,但问题又回到了我们该如何阻止它。
Now, okay, I understand there are people who don't want gambling in Bitcoin, but the but again, it comes back to how are gonna stop it.
对吧?
Right?
至于BRC-20,可能有一点细微差别,因为如果你在做BRC-20,这些人会创建大量的UTXO,正是那时UTXO集合从大约七千万激增到一亿六千万左右。
And so with b r c 20, there's probably a slight nuance there because if you're doing b r c twenties, these people are creating a ton a ton of UTXOs, and that was that was when the UTXO set kinda blew out from maybe 70,000,000 all the way up to maybe one sixty million, something like that.
大概的数字。
Rough numbers.
那时发生的就是这种情况。
That was kind of what happened in that time.
对吧?
Right?
是的。
Yeah.
哦,是的。
Oh, yeah.
我说的垃圾交易,主要是指即使这些交易从存储字节数来看,效率也很低。
By spam, I mean, mainly like because like even those transactions are kind of like if you if you are measuring it in terms of bytes stored, they are inefficient.
它们支付的手续费是实际应支付的四倍。
They are like paying four times more fees than they would have to.
但如果人们只是使用Witness,或者我提到的任何技术,比如Tapscript,那么网络验证的成本就会降低。
But if people are just using Witness and either the Tabscript ML or basically any technique that I put there, then it's less costly for the network to validate.
原因非常简单:签名验证比哈希或其他任何脚本操作要昂贵得多。
And the very it's a very simple reason that signature verification is much much more costly than hashing or any other like script.
这对节点来说计算成本非常高。
It's very computationally costly for the node.
是的。
Yeah.
成本高出几个数量级。
It's orders of magnitude more costly.
有趣的是,我认为如今使用的TypeScript封装可能是全节点验证成本最低的方式之一,因为它可以直接跳过未执行分支中的指令,直接忽略它们。
So the funny thing is like, I think that the TypeScript envelope as used today might be one of the least costly ways for the full node to validate, because it can just skip over the instructions that are in the unexecuted branch, so it just skips over them.
它只需要对整个脚本进行一次哈希运算,因此只有一个哈希值。
And it only needs to hash the entire script just once, so there is just one hash.
如果你使用其他技术,节点可能需要执行某些指令、分配一些内存,或者进行哈希运算,因为其中一种技术实际上是我用于图像的方法:将数据块直接放入见证数据中,然后在见证工具中进行哈希验证。
You are doing other techniques, it might happen that the node has to maybe execute some instruction, maybe allocate some memory, it might need to hash stuff because one of the techniques actually is the technique that I use for my image is just putting the chunks into the witness and then putting hashes verification into witness kit.
这比经过批准的封装带来了更多的开销。
And this is much more overhead than the approved envelope.
但我想证明一个观点:你并不需要经过批准的封装,也不需要OPIF,对。
But I wanted to prove a point that you don't need approved and you don't need to OPIF and Yeah.
你不需要对。
You don't need Yeah.
顺便提一下,因为这对听众也很相关。
And while we're here, I'll just quickly mention because this is also relevant for listeners.
我觉得Shessek已经计算过数据了。
I think Shessek ran the number.
他确实做了计算。
He actually ran the numbers.
我已经发布了这个数据。
I've posted this.
我也一直在跟大家分享这些内容。
I've been sharing it as well for people.
他计算了Taproot带来的差异,这个数字大约是12%。
He ran the numbers on what difference did Taproot make, and that number is like 12%.
好的。
Okay.
所以基本上,即使没有Taproot,你也多付了12%,而即使没有当前的Inscription封装,人们也只会多付0.4%。
So basically, even without Taproot, you're paying 12% more, and even without the current Inscription envelope, people are just gonna be paying point 4% more.
对吧?
So right?
所以即使我们,比如说,去掉Taproot,去掉Opif,你也是在迫使垃圾信息发送者多支付12.4%。
So even if we like, let's say we took away Taproot, we took away Opif, you're you're forcing the spammers to pay 12.4% more.
这真的能产生影响吗?
Is that really gonna move the needle?
他们真的会停止吗?
Are they really gonna stop?
你能想到任何一位垃圾信息发送者,当比特币价格和手续费市场、区块空间市场波动超过这个幅度时,你真的认为听众们会认真思考这个问题吗?
Can you think of anyone, any spammer who's like, you know, when the price of Bitcoin and the fee market, the block space market can vary by more than that, Do you really you know, listeners really think this through.
你觉得12.4%的涨幅足以阻止他们吗?
Do you think 12.4 is enough to stop them?
我不这么认为。
I don't think so.
对吧?
Right?
当然,人们还会争论其他观点,比如,你是在迫使垃圾信息发送者改变他们的铭文封装方式。
Now, yes, there's other kind of arguments people get into of like, well, okay, you're forcing the spammers to change their inscription envelope.
但即便如此,如果你看看凯西·罗达马和其他一些人怎么说,他是Ordinals的创造者,也是ord——可以把它看作一个索引器,同时也是Ordinals的参考实现。
But even there, like, if you look at what Casey Rodama and some of those other guys have said, he's the creator of ordinals and the ord, which is an think of it as an indexer, and it's also the the reference implementation for ordinals.
所以他可能在一天下午就能推送一个更新。
So he could probably push an update in like an afternoon.
然后大多数其他垃圾信息生态系统,比如大型交易所和其他支持所有这些Ordinals垃圾信息的钱包,几周内就会更新。
And then most of the rest of the spammer ecosystem, like the big exchanges and whatever else, the wallets who support all this ordinals spam stuff, they'd be updated within a few weeks.
所以,我理解的实际情况是,这对垃圾信息发送者来说更像是暂时的不便,而不是我们进行共识变更所要付出的巨大成本。
So really, the way I'm understanding this is it's basically more like a temporary inconvenience to spammers and not and and like a big, big cost for us to do a consensus change.
因此,我认为人们有必要理解这些不同成本之间的不对称性。
So I think it's important that people just just sort of understand these different costs in terms of the the asymmetry.
这里存在巨大的不对称性。
There's a big asymmetry here.
这就是我想说的。
So that's that's what I would say.
你同意还是不同意,或者你怎么看
Do you wanna do you agree or disagree, or how do you
呢?
see that?
是的。
Yeah.
如果真的完全没有任何成本,我肯定会说,好吧,让它们多付12%的费用,为什么不呢?
I certainly, if there was, like, literally zero cost to doing this, then I would be like, okay, let's make them pay 12% more, why not?
只是假设一下。
Hypothetically.
但我不想彻底摧毁它,这是另一回事,毕竟还有隐私方面的收益。
Well, I wouldn't want to destroy it uproot, that's other thing, like there is privacy gains and on.
但假设我们能以某种神奇的方式,给垃圾信息发送者增加12%的开销,而完全不引发任何问题。
But let's say we we could many somehow magically create 12% overhead for the spammers without causing like any issues whatsoever.
没有任何风险,也不改变其他任何问题。
No risk, no change the problems if anything.
而且这个改动在代码中超级简单,几乎不需要任何工程或测试工作。
And it's like something like super simple in the code that there requires almost no engineering or testing.
那我就会说,好吧,管它呢,干吧。
I will be like, okay, whatever, let's do it.
但实际情况并非如此。
But it is not the case.
确实存在实际成本。
Like there are real costs.
有改变速度的风险,还有冻结部分资金的风险。
There is risk of change speeds, is risk of freezing some funds.
代码复杂性增加了。
There is more code complexity.
即使只是临时的,强制执行这些临时规则的代码也必须保留在代码库中,直到永远。
And also like even if it's temporary, the code that enforces the temporary rules still has to be in the codebase until the end of time.
我们之后无法移除它,因为如果挖矿技术持续进步,多年后有人可能会利用这一点分叉区块链,创建一个违反之前激活规则的虚假链。
We cannot remove it afterwards because then someone could, after several, like, after many years, if mining gets progressively better, someone could use it to fork the chain and create a like fake chain that violates those previously activated rules.
所以这并不是简单的事情。
So this is not simple stuff.
而且我们还会伤害到合法用户,BIP 110 也会迫使像 Citra 这样的协议使用虚假的公钥之类的东西。
And we would also piece of legitimate users, We would, like, BIP 110 would also, like, force protocols like Citra to use fake pub keys and whatnot.
基本上,就是这样。
Basically, it it.
是的。
Yeah.
我的意思是,说清楚一点,Storeia 已经打算使用假公钥了,但这有点微妙。
I mean, to be clear, Sotreia already are going to use fake pub keys, but it's a it's a bit of a nuanced thing.
这仅适用于他们的挑战交易,而这种交易甚至可能不会上链。
It's only for their challenge transaction that is unlikely to even hit the chain.
是的。
Yeah.
因为这也是人们常说的另一个重要观点:他们为 Storeia 做了改动,但事实并非如此。
So the thing because that's also another big kind of point people are saying, oh, they changed for Sotreia, which is not true.
Citra 是一个例子,但并没有为 Citra 做改动。
Citrae were an example, but it was not changed for Citrae.
我们知道这一点的原因是,Citra 并没有改为使用大尺寸的 op_return。
And the way we know that is Citrae didn't change to do large op returns.
他们根本没有修改协议,因为他们从未要求过,也懒得为此做改动。
They didn't bother changing their protocol because they never asked for it and they didn't bother changing for this.
这只是一个开发者提出的例子,只是为了帮助大家理解。
It was like just an it was an example raised by developers just for people to understand that.
是的。
Yeah.
这主要是开发者的一种表态。
It was mostly, like, kinda like message from developers.
去玩一玩吧。
Play with it.
你介意修改一下代码,只是为了对比特币友好一点吗?
Would you mind to change your code just to be nice to Bitcoin?
突然间,却爆发了一场巨大的、强烈的反对浪潮。
Suddenly, there is, like, a huge huge, like this, revolution against it.
然后呢,实际上,BIP 110 那群人可能已经给比特币造成了更多的垃圾交易。
And then like, okay, so so actually the BIP one one zero crowd probably already caused more spam on Bitcoin.
嗯,除了我的交易之外。
Well, aside from my transactions obviously.
我不确定Citra在做什么或没做什么,但我完全可以想象他们的CEO、CTO或其他人会想:好吧,如果我们把它改成放在op_return里,可能会需要改回来,因为那些人会直接分叉比特币并强制分叉,导致它完全无法工作。
I'm not sure what Citra is doing or not, I could totally imagine their CEO or CTO or whoever else is like, okay, there is this risk that if we change it to put it in the op return, we might need to change it back because those guys will just fork Bitcoin and force fork and it will stop working entirely even.
我们干脆从一开始就不这么做。
Let's just not do that in the first place.
然后我们就完蛋了。
And we are screwed.
嗯,完蛋了。
Well, screwed.
幸运的是,如果它本来就不该进入区块链,那可能也没那么严重,但其实更糟。
Thankfully, it's probably not that big of a deal if it's not supposed to get in the chain in the first place, but, it's worse, basically.
所以事情会变得更糟,仅仅因为人们对此大喊大叫。
So things will be worse just because people were, screaming about it.
这就是问题所在。
That's the issue.
所以,我想总结一下,你对现实中的比特币采用有什么其他愿景吗?
So I guess sort of wrapping things up then, do you have an alternate vision for realistic Bitcoin adoption?
除了BIP110,你建议用什么替代方案?
What would you say instead of BIP one ten?
人们应该怎么做?
What should people do?
如果我们想减少交易规模,那么唯一的办法就是减小批量大小。
Well, if we want to decrease them, then the only option is to decrease the bulk size.
我不会降低一些人提出的弱度折扣,因为弱度折扣仍然很重要,可以防止人们创建过多的输出。
I wouldn't decrease the weakness discount that some people propose because the weakness discount is still important to avoid people from making too many outputs.
如果结合类似跨输入签名回归之类的技术,减少隔离见证折扣可能是有道理的。
It might make sense to reduce the segwit discount if combined with something like cross input signature regressions or something else.
在那种特定情况下,有理由这么做,但仅限于那种情况。
There are some reasons to do that in that case, but only in that specific case.
但另一方面,我认为单纯减小区块大小要简单得多,而且不需要涉及其他复杂操作。
But other end, I think just decreasing box size is much simpler, and it doesn't involve.
问题是,任何这些更改都可能使编码以及任何与比特币交互的其他库和软件变得更加困难。
The thing is like any of these changes probably makes coding, other libraries, and software that works with Bitcoin in any way much more difficult.
由于我是比特币的共同维护者,我可以告诉你关于比特币的情况:我了解它的API,知道它是如何工作的,能够很好地想象出要实现这一更改需要做哪些改动。
Since I am co maintainer of Bitcoin, I can tell for Bitcoin, I know the APIs, I know how it works, I can pretty well imagine what kind of changes would be needed to make this change.
有趣的是,这特别适用于Rust生态系统,但也许其他语言也是如此:REST Bitcoin库是所有其他库所依赖的最顶层库。
And here's the funny thing, this is specific to Rust ecosystem, but maybe some other languages work like this as well, is that REST Bitcoin library is the top most library that all other libraries use.
问题是,如果我们破坏了这个库的API,那么每一个其他库都必须更新,并且它们必须几乎同步地完成更新。
And the thing is, if we break the API of this library, then every other library has to update and they have to it pretty much synchronously.
如果一些库之间也在相互交互,那么它们也需要更新——虽然不一定要严格同步,但必须大致一起进行。
Like if some libraries are interacting between each other as well, then they have to update, well not strictly in a lockstep but kind of together.
这需要某种程度的协调。
It needs to be kind of coordinated.
这会带来巨大的麻烦。
And this is a huge pain.
如果任何分叉造成了这类问题,那将是非常严重的,因为这不仅涉及整个生态系统中的风险、对网络的成本,还牵涉到工程师和开发者——他们本应专注于开发比特币的新功能、提升安全性等,现在却不得不因为一些非统计性的共识变更而调整代码。
And if there is any fork that creates this kind of problems, then it's huge because on the entire ecosystem, not just all these like risks and cost to the network and so on, but also to the engineers, to the developers who instead of making new features on Bitcoin or maybe increasing the security or something, they have to now adjust the code because of some non statistical consensus change.
所以即使如此,我也会非常谨慎地进行这些调整,但仅仅降低区块权重,也就是最大区块权重,是最简单的方式。
So even then I would be very careful about doing these adjustments, but just decreasing the block weight, the maximum block weight is the most like the simplest way of doing it.
但这绝不是特别简单。
But it's not like super simple at all.
它仍然需要大量工作。
It still requires a bunch of work.
是的,话说回来,2017年的时候,如果我能 hypothetical 地在不增加区块大小的情况下实现隔离见证,我会支持这个方案。
Yeah, and I mean, for what it's worth, in 2017, if I could have gotten hypothetically, if we if I if we could have gotten segwit without a block size increase, I would have I would have been in favor of that.
我想,我记得和亚当聊天时,他提到过这样一个想法:如果我们只采用500KB的基础区块大小,同时附带某种折扣,会怎么样?
I think I think chatting with Adam back, I think he mentioned this idea of like, oh, well, what if we just had, like, a 500 kilobyte base block size with like, you know, a discount?
但话说回来,现在看来这几乎不可能了。
But, I mean, at this point, it seems unlikely.
对吧?
Right?
说实话,这件事发生的可能性非常低。
Like, just being honest, it seems very unlikely that it's gonna happen.
但你知道,如果我们能就此达成共识,我的意思是,也许吧。
But, you know, if we could get consensus for it, I mean, I I I think, you know, maybe.
但我只是,嗯。
But I just yeah.
这看起来不太可能。
It just seems unlikely.
而且即使像紧凑的跨输入聚合签名这样的想法,据我所知,目前似乎没人真的在做这件事。
And even the size of idea, the compact the cross input aggregate signatures, it doesn't I mean, from what I understand, it doesn't seem that anyone's actually working on that right now.
所以这又有点像是——至少目前不是。
So it's kind of again, it's a bit of a, like or at least not right now.
实际上,据我所知,是有不少人正在研究这个的。
Well, actually, there there are people working on it to to my knowledge.
哦,我不知道这一点。
Oh, I didn't know that.
是的。
Yeah.
因为我认识一个人,他为此申请到了一笔资助。
Because one person I know that one person got a grant for it.
我不确定这笔资助是否已经到期了。
I don't know if it expired already or not.
希望还没到期。
I hope not.
是的。
Yeah.
因为据我回忆,我觉得Jonas Nick可能在做这方面的研究,Fabian也可能在做。
Because from what I recall, I think Jonas Nick was doing some work on that and maybe Fabian as well.
嘿。
Hey.
我不认为
I don't think
是的。
Yeah.
但看起来并没有很多人 actively 推动这件事。
But it it didn't seem that, like, there was, like, a big that there's, like, a lot of people who are out trying to push it.
我的意思是,嘿。
I mean, hey.
也许吧。
Maybe.
我也不反对这个。
I'm not opposed to it also.
所以,总之,我想说的是,目前没有什么好的方法能阻止垃圾信息,而不同时在其他方面对我们造成经济损失。
So anyway, I guess the point is there's not a lot of good ways to stop the spam that don't also hurt us in some other way monetarily.
对吧?
Right?
无论是影响我们的脚本,还是影响闪电网络,还是影响像 Taproot 小脚本这样的未来路径——它也可能为很多人改善自我托管提供支持,比如冗余、继承,或者一般的安全性。
Whether it's harming our scripting, whether it's harming Lightning, whether it's harming, let's say, script, Taproot mini script, which is also a future pathway for maybe improving self custody for a lot of people, whether that's redundancy, inheritance, you know, just security in general.
你看,当你试图更严格地遏制这些可能的链上垃圾信息方式时,实际上你也在更严格地限制我们真正的货币用途。
Like, think there's a lot of these you know, the harder you try to clamp down on some of these possible ways of spamming the chain, the harder you actually clamp down on our genuine monetary use.
所以对我来说,尽管我从2013年就开始使用比特币,但我完全不支持刷链行为,我只是认为BIP110存在一些真正的风险和问题。
And that's why for me, even though, you know, I've been Bitcoin early since 2013, I do not, you know, endorse spamming the chain at all, but I just I think there are genuine risks and problems with BIP one ten.
我认为这种情况几乎不可能发生,但至少如果人们能理解这一点,那还是有教育意义的,好吧。
I think it is extremely unlikely to even happen, but it's at least I think it's at least educational if people can understand, okay.
这并不只是关于表达你有多讨厌垃圾信息。
It's it's not as much about just sort of signaling how much you hate spam.
而是要理解比特币运作的某些技术现实,即BIP110并没有真正提高垃圾信息发送者的成本。
It's about understanding the certain technical realities of how Bitcoin works and that we are not meaningfully increasing the cost for spammers with BIP one ten.
所以我认为这根本就是不对的,而且它的前提本身也是错误的。
And so I think it's it's just not and it's it's kind of also a a bad premise.
对吧?
Right?
这就像制造一种虚假的紧急状况,因为说Core默认内存池中的内容与Core和Knots早已长期接受为共识有效的内容存在差异,这种说法对Luke或其他持相同立场的人而言是自相矛盾的。
Like, it's it's like a false fake emergency because it's inconsistent of, let's say, Luke or other people in that camp to say that somehow, you know, what Core has in the default mempool is somehow different to what both Core and Knots accept as consensus valid already and have done so for a long time.
一兆字节的OP_RETURN早已是共识有效的内容了。
Like, one megabyte op return has been consensus valid for a long time.
为什么我们现在要对这100KB的OP_RETURN大惊小怪?毕竟网络上已经有数百万个图像铭文,理论上在V30之前,高达400KB的数据本就可以在网络大多数节点上作为标准交易中继。
Why are we now and and to kind of make a huge deal about this 100 kilobyte op return when there are literally millions of image inscriptions and theoretically up to 400 kilobytes people could pre v 30 could even be relayed around the network as standard on most of the network.
所以对我来说,这感觉就像一个虚假的叙事。
So it just it to me, it just feels like a fight false narrative.
至少我是这么看的。
So at least that's how I see it.
你愿意花几分钟时间吗?
Do you wanna take a few minutes?
给我们分享一下你的总结性观点,听众们应该记住哪些关键点?
Give us your closing thoughts, any key takeaways for listeners.
是的。
Yeah.
也许还有一个很少被提及的角度,但我认为它极其重要。
Maybe there is another angle to look at it that isn't brought up very often, but I believe it's extremely important.
人们需要理解的是,比特币挖矿的目的是为了使其抵抗政府的干预。
What people need to understand is the reason Bitcoin is mining is to make it resistant to the government in soil.
因为,假设你信任某个政府,或者至少信任一组政府,比如你选美国、英国、法国,随便哪个,俄罗斯也行,谁在乎呢。
Because like, if you, let's say, for instance, that you either trust a government or you at least trust a group of governments, like let's say you pick The United States, United Kingdom, France, whatever, Russia, who cares.
然后你为每个政府都生成一个私钥。
And you issue a private key for each of these governments.
接着它们共同进行多重签名区块的签署。
And they do basically multistig of blocks.
它们实际上在做和Cygnet或Liquid一样的事情,就是直接生成区块。
And basically they do the same thing that Cygnet is using or liquid, where they just find blocks.
根本不需要挖矿。
There is no mining.
你只是信任它们。
And you just trust them.
如果你信任这些政府,这种方式会高效得多,因为根本不需要挖矿。
If you trust the governments, this will be much more efficient because there will be no mining.
区块的生成频率可以高得多,因为参与方更少,同步问题也更少。
The box could be much more frequent because there are no synchronization issues between fewer parties.
这些过滤器完全可以由政府来实现。
The filters could be just implemented by the governments.
为什么不呢?
Why not?
如果你信任政府,那么这套系统会高效得多,远胜于比特币。
And if you trust the governments, then this would be much more efficient system, much better than Bitcoin.
那为什么比特币会有价值呢?
So why does Bitcoin have money?
为什么中本聪不直接发放这些密钥?
Why Satoshi didn't issue the keys?
因为中本聪根本不想让政府参与进来,这很明显。
Because Satoshi doesn't want to involve governments in the first place, obviously.
而且,人们现在总在谈论区块链上的合法与非法内容之类的问题。
And like, okay, but then people are saying stuff about legal and illegal content in the blockchain and so on.
但关键是,你愿意更换节点,是因为害怕政府因为你存储非法内容而追责;你同样愿意更换节点,是因为担心政府因为你坚持执行2100万枚比特币的上限而对你进行打压。
But here's the deal, you are willing to change your node because you fear that the government will persecute you for storing illegal content, you will be willing to change your node because you are fearing government prosecuting you for enforcing 21,000,000 Bitcoins cap.
如果政府说:好吧,任何运行并强制执行2100万枚比特币上限的比特币节点的人,都将被监禁。
If government says: Okay, whoever runs Bitcoin node which enforces the 21,000,000 cap will be jailed.
所以要么运行我们移除上限的硬分叉,要么去坐牢。
So either run our hard fork that removes the cap or go to jail.
你会怎么做?
What will you do?
根据当前情况,可能会出现IP1110。
Based current situation, there'll be IP eleven ten.
支持者很可能会更换他们的节点。
Supporters will probably change their node.
所以实际上,并没有上限。
So there is no cap, actually.
所以我认为重要的是,人们要意识到,如果没有这种能力,没有节点运行者拒绝政府的意愿,BIP就是完全荒谬的;而且也没有节点会被牵连,因为政府不可能挨家挨户去没收每一台电脑,检查电脑上的软件,来判断它是否恰好运行着强制执行上限的比特币核心版本——这对政府来说根本不可行。
So I think what's important is for people to realize the BIP is absolutely nonsensical without this ability and without the willingness of the node runners to say no to the government and there are no nodes covered to it, so they cannot be prosecuted because the government cannot go door to door and seize every single computer and analyze the software on the computer to figure out if it happens to store some version of Bitcoin Core that is enforcing the limit, that is like this is non workable for the government.
所以基本上,如果你秘密运行你的节点——这本来就是应有的方式——那么政府就无法知道你在运行它;即使他们发现了你在运行,也无法证明你运行的是某个特定版本。
So basically if you run your node in secret, which is how it's supposed to be, then the government cannot know that you are running it and cannot even if they find out that you are running, they cannot prove that you are running like specific versions or something.
如果真是这样,你就不用害怕因为持有比特币区块链中的非法内容而被政府监禁,因为他们根本不知道你实际上在这么做。
And if this is the case, then you don't have to fear the government jailing you for possessing illegal content in the Bitcoin blockchain because they don't know you actually do.
所以这正是关键所在。
So that's kind of the point.
我认为人们没有意识到的是,即使所有这些论点在某种程度上成立,即真的构成法律问题,依然不应该为了这个而改变比特币。
And I think that it's what people don't realize is like, even if all these arguments were kind of like valid in the sense that it would be real, like legal thing, then it would still be wrong to change Bitcoin for it.
因为,如果人们因为屈服于政府而改变比特币,那比特币就已经失败了。
Because, like, if if people change Bitcoin because they feed government, then Bitcoin already failed.
好的。
Alright.
我想我们就说到这里吧。
Well, I guess we'll leave it there.
所以听众们,去关注马丁的网站吧。
So listeners, check out, Martin's website.
他的网站是 knotslies.com,你也可以在 k I x u n I l 上关注他。
It's over at knotslies.com, and you can follow him online, k I x u n I l.
马丁,感谢你今天加入我。
And Martin, thanks for joining me today.
也谢谢你。
Thank you too.
再见。
Bye.
关于 Bayt 播客
Bayt 提供中文+原文双语音频和字幕,帮助你打破语言障碍,轻松听懂全球优质播客。