在比原链中,每笔交易都会消耗上一笔交易产生的BUTXO,然后产生新的BUTXO。一个账户的余额是属于该地址的所有未花费的BUTXO的集合,而BTM的全局状态是所有当前未花费的BUTXO的集合。下面用一个具体的例子来说明。
Bytom 的状态是通过 BUTXO 实现的。Bytom 的价值转移是通过转账来实现的。更具体地说,我们可以通过创建转账来花费 1 个或多个,并使用他们的 BUTXO 作为转账输入。BUTXO 不能部分花费。如果我们花费了 0.5 (使用他们唯一的 BUTXO,价值 1 bitum),他们需要故意发回 0.5 。如果他们不发送这部分,那么这 0.5 就会丢失,并交给挖出转账的矿工。流程如下图所示:
比原链的BUTXO不包含用户账户余额,通过比原链,用户只需持有私钥,即可随时创建一个或多个BUTXO。如下图所示:
总结:
可能有人会好奇,比原链的BUTXO模型和UTXO模型到底有什么区别呢?
BUTXO 是比原链基于 UTXO 实现的一种支持多资产的弹性模型,从而保证了资产交互操作的原子性,实现了异步交易时的验证,支持链上多种资产,并将智能合约结果布尔化,这样在一定程度上增强了用户的匿名性。如下图所示:
我们查看了比原链的BUTXO结构,发现比原链的结构中还有诸如 等字段,比原链中BUTXO的结构如下:
这是比原链专门针对多资产和智能合约的扩展,目的是支持链上多资产和布尔智能合约。所以比原链的BUTXO和UTXO最大的区别就是支持多资产和布尔智能合约。相比于UTXO模型,这是比原链BUTXO最大的优势。
另外计算在链下,交易本身既是结果也是证明,节点只需要验证,不需要为交易进行额外的计算,也没有额外的状态存储,交易本身输出的计算都是在钱包里完成的,这样交易的计算负担就完全由钱包承担,一定程度上减轻了链上的负担,BUTXO模型无状态,更容易并发处理,因此原链可以更好的支持多种业务场景,可以很好的服务于多种资产在链上发行、流通。