区块链中预防双重支付的时间戳 (区块链 双花问题)

2023-03-01 10:00:02 views

上次我们说了由于网络上信息不同步的问题,可能会造成一笔钱收到延时,从而造成双重支付的隐患。你可以用utxo账户,记录整个交易过程的方法来解决这个问题。


但是还有一种情况,在网络上,我们的钱其实都是一串儿信息,只要是一串信息就有可能会被复制,那一旦钱被复制了很多份,也就不叫钱了。这个事儿黑客是最爱干的。遇到这种事儿怎么办呢?


那什么东西是这一刻和那一刻不一样的呢?答案就是时间。如果能把时间的信息以某种方式的代码或者字符表示出来,那就可以避免这个问题。


这就引出了所谓时间戳的概念。简单的说,就像是我们在生产一个东西的时候,把他的生产日期拿个章子敲上去。几月几号几时几分几秒,只要这个时间足够短,它就可以区分所有的产品,大概就是这种意思


具体是怎么弄的呢?这里简单解释一下。首先我说过区块链的链,实际上指的是哈希值之间的关系,也就是说你要对区块链中的信息进行哈希运算得到一个值。


这个哈希值是怎么来的呢?它包含了上一个区块的哈希值和上一个区块的交易信息,也就是说牵一发而动全身,一个链着一个,但是这还不够。


这次运算只是解决了区块信息与区块信息之间的联系,并没有解决区块与时间的联系。在得到这个哈希值之后,需要向服务器请求获取当前的时间信息等等,然后再把这些信息与交易数据的哈西值再进行一次运算,再次加密得到一个新的结果。


注意这个新的哈希值也是独一无二的。然后再把这个值返回到整个区块链系统中,返回区块。


这相当于提高了安全心性。你想,如果你要想攻破整个区块的链条,不仅需要攻破哈希算法,一个一个区块的攻破,还需要攻破时间戳的这次加密。这个难度就更大了


系统给每一笔交易都打上了时间的烙印。你就想象,一个工厂生产出来的东西,每一个文件上都敲了一个全新的章子,这个章子上标注了时间信息。你在什么时间花了多少钱,给谁花的,这些信息都呈现出来。这样就构成了一个完整的系统。


通过这种方式呢,黑客再要复制你的钱的时候,就会面临一个时间点儿卡住的问题。一旦复制出来就会发现,最后得到的这个哈西值和你的是不一样的。这样就保证了钱的唯一性,信息的唯一性


有兴趣可以看看下面链接这本书,帮助你从头系统了解区块。