天天看点

比特币白皮书概述

比特币白皮书英文版地址

本文为阅读比特币白皮书各个章节的概述

摘要:指出通过将交易内容哈希到最长公共链上的机制来消除传统的交易中介角色这一目标。

一、引言

简述现今支付体系中介机构的弊端——第三方调解的事件使得完全不可逆的交易不能真正实行,从而提高了交易成本,限制了小额交易。卖方和买方也有了相互获取信任的需要,来使交易得以顺利进行不出现争端。

引出运用密码学来保证并代替信任的电子交易系统,交易不可逆保证卖方利益,也可引入第三方担保来保证买方利益。通过点对点的分布式时间戳服务器生成有序订单的可计算证明进而避免双花问题,上述系统稳定运行的条件是,可信任节点的CPU算力大于攻击节点算力总和。

二、交易

这章阐述了比特币系统交易的输入输出的传递形式和结构。

该章定义电子货币为这样的一串数字签名。上一个货币拥有者通过这样的形式将货币传给下一个人,将上一次交易的hash值和下一位拥有者的公钥做签名,并将这些添加到这枚货币的末尾。收款人通过对验签来证明该链条的拥有者。(简而言之就是用付款人的私钥对前一次交易和收款人的公钥做签名,并将结果添加到交易链末尾)

作者提出双花问题,指出没有时间顺序上的所有交易可见性,收款人不能确认是否被双花,传统模式下需要第三方来认证解决。得出结论所有交易需要公开并被参与者按序确认有效。

三、时间戳服务器

提出解决双花问题的机制——将交易数据通过hash后加上时间戳,并将这个结果广播。实际上是阐述区块链中区块内容形成的原型,将每个区块时间内的所有交易转成hash后再和时间戳、上个区块值等参数导出本区块值。内容上通过merkle树包含该区间所有交易,顺序上通过关联上一个区块值和时间戳参数形成有序链。

四、工作量证明

实现点对点的时间戳服务器,需要实现POW机制,如SHA-256算法,哈希值由多个零开始,计算难度随零个数的增加呈指数上升,而验证只需要进行一次哈希计算。

我们通过在POW中增加一个nonce随机数。通过不断hash替换nonce值来挖矿。区块一旦生成就不能更改除非回退,并且要更改其后的所有区块。

运用工作量证明机制能够代表较为真实的大多数,而非IP地址之类的机制可以伪造。只要保证诚实节点占大多数,恶意节点想要修改区块链追上最长链的可能性就随着块数增加呈指数减小。同时保证出块间隔时间一定,难度每隔一小时动态调整。

五、网络

区块在网络中的生成传播步骤:

1、新的交易广播给所有节点。

2、节点接收新交易进区块。

3、节点计算该节点的POW。

4、找到POW后向全网广播。

5、当所有的交易合法且没有花费时,节点接受该区块。

6、当节点接受当前区块后,以当前区块为前驱创建下个区块。

并且提出了接收到不同版本新区块的情况。节点会在先收到的节点上工作,也会保留另一个链条。当下一个工作量证明被发现时,节点又会转向当时的最长链。另外,节点缺失某区块时可以申请重新下载。

六、激励

这一章主要讲的是货币的激励机制和对系统稳定性的作用。每个区块的第一笔交易是给区块创造者的数字货币奖励。每笔交易的输入输出差额也作为矿工激励。在有一定币量后可将激励转为单一的交易费激励形式以防止通胀。

这一机制也一定程度上保证了参与者更倾向于按规则挖矿而非篡改交易获取利益。

七、硬盘空间回收

一旦最近的交易后又纳入了足够多的区块,就可以把之前的交易剔除。只保留Merkle根节点,文中例举了从一个区块merkle树中保留Tx3交易并裁去前三个交易的方法,即留下从Tx3交易到根hash节点所有有用于计算的hash节点。

八、简化的支付验证

这一章阐述了简化形式的验证节点,需要保持这类节点能证明并保有最长链。此后可以逐步获得在某个时间点的具体交易。

在简化情况下区块链会较易被攻击,改进方法之一是当用户发现错误的区块链时,将促进下载完整的区块数据以验证区块的正确性。

九、合并和拆分价值

交易的输入输出形式:通常情况下输入由一笔较大的交易或多笔较小的交易作为输入;通常的输出一笔作为付款,另一笔为找零。

十、隐私

通过保持公钥来在交易信息透明的情况下保持用户的隐私。用户可以拆分多个地址完成某笔交易来防止被追踪。主要原因是公钥和拥有者身份信息的关联性在此场景下不存在,所以难以造成身份信息泄露。

十一、计算

这一章模拟了攻击者生成新链来赶超诚实链的场景。确认攻击者只能修改自己的交易,以使诚实的节点接受。

约定诚实链扩展为+1,攻击链长扩展为-1。该竞赛类似二叉树随机漫步。

在给定长度差下,攻击者追上的概率近似为赌徒破产问题。指的是赌徒在有一定欠债的先决条件,并可以有无限次尝试机会来弥补亏空的概率。

(q/p)^z是当攻击者找到下一区块概率小于诚实节点找到下一区块概率时,在z个区块后攻击链长度赶上诚实链的概率。

计算这个概率的用处是确认当交易发生后需要多久可以基本认为交易已成定局不能被改变。相应的,攻击者利用短时间内将某项交易撤销的方式获得非法利益。

模拟的场景如下,接收者等到看到交易被写进区块,并有z个区块添加到其后。此时他并不知道攻击者的区块进展,在之前所述的p、q概率下攻击者的进展是泊松分布,期望值为z*q/p。

进而计算出经过k个区块后攻击链追上的所有概率之和(攻击者取得k个区块进展的概率密度乘以在该进度下仍能追上的概率)。最后得出在攻击者算力占0.1、区块差z达到6个以上时,追上的概率将小于千分之一。

十二、结论

本文提出了不依赖信任机制的电子交易系统。以提供强有力所有权控制但缺乏避免双花手段的基于传统数字签名货币架构为引子, 我们提出使用POW来记录交易历史的点对点网络,当诚实节点掌握大部分算力时能有效避免攻击者篡改。该网络非结构化并且健壮,节点间少交互就可协同工作。节点也不需要表明身份,因为消息并非被路由到某个特定地址,只是尽最大努力广播即可。节点可以按意愿离开或重新加入网络,只需要补充离开时的POW区块。节点通过CPU算力投票,以在链上后继工作表明接受该链,反之亦然。必要的规则和激励都可以添加到现有的一致性机制上。