如何防止double spending

一、 比特币的来源

比特币一共有两种来源,一是作为挖矿者得到的coinbase铸币交易;

二是别人转账给你;

二、 比特币的交易

首先需要明确的是,比特币虽然说是分布式账本系统,但是系统中并没有维护账户信息,也就是说,我们是无法直接查到现在我的账户有多少钱的。

但是,我们可以通过计算得到,类似于加减法,从最开始得到币的交易开始进行加减法得到现在币的剩余量。

那这里币的来源怎么得到呢?

这里仍然是Hash指针。

区块链系统中其实是有两种hash指针,一个是区块和区块之间的;

另一种这里提到的用于溯源的hash指针。这个指针该顺着区块链向上溯源,得到所有收钱和花钱的交易,最终判断是否有足够的余额支付这笔交易。

从以上讨论看出,这个溯源的过程是非常消耗算力的。

三、 UTXO

区块链作为Transaction-based ledger,并没有账户的概念。

因此为了解决上述溯源的问题,比特币系统在全节点里维护了一个UTXO的系统,unspent Transaction output,没有被花掉的交易输出。这样溯源的计算量将会大大下降。

posted @ 2020-03-01 11:44  金思远  阅读(336)  评论(0编辑  收藏  举报