中本聪对比特币的设计将全世界带入了数字货币时代。比特币起源于中本聪,UTXO 起源于比特币。自然,UTXO 来自才华横溢的中本聪。UTXO 的优点:
易于实施 – Gavin Wood 放弃了 UTXO 账户模型
以太坊黄皮书的设计者 Gavin Wood 对 UTXO 有着深刻的理解,既然 UTXO 有这么多优点,为什么还要抛弃呢?在这一点上,你应该问一个问题,以太坊最好的部分是什么?你肯定会回答:智能合约。是的,正是因为智能合约的考虑,Gavin Wood 很难实现基于 UTXO 的图灵完备智能合约(多功能超级计算机)。账户模型自然是面向对象的,每笔交易都会在对应的账户中添加一个 nonce++,这样更接地气。引入世界状态是为了便于账户管理,每笔交易都会改变世界状态。这与现实世界相对应,每一个微小的变化都会改变世界。
并行思考 – Gavin Wood 放弃 cpp 并使用 Rust
从上面的讨论中不难看出,UTXO 是一种函数式编程风格 (),而以太坊账户模型是一种面向对象编程风格 (cpp)。以太坊的账户模型是超级计算机模型的简单实现。然而,性能一直是一个无法逾越的障碍。在性能方面,UTXO 自然可以并行运行,而基于世界状态的以太坊则难以扩展。Gavin Wood 当然认识到这一点,但很难改变。最好用具有函数式编程特性的 Rust 重写以太坊,这也是一种妥协。
我们的反思
在马克思的哲学中,否定的定律,事物的发展和变化是螺旋式的。在区块链领域也很适用,如果向前迈出一步,也需要后退半步,仔细思考,谨慎前行。考虑到 UTXO 和状态模型,情况正是如此。Qtum 看到了这一点,但还没有有效的代码开源。我们考虑过将基于比特币代码的以太坊 EVM 组合在一起,就像 Qtum 一样。这几乎是不可能的,也是不切实际的,这就像使用一种语言来实现 CPP 样式的面向对象编程。我看不出任何真正的意义。
但是,我们的函数介于比特币和以太坊之间。数字资产的图灵完备智能合约就足够了。距离比特币的非图灵完备智能合约后退半步,距离以太坊的包罗万象的智能合约后退半步。我们可以使用 UTXO 和 Ivy 风格的轻量级虚拟机来适应两全其美。它既有 UTXO 的并行性,又有数字资产的发行和管理。
如上图所示,我们可以采取以下选项。
对于每个资产,都有相应的轻量级世界状态(树状结构),我们可以选择以太坊的 PAT 树,或者 IVAL(不可变均衡二叉树),每个资产在执行交易时都会实例化相应的 BVM 来执行,可以支持多种不相关资产的并行运行。