转发原文标题:极简解读BitVM:如何在BTC链上验证欺诈证明(执行EVM或其他VM的操作码)
TL;DR
当前比特币Layer2生态正迎来爆发式增长,市场上自称”比特币Layer2″的项目已达数十个。其中不少标榜为”Rollup”的项目都声称采用了BitVM白皮书提出的方案,这使得BitVM迅速成为比特币生态中的热门技术。
然而令人遗憾的是,目前大多数关于BitVM的技术资料都过于晦涩难懂。本文基于对8页BitVM白皮书的深入研究,结合Taproot、MAST树和Bitcoin Script等相关技术资料,尝试用更通俗易懂的方式解析其核心原理。我们假设读者对Layer2有一定了解,并熟悉”欺诈证明”的基本概念。
用最简单的话概括BitVM的设计理念:尽可能减少链上数据存储,先在链下发布和存储数据,链上只保存Commitment(承诺)。当发生挑战或欺诈证明时,仅将必要的数据上链,证明其与链上Commitment的关联性。BTC主网随后验证这些上链数据是否存在问题,判断交易处理节点是否存在作恶行为。这种设计完美体现了奥卡姆剃刀原则——”如无必要,勿增实体”。
BitVM提出的BTC链上欺诈证明验证方案,其核心思路可以这样理解:计算机处理器本质上是由大量逻辑门电路组成的输入-输出系统。BitVM的创新之处在于使用Bitcoin Script(比特币脚本)来模拟这些逻辑门电路的输入输出效果。只要能成功模拟出逻辑门电路,理论上就能构建出图灵完备的计算系统,完成所有可计算任务。
这意味着,只要有足够的开发资源和资金支持,工程师团队完全可以用功能有限的Bitcoin Script代码先构建出基础逻辑门电路,再通过大量逻辑门电路的组合来实现EVM或WASM的功能。有人形象地将这个过程比作在《我的世界》游戏里用红石电路搭建M1处理器,或者用积木搭建纽约帝国大厦。
(此截图来自于教学游戏《图灵完备》,展示了如何用逻辑门电路特别是与非门构建完整的CPU处理器)
(据称是玩家花费一年时间在《我的世界》中搭建的”处理器”)
那么为什么要大费周章地用Bitcoin Script模拟EVM或WASM呢?这是因为目前大多数比特币Layer2项目都选择支持Solidity或Move等高级语言,而比特币链上原生支持的Bitcoin Script是一种功能有限、由独特操作码组成、非图灵完备的编程语言。
(一段典型的Bitcoin Script代码示例)
如果比特币Layer2想像Arbitrum等以太坊Layer2那样,在Layer1上验证欺诈证明以继承BTC的安全性,就需要在BTC链上直接验证有争议的交易或操作码。这就必须将Layer2使用的Solidity语言/EVM操作码在比特币链上重新执行一遍。问题的核心就转化为:如何用比特币原生的Bitcoin Script语言实现EVM或其他虚拟机的功能。
从编译原理的角度看,BitVM方案实际上是将EVM/WASM/JavaScript操作码转译为Bitcoin Script操作码,而逻辑门电路则充当了”EVM操作码→Bitcoin Script操作码”转换过程中的中间形态(IR)。虽然这个方案在理论上是可行的,但实际挑战在于如何用大量逻辑门电路的组合来表达所有EVM/WASM操作码。对于某些复杂的交易处理流程,这种表达方式可能会产生巨大的工作量。
(BitVM白皮书中描述的比特币链上执行争议指令的基本思路)
BitVM白皮书中另一个关键概念是与Arbitrum高度相似的”交互式欺诈证明”。这种机制涉及到一个称为assert(断言)的概念。Layer2的提议者Proposer(通常由排序器担任)会在Layer1上发布assert断言,声明某些交易数据和状态转换结果是正确无误的。如果有人质疑Proposer提交的assert断言存在问题,就会触发争议流程。
在争议处理过程中,Proposer和Challenger会通过回合制的方式交换信息,采用二分查找法快速定位到具体有争议的操作指令及其关联的数据片段。这个有争议的操作指令(OP Code)需要连同其输入参数在Layer1上重新执行,并验证输出结果(Layer1节点会将自己计算得到的输出结果与Proposer之前发布的输出结果进行比对)。在Arbitrum中,这个过程被称为”单步欺诈证明”。
(Arbitrum的交互欺诈证明协议示意图,通过二分法定位争议指令后提交单步欺诈证明到Layer1进行最终验证)
参考资料:前Arbitrum技术大使解读Arbitrum的组件结构(上)
(Arbitrum交互式欺诈证明的简化流程图)
理解单步欺诈证明的思路其实很简单:Layer2上绝大多数交易指令都不需要在BTC链上重新验证。只有当某个数据片段/操作码被质疑时,才需要在Layer1上重新执行验证。如果验证结果显示Proposer之前发布的数据确实存在问题,就会罚没其质押资产;如果是Challenger错误质疑,则会罚没Challenger的质押资产。如果Prover长时间不响应挑战,同样可能面临资产罚没。
Arbitrum通过以太坊智能合约实现上述机制,而BitVM则需要借助Bitcoin Script实现时间锁、多签等功能。
在了解”交互式欺诈证明”和”单步欺诈证明”后,我们需要探讨MAST树和Merkle Proof的作用。如前所述,BitVM方案不会将Layer2在链下处理的大量交易数据和复杂的逻辑门电路直接上链,只在必要时将极少量数据/逻辑门电路上链。但我们需要一种方法来证明这些”从链下转移到链上”的数据不是随意伪造的,这就是密码学中常说的Commitment,而Merkle Proof正是Commitment的一种实现方式。
MAST树全称为Merkelized Abstract Syntax Trees,是将编译原理中的AST树(抽象语法树)进行Merkle化处理后的数据结构。AST树通过词法分析将复杂指令分解为基础操作单元,并组织成树状结构。MAST树则在此基础上引入Merkle树特性,支持高效的Merkle Proof验证。
(一个简单的AST树示例,展示了如何将x=2,y=x*3这样的简单运算分解为底层操作码和数据)
Merkle树的优势在于其出色的数据压缩能力。例如,当你需要将Merkle树上的某段数据发布到BTC链上时,如何让外界确信这段数据确实存在于Merkle树中而非随意编造?解决方案很简单:事先将Merkle树的Root记录在链上,之后只需出示数据片段和对应的Merkle Proof,就能证明该数据确实存在于Root对应的Merkle树中。
(Merkle Proof/Branch与Root之间的关系示意图)
因此,无需将完整的MAST树存储在BTC链上,只需预先披露其Root作为Commitment,在必要时提供数据片段和Merkle Proof即可。这种方法能极大减少链上数据量,同时确保上链数据的真实性。而且,仅公开少量数据片段和Merkle Proof而非全部数据,还能有效保护隐私。
参考资料:数据扣留与欺诈证明:Plasma不支持智能合约的原因
(MAST树结构示意图)
BitVM方案试图将所有逻辑门电路用比特币脚本表达,并组织成一个庞大的MAST树。这棵树最底层的叶子节点(leaf)对应着用比特币脚本实现的逻辑门电路。Layer2的Proposer会定期在BTC链上发布MAST树的root,每棵MAST树关联一笔交易,包含所有输入参数、操作码和逻辑门电路。某种程度上,这类似于Arbitrum的Proposer在以太坊链上发布Rollup Block。
当发生争议时,挑战者在BTC链上声明要挑战哪个Root,要求Proposer揭示Root对应的特定数据片段。随后,Proposer出示默克尔证明,逐步在链上披露MAST树的部分数据,直到与挑战者共同定位到有争议的逻辑门电路,最终执行资产罚没。
至此,BitVM方案的核心内容已基本阐明。虽然某些技术细节仍显晦涩,但相信读者已经能够把握BitVM的精髓。白皮书中提到的bit value commitment是为了防止Proposer在被挑战时,给逻辑门电路的输入值同时赋值为0和1造成混乱。
总结来说,BitVM方案首先用比特币脚本表达逻辑门电路,再用逻辑门电路表达EVM/其他VM的操作码,接着用操作码表达交易指令处理流程,最终组织成merkle tree/MAST树。对于复杂的交易处理流程,这样构建的树可能包含上亿个leaf节点,因此必须尽可能压缩Commitment占用的区块空间,并缩小欺诈证明的影响范围。
虽然单步欺诈证明只需上链极小部分数据和逻辑门脚本,但完整的Merkle Tree需要长期存储在链下,以便在受到挑战时能够随时上链验证。Layer2的每笔交易都会生成一个庞大的Merkle Tree,这给节点带来了巨大的计算和存储压力,可能导致多数人不愿运行完整节点(不过历史数据可以设置过期淘汰机制,B^2 network还引入了类似Filecoin的zk存储证明来激励节点长期保存历史数据)。
基于欺诈证明的乐观Rollup本身并不需要太多节点,因为其信任模型是1/N机制——只要N个节点中有一个是诚实的,能够在关键时刻发起欺诈证明,Layer2网络就能保持安全。然而,基于BitVM的Layer2方案仍面临诸多挑战,例如:理论上可以进一步压缩数据,不必直接在Layer1验证操作码,而是将操作码处理流程压缩为zk proof,让挑战者对zk proof的验证步骤发起挑战,但这会大大增加开发复杂度;Proposer和Challenger需要在链下进行多轮交互,协议设计和挑战流程优化都需要深入研究和精心设计。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/11811.html