没有比特币就没有区块链,没有区块链就没有比特币。
可见,比特币是区块链是多么的密切相关,而且比特币也可以说是区块链应用最成功的一个项目。学习区块链又怎么可以不研读比特币的白皮书呢?
比特币的白皮书分为几个部分:
简介
交易
时间戳服务器
工作量证明
网络
激励
回收硬盘空间
简化的支付确认
价值的组合与分割
隐私
计算
简介
互联网上的贸易,都需要借助第三方金融机构作为可信赖的第三方来处理电子支付信息。受限于基于信用的模式,交易成本增加,个人信息不能完全隐藏等。
2008年经济危机中,美国政府可以无限地增发货币,而且只有它有记账权。
中本聪思考一种新的体系:不需要一个中心来记账,大家都有记账权,货币不能超发,整个账本完全公开透明。
为了发明一种基于密码学而不需要第三方中介参与的电子支付系统,提出了通过点对点分布式的时间戳服务来生成依照时间前后排列并加以记录的电子交易证明。杜绝回滚支付交易的可能,保护特定的卖家免于欺诈。
交易
电子货币定义为这样一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币发送给下一位持有者,收款人通过对签名进行检验,就能验证该链条的所有者。
image这个过程的问题在于,难以确认货币是否进行了双重支付(一枚货币多次使用),通常解决方案是引入第三方权威来检验。
从逻辑上来说,为了解决这个问题,我们只要保证本次交易之前这枚货币在拥有者手里并没有发生过交易,想在电子系统中排除第三方终结,那么交易信息就要公开宣布,需要整个系统内的所有参与者都有公认的历史交易序列。
时间戳服务器
为解决方案首先提出一个“时间戳服务器”,时间戳服务器通过对以区块形式存在的一组数据实施随机散列而加上时间戳,并将该随机散列进行广播。在这个过程中主要完成几个事情:
- 对交易进行打包,形成一个区块
- 在区块里加入时间戳,证明交易发生的时间
- 计算出此区块的区块头的哈希值
- 把区块头哈希向全网广播
通过时间的先后顺序把区块链接起来形成区块链。
image工作量证明
简称PoW,就是通过你的工作量来证明你是否有记账权,虽然很有效,但是检测工作的整个过程却较为低效。比方说SHA-256下,随机散列值以一个或多个0开始。那么随着0的数目的上升, 找到这个解所需要的工作量将呈指数增长,而对结果进行检验则仅需要一次随机散列运算。
在区块中存在一个随机数,这个随机数要使得该给定区块的随机散列值出现了所需的那么多个0。通过反复尝试来找到这个随机数,直到找到为止,这样我们就构建了一个工作量证明机制。
同时,该工作量证明机制还解决了在集体投票表决时,谁是大多数的问题。如果决定大多数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权力,则该机制就被破坏了。而工作量证明机制的本质则是一CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。
image网络
运行该网络的步骤如下:
- 新的交易向全网进行广播;
- 每一个节点都将收到的交易信息纳入一个区块中;
- 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;
- 当一个节点找到了一个工作量证明,它就向全网进行广播;
- 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;
- 其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区快的随机散列值。
节点始终都将最长的链条视为正确的链条,并持续工作和延长它。
激励机制
比特币的激励来源于挖矿和手续费。
我们约定如此:每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块创造者拥有的新的电子货币。
另外一个激励的来源则是交易费。如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。
回收硬盘空间
如果最近的交易已经被纳入了足够多的区块之中,那么就可以丢弃该交易之前的数据,以回收硬盘空间。
为了同时确保不损害区块的随机散列值,交易信息被随机散列时,被构建成一种Merkle树(Merkle tree)的形态,使得只有根(root)被纳入了区块的随机散列值。通过将该树(tree)的分支拔除(stubbing)的方法,老区块就能被压缩。而内部的随机散列值是不必保存的。
简化的支付确认
在不运行完整网络节点的情况下,也能够对支付进行检验。一个用户需要保留最长的工作量证明链条的区块头的拷贝,它可以不断向网络发起询问,直到它确信自己拥有最长的链条,并能够通过merkle的分支通向它被加上时间戳并纳入区块的那次交易。节点想要自行检验该交易的有效性原本是不可能的,但通过追溯到链条的某个位置,它就能看到某个节点曾经接受过它,并且于其后追加的区块也进一步证明全网曾经接受了它。
图片5.png价值的组合与分割
为了使得价值易于组合与分割,交易被设计为可以纳入多个输入和输出。
一般而言是某次价值较大的前次交易构成的单一输入,或者由某几个价值较小的前次交易共同构成的并行输入,但是输出最多只有两个:一个用于支付,另一个用于找零(如有)。
隐私
传统的造币厂模型为交易的参与者提供了一定程度的隐私保护,因为试图向可信任的第三方索取交易信息是严格受限的。但是如果将交易信息向全网进行广播,就意味着这样的方法失效了。但是隐私依然可以得到保护:将公钥保持为匿名。公众得知的信息仅仅是有某个人将一定数量的货币发所给了另外一个人,但是难以将该交易同特定的人联系在一起,也就是说,公众难以确信,这些人究竟是谁。
图片6.png
总结
这是一种不需要信用中介的电子支付系统,为了解决双花问题,引入了工作量证明机制。
该网络的强健之处在于它结构上的简洁性。节点之间的工作大部分是彼此独立的,只需要很少的协同。每个节点都不需要明确自己的身份,由于交易信息的流动路径并无任何要求,所以只需要尽其最大努力传播即可。节点可以随时离开网络,而想重新加入网络也非常容易,因为只需要补充接收离开期间的工作量证明链条即可。节点通过自己的CPU计算力进行投票,表决他们对有效区块的确认,他们不断延长有效的区块链来表达自己的确认,并拒绝在无效的区块之后延长区块以表示拒绝。包含了一个P2P电子货币系统所需要的全部规则和激励措施。
网友评论