第0章 引言
前两篇文章讲到了UTXO是什么,UTXO数据库的生成机制,和UTXO证明的设计。本文介绍BCH网络中各个节点如何利用UTXO证明。
第1章 现在BCH网络节点分类
比特币网络节点主要有四大块功能,第一是钱包;第二是挖矿;第三是维护区块链文件;第四是维护网络路由。
我们依据维护功能的不一样,将Bitcoin Cash网络节点分成三类,第一类是挖矿节点;第二类是不参与挖矿的完整节点(full node);第三类是SPV节点。
挖矿节点是生产区块的节点。它们的主要功能包括:
1验证所有的交易和区块;
2维护完整的区块链文件,包括生产新的区块,铸新币,打包新的交易,当然也就是要维护新的区块头;
3在维护完整的UTXO(在本地的意思就是UTXO不会用来上传和下载);
4行驶钱包功能;
5提供区块文件上载和上传功能,广播交易功能。
挖矿节点是真正意义上的完整节点(full node),包含了比特币网络的所有功能。它们的“物理实体”是使用服务器来运行bitcoin abc这样的节点软件和矿池软件,还要运行大量的矿机来竞争获得生产区块的机会。挖矿节点是有收益的,同时运行成本也是很大的。
不参与挖矿的完整节点主要功能是,除了没有挖矿节点的生产区块的能力外,就和挖矿节点一样了。包括:
1验证所有的交易和区块;
2维护完整的区块链文件,不包含生产区块;
3在本地维护完整的UTXO;
4钱包功能;
5提供区块文件上载和上传功能,广播交易等路由功能。
为了区别挖矿节点,挖矿节点就称为挖矿节点,不带挖矿功能的叫完整区块链节点。
完整区块链节点的“物理实体”是使用服务器或普通电脑运行的bitcoin abc/bitcoin unlimited这样的节点软件。
SPV节点的主要功能是:
1钱包功能;
2支付验证。通过完整区块链节点和本地区块头来验证交易功能。
SPV节点的“物理实体”一般是用手机或电脑安装的钱包软件,比如breadwallet,比太这样的就是app。
第2章 挖矿节点负责生产UTXO证明
本文假定UTXO证明是使用一个硬分叉来部署,将UTXO证明加入进区块头。
挖矿节点会依据完整的区块链文件在特定的高度,在本地构造出完整的UTXO数据库,维护这条始终100高度的“UTXO区块链”,每生成一个新区块,都会生成对应的UTXO区块,并将“UTXO证明”填充进新挖出的区块头里。
挖矿节点还要负责验证其他挖矿节点广播过来的“UTXO区块链”,如果别的矿工节点,发来一个假的UTXO区块,就要连带这个矿工生产的区块一并孤立掉。
挖矿节点还要提供UTXO区块的广播、下载、上传这些路由服务。
挖矿节点要提供UTXO查询服务,提供给SPV节点。
第3章 完整区块链节点负责验证和路由UTXO证明
完整区块链节点除了无法自己生产UTXO区块链外,其他功能是和挖矿节点一样的。
它们的UTXO区块链可能有两种方式构成,第一种是和现在的一样,直接从区块文件中回溯出来,在本地构造一条完整的UTXO区块链,并且依据本地构造出来的“UTXO证明”和下载到的区块头里的“UTXO证明”对比,来验证UTXO区块链。
另一种方式就是直接从挖矿节点那里下载UTXO区块链,并且在本地构造出“UTXO证明”和区块头里的“UTXO证明”对比,来验证UTXO区块链。
第4章 SPV节点下载特定的UTXO和UTXO路径和UTXO证明
我会在下一篇文章完整介绍现在的SPV节点的工作原理,和如何利用UTXO区块链来完善SPV节点。
SPV节点是要下载并本地保证所有区块头的。SPV节点对UTXO区块链的利用就是向挖矿节点和完整区块链节点申请需要验证的交易的UTXO和UTXO路径,然后在本地构造出“UTXO证明”,然后和区块头里“UTXO证明”对比来完成支付验证,这其实已经是非常接近“交易验证”了。
下一篇文章我会完整介绍“交易验证”和“支付验证”。
第5章 结束语
我们寄希望于UTXO证明技术来完成Bitcoin Cash的无限扩展。
网友评论