BitVM:比特币网络上的智能合约系统详解

·

近期以太坊扩容方案的进展似乎影响了比特币生态的研究方向,BitVM 应运而生,它结合了乐观汇总(Optimistic Rollup)和状态通道(State Channel)的特点。

引言

比特币社区近日因 BitVM 白皮书的发布而掀起波澜。该系统自称为可在比特币链上实现任意计算的解决方案。该提案由 ZeroSync 的 Robin Linus 提出,迅速获得了超 300 万次的阅读。

比特币网络本身并不支持智能合约,这是它与后来出现的区块链(如以太坊、BNBChain、Solana)的主要区别。多年来,社区一直在尝试扩展比特币网络并引入智能合约,但至今尚无完美方案能完全继承主网的 decentralisation 与安全性。

BitVM 的出现,可视为对比特币智能合约可行性的全新探索。以下我们将深入了解这一号称“能在比特币链上计算一切”的系统。

什么是 BitVM?

BitVM 是一种允许在比特币链上执行复杂计算和逻辑的模型,无需改变共识规则。换言之,它实现了在比特币主网上运行智能合约的功能。

与一些二层方案类似,BitVM 采用乐观机制:参与者相互信任,在链下执行合约中的所有操作。仅当发生争议且无法线下解决时,才将问题提交至链上进行裁决。

若出现争议,如何判定对错?在比特币本身不支持智能合约的情况下,如何实现链上验证?

这正是 BitVM 相比其他方案的创新之处,也是其引发广泛关注的原因。

BitVM 的运行机制

逻辑门基础

要理解 BitVM,需先了解逻辑门(Logic Gates)——计算机最深层的基础设施。

所有计算机都基于0和1运行。芯片接收比特信号(0或1)作为输入,执行运算后输出结果(0或1)。输出结果取决于输入数据和所使用的逻辑门类型。常见逻辑门包括:

通过组合不同的逻辑门,可以构建出处理所有计算机程序的复杂电路。BitVM 的关注点在于 NAND 门,因为它是“通用门”(Universal Gate)——仅通过 NAND 门的组合就能实现任何其他逻辑门功能。

简言之,构建出 NAND 门就等于能解决所有计算问题。

比特币网络上的 NAND 门

接下来的任务是在比特币网络上创建一个 NAND 门,并“迫使”编译器执行它。

比特币网络使用 Bitcoin Script,包含一系列操作码(op_code),用于理解交易输出的条件和规则。但操作码数量有限,仅支持简单脚本计算。

BitVM 的创始人 Robin Linus 注意到两个操作码:OP_BOOLAND 和 OP_NOT。

将这两个操作码组合,便得到一个 NAND 门——可解决所有计算问题的基本单元。比特币编译器在遇到这些操作码时必须执行。

Taptree:比特币的智能合约载体

单个 NAND 门不足以处理复杂计算,需将其嵌入一个完整电路。

BitVM 利用操作码 OP_EQUALVERIFY 和哈希锁(hashlock)组合,与 NAND 门共同构建出一棵完整的 Tapleaf 树(Taptree),其中包含程序计算的所有逻辑。在此结构中,每个逻辑门的输出成为下一个门的输入,哈希锁用于证明每步的正确性,并在出现错误时供他人验证。

随后,开发者需编写兼容此模型的执行逻辑(智能合约)并部署上链。剩下的工作交给比特币网络——BitVM 只需等待网络执行海量 NAND 运算后返回最终结果。

BitVM 系统的工作流程

在理解底层基础设施后,我们来看 BitVM 如何与用户交互。

如前所述,BitVM 基于参与者间的相互信任运作。所有繁重计算均在链下执行。仅当计算结果遭质疑且链下无法解决时,才提交至链上重新计算以裁定对错。

BitVM 运行流程如下:

注:目前 BitVM 仅支持两方参与合约。

  1. 合约条款设定:双方确定目标与所有可能情况的条款。
  2. 合约编译:将合约编译成前述的 Taptree 形式指令,确保可在比特币网络运行。此 Taptree 的一份副本保存在比特币链上,供需要链上验证时使用。
  3. 合约激活:双方协商分别扮演“证明者”(Prover)和“验证者”(Verifier),并通过多签交易将保证金存入系统以激活合约。该资金用于支付工作成本、争议处理费用及可能的欺诈罚金。
  4. 完成工作:工作完成后,若在等待期内无任何质疑,证明者获得合约约定的资金。
  5. 争议解决:若验证者发现流程中存在错误,可提交欺诈证明(fraud proof)请求验证。证明者有一段规定时间自证清白。

有三种可能结果:

此外,若验证者能通过原始数据(preimage)为所有情况提供证明,亦可立即获得资金。

合约中的挑战与证明工作均在链下进行。仅当双方无法链下达成一致时,才上链解决。

机制总结

BitVM 的运作可概括为五个组成部分:

👉 探索更多区块链技术解析

BitVM 的局限性

复杂性与成本

为使智能合约在比特币上运行,需将其编译成 Taptree 形式的 NAND 电路链。复杂正源于此:据创始人所述,即便普通合约也可生成数十亿的 Taptree 叶片。

如此庞大体积下,编译合约已很困难,执行更是挑战。完成这些工作的资源成本极高,缺乏经济效率。

一次性智能合约

第二点限制是已编译的智能合约通常只能使用一次,或仅限同一对象和目的重复使用。因为合约内容编译为 Taptree 后已包含针对特定证明者与验证者的全部约束条款。新用户需重新编译合约。

这同样缺乏经济性和扩展性。

仅支持两方参与

目前 BitVM 仅支持证明者与验证者两方参与。这对网络扩展性是严重限制。

尽管创始人 Robin Linus 提出了多参与方的概念设计,但至今未有正式信息发布。

社区观点

常见问题

BitVM 是什么?
BitVM 是一种基于比特币网络的计算模型,允许在不变更共识规则的前提下执行复杂逻辑和智能合约,结合了乐观汇总和状态通道的特点。

BitVM 如何工作?
它通过将合约编译为 NAND 逻辑电路(Taptree),在链下执行计算。仅当出现争议时,才利用比特币脚本的操作码进行链上验证与裁决。

BitVM 的主要限制有哪些?
包括编译与执行成本高昂、合约多属一次性使用、目前仅支持两方参与。这些限制了其经济效率与扩展性。

BitVM 是否支持多用户场景?
当前版本仅针对两方设计。虽有多方参与的概念方案,但尚未实现。

BitVM 对比特币生态的意义是什么?
它是继 Ordinals 后最具创新性的探索之一,为比特币智能合约发展提供了新方向,尽管仍需克服诸多技术挑战。

结论

继 Ordinals 之后,BitVM 是比特币多年来最令人兴奋的倡议之一。尽管存在限制,但 BitVM 刚诞生不久,开发者正积极完善系统。期待未来能看到更多基于该平台的有益应用。