最近有一篇名为《BitVM:在比特币上计算任何东西》的白皮书引起了开发者的热烈讨论。比特币原本的编程能力是有限的,而现在似乎能够实现图灵完备的合约,这种变化极具争议性,吸引了开发者的目光,同时也引发了很多疑问。
BitVM引发热议的原因
以往,比特币的网络编程能力较为有限。它仅仅能够在 script 脚本上进行一些简单的逻辑处理,其操作码的数量也十分有限。这种情况对智能合约的开发形成了限制。而 BitVM 带来了新的希望,据说仅凭借现有的 op_code 就能够使比特币网络的可编程性得到增强,这自然引发了广泛的关注。
很多开发者一直期待比特币网络能实现更多高级功能。如果复杂的智能合约能够实现,那对很多基于比特币的项目来说意义重大。所以这个新的 BitVM 概念犹如一把火,点燃了大家的热情,大家都想看看它究竟是如何做到的。
BitVM的核心机制
BitVM 的核心是 taproot 地址矩阵,也就是 taptree。它具备实现类似二进制电路的程序指令的能力。将这些指令进行组合,就等同于执行完整的合约。单个程序的复杂程度是由 taproot 地址的组合数量所决定的。
如果地址增多,那么每个 Script 预先设定的指令就会更加丰富。这样一来,整个 taptree 能够执行的程序就会变得更加复杂。通过这种手段,能够将小单元组合成大的计算逻辑,这是在比特币框架之下的一种创新思维。
BitVM存在的理论局限
理论上,通过无限叠加 taproot 地址是能够实现图灵完备从而去做任何计算的。然而,实际上这存在着很大的问题。原因在于单个 taproot 的空间是有限的,可执行的代码逻辑也是有限的。如此一来,无限叠加只会导致成本不断地急剧上升,是不切实际的。
无限迭加会带来更多资源的消耗。在实际的比特币网络里,节点的资源是有限的。如果进行无限迭加,很有可能会把网络拖垮。另外,比特币的链上环境是有限的,无法像理论中那样无限制地扩充,所以这是不现实的想法。
BitVM中的Rollup思想体现
就如同 Rollup 的理念那样。先在链下完成复杂程序的计算,然后仅将关键的验证部分放置在链上。因为单个 taproot 的空间和逻辑存在限制,所以 BitVM 在许多操作方面与 Rollup 的想法较为相似。
在已知的逻辑范畴内,需要执行诸如共享总电路图等一些限制。这表明并非完全依赖链上执行。在比特币网络中,这种思想属于一种折中的方式,它既想要借助链上的安全性,又希望减轻链上的计算负担。
BitVM在实际中的应用限制
从应用方面来看,目前 BitVM 仅仅适用于两个达成了约定共识的主体。例如,这两个主体在执行之前需要共享电路图,并且要在规定的有效期内进行欺诈者证明等操作。倘若没有这些在链下达成的约定共识,仅仅依靠链上的力量,是很难让合约顺利地执行下去的。
它在场景方面支持的数量不多。在理想的状况下,像游戏资产处置这类部分,需要链上共识以及资产转移,这种情况下重链下计算是比较合适的。如果想要更多通用的场景,或者是多主体的 N - N 应用,那就还需要更复杂的技术逻辑。
BitVM的编程单位与逻辑框架
它需要遵循比特币的执行逻辑框架。通过单个 taproot 地址的脚本来实施最小的编程单位。像 hashlock 以及 timelock 等这些限制不能超出规定范围,存储条件也不能超出规定范围。
在乐观的情况下,单个地址能够编程的逻辑门数量大概有百来个。如果想要更多的逻辑,就必须组合大量的地址来构建 taptree。这些限制,一方面是由比特币网络的基础特性所导致的;另一方面,也是为了确保安全性和稳定性而存在的。
你认为 BitVM 在未来是否有可能突破目前的这些限制,进而发展成为一种更为通用的比特币网络扩展技术?期望能获得你的评论。倘若你觉得这篇文章不错,也请给予点赞和分享。