作者:Haotian,加密观察员 来源:X(推特)@tmel0211
《BitVM:Compute Anything On Bitcoin》白皮书引发了开发者热议,似乎意味着比特币网络实现图灵完备合约了,可以执行任何可计算的函数?
这意味着比特币网络可以复现以太坊等生态的一切叙事?而且不需要改变现有比特币共识,甚至不需要任何升级,仅依托当下比特币的基础op_code就可以赋予比特币网络“复杂“的可编程能力,让比特币网络可以图灵完备计算一切?
Wait,先别展开美梦了,先探讨下BitVM的构想路径怎么回事。Script空间如何执行复杂编程?Optimism Rollup思想指的是什么?Fraud Proof欺诈证明原理是什么?BitVM落地实现存在哪些障碍?接下来带大家逐步分析下它的大致逻辑框架,便于大家通俗理解。
如何实现复杂可编程特性?
由于,比特币的编程能力非常有限,仅在script脚本上支持简单的逻辑和有限的操作码,因此无法在比特币网络上开发复杂的智能合约。BitVM提案脑洞大开的核心点就是,通过taproot地址矩阵或者说taptree实现了类似二进制电路的各类程序指令,组合起来就相当于完整的合约执行了。
具体而言,我们可把每一个Script脚本中的UTXO花费条件指令当成一个程序最小单元,一个脚本执行无非true和false两种结果,若在taproot地址中输入一定的代码就能得到一个确定性的0或者1,若把大量的taproot地址组成矩阵就能构成一个有序的taptree,而执行的结果就有大量011001之类的二进制电路文本效果,就可以被视为一个可执行的二进制程序。程序的复杂性取决于组合的taproot地址多少,地址越多,在比特币框架范围下每个Script预置的指令越丰富,整个taptree可以执行的程序就越复杂。Maker Sense吧?
这脑洞着实够大。不过按照这个逻辑,最小单元指令确实由比特币全节点完成,而且无限叠加taproot地址,无限组合的可能性可以叠加很多复杂计算。某种程度上,说它为图灵完备机不为过。但无限叠加taproot地址只会增加成本消耗,理论上是可以图灵完备实现一切,但却不切实际。
所以,白皮书中提到的图灵完备只是极端理想情况下的说法,有点“偷换概念”之嫌,连以太坊号称超级计算机都无法完全实现图灵完备,何况仅依托script的比特币网络呢?
若干复杂概念浅析
基于上述核心框架理解,再去看白皮书中提到的Optimism Rollup和Fraud Proof以及Bit commitment,Logic Gate为何物了?由于,单个taproot空间和可执行代码逻辑有限,在链下执行复杂程序,只把关键验证环节放到链上,不就是一种Rollup的思想吗?
而Fraud Proof可以这样理解,Prover和verifier双方先编译一个巨大的二进制电路,比特币网络在执行电路时,有一个前提是Prover要预签名 且要质押一定的比特币资产,若Verifier验证出来Prover有作恶之嫌,就可以同理向链上发送交易以触发链上taptree“程序”的UTXO解锁条件,成功的话,verifier就可以罚没prover的抵押资产,等于就是一次欺诈证明过程。
这个逻辑里,我们就不难理解为啥BitVM只适用于两个有约定共识的parties,即必须执行前共享总电路图,必须在有效期内执行欺诈者证明程序,必须质押一定资产且预签名。若双方没有在链下配合搞一套约定的共识,仅靠比特币网络有限的链上执行环境,很难促成一次真正的“合约”执行。
BitVM落地会存在哪些障碍?
1)BitVM目前只适合两个约定共识的Parties之间实施链上操作,链上环境只是公开透明化执行合同的过程。目前也仅能实现两个约定主体之间,若实现N-N需要更复杂的技术逻辑设计。
2)BitVM如何应用单个taproot地址的脚本实施最小编程单位,不能超出比特币的执行逻辑框架比如hashlock、timelock这些,不能超出限定的存储条件,乐观情况下 一个taproot地址可以编程上百个逻辑门,更多就得组
合大量地址进行taptree构建了。问题来了,taproot地址预设解锁条件的执行需要付矿工费,地址组合越多要花费的成本也越大。未来也许靠闪电网络的双向通道技术可以降低成本,但总得来说要靠比特币网络执行逻辑门电路,不仅慢不说,想想就是个高花费的事儿。
3)BitVM理想状况下支持的场景很有限,比较适合重链下计算,只有部分共识和资产转移需要依赖链上的场景,比如游戏的资产处置环节等;
总的来说,BitVM是个脑洞大开且极具创意的构想,但按照它的落地实现技术框架,就知道它短期大概率会限于白皮书构思阶段了,长期的应用场景探索,落地应用还面临极大的挑战。用个很通俗的例子来形象说明:BitVM像是在人人可以用移动终端的时代里,构建了一台比房间还大的巨型计算机。
Note:以上解读只适用于理解BitVM的大致技术框架,便于大家理解背后的技术逻辑,具体实践方式可能会有偏差,若有技术大佬有很深入的技术细节研究。