比特币如何防止伪造交易记录?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比特币如何防止伪造交易记录?相关的知识,希望对你有一定的参考价值。

参考技术A (本文在观看李永乐老师视频讲解基础上整理)

防止伪造记录是比特币的一个重要特点,电子签名技术就是防伪的关键。

当一个比特币用户注册的时候会产生一个随机数,随之会产生一个私钥,紧接着生成公钥和地址。

接下来以“A转给B十个比特币”作为案例,看一下比特币的交易是如何防伪的。

Step1:A编写交易记录并对信息加密

Step2:A将“交易信息、公钥、地址”进行全网广播

Step3:全网对A广播出来的信息进行验证

验证的过程就是全网对广播出来的交易信息进行哈希运算,并得出一个摘要。然后用广播出来的公钥和密码进行解密,也得出一个摘要。

对这两个摘要进行对比,如果相同,信息为真,如果不同,信息为假。

以上就是比特币对信息验证的过程。

结语

1、  比特币防伪采取了电子签名技术;

2、  私钥加密,公钥解密;

3、  对广播出来的信息,全网会进行信息验证,验证通过代表信息真实,否则信息伪造。

参考文献

[1]微博 @李永乐老师

一起学习比特币白皮书--交易--比特币长什么样子?

比特币白皮书的第二章主要讲了3个问题:

  1. 如何定义一枚比特币?

  2. 交易如何进行?

  3. 如何防止双重支付?

下面按照白皮书中的描述做一点解释。 


如何定义一枚比特币?


换成一个更为通俗的问题:比特币长什么样子?我们从网上可以看到大量类似这样子的图片:




这个容易让不了解原理的人产生误解。事实上的比特币长这样:



白皮书中明确指出:一枚电子货币是一条数字签名链。 

We define an electronic coin as a chain of digital signatures


数字签名就是基于非对称加密和数字摘要技术的身份认证方法。通过验证数字签名可以证实这个东西的确是来自某个人的。

数字签名链就是一系列的数字签名按时间顺序形成的链。


举个例子:A用一枚比特币跟B买了一杯奶茶,B拿了A的比特币后又跟C买了一件衣服。那么这枚比特币现在到了C的手上。那么C手上的这枚比特币应该怎么证明就是C的呢?这就涉及第二个问题。 


交易如何进行?


按中本聪的说法:每个拥有者都通过将上一次交易和下一个拥有者的公钥的哈希值的数字签名添加到此货币末尾的方式将这枚货币转移给下一个拥有者。


Each owner transfers the coin to the next by digitally signing a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin


这个说法比较难懂,接着上面的例子:

  1. 这枚比特币之所以是C的,因为经过验证是B发送给他的;

  2. B之所以能发送这枚比特币,因为经过验证是A发送给他的,;

  3. C手上的这枚比特币,就形成一个数字签名链;

  4. 每一次的交易就是通过数字签名完成货币的转移。


如何防止双重支付?


接着上面的例子,如果A手上只有一枚比特币,但他跟B买了一杯奶茶后又跟C买了一件衣服。因为交易是点对点的,没有第三方的参与,这时就存在一个双重支付的问题。


中本聪提出的办法是:将所有的交易公开。 

The only way to confirm the absence of a transaction is to be aware of all transactions


每个节点都存有一个交易账本,通过共识系统来防止双重支付。


接着刚刚提到的问题:

  1. 刚开始时,A、B、C手上都一个账本,记着A有一个比特币;

  2. A向B买了一杯奶茶,支付了一个比特币。这时B和C都会更新手上的账本,记着A把这枚比特币给了B;

  3. 如果A偷偷地不更新自己的账本,试图把这枚比特币支付给C,这时C通过查账就可以发现A进行了双重支付,因为B和C对交易账本形成了共识。 


以上是关于比特币如何防止伪造交易记录?的主要内容,如果未能解决你的问题,请参考以下文章

区块链如何防止篡改历史记录?

区块链如何证明你发的消息是你发的?

一起学习比特币白皮书--交易--比特币长什么样子?

如何防止double spending

关于hashcash

写给新手:秒懂比特币挖矿