【学习笔记】白皮书中的“交易”
关于交易部分,中本聪的原文如下:
We define an electronic coin as a chain of digital signatures. Each owner transfers the coin to the next by digital siging a hash of the previous transaction and the public key of the next owner and adding these to the end of the coin. A payee can verify the signatures to verify the chain of ownership.
翻译如下:
我们定义一枚电子币(electronic coin)作为一个数字签名链(as a chain of digital signatures)。每一个拥有者(owner)交易货币(coin)给下一个人通过数字签署(私钥签署) 上一个交易和下一个人的公钥 的hash 并且把这个签署的结果附加在了这个货币的末尾。一个收款人可以验证这个签名来确保这个链的所有权(chain of ownership)
![](https://img.haomeiwen.com/i11356174/02bc677e2f57ed0a.png)
假设Owner1要给Owner2一个coin,那么这个过程称为一个交易(TX)(比如中间那个TX)以下分三步。①.(红色) 这个交易记录给O2多少coin,和O2的公钥(指明目的地),同时提供O1可以操作上一个交易(如上图第一个TX,记录O0给O1一笔钱,相当于O1可以操作O0给O1的这个交易的输出);②.(黄色) 对O2公钥和上一笔TX共同hash后,付款者O1用自己的私钥签署这个hash,然后加在交易上面,之后这个交易被广泛地广播到其他地方;③.(绿色) 此时一个旁观者(矿工),是在自己本地具有第一个交易之前的所有交易的,所以看到这个交易(中间TX)时候,就可以用付款者O1的公钥(指代图中第一个交易,A的交易从第一个交易中获得)去验证这个交易(中间TX)的签名以证实这个交易是不是有O1本人发出的(因为私钥只有O1持有,只有用O1的私钥进行签署的签名才能和上一个TX即图中第一个TX进行验证通过,证明O1可以操作第一个交易,具备这笔从O0转到O1的钱),这就证明了这个交易是又付款人O1发起的。
这里需要注意的是过程③,O1签署完这个TX并把交易广播出去,还需要矿工去做验证,即将TX打包进入区块并链在诚实链(最长的链)上,则这个TX才成立。也就是说O2不会立即知道TX有没有成功,还需要等待TX被打包。
这里就看到了比特币的一个天然劣势,因为这个验证机制,导致交易速度较低,目前比特币每秒验证3个交易,为了保证可靠性而牺牲交易速度。在可靠性不变的情况下,提升交易速度是未来的一个发展方向
总结一下,一个当前交易 (TX)
从结构上来看,包括: Owner1's pub key,Owner1 Private Key,Owner2's pub key,Owner1's Signature,amount,pre TX
参与者包括:Owner1、Owner2、旁观者(矿工)
行为指令包括:hash、sign(签署)、verify(验证)
整个过程概述为:
这笔交易(TX)由Owner1发起,涉及coin(amount),对上笔交易(pre TX)和Owner2's public key进行hash,得到签名(Owner1's Signature),同时,该签名被Owner1's Private Key 签署(sign),矿工看到这笔交易,并在其本地有上笔交易(pre TX)之前的所有交易,他就用Owner1's pub key去验证(verify)该签名,证实该交易由Owner1本人发起。这笔交易就完整成立了