今天看看比特币白皮书中有哪些关键的要点:
(1)简介
提出了一个场景设想:如何不通过一个所谓的权威第三方结构(比如银行),来构建一个可信的交易网络呢?中本聪的语文还是不错的,先抛出个问题给你玩玩,然后吸引你继续看下去。
(2)交易
描述了一种通过密钥签名进行交易验证的方式,实际上就是计算机密码学在比特币中的应用。我们在银行转账交易用什么来证明自己呢?是通过账户和密码,必要的时候还可以通过身份证确认。而在比特币系统中没有银行这样一个角色,那靠什么来确定身份呢?只有靠现代计算机密码学技术。当然,密码学技术在比特币中的应用并不只是用来证明身份,是贯穿在各个环节的,可以说,密码学技术就是比特币系统的骨骼。
(3)时间戳服务器
这部分提到了区块以及通过时间戳运算连接成一条链的概念,这也是区块链概念的来源,同时在这里也说明了比特币数据的存储方式。
(4)工作量证明
这部分介绍了一种点对点网络中如何对各自的数据进行一致性确认的算法。为什么叫工作量证明呢?因为这种算法很消耗CPU的算力,等于人们干活一样,是要付出工作劳动的。
(5)网络
比特币软件是一种网络软件,而且是一个不依靠某个服务器来交换数据的网络软件。那么一个个节点之间,如何确认一笔笔交易数据呢?这部分介绍了交易确认的过程,这个实际上就是比特币网络的应用协议,跟日常使用的邮件收发协议、文件传输协议、超文本传输协议等,是一个层面上的。
(6)激励
激励就是奖励的意思,你干了活,得到一笔奖金,哇,好开心!就会继续努力干活,这就是激励。比特币软件的数据一致性确认是需要耗费CPU算力的,那凭什么有人愿意来耗费这些个算力,白干活吗?当然不是,系统会奖励给你比特币,还有别人交易的手续费。
(7)回收硬盘空间
比特币系统从创世区块开始,大约每10分钟产生一个区块,也意味着区块链账本的“体积”会一直增长。事实上写作本书的时候,已经超过了120GB,只要比特币网络一直存在,数据就会一直增长。实际上,只有运行全功能节点的客户端才会一直保持完整的区块链数据,这些在1.4.2中会有详述。这里提出了一个思路,删除过老的一些交易数据,同时不破坏区块的随机哈希值,通过这种方法压缩区块数据。
(8)简化的支付确认
上述提到了,比特币客户端的数据量很大,这么一来,等于不管是用比特币系统干什么都要带上大量的数据,这岂不是很不方便,而且也会限制在其他一些终端(比如手机)上的使用。这部分提出了一个模型,这个模型主要是为比特币的支付服务的。在这个模型下实现的比特币支付功能并不需要携带那么庞大的数据,而只需要保留体积相对很小的区块头。
(9)价值的组合与分割
这部分介绍的是比特币中的交易事务组成方式。①什么叫价值?在比特币系统中,价值就是比特币。②什么叫组合?比如我口袋里有5枚1元硬币,1张2元纸币,1张10元纸币,我要给你5块钱,怎么给呢?我可以给你5枚1元硬币,也可以给你3枚1元硬币加上1张2元纸币,这就是不同的组合。③什么叫分割?分割其实就是转出的意思,我通过不同的组合,构成了总计5元的金额,然后转出给你,这个过程就是价值的组合和重新分割。在这个例子中,还有一张10元的,假如我直接转了你10元,那会怎样?这就需要找零5元了,找零其实也是一种重新价值分割。
(10)隐私
作为一个货币系统,保密性也就是隐私毫无疑问是人人都会关心的。传统的体系,完全是依赖比如银行这个第三方的保护,大家相信银行,银行也设立了各种管理制度和方法来防止账户和交易信息的泄密。比特币系统则不同,它不依赖谁,每个人在比特币系统中也不用登记什么身份证、名称、性别等,就是一个地址,谁也不知道地址后面代表的是谁,而且,只要你需要,可以自己创建任意多个地址(你到银行去开任意多个户试试!),这使得比特币系统中的交易带有很大的匿名性和隐秘性。
(11)计算
这部分主要是站在概率统计的角度计算了一下攻击者成功的概率,以及经过多少个区块后还能攻击成功的概率,计算过程这里不赘述。白皮书的内容就介绍到这里了。刚刚接触比特币、区块链这些概念的朋友,或许还是一头雾水吧!没关系,我们在下面的章节会有详细的解释。毕竟,能够只通过一份白皮书就完全明白比特币设计的人,或许只有中本聪这个“大神”了。
英文白皮书地址:https//bitcoin.org/bitcoin.pdf
中文白皮书地址:http//www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system