致谢:感谢 Momir,Xinshu 对文章提出的宝贵修改
TL;DR:
比特币被构建为一个交易区块链,其脚本语言有意限制为无状态(Stateless),以最小化攻击面并确保网络安全。由于缺乏图灵完备性(Turing-completeness),没有可能直接在区块链上引入智能合约,除非通过分叉并升级比特币核心。
传统的比特币社区对变更持抵制态度,原因如下:
鉴于上述情况,为何突然之间出现了大量新的比特币“L2”解决方案呢?
最近,我们观察到比特币“L2”解决方案的激增(根据https://l2.watch/,已经有超过50个!),然而,社区多年来一直在探索不同的可扩展性方法:
相较于现有解决方案,最近的扩容方法带来了哪些新颖之处?在我们看来,最令人兴奋的创新来自于在比特币上编码程序(通过BitVM)和无需信任地质押BTC(例如Babylon)。本文将主要关注前者。
要解释什么是BitVM,我们首先应该介绍赋能并激发了它的Primitive——比特币Taproot升级。
Taproot是对比特币协议的一次重大升级,于2021年11月激活。通过Taproot,脚本的哈希默认需要在链上提交。当执行脚本的某个路径时,只需将该路径上的脚本提交到链上。这样不仅提高了效率(交易的大小不会随脚本的大小增长),也增强了隐私性(只会揭露作为交易的路径,而不是整个脚本)。
认识到Taproot升级解锁的巨大机遇,Robin Linus率先推出了BitVM,这是比特币生态系统中的一项突破性创新。
BitVM是一种计算范式,它利用Taproot升级在不改变网络共识规则的情况下,促进在比特币上实现图灵完备合约。它允许对计算进行验证(而不是执行),类似于乐观卷积(Optimistic Rollups)。
BitVM通过将程序提交到Taproot地址,同时通过启用复杂的链下计算(仅在出现争议时需要链上执行)来最小化链上足迹。
这个过程涉及到在Taproot地址中提交程序的二进制电路,并使用挑战-响应机制进行验证。概括地说,BitVM实现了图灵完备的比特币合约,最重要的是:
二进制电路的构建是一种用二进制逻辑门(如AND、OR、NOT)表示计算或程序的方法,能够执行任何可计算的函数。
BitVM就像是将电流通过计算机芯片的逻辑门(这些微小的结构根据电流的存在与否,决定信号是否通过,即开或关,开或闭)的复杂模拟,转化为比特币的语言。
从本质上讲,任何计算机程序,从游戏到完整的Linux操作系统,都是这些逻辑门复杂排列的结果,所有的数字事物基本上都是基于二进制数字——0和1。通过将这些二进制数字与逻辑门(如AND和NOT门)结合,我们创建了各种电路,包括算术逻辑单元(ALUs)和内存系统。这项基础技术使我们能够编写和执行程序以执行广泛的任务。
Source: Stepping Through Logic Gates;基本逻辑门(F代表0,T代表1)BitVM的前提是使用比特币脚本(Bitcoin Script)来对链下计算做出承诺(提交一个计算的哈希到Taproot地址),通过将任何程序解构成二进制电路的组合,并启用执行验证,这一过程包括了比特币脚本,但脚本本身不执行整个计算逻辑。
比特币脚本可以实现比特值承诺(bit-value commitments),这对于能够展示和惩罚含糊其辞(Equivocation)的行为至关重要。它实现了不可变性,因为它允许个人提交其他人无法修改的值。
这种方法涉及使用两个哈希来代表每个输入位:一个哈希用于数字0,另一个用于数字1。当有人希望执行程序时,他们揭示一个原像(pre-images)以指示输入。值将转换为0还是1,是通过将原像的哈希值与代表0和1的两个哈希值进行比较来决定的。
如果输入和输出不匹配,验证者有权通过没收提供者的资金来惩罚提供者。
验证通常在链下进行,乐观地假设证明者是诚实的。在发生争议的情况下,过程转移到链上,并启动一轮挑战-响应。这种机制确保了在大多数情况下,计算和验证可以高效且低成本地进行,而只有在出现分歧时才需要利用区块链的不可篡改性和透明度进行最终裁决。
挑战-响应机制在BitVM中的动态涉及一个系统,参与者(如Vicky和Paul)通过区块链上程序的执行进行验证过程。当出现争议时,Vicky挑战Paul证明他的程序执行的正确性。
Vicky从二进制电路中选择一个逻辑门,Paul通过揭示输入和输出来打开这个门。直到确认了含糊其辞的情况或Vicky耗尽了进一步挑战的可能性,这个过程就会重复进行。含糊其辞意味着Paul声称某个输入X在一个逻辑门被打开时是0,但在另一个逻辑门被打开时是1。
Paul需要通过使用预签名的交易向响应地址存入资金来确保他声称的证据。这些交易创建了一个链,允许基于正在进行的互动,资金在挑战和响应地址之间摆动。
响应地址中的资金可以根据挑战的结果沿着多条路径流动:
这一系统为在区块链上解决争议和验证程序执行提供了一个坚固和透明的构架。通过结合财务激励,它促进了执行和程序结果记录的完整性和精确性。最初,该设计支持两方的挑战-响应机制。然而,正如我们稍后将展示的,BitVM的贡献者已经找到了解决方案,允许众多参与者作为挑战者参与。
为了提高链上验证的效率,验证者可以利用二分法(Bisection),这是一种在预先提交的逻辑门上进行高效搜索的方法,以找到应该被挑战的逻辑门,这种方法相比随机挑战过程有显著的改进。通过将问题空间一分为二,分割法允许验证者快速缩小潜在错误的范围,从而减少了解决争议所需的步骤和时间。这种方法在处理复杂的验证过程时,尤其是在需要精确确定错误位置的情况下,提供了一个更为高效和直接的路径。
以下,我们通过一个简化的例子来说明分割法是如何工作的:
Paul和Vicky正在做数学题,题目是计算 ((1+2)+(3+4))+((5+6)+(7+8))。
正确完成这个计算的过程是 ((1+2)+(3+4))+((5+6)+(7+8)) = (3+7)+(11+15) = 10+26 = 36。
而Paul给出的答案是35,因为他计算的方式是 ((1+2)+(3+4))+((5+6)+(7+8)) = (2+7)+(11+15) = 9+26 = 35。
当Vicky挑战Paul时,她只需要挑战涉及计算的第一部分的计算(即打开逻辑门),因为他们同意第二部分的计算是准确的 ((5+6)+(7+8)) = 26。
BitVM的第一个实际实现很可能是代表最小信任比特币桥的程序。通过分析桥的实现细节,我们可以更好地理解实现BitVM程序的额外复杂性。以下,我们总结了BoB共同创始人Alexei Zamyatin的提案。
首先,需要创建一种让比特币全节点只用比特币脚本就能操作一个侧链桥程序的方法,包括一个侧链轻客户端。
然后,还需要建立一个联盟/多签名(federation/multi-sig)网络,以便于BTC的转移并运行挑战-响应游戏。联盟必须承诺运行桥程序作为BitVM设置的一部分。
联盟初始设置的复杂性随着成员数量的增加而呈二次方增长,因为联盟的每个成员都必须与其他每个成员互动,因此联盟的规模有一定的上限,研究人员推测N=100是可行的。
与OP Rollup不同,后者对N的大小没有限制,这种方案提供的安全保证较弱。然而,这个提议的工作解决方案很可能会包括联盟成员的轮换,这样在一个较长的时间范围内,N会远大于100。任何时候,只要这100名成员中有一个是诚实的,存款就会保持安全。假设有恶意行为者,他们可以在链上随时被挑战,如果被证明作弊,他们可以被联盟禁止。
联盟在任何时候都有一个负责管理存款和提款以及验证侧链状态的操作员(Operators)。操作员和监视塔(Watchtowers)都需要提交抵押品,以激励正确行为并阻止虚假挑战。
这种方案不符合卷积最严格定义的另一个原因是,用户不能单方面退出侧链,而必须向基于1/N安全假设运作的联盟请求提款。
3月25日,Robin Linus介绍了BitVM v2。BitVM v2提案的关键变化是,证明者需要一次性提交输出状态和所有中间结果,而不是像v1那样,在挑战-验证过程中逐个打开逻辑门。有了这个改变,BitVM确保对这些承诺的任何挑战都必须由加密证据支持。这种机制过滤掉了无根据的垃圾挑战,因为挑战者必须提供特定的加密证明来争议证明者。
通过允许无限制地参与验证和挑战过程,BitVM 2将其安全保证扩展到了多重签名联盟的限制之外,并使BitVM更加接近乐观卷积的安全假设。
然而,桥的搭建仍然需要联盟多重签名来促进,这意味着联盟成员可能会引起活性问题,在最坏的情况下,他们试图向用户勒索赎金以解冻他们的资金。这是一个额外对于乐观卷积来说不存在的安全假设,因为在乐观卷积中,用户可以在不获得任何中介批准的情况下退出到L1。
在基础链上的额外安全假设正如我们上面讨论的,BitVM能提供的最佳方案是接近乐观卷积的安全假设。除了管理负责保险存款的联盟及其活性问题的复杂性外,BitVM特有的一些额外复杂性包括:
考虑到以太坊扩展解决方案的估值,目前大约占以太坊市值的15-20%——比特币第二层解决方案的潜在市值可能是巨大的。
尽管BitVM还处于初期阶段——本质上是一个未落地的虚拟计算机概念——但它已经激发了来自各个项目的大量兴趣和声明,这些项目急于利用其潜力。许多与BitVM团队无关的项目都在争相做出宏大的公告,希望在他们看来是比特币的一个有前途的新领域中占据一席之地。然而,更仔细的审查揭示了一个更加清醒的现实:BitVM的GitHub账户只有少数贡献者,而BitVM Builders Telegram群中真正参与的只有少数几个比特币‘L2’项目。
比特币任何可扩展性解决方案必须遵守的一个关键原则是,比特币的核心架构应保持不变(根据可预测性原则)。BitVM秉承这一原则,成为首个在不改变其核心的情况下,在比特币之上提供可编程层的先驱解决方案。
本文撰写于BitVM发展的非常早期阶段,考虑到其快速的发展,这里的信息很快可能会过时。例如,直到最近,在比特币上实现ZK卷积的想法看起来就像空中楼阁一样不切实际,因为所需的基础能力——比如比特币验证ZK证明的能力——并不存在。然而,最近BitVM研究人员分享了比特币脚本的进展,这些进展可能导致在比特币上实现STARK验证器。
比特币扩容解决方案的实现超越了纯粹的技术挑战;它包含了社区支持、用户体验和时机等因素。虽然当前时刻为这些创新提供了一个独特的机会窗口,但是项目数量的急速通胀以及误导性声明和营销带来的显著风险,可能会破坏更合法项目的前景。
随着生态系统站在这个十字路口,关于比特币扩容解决方案是否能复制以太坊的成功的问题不仅是技术性的,而且深深植根于区块链社区更广泛的动态之中。毕竟,核心以太坊社区已经选择了L2作为以太坊扩容路线图的关键部分,而比特币社区还不能这么说。
Reference