admin管理员组

文章数量:1530050

UTXO Commitment有什么用?

全节点的同步问题,可以让新的全节点快速启动

目前,比特币的模式下要启动一个全结点,需要下载从创世区块到最新区块所有的区块。目前,所有区块的大小约为几百G。

我们来思考一下,这样的方式是否是必要的,其实用全结点去验证新交易,我们其实直接操作的是UTXO集合,看一下新的交易是否引用UTXO集合的某个UTXO。

UTXO集合其实就是比特币系统目前的状态,所以要启动一个全节点理论上只需要下载某个区块该区块对应的UTXO集合即可,UTXO集合的大小约为几个G(<<几百G),其与历史数据不同,可以被消耗,所以它不会像历史数据那样线性增加。

当然,这样会丢失前面所有的历史交易的记录

然而,怎么保证下载的UTXO集合和某个区块能够对上?这里就引入了UTXO Commitment(目前比特币没有这个东西)。就是把UTXO集合的摘要写到比特币的区块上。

UTXO Commitment的实现方式

朴素的方式

按某个键排列所有UTXO,然后把他们连接起来进行哈希

这样的问题在于:
随着新区块的加入,UTXO集合中会有

本文标签: 算法UTXOBCHECMHcommitment