Loading

比特币学习 (1) 定义

“一枚电子货币(an electronic coin)是这样的一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥(Public key) 签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进行检验,就能够验证该链条的所有者。”

先聊聊什么是数字签名,关于这个概念,我看了很多次下面这个链接指向的文章,但是看了又忘了,如此反复,所以还是决定按照自己的理解写下来,加深记忆。其实是这样,比如我给吉安娜回信,我先把信的内容HASH一下,生成一个字符串,我们称这个字符串为这封信的摘要,然后将这个摘要用我自己的私钥加密一次,最后将这个加密过的摘要和未加密过的信件一起,发给吉安娜。彼时吉安娜收到信,用我的公钥将摘要一解密,同时对收到的信件内容HASH,这两个东西一比较,如果是一致的,就可以证明两件事情,第一,这封信确实没有被修改过,第二,这封信的的确确是我发给她的。这就起到了“数字签名”中,“签名”二字的作用。

pic1

然后我们接着聊。接着看它的定义,配合着上面这张图来看。这是英文原文的配图,广为流传的中文版将Signature不知为何翻译成了公钥。

我们直接看最后一个交易,也就是图上最右边的一个交易,我们假设这是一个真实的比特币,在互联网上,目前这枚比特币最后一笔交易就是这一笔交易,可以看出这枚比特币目前是属于拥有者3的。那么拥有者2,是如何将这枚比特币支付给拥有者3的呢,其实定义也已经说得很清楚了,图也很明白,就是将拥有者2手上这枚比特币的交易链,连同拥有者3的公钥一起,进行随机散列,然后再将随机散列的值,使用用户2的私钥进行数字签名。最后将这个数字签名,连同比特币一起,也就是连同更新过的交易链一起,发送给拥有者3。

彼时拥有者3收到这枚比特币和附送的数字签名,通过拥有者2的公钥,对数字签名进行解密,得到之前提到过的散列值。拥有者3再将手上的比特币交易链信息,连同自己的公钥, 进行随机散列,看是否也能得到一样的散列值,如果是一样的, 就能知道两件事情:

1.这枚比特币确实来自拥有者2

2.这枚比特币的交易链信息未被恶意篡改

所以交易链就是比特币,比特币就是交易链。以上的分析就是关于这个定义的全部内容。

posted @ 2016-04-13 15:36  注销111  阅读(515)  评论(0编辑  收藏  举报