# BitVM 脑洞大开，复杂概念和落地可行性剖析

> 作者：Haotian Twitter：@tmel0211 [SevenUp DAO](https://share.foresightnews.pro/column/detail/363)
>
> 来源：<https://share.foresightnews.pro/article/detail/44914>

{% code overflow="wrap" fullWidth="false" %}

```atom
一篇题为《BitVM：Compute Anything On Bitcoin》的白皮书引发了开发者热议，似乎意味着比特币网络实现图灵完备合约了，可以执行任何可计算的函数？
这意味着比特币网络可以复现以太坊等生态的一切叙事？而且不需要改变现有比特币共识，甚至不需要任何升级，仅依托当下比特币的基础 op_code 就可以赋予比特币网络「复杂」的可编程能力，让比特币网络可以图灵完备计算一切？
Wait，先别展开美梦了，先探讨下 BitVM 的构想路径怎么回事。Script 空间如何执行复杂编程？Optimism Rollup 思想指的是什么？Fraud Proof 欺诈证明原理是什么？BitVM 落地实现存在哪些障碍？接下来带大家逐步分析下它的大致逻辑框架，便于大家通俗理解。（不过多探讨具体技术实现细节
```

{% endcode %}

> <mark style="color:blue;">**BitVM 像是在人人可以用移动终端的时代里，构建了一台比房间还大的巨型计算机。**</mark>

## **一、如何实现复杂可编程特性？**

由于，比特币的编程能力非常有限，仅在 script 脚本上支持简单的逻辑和有限的操作码，因此无法在比特币网络上开发复杂的智能合约。

**BitVM 提案脑洞大开的核心点就是，通过 taproot 地址矩阵或者说 taptree 实现了类似二进制电路的各类程序指令，组合起来就相当于完整的合约执行了。**

具体而言，我们可把每一个 Script 脚本中的 UTXO 花费条件指令当成一个程序最小单元，一个脚本执行无非 true 和 false 两种结果，**若在 taproot 地址中输入一定的代码就能得到一个确定性的 0 或者 1，若把大量的 taproot 地址组成矩阵就能构成一个有序的 taptree，而执行的结果就有大量 011001 之类的二进制电路文本效果，就可以被视为一个可执行的二进制程序。**

程序的复杂性取决于组合的 taproot 地址多少，地址越多，在比特币框架范围下每个 Script 预置的指令越丰富，整个 taptree 可以执行的程序就越复杂。Maker Sense 吧？

这脑洞着实够大。不过按照这个逻辑，最小单元指令确实由比特币全节点完成，而且无限叠加 taproot 地址，无限组合的可能性可以叠加很多复杂计算。某种程度上，说它为图灵完备机不为过。

**但无限叠加 taproot 地址只会增加成本消耗，理论上是可以图灵完备实现一切，但却不切实际。**

所以，白皮书中提到的图灵完备只是极端理想情况下的说法，**有点「偷换概念」之嫌，**&#x8FDE;以太坊号称超级计算机都无法完全实现图灵完备，何况仅依托 script 的比特币网络呢？

## **二、若干复杂概念浅析**

基于上述核心框架理解，再去看白皮书中提到的 Optimism Rollup 和 Fraud Proof 以及 Bit commitment，Logic Gate 为何物了？由于，单个 taproot 空间和可执行代码逻辑有限，**在链下执行复杂程序，只把关键验证环节放到链上，不就是一种 Rollup 的思想吗？**

而 Fraud Proof 可以这样理解，Prover 和 verifier 双方先编译一个巨大的二进制电路，比特币网络在执行电路时，有一个前提是 Prover 要预签名 且要质押一定的比特币资产，若 Verifier 验证出来 Prover 有作恶之嫌，就可以同理向链上发送交易以触发链上 taptree「程序」的 UTXO 解锁条件，成功的话，verifier 就可以罚没 prover 的抵押资产，等于就是一次欺诈证明过程。

这个逻辑里，我们就不难理解为啥 BitVM 只适用于两个有约定共识的 parties，**即必须执行前共享总电路图，必须在有效期内执行欺诈者证明程序，必须质押一定资产且预签名。**&#x82E5;双方没有在链下配合搞一套约定的共识，仅靠比特币网络有限的链上执行环境，很难促成一次真正的「合约」执行。

## **三、BitVM 落地会存在哪些障碍？**

1）BitVM 目前只适合两个约定共识的 Parties 之间实施链上操作，链上环境只是公开透明化执行合同的过程。**目前也仅能实现两个约定主体之间，若实现 N-N 需要更复杂的技术逻辑设计。**

2）BitVM 如何应用单个 taproot 地址的脚本实施最小编程单位，不能超出比特币的执行逻辑框架比如 hashlock、timelock 这些，不能超出限定的存储条件，乐观情况下 一个 taproot 地址可以编程上百个逻辑门，更多就得组合大量地址进行 taptree 构建了。

**问题来了，taproot 地址预设解锁条件的执行需要付矿工费，地址组合越多要花费的成本也越大。**&#x672A;来也许靠闪电网络的双向通道技术可以降低成本，但总得来说要靠比特币网络执行逻辑门电路，不仅慢不说，想想就是个高花费的事儿。

3）BitVM 理想状况下支持的场景很有限，比较适合重链下计算，只有部分共识和资产转移需要依赖链上的场景，比如游戏的资产处置环节等；

总的来说，BitVM 是个脑洞大开且极具创意的构想，但按照它的落地实现技术框架，就知道它短期大概率会限于白皮书构思阶段了，长期的应用场景探索，落地应用还面临极大的挑战。

**用个很通俗的例子来形象说明：BitVM 像是在人人可以用移动终端的时代里，构建了一台比房间还大的巨型计算机。**

<br>
