亿聪哲史首页

<亿聪哲史 />

"Bitcoin is the signal. Everything else is noise."

Return to Block E29

E29·Fork Summer

曾汨: 听众朋友们大家好,欢迎收听《亿聪哲史》第 29 期,我是主播曾汨。

阿剑: 我是主播阿剑。

曾汨: 今天这期播客,我们邀请了老朋友 Jeffrey 老师来和我们聊一聊两个,试图把比特币带向不同方向的 BIP,分别是 BIP - 300 和 BIP - 110。他们都试图改变比特币的部分规则,但它背后的出发点和方向的差别却非常的大。一个希望扩展比特币的能力,为新的应用提供空间。而另一个希望收紧比特币的用途,让比特币保持简单和克制。今天这期节目。我们希望从这两个具体的体验出发,来进一步探讨比特币协议的边界和治理。那么首先,Jeffrey 老师先和大家打个招呼吧。

Jeffrey Hu: 嗨,大家好,非常高兴做客《亿聪哲史》播客,再次跟大家进行交流。

曾汨: 好的,首先 Jeffrey 老师就不用再过多介绍了,已经是我们节目非常非常老的嘉宾了,也是参与过我们节目录制最多的一个嘉宾。

阿剑: 我翻译一下,就是如果有听众不太认识 Jeffrey 老师的话,应该反省并且补听以前各期的《亿聪哲史》播客。

曾汨: 那好,我们先从 BIP-300 开始吧。Jeffrey 老师,你先和我们介绍一下 BIP-300 吧。这套 BIP 是为什么提出来的?

Jeffrey Hu: 我先介绍一下这边的一些情况。然后 BIP-300 它有一个正式的名称叫 DriveChain,中文一般翻译成驱动链或者叫可能类似的一些名字吧,是很早期就在比特币的整个社区里面提出来,就是它的作者 Paul,我能看到的资料从 2015 年左右就开始提出相关的一些想法,在 2017 年正式提交,到现在已经有 11 年了。他想做的事情也比较直接。大家的一个共识是比特币的主链上面,如果我们要加一些很复杂的功能,那么一个是可能加上去会比较漫长。另外一个呢,比特币主链的这种设计的理念,可能也不适合去放很多很复杂的功能在上去。DriveChain 的想法就是,就我先做一个侧链,把这些功能加上去。同时呢,我还保证比如说主链和侧链之间的比特币,我可以自由的进出。那么这个就是 DriveChain 的一个想法。那要去做这个侧链的话,还有个 BIP-301,就是盲化的合并挖矿,让矿工可以在不运行一个专门的侧链软件下,也能够去收到一部分侧链的手续费,也可以相当于是在用矿工,用自己的算力去保证侧链网络的安全。所以这是一个 BIP-300 和 BIP-301 这么两个配套的 BIP 设计的一个想法。

曾汨: 那既然它是想在比特币上面增加更多的功能,那它和我们现在常见的这种所谓的扩容方案,或者给比特币增加功能的方案。比如说最广泛的像闪电网络,然后这几年比较火的像 ARK,那 BIP-300 相当于这几个方案,它有什么显著的区别呢?

Jeffrey Hu: 比较大的区别我理解还是在于整个的资产托管,包括在共识的安全性方面,像闪电网络,还有包括像 ARK 这些链外的这种支付的通道,或者是支付的一些协议,或者说支付的网络吧。那么其实本身你必须要去对比特币这个协议做出改变。那当然可能如果有些新的功能,像比如说限制条款或者其他的一些功能加上去之后,可能能使它们更强大。但这些呢并不是一个必选项或者一个必须要去做的改变。那么比如说像闪电网络现在就可以运行起来,然后像 ARK 的话,somehow 可以去运行,那无非是可能有了新条款之后,它的这个 trustless 的特性可能会更好一些。那么这是一个比较大的区别。但 BIP - 300 的话,可能就会需要依赖于,比如说像比特币上面要去做出一些比较大的一些改变嘛。所以也是这次为什么可能会他会提出来,像包括之前的软分叉或者现在的想要做的硬分叉的这么一个事情。那么像这次的一个 BIP - 300 的它的这个分叉想法就是那除了比特币主链之外呢。我是不是直接可以硬分叉一个比特币的这么一个新的一个链出来,然后基于这个新的链,然后我会再去运行很多的其他的一些对于不同功能的一些策略。因为 BIP-300 相关的一些项目,其实我们之前在聊投资的过程中其实也和团队去接触过。如果我没有记错的话,大概在两三年前,相关的一些团队,像 Drive'chain 团队其实也想过,比如说会基于一个硬分叉的一个主链,会在上面再加上起码可能至少五六个不同功能的这种应用专有的一些策略去做不同的一些事情。所以它这整个的网络的设计架构,可能就跟闪电网络或者 ARK 是有挺大的不一样的区别的。

曾汨: 它的激活很依赖于硬分叉吗?

阿剑: 应该这么说吧,就是它原理上来说是可以做成软分叉的,但是应该是蛮长一段时间来,感觉它在比特币社区没有办法推动,所以它现在是决定通过硬分叉一条主链出来,然后在上面去直接去激活 BIP,激活它的这个提议。

曾汨: BIP-300 的提出最早是在 2015 年,然后到现在才进入到这样一个阶段。为什么发展了这么多年,它始终没有获得大家广泛的关注呢?

Jeffrey Hu: 我觉得最大的一个问题可能还是在于它可能会潜在的会要求整个网络可能会有一些软分叉或者是硬分叉的这种潜在的可能性在这边。所以整个社区里面可能对于这种方式会有很大的一个担心。有一个例子啊,就当然也不是完全没有人关心的,就大家经常会看到有很多对于 DriveChain 或者 BIP-300 的这么一个分析的一些文章,像 2023 年的时候那个 Luke Dashjr 他甚至自己去把那个 BIP-300 的代码去重新写了一遍,因为他可能觉得这个是不是代码原来的这个实现不是特别好,然后他甚至申请合并到比特币,有这么一个情况,当时在 2023 年的时候。

阿剑: 对,其实这个事情我也还记得,不过从一定的程度上来说,其实 Luke 当时他做的事情就是重写了。关于就 BIP - 300 关于共识的这个部分,就你怎么在这个 Bitcoin Core 的这个数据库里面去做一些操作的这个部分。然后他在那个 PR 的描述里面是写得很清楚,说我这个 PR 不是对他的背书,也不是对他反对。然后如果你们是支持或者反对 BIP - 300 的这个整体的这个想法,可以放到其他地方去讨论。我在这里只是提出一种从共识上实现它的这个办法。我们只需要讨论这种办法本身是不是适合这个概念。其实我印象中那一段时间,人们对 BIP-300 也是有一些讨论的。包括其实像作者就 Paul 本身,他是一直都在推销这种想法,但只是可能大家不太接受。我自己有一个比较直觉的这个判断就是什么呢?就是其实 BIP-300 他的想法,因为他的这个基本的想法就是说本身你在比特币脚本当中没有办法实现所谓的双向锚定。既能够免信任的让你的比特币进入侧链,同时也能免信任的让这个比特币从侧链上退出,退回到主链上。现在的这些设计,比如说所谓的联盟侧链的话,它其实一定程度上是需要信任的。那你需要信任联盟里面至少有一半的是人是好人。那他的这个想法就是我们能不能让这个事情本身变成是工作量证明挖矿的一部分。相当于直接让矿工来在区块当中投票来去决出这些侧链上的最新状态。并且在这个过程当中能够实现所谓的免信任的进入和退出。在我看来,他有一个想法就是他想得到以太坊的成果,但他不想承担以太坊的负担。大家可以仔细想一想这个事情,就是假设有一些侧链,就侧链上有很多的这个合约,他们有很多的这个状态,

但是这些侧链理论上来说,就按照他的设想啊,理论上说只需要由矿工来运营,而比特币的本身,整个网络这个全节点不需要知晓这些侧链的这个内部状态。那他是不是就很像一个只需要矿工来运行一个像以太坊一样的这个层,但是对于比特币全节点来说,他不需要承担这部分负担,也就是我能不能既要以太坊的这个功能性,所有这些功能性全部在矿工保存的状态的这个侧链上来去实现,但是比特币的主网就不需要去管它,想法是这样,但是。就像 Jeffrey 说的,这一个想法对于比特币人来说,它会是一个很显然,很庞大,而且对于我们已经习惯的比特币的安全模型来说非常不一样的模型。不管你怎么说,我的侧链的状态变更跟主链的状态变更都一样,都是比特币矿工的工作量证明。但是始终对于比特币的网络上来说,所有的比特币,它的安全性都是由我们已知的这种密码学签名的这种方式来去保护它。然后这也就是说我们有分析经验的这些东西,包括联盟化的这个侧链,其实都是基于这种多签名的这个资金保管,也就是我们对它的安全假设的分析经验全部都在这里。但是你现在突然说有一个侧链,它是完完全全。不是基于任何我们所知的这个密码学签名的方式,而纯粹由矿工的工作量证明来投票来获得它最新状态的话,很显然,至少是跟我们已知的这个比特币的保管。

曾汨: 的安全模型是非常非常不一样的 OK,那我们来聊一聊另一个和 BIP 300 的取向完全不一样的另一个 BIP,也就是我们在片头提到的 BIP 110。那这位老师 BIP 110 它又是干什么的呢?

Jeffrey Hu: OK,BIP-110 其实如果我们要去理解这个东西的话,其实我们可以从我们往期播客里面也经常会聊到的很多的话题来入手,像比如说我们之前讨论过的铭文或者是相关的节点的过滤的一些条件,包括像之前的我们聊的 Bitcoin Core 的 V30 的版本,把那个 OP_RETURN 的这个上限去提高了非常多等等等等。这些可能都是一脉相承的一个话题。那 BIP110 里面具体它是去做的一个事情,叫做缩减数据的临时软分叉,包括了有输出大小,34 个字节认为输出是无效的,当然 OP_RETURN 是例外,可以到 83 个字节,这个是特殊的一个情况,然后还有一些其他的限制,比如说像数据的推送,包括 witness 的元素上限是规定到 256 个字节,相应的话,在 Taproot 里面的整个的 control block,就是条件控制的这么一个数据块里面,不能超过 256 个字节,限制它脚本树的一个深度,相对应的还会包括一些其他的这种输出的一些,比如说像指令上面的这个限制,以及这个像 Taproot 的这个 index 的这种限制等等等等。相当于是它提出了一个新的一些共识的一些规则,让某一些的 UTXO 的输出,那我直接在这个共识规则的层面上就宣布它无效。而不是说像比如说我们在之前很多播客了解到的,就比如说我运行了一个像比特币的节点,那么当我遇到了一个比如说输出脚本非常大的一个交易,就明显是一个可能。非经济用途的一个比特币的 UTXO 的交易。那我在 P2P 网络里面如果还没有进入区块的话,Bitcoin Knots 它是不传播它。

但如果它 somehow 比如说还是最终在一个合法区块里面出现的话,那 Bitcoin Knots 还是会去正式的承认这笔交易,以及去正式承认后续的一些处理。但是 BIP 110 可能就是从共识规则层面上来确定出来,就是如果未来再有这种相关交易。那我就直接认为这些交易是不合法的。是无效的一个交易,所以这个是有一个比较大的一个差别,就相当于从原来的只是一个 P2P 网络的这么一个交易转发层面的规则或者过滤的规则。提高到了整个网络的共识层面,所以它会形成一种新的软分叉的形式去做目前激活,然后比较凑巧的是跟 BIP-300 也是同样的时间,也是在 8 月份,那可能会比 BIP-300 更早一些,在 8 月 7 号前后,BIP-110 就会进入到一个强制的信号期。从那个时候开始,支持它的节点会开始去拒绝那些没有去接受表决的一些区块。但是从那个之前现在我们可以看到,网络上面的也有一些区块已经是由矿工打包,区块会在一个信号位里面已经开始去举手表决出来。就我会在那个 8 月份开始之后支持这么一种新的一个共识的规则。所以这个是 BIP-110 的大概性内容以及现在一个概要性的一个现状。

曾汨: 8 月份很忙啊。我先在这里补充一下,Jeffrey 老师在介绍 BIP110 时提到了很多技术概念,像限制条款,像区块空间,像比特币 V30,这些在我们之前的播客当中都有聊过,而且基本上也都是和 Jeffrey 老师聊过的。所以感兴趣的听众可以去回听那些播客。然后刚刚 Jeffrey 老师介绍了 BIP110 它的内容是什么?那么这个时候我想问一个更本质一点的问题,就是 BIP 110 它为什么会提出来这个 BIP?它背后代表的是什么样的一种价值的取向?

Jeffrey Hu: 我觉得价值取向就是对于大家怎么去认为这个区块空间的利用的这么一个想法,或者一个设计的理念。因为整个 BIP 110 的一个提出的一个背景,其实也是跟前两年。比如说像铭文啊或者其他的这种一些在网络上的这种非原来我们认为的就是比特币上面的这种转账啊,或者其他交易的这种用途是不太相关的。一些这种 UTXO 大量出现是有一定关系的。那么在这两年,像比如说这个 Bitcoin Core 的这种或者其他开发团队的处理,其实也没有让所有人都满意,或者说引起了很多的争议吧。像比如说这个从 OP_RETURN 的这个上限去提高到实质性取消的这么一个现状。包括可能还会有一些其他的绕过这种各方面的比如说这个转发条款,然后我直接去把这个交易去发给矿池,让这些这种非标准的交易可以去达不到区块里面。那这也实际上对于整个网络上造成了一些影响,所以很多的开发者其实对这种各方面的一些处理,不管是开发团队还是这个矿池这种处理可能都不是特别满意。所以呢,我理解是 BIP-110 的这种提出者,包括开发者,可能会基于这么一个出发点,所以呢,是把从我们现在看到的这种转发策略的这种情况下,要提高到共识规则的这么一个,相当于上升了一个级别。去做到所以希望提出这个 BIP-110 的这么一个软分叉。它也并不是一夜之间或者说今年才提出来一个新的话题,它更多的是在整个社区在采用各种各样除了软分叉之外的手段之后,发现好像这些交易还没有办法完全堵死。或者是采用转发策略,或者我去做个 Bitcoin Knots 的客户端,都还没有办法去完全堵死之后,去提出这么一个新的想法。

曾汨: OK,那其实你刚刚介绍 BIP110 它的内容其实是限制了蛮多东西的,那它会不会对现有的比特币上的一些应用,包括用户资金起到一定的误伤呢?以及说影响未来的升级的相关的机制呢?如果比如说未来的某一项技术,它需要用到今天你 BIP110 里面暂时关闭的这些空间的话,会不会遇到什么问题?

Jeffrey Hu: 我就可能会从几个方面来聊这个话题。就是从资金层面上,其实没有可能会。比如说把老的一些这种 UTXO 可能会冻结到这个倒不会就不像另外一个,我觉得可能也是未来 BIP 会引起非常大的一个争议,叫 BIP - 361。未来我不排除可能会,比如说在明年或什么时候也会出现这么一个更大程度上的讨论。那么在 BIP - 361 里面,可能老的一些,比如 P2PK 这种 UTXO 可能就会被暂时性的冻结掉,或者说是这个暂时无法去转移掉。但是这 BIP110 是不会,就是老的这种 UTXO 它是全部就豁免了。没有说你在某一个时间里面必须要迁移到比如说新的地址里面,或者符合新的共识规则的这种情况。所以哪怕比如说原来还有些很大的这种脚本的一些输出的 UTXO,那还是存在在链上的话,其实也还是会符合未来新的网络。所以它是有软分叉,并不是说有些造成资金冻结的这种类似于硬分叉的这种情况。但是呢可能会有一些影响,最大的影响我觉得就是脚本树的这么一个深度的影响,因为现在可能很多的一些脚本最典型就是 BitVM,它因为要把很多的像比如说电路的一些相关的这种语句,或者是一些数据,可能要放到整个的数字脚本里面。但是现在如果甚至 256 个字节或者 257 个字节的这么一个脚本树的一个深度的话。那肯定是会影响整个 BitVM 相关的一些开发的。那其他的相关的一些,比如说链外的支付的协议,可能也或多或少会有些影响。我还没有做深入一些研究,像比如说 ARK 或其他的这种支付的一些应用,如果它的脚本在某种程度上会特别长的话,那可能也会受到这个应用层面上的一些影响。这是从应用的开发层面上面。

然后对于未来的这么一个升级上面,我觉得也是可能会有一些影响吧。最大的影响就是 OP_SUCCESS 的这个影响。在 Tapscript 里面,新增操作码的时候可能会有一个部署的方式,但是如果是在 BIP-110 里面把这个去掉的话,可能未来如果你在新增操作码就会受到一些影响了。然后还有一些就是 Taproot 的那个扩展的字段 annex 是一样的。就如果不允许这个字段去使用的话,未来其实也会受到影响。因为之前我们可以看到相关的一些可能会讲究过转发策略,把一些数据放到 annex 里面去做的这种 UTXO 可能也会利用到这个字段。那么所以这次 BIP-110 也把它禁掉,但是反过来可能也会限制到未来升级或者扩展。但是提案者其实也有它自己的理由,就是说如果说整个的软分叉没有办法从,比如 8 月份从提案一年之内走到激活的话。那未来可能整个的这个共识的这个限制也会过期,所以也不会涉及未来的应用造成影响。但是呢,就如果说真的激活的话,可能还是会对未来整个的应用开发,包括未来升级,可能会有一些实质性的一些影响。那最典型的可能就是还包括像未来如果要升级我们的限制条款,像比如 CTV 或 CSFS,那可能就会需要用到像 OP_SUCCESS 这些操作码。需要对它进行重定义。但是如果以后未来真的激活的话,就相当于是堵死了一定程度上这个未来某些新的功能的引入,或者是新的软分叉的进一步的一些部署。所以这个时限也可能会引起争议或者是技术讨论的比较多的一个地方。

曾汨: 这个 BIP 里面有一个内容是这个软分叉持续是有一个一年的时间限制,是吗?为什么会有一个这样的限制?

Jeffrey Hu: 对,这个就是在激活之后一年自动失效,就是它也是说避免限制未来的一个升级,就像刚才说的,同时也会给社区一个长时间的去做一个方案去准备吧。那么其实这块可能是整个提案里面相对我认为是比较克制这个地方,就是他可能会觉得自己是不是整个提案也是不对的,然后那么所以可能我们也设置一个失效的时间。但是这个地方反倒可能也是会被人去诟病的一个地方。因为像 Michael Saylor 他说,虽然你可能未来这个规则会过期,但是在这个规则范围内生效的这个一个先例,像比如说有些这个交易,在这个时代内就是被整个共识规则去过滤掉,那它是已经成为一个既成的一个事实,成为了一个历史上的一个牺牲品。那么所以这个是没办法再去挽回的。所以这是大家也会去诟病的一点。

曾汨: 其实像你刚刚说的,这个 BIP 它在设计上已经比较克制了,包括它想做的事情也是,我觉得在我的眼里是符合很多 Bitcoin 的内心的想法的,就是让比特币进行得简单,不要去加乱七八糟的东西,但是为什么这个 BIP 到现在似乎也没有得到很多的支持呢?

Jeffrey Hu: 对,目前从我自己观察来看,确实支持的情况还不够理想。我觉得问题可能主要在于除了刚才说的技术部分的争议之外,然后它具体在推行这个方式上可能也会引起很多人的争议,甚至是反感。像一个最大的一个引起争议的地方就是它整个激活的阈值是 55%。历史上的像隔离见证或者 Taproot 它都是 95%。也就是相当于是在整个我们可以看到,就比如说 2016 个区块的这么一个窗口期里面。如果说所有产生的区块里面,在某一个标志位上面都举手表决出来,就是我愿意去支持这个新的功能的软分叉的话,这个区块里面会带有这么一个标志位。然后同时重新在 2016 一个区块里面都超过。如果超过 95 % 的话,那么大家就会认为这个新的软分叉的这么一个共识类规则很大程度上是安全的,不会造成网络的一个分叉或者分裂。它并不是一个,比如说像 POS 一样,就是说 95 % 就是一个人为设置好的一种某种单一号的叫智能合约,或者什么其他的这么一个写死的这么一个规则。就是到了这个情况,我们就自动切换到一个新的软件。它更多的还是为了整个社区达到一种粗糙的一个共识。就是大家直接用算力去投票就我是不是愿意支持这么一个新的软件。95% 更多是一个争取意愿,大家用算力去表达自己意愿的形式。那么 95% 肯定是比较高的一个安全的门槛了,但是 55% 大家可以看到其实它的整个的阈值是非常怎么说呢,其实很容易去引起整个网络的分裂,哪怕就是比如说 55% 或者 60% 以上可以超过这个阈值,那么也可以看到就还有少数的这么一个 40%、30% 的这么一个算力,它可能会不支持这么一个网络,可能会让整个网络引起一个分裂,

所以这是我觉得引起争议最大的一个地方。

阿剑: Jeffrey 老师,你觉得大家反对的是它具体的这个规则,还是说反对的是它的这个整个 BIP 的想法?就是有一些朋友他们会认为这个 BIP 相当于表达一种想法,叫做我们可以根据某种意愿吧,来去强力地干预进入区块的这个内容。你觉得其实大家是因为他的这个具体规则实现的不够好,还是说其实大家不喜欢这种想法,或者说不喜欢相关的其他想法?

Jeffrey Hu: 我自己观察可能会都有,就可能不同人的想法可能会不太一样。就有些人可能反对的是具体的这个规则内容,有些人可能反对是这种激活的这种方式。对于规则内容这块来说,如果我们延伸一下,可能就是像阿剑老师说的,可能有些人觉得这是不是又是一种属于老生常谈的一个问题,那我们在转发策略上去干预了很多的这种,或者设置了很多的限制,那是不是就是一种内容上的审查?那现在把这个高度拔高到了这种共识规则的这么一个层面上,那是不是更是一种内容上的审查?所以就很多人去提出这么一方面的想法。这是可能是偏设计理念或哲学方面的讨论。另外一方面可能觉得这个限制是不是太苛刻了,以至于像刚才我们提到的很多技术上的一些未来的升级,或者其他的这种应用,可能也是被限制到了。那么对于这个规则上面可能也会持有保留态度。所以这个是对于反对具体规则内容这方面的一些理由或者声音吧。那反正激活方式我自己个人理解可能会是更大的一个争议,因为比较低的一个安全阈值,可能也是会对整个网络安全其实会造成比较大的影响的。

阿剑: 我在这边给大家提供一个背景吧,就是说关于对 BIP-110 的它的。具体的内容的分析,因为 BIP-110 里面比较关键的,比较细节的,比如说它对于所谓的 OP_SUCCESS 这个操作码或者是其他东西的限制,可能它们是比较细节的,就是说不是很核心的内容,最核心的内容是首先它是限制单个脚本的对象不能超过 256 字节,然后同时另外一个地方是它会限制 Taproot 脚本树的深度,那我们可以拿它来跟什么来去做对比呢?就是历史上在比特币的交易里面,在隔离见证以前,它其实有一个潜在的就不成文的一个共识规则,就是单个脚本对象的长度是不能超过 520 字节的。就在隔离见证以前都是这样,就单个这个脚本对象,就不管你是什么东西,反正但凡你是用这个所谓的 data push 这个操作码放到这个脚本里面的,你的这个长度都不能超过 520 字节。到了隔离见证 v0 的时候,就是 2017 年,然后他通过软分叉启用一套全新的这个共识的这个验证规则,所以他就把这个限制给绕过了,他变成一种新的限制,叫做整个脚本的这个长度不能超过 1 万字节。这个其实对于原本的,你可以说它不是完全相同的这个限制。它就不是对于单个数据对象的长度有限制,而是对整个脚本的长度有限制。那隔离见证的脚本的这个长度,据我所知,它应该是会对多签名的公钥和签名的这个数量产生一种隐性的这个限制。应该是这样。我也不确定这个是不是我记错了,或者有可能它是因为 P2SH 而产生这个限制。那再往后,2021 年激活 Taproot 的时候,Taproot 它是本身取消了这个 1 万 bytes,这个全脚本的长度的这个限制,

因为原本这个位置里面也没有,所以它对于单个对象的这个长度也没有任何限制。这就产生了我们在 2021 年 2022 年看到的,在一些链外的智能合约协议,比如说 Ordinals 的协议当中,有一些人他可以用铭文的方法在见证脚本当中写入几 MB 的最多能达到 3.85MB 这么大的数据,一次性写入的根源。那在我看来,BIP110 它做这个限制就相当于是说,你会发现它没有在尝试去对脚本的长度去做限制。相反,它使用了一种在隔离见证以前的那种类型的这个限制,就是对单个数据对象的这个长度去做限制,并且做了一个更严格的限制,不是 520 字节,而是 256 字节。也就是说,BIP-110 的支持者似乎他们接受了在 Taproot 的论证当中的一部分论据,认为不应该对脚本的长度施加限制。当时人们支持 Taproot 不要施加限制,我现在听到的一个理由是说,这个长度的限制会对 Miniscript 的编程语言的编译的过程。会有一些影响,就是说如何写出一个比较优的,比较好的比特币脚本的这个代码,这个过程会有影响。那 BIP-110 也许是不想反对这个,不想再走回头路去重新讨论 Taproot 的这一个验证规则这个设计问题,而直接加上了 256 字节的这个限制,同时他再加了一个限制,就是禁止使用 OP_IF 和 OP_ELSE 这样的这个流程控制操作码。实际上是这两条线,包括还有那个限制这个脚本树的这个深度,实际上是限制脚本树的深度和同时禁用 OP_IF 和 OP_ELSE,两个加起来才会限制 BitVM。如果你只是限制树的深度,而允许我们使用 OP_IF 和 OP_ELSE 这样的流程控制操作码的话,

它是不会限制 BitVM 的。因为 BitVM 无非是我原本切成很多个小的脚本,现在我不会让它扩大一点,因为只要我在脚本里面还能够使用流程控制操作码的话,它还是能执行的。但是两个加起来就变成了限制一部分 BitVM 的用法。我在这里想提供的这个背景,除了是想告诉大家,这个限制它跟我们的这个历史的这个相似的和不一样的部分。实际上也是在表达一个我自己的个人观点。因为就我个人而言,实际上我更喜欢对长度的限制,就我更喜欢对于整个脚本长度的这个限制。为什么呢?因为在隔离见证的激活之后,其实我们没有看到像 inscription 这样的这个方法的这个流行。如果我们是为了用一个比较简单的规则来去限制,我们在这几年看到当中的通过 inscription 的这个方法向区块写入数据,而没有任何约束。没有任何限制的话,那么我们有两种办法。一种办法是我们恢复隔离见证一样的这个对脚本操作这个限制,那他当然也会有一些成本,但这个成本不会直接伤害,现在可能已经在服役的这些产品或者这些协议。另外一种方法就是我们满足接受于依旧在转发规则上去对它做限制,而不是在共识规则上做限制。这两种方法,我不能自然地说它们会更好,或者是它们一定会更少争议,但是在我看来,至少它们的好处在于,它们不会直接伤害现有已经有可能在服役的这个协议。比如说 BitVM。如果我们回到这个 Michael Saylor,他对于 BIP-110 的批评,就是说这样会建立一个先例的话,我们其实可以想到他在两个层面上,一个层面上他是对的,就是为什么呢?因为在此之前,比特币的软分叉一直极力避免会误伤应用或者误伤已经有的用法。

已经有的这个钱包,已经有的这个用户,但是 BIP-110 它是会产生这个先例,但是在另外一方面你又可以说这个先例其实是从 BIP110 本身的目的上来说,它是没有太大意义的,因为你想,BIP110 本身它的协作已经如此的困难,我们现在协调一个软分叉也是如此的困难。当下一次有 Inscription 这样的浪潮,这个软分叉一年持续期过后,当人们再次涌起这种炒作浪潮的时候,我们会有这个时间能够及时的设计出一套软分叉来去阻止他们吗?也是做不到的呀。所以你可以说这个 BIP-110 即便建立了这个先例,其实它从长远来看它也没有效果。这是我想补充的这个东西。我再补充一点,我反对这样的一种想法,就认为因为 BIP-110 对数据的这个长度施加这个约束,它就是在主动的审查应用或审查用的内容,为什么呢?因为哪怕是这个所谓的这个非同质 token,就收藏品的这个在比特币上这个实现,你也明显有一些协议,它是不需要使用链上数据的,比如说 Taproot Assets,比如说 RGB,所以对它进行限制,是完全不会让这些应用完全无法在比特币链上生存。其次,如果你认为这是一种审查的话,那你其实也是在说,最早的那个比特币的这个版本,它也是在大力地审查应用,对不对?因为它也是 520 字节的这个限制。

Jeffrey Hu: 我再补充一点,就是比如像前两天在推特上,也有一些开发者是用其他的方式去用了,完全就符合 BIP 110 规则的这种一个交易,去打包了很大的一些内容。像比如说 BIP110 这个 proposal 提案本身的文本放在了这个比特币的交易里面。另外一个就是把很多的图片用多笔的交易去放在一起,然后串起来,然后形成了一个更大的一个文本的图像。所以这也是相当是用一些反对者可能用他自己的一些技术的手段,可能去试图就证明出来这 BIP 110 的这个限制。在规则层面可能还会有办法去绕过这个共识。规则还是有各种办法可以去发各种内容上去的。所以这我自己个人认为是从说明两个问题啊,一个层面是认为就是内容审查,我觉得也是不成立的。因为你总会有各种办法。如果你想发这个内容的话,你总会有各种办法可以去发到比特币链上了。所以这个只是做了一种技术上的手段限制,并不是能够限制你具体要发什么内容。另外一个是证明出来 BIP 110 是不是有必要在共识规则层面上去做这么多的一个限制?所以这是我能看到的就是大家讨论,包括在技术上面做各种测试,或者说实际在组网上发交易,可能能值得大家思考的两方面吧。

曾汨: 那我们就跳出这两个 BIP 来聊一聊更广的一些话题。在历史上,似乎有很多时候,有一些提议的开发者会在 Bitcoin Core 的代码还没有准备好的时候,就提议推出替代性的客户端软件来激活软分叉。到目前为止,这样的活动要么就会终止,要么就以失败而结束。那 Jeffrey 老师,你认为这样的活动注定不会有结果吗?它对比特币到底意味着什么?

Jeffrey Hu: 我自己个人认为还是有比较有意义的一些尝试在这块的。尤其是比如说从开发者的层面或者用户层面上,如果你想推进一些事情的话,尤其现在在 AI 的帮助下,如果你想去做一个功能的话,你可以很快去 fork 一个比特币的客户端去加这个功能上去,然后同时也可以去在社区里面去号召出来,是不是可以去我们用 UASF 这种方式,就是全名应该叫用户激活软分叉的这种方式去号召大家,在哪怕可能矿工还没有完全准备好,或者说矿工没有明确表达自己意愿的情况下,采用一种威胁的方式去想要去让这个功能去激活起来。也就是说如果矿工不表态的话,我就明确去拒绝掉。没有加这个功能的一些区块。所以这也是为什么我们可能在这期播客正式发布的时候,可能会在 8 月 1 号左右,8 月 1 号也是一个比较特殊的日子,比特币独立日。在那个时间点我们可以证明出来,UASF 的方式也是可行的。整个网络也并不是完全由矿工去主导的这么一个网络。整个用户在网络里面话语权是非常高的。所以反过来就是如果是另起一个客户端去强制去推行激活的话,比如说之前的像隔离见证,其实大家也是应用程序上是用这种方式去做,经过最后可能还是用了这个矿工激活的方式去实现那个隔离见证。那么在 Taproot 的时候其实也有一个 UASF 的一个后备的方案,但是后来因为速战速决的方式,其实也是很快速的,在网络里面达成了一个共识。激活了这个 Taproot 的一个软分叉。可以看到就是如果强行去推行一个客户端的话,其实还是有这么一个技术的基础的。但是呢,目前历史上可能要去,真正去强制去,比如说我开发一个客户端去激活,目前应该还没有这么一个先例,

除非自己可能自己去做一个项目,自己去激活硬分叉,这个倒是有的,但你不能说是整个比特币网络,是通过这种运行客户端的方式去增加了一些功能。所以这个是一个概念上的一个区别。但是另外一个呢,我也不会认为这种方式没有效果或者是注定是失败的。我觉得可能更好的一种说法是这种备用的客户端或者激活的方式。那首先一点是可能我们可以去做一些有意义的这种功能上的一些尝试,比如像 Inquisition 这种在比特币的测试网,或者是其他的网络上面,会去尝试一些很多的一些新的功能。比如新的 opcode 或者是新的限制条款。这是一种方式。然后另外一种方式也是潜在可以始终会做一种 UASF 之中,在迫不得已的时候可以作为一种有效的武器进行最后的一种威胁。这两个层面上我觉得还是有意义的。

阿剑: 对我来说,BIP-110 这个事情它也有意义,也许可能大家觉得这个软分叉,首先它不一定会成功,就现在看来它成功的概率可能也不高,对吧?或者是我可以对它的内容提出一些疑问,包括它的整个的设计理念,因为我看了 BIP-110 它的 proposal 的文档,那我也能从我的这个角度提出问题,当然它也从它的文档后半部分也对大大小小很多问题都做了回复,可能它不会成功,或者说它里面设计的具体规则是可以质疑的。但是我们可以想一个事情,就是 Jeffrey 老师说的,它提出的问题是不是一个真的问题,或者说是不是一个我们需要去面对的问题。因为有一个很坚实的前提就是,比特币它是一个网络,这个网络的资源是有限的。虽然有一些想法是比较乐观的认为,在一个统一的共识规则之下,搭配一套比较宽松的一个转发这个规则,使得我们可以尽可能发挥这个网络的这个潜力,使得他尽可能减少人为去干预的这个必要。这是一个我们大体上都认同这个思路,但问题是是不是只需要这一层或者两层的这个规则就足够,或者说有没有人先证明了这一层两层规则已经完备这个前提下,证明他我们现在取得的这个第一层或第二层规则已经是最优的。很显然,我自己个人认为这些规则是有调优的这个空间,使得我们能够让它能够容纳许多的不同的网络活动,不同的对网络的用途,同时尽可能的去限制一些可能造成长远伤害的活动。因为很显然,把数据放到比特币网络上,这个事情当然它是由来已久,但你可以说,它在历史上也遭遇过不同程度的,不管是共识层面,还是转发规则层面的限制。那么目前已经是它所处的一个最宽松的时期了。但是特别宽松的时期就产生了一些,至少在我看来还不是特别理想的成果。

计算对于网络来说,不仅要考虑处理器的资源,就是验证的成本,你还需要考虑存储的成本,这是没有办法绕开的问题,而存储的成本是没有办法再生的。一个区块它 4MB 就是 4MB,3MB 就是 3MB,你不可能逆转这个区块,然后让这些资源重新再生出来。既然没有办法做到这个事情,为什么我们不应该在这件事情上更加谨慎一些呢?所以在我看来,有这些活动,也许在大部分人看来就是很草率或者有点傻,这些批评我觉得一定程度上也都是可以接受的。但是有这些活动,我觉得其实最后来说,我们所有人都是受益者。至少对于我自己个人来说,我觉得我是能够从 BIP-110 这件事情当中受益的。因为至少当我们再次重新回到这个问题的时候,比如说一年以后或两年以后,当我们重新回到这个问题的时候,我们会意识到这个网络当中有一些人他们是关心这个问题的,并且会有这样的一个倾向。那么我们是不是可以让所有这些协议的这些开发者应用的这个开发者,他们在部署开发一种技术方案的时候能够多三思一些,能够多往前走几步,使用一种对所有人的影响都更小的这个资源占用量更少的一个方案。我觉得有这样的一个效果,它就是成功,它对我来说就是有意义的。

Jeffrey Hu: 对,我再补充一点,其实我自己感觉 BIP110 的,给我来说可能比较大的意义是在于,它相当于是对整个社区的一种演练,就比如说未来可能还会有一些更新的软分叉,BIP 其实是一个非常好的一种让社区都保持一个警觉或者活跃的一种方式。那至少从我印象里面,至少这几年从 Taproot 之后,没有一个特别,像样的,或者是正式的一种软分叉的激活,在这么一个社区里面是正式去提出来的。像比如 2022 年,其实可能会有一个就是 CTV,当时可能会讨论到是不是要去激活的这么一个状态。但后续的很多的新的功能的增加或者规则的改变,更多都是在转发层面,转发过滤这个层面上去进行的,像包括当时的那个手续费追加,包括还有那个像后来的这个就是 Bitcoin Core 的这个数据的限制,其实都是在转发层面上。从 2021 年到现在也有五年的时间了,没有一个特别正式的软分叉在这个社区里面试图去激活的。所以我觉得这是一个非常好的一个活动。那在比如说未来有一些更紧迫的一些功能,像比如说抗量子的一些功能如果要再去增加的话,那其实社区里面相当于是已经有了一个在这五年里面有一些这种软分叉讨论或者激活一个经验,可以去借鉴。所以这个我觉得也是一个非常有意义的一种尝试。那更不用说这次可能还有两个了,就是 BIP-110 和 BIP-300,大家可以更明显去对比出来,就是出于不同目的,那我们做的不同的软分叉和硬分叉,那它的效果或者社区接受程度大概会是什么样子,也会给未来的一些提议者去看到,如果你想去强推,如果在没有社区共识,不管是矿工还是开发者或者社区的成员的支持情况下,如果是强推的话,其实可能也会效果达不到很理想的一个状态。

是不是要重新考虑一下自己的提案的内容,以及怎么去获取社区的支持,等等这个方面。所以我觉得这个是一个 BIP - 110 相当是给我们一个非常好的机会去重新去实施。

曾汨: 那我们最后一个问题,我们其实刚刚讨论了 BIP-300 也讨论了 BIP-110,但其实这两个 BIP,在推动的过程中都遇到了很大的阻力。那他们一个是往外扩张,一个是往内收缩。但这两种方向都很难获得共识的时候,很多人会觉得比特币太过于保守。而这种保守性在你看来,它究竟是保护了比特币,还是逐渐限制了比特币调整自己方向的一个能力呢?

Jeffrey Hu: 我觉得这也是很好的一个问题,也是大家经常会提到的一个问题。我自己个人感觉是目前保护还是非常多的,比如说在避免引入一些不必要的功能,或者说可能没有得到大家广泛支持的或者得到广泛共识的功能上面,那么在这方面其实可能还会有一些保护。当然你可以认为它可能会相对比较保守,但我觉得这种保守可能恰恰是对于比特币目前网络的一个保护,或者说它的韧性所在。这并不是说大家在一窝蜂地可能会去想要一些新的功能的时候,比特币也很快速地去加入很多功能,但是时候可能认为这个完全没有太大的一些必要。这是我觉得是作为一种网络它能长久保持生命力的根本的一个所在吧。当然可能从客观层面上也确实可能会,如果我们真的要快速加入一些新的功能,肯定也是需要去说服整个网络里面的大多数的时候,肯定是会需要一个更漫长的过程,会让这个过程显得非常的漫长或者甚至是显得不太可能。这个我觉得可能也是会在未来的某个时间点,假如说是量子计算机或者其他的这种,或者是网络上某些比较严重的 bug 的时候可能会造成一些困扰。但目前如果说我们在整个这个光谱或者整个权衡的任务中的话,我觉得还是对整个网络是比较有帮助的一方面。

阿剑: 其实我想到一个东西,就是关于政治的话,其实有两种相近但是不太一样的思路,一种我们可以称之为自由主义。自由主义它的核心的想法就是说有一个相对比较理想的政治秩序,它有一些必要条件,那么这个政治秩序是我们的一个理想的目标。但同时它还有另外一个背面,叫做如果政治秩序是这种状态的时候,那么我是处在一个不太会被侵犯的状态。实现了这种状态之后,我一定程度上也不太需要再关心政治。换言之,如果一个政治是使得我不得不关心它的,那么它就还没有达到那个理想状态。因为理想状态是一个比较有秩序的状态,我不太担心自己会被政治侵犯。那么自然我也就不太需要关心他。但是还有另外一种想法,叫做共和主义。共和主义的意思就是公共事务这件事情是一定要有人负责,就必然要有人负责,因为它有太多模糊的不确定的这个东西,就是没有那么理想的这个事情,叫做这个框架一旦定下来,就所有细节都可以从这个框架当中推导出来,因此我们都不太需要关心他。事实上是一定会有人掌握政治权利,并且利用这些模糊的不太确定的这个事情。因此,共和主义的想法就是,如果正直的人、善良的人不去追逐政治权利的话,这个政治权利就可能被另外一些比较用心的人占据。所以在共和主义看来,政治永远不可能达到一个我不需要关心他这个状态的状态,相反是一个我们应该提防他被落入不正直的人的控制当中。所以你拿这个想法去分析一下我们现在这个情况。现在这个情况就是,我们都希望比特币能达成一种状态,叫做比特币用户不太需要关心比特币的这个共识的这个过程,开发这个过程到底发生了什么。然而可能我们不得不面对的事实就是,这个过程我们依然是需要去关心它的,

因为如果你完完全全就是觉得这个精英政治的这个状态已经很理想了,它可能也会出现一些意料之外的事情,或者说在我们看来可能有一些意料之外的后果,当然可能对我们来说是意料之外,对于那些精英政治的参与者来说,对他们来说不意外,而且对他们来说是可以接受的,但不管怎么说你都会觉得,至少比特币目前它没有达到那种我们都不太需要关心它。身为一个 bitcoiner,我们真的可以完完全全不关心比特币的这个共识过程。在我看来,就客观上来说是还没有达到。不管你对比特币的这个想法是什么,你对比特币的这个愿望是什么,不管你认为它是应该更加开放更快速的这个开发,还是你认为它某些地方可能已经步子迈得太大了,我们需要把它往回收一收。虽然比特币的这个保守性,粗略共识,这个机制为我们提供了非常重要的一种保护。使得大体上来说我们还是可以对这个过程有信心,就它确确实实为我们带来了相当不错的东西,并且在过去保护了一些我们认为非常重要的价值,比如说 2017 年的时候它保护了比特币的这个区块这个大小验证成本,但是我们可能依然还是有必要去多关心一下这些事情。

曾汨: 好的,那么感谢 Jeffrey 老师今天带来的精彩分享,我们这期播客到这里就结束了,下期再见,拜拜。

Follow us:
RSS Feed:

Vires in Numeris
// 以数字铸就力量

Libertas in Cryptographia
// 以密码学捍卫自由