众所周知,区块链是一个分布式账本,一个区块相当于账本其中的一页。区块链网络中通常有两种记账模型——UTXO模型和账户模型,前者在比特币、莱特币等区块链中被广泛使用,后者则更多是应用于以太坊、波场TRON这些采用了智能合约的区块链上。本期TRON造知识局让我们一同来了解什么是区块链的记账类型。
UTXO是Unspent Transaction Output的缩写,意为“未花费的交易输出”。在 UTXO 模型中,不存在“账户”和“余额”,UTXO 是帮助执行交易的计量单位。每笔交易都由输入和输出两部分组成,输入消耗现有的UTXO,而输出创建新的UTXO。
你可以把UTXO类比为纸币中的面值,本质上,你的账户里有多少比特币,你就拥有多大“面值”的UTXO。当你要进行转账交易时,这张大面值的UTXO将被破开,变成两张小面值的UTXO。
举个例子,假设A有5个比特币,B有0个比特币。现在A要向B发送1.25个比特币,A的5个BTC将被记录为输入,然后被销毁,系统同时会创建价值为3.75BTC和1.25BTC的UXTO作为交易的输出,A最终得到价值3.75BTC的UTXO,B得到价值1.25BTC的UXTO。
可以说,采用UXTO记账模型的链上交易是通过不断销毁现有UTXO和创建新的UTXO来实现的。
与复杂难懂的UXTO模型相比,账户模型则要容易理解得多。我们日常生活中使用的支付宝、银行账户其实都是账户模型。其转账记录表现为转账人和收款人的余额变化,例如账户A要给账户B转账100枚TRX,就从账户A余额扣除100枚TRX,在账户B余额增加100枚TRX。
不过,账户模型与传统银行账户的区别在于,记录用户余额的分布式账本是由多个节点或全节点来维护的。那么UTXO模型与账户模型又存在哪些不同之处呢?
首先,UTXO模型比账户模型的安全以及隐私级别更高。在 UTXO 模型下,由于每笔交易都会产生新的UTXO,而不是简单地调整账户余额,这使得交易路径不易被追踪。此外,UTXO模型要求每个UTXO只能被使用一次,从而有效防止了双花问题。
其次,账户模型比UTXO模型可编程性更高。基于账户模型的区块链可以让用户账户与智能合约进行更复杂的交互,开发人员也更容易创建编程逻辑和构建DApp。换言之,账户模型对开发者友好,拥有更广泛的应用场景。
最后,UTXO模型更具可扩展性。UTXO天然支持并行处理交易,从而提高效率和吞吐量。账户模型则只能以线性方式,一个接一个地处理交易,在用户需求量大的时候,往往会造成网络拥堵。不过需要注意的是,随着交易数量的增加,UTXO也在不断增长,这对节点的存储和处理能力也提出了更高的要求。
来源:金色财经