共计 905 个字符,预计需要花费 3 分钟才能阅读完成。
在比原链中,每个交易消耗之前交易生成的 BUTXO 然后生成新的 BUTXO,账户的余额即所有属于该地址的未花费 BUTXO 集合,BTM 的全局状态即当前所有未花费的 BUTXO 集合。我们用一个具体的例子说明。
比原的状态是通过 BUTXO 来实现的。比原的价值转移是通过转账实现的。更特别地是,我们可以通过创建转账花费 1 个或多个,并且将他们的 BUTXO 作为转账输入。比原 BUTXO 不能部分花费。如果我们花费 0.5 个比原(使用他们仅有的 BUTXO,价值 1 比原),他们需要特意地发回 0.5 个比原。如果他们不发送这部分,那么这个 0.5 比原就会丢失,并且给到挖出转账的矿工。过程如下图所示:
比原链的 BUTXO 没有包含用户账户余额。通过比原,用户可以简单地持有私钥,在任何时间点都可以进行一个或者多个 BUTXO。如下图:
总结:
BUTXO = 未花费的交易输出;
传统的账户模型一个“账户”的余额就是一个数字;
BUTXO 模型中余额是由所有和“账户”相关的 UTXO 组成的;
那可能有小伙伴好奇,比原链的 BUTXO 和 UTXO 模型有什么区别呢?
BUTXO 是比原链在 UTXO 的模型上柔和了支持多资产,从而保证了资产交互操作的原子性,异步交易的时候可以进行验证,支持多资产上链,智能合约结果 bool 化。由于 BUTXO 的无状态,所以在一定程度上增强了用户的匿名性。如下图:
我们查看了比原的 BUTXO 结构体,发现比原的结构体中的多了 AssetID,ControlProgram 等字段。比原链中 BUTXO 的结构体如下:
这是比原链专门为了多资产和智能合约而扩充的,目的是支持多种资产上链,以及智能合约 bool 化。所以比原链的 BUTXO 和 UTXO 的最大区别就是支持多种资产和柔和智能合约。跟 UTXO 模型比,这是比原链 BUTXO 的最大优势。
此外,计算是在链外的,交易本身既是结果也是证明。节点只做验证即可,不需要对交易进行额外的计算,也没有额外的状态存储。交易本身的输出 的计算是在钱包完成的,这样交易的计算负担完全由钱包来承担,一定程度上减少了链的负担。BUTXO 模型是无状态的,更容易并发处理。所以比原链能更好的支持多种业务场景,能很好的服务多种资产在链发行,流通。