精读白皮书系列1

精读白皮书系列1:遇见比特币_java


每天啃一点白皮书。这个系列以阅读理解各种项目的白皮书为主,结合每天学到的区块链零碎知识,理论联系实际。可乐自己的学习笔记。可能做不到日更,但一定持续输出。


精读白皮书系列(1) | 比特币白皮书学习笔记之遇见比特币


前言:学习区块链,最好的方法是读白皮书。看各种文章、视频音频只是简单的入门,要想深入理解区块链,还是得靠自己阅读白皮书来学习。就好像是搞科研要阅读大量的论文一样,且不管身处哪个行业,都得通过阅读大量论文来获取最前沿的知识,虽然白皮书对刚入门的小白来说有些晦涩难懂,但慢慢啃下来,收获还是很大的。下面,我就和大家一起啃比特币的白皮书。


《比特币:一种点对点的电子现金系统 》

《Bitcoin: A Peer-to-Peer Electronic Cash System》

作者:Satoshi Nakamoto  中本聪


01

作者简介

比特币白皮书的作者是Satoshi Nakamoto,中文名叫中本聪,这是一个很传奇的人物,传奇到大家根本不知道他到底是谁,是否真的存在。原因无外乎几乎没有人见过中本聪本人,而中本聪也很少透漏自己的真实信息,能查的到的一些信息也都被人怀疑。区块链历史上疑似中本聪的人也出现过,但也相继被推翻,甚至还有人打着中本聪的旗号做着不可说的勾当。总之,中本聪之于比特币,之于区块链都可以说是神一样的存在。在2008年11月1日中本聪发表了比特币白皮书的论文,随后2009年1月3日发行了比特币,并通过首次挖矿获得了奖励的50个比特币。

精读白皮书系列1:遇见比特币_java_02

精读白皮书系列1:遇见比特币_java_03

02

对题目的理解

题目就已经恰到好处的解释了比特币的含义:一种点对点的电子现金系统,比特币就是一种电子现金,是数字货币,数字货币也曾出现在我们的生活,比如游戏币、Q币,但比特币为什么独独能够脱颖而出,给大家带来这么大的震撼呢?原因就是它是一种点对点的电子现金系统,那么问题来了,点对点是几个意思?原文中点对点用的是这个词:peer-to-peer(P2P),通俗的翻译就是点对点或者端对端,在学术中通常翻译成对等网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构。当下主流的网络结构是客户端/服务器结构,就是有一个中心服务器来主导着所有的工作,为客户端服务。而P2P网络,则是所有的客户端既是客户端又是服务器,这样一个角色。

精读白皮书系列1:遇见比特币_java_04

未来已来,

只是尚未流行。

区块链

03

对摘要中出现的概念的理解

摘要里提到了几个名词,这里有必要简单解释一下:

数字签名(Digital Signatures):A要给B发信息,首先用A的私钥对原始信息加密,这个过程就叫做数字签名,然后再用B的公钥做第二层加密。这是P2P网络中解决通信问题的过程。私钥公钥是一个比较大的概念,之前的每天学一点区块链系列里有提到过,私钥是用于比特币支付时的交易签名;公钥用于接收比特币。私钥和公钥是非对称加密算法中的一对密钥。比特币的数学基础是密码学,非对称加密算法是密码学中信息传输的有效解决方法。


双重支付(double-spending):又叫双花。指多次花费同一比特币。这在纸币中是很容易避免的,因为一张纸币有唯一的编码,花出去就是花出去了,不可能再在另一场合花费同样的纸币(造假币除外)。而在虚拟货币中,所谓虚拟货币不过是一堆数字而已,你感受不到它的任何实体存在,一串数字从A的账户划走,出现在B的账户,同样也可以出现在C的账户,所以,数字货币中最需要解决的问题就是双重支付。而中心机构的出现就解决了双重支付的问题,第三方相当于银行,有他们做背书和统计计算,但在去中心化的区块链中,解决双重支付就是一个比较困难的问题了。该网络通过随机散列对全部交易加上时间戳,将它们合并入一个不断延伸的基于随机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证明,形成的交易记录将不可更改。这是中本聪大大提供的在比特币网络中解决双重支付的方法,就是通过节点间的相互验证、共识机制以及采用哈希算法组成的树状交易信息保证了每个区块内交易数据的不可篡改,从而解决了双重支付。


随机散列(hashing):哈希算法。一种单向加密算法,可以保证信息传输的安全性和准确性,但更多是用来进行传输结果的准确性验证。简单来说,哈希算法是对给定的数M,很容易算出X=F(M),但反过来给你X,就很难推算出M,这是哈希算法的准确性所在。

时间戳(timestamps):时间戳用于记录当前区块的生成时间,是一个字符串。获得记账权的节点把当前区块连接到区块链时要在当前的区块头中加盖时间戳,此后每个区块都如此,形成一个由时间证明的链条,保证了该区块链的不可篡改性。


工作量证明(proof of work):简称POW,是一种节点可以随时进出的共识机制。区块链是不需要第三方来实现点对点的,那么怎么做到不用第三方背书呢,就是靠的共识机制,就是大家都相信且有效的一种机制。工作量证明是指通过有效计算得到的一小块数据,矿工必须在满足全网目标难度的情况下,求解SHA256算法(一种哈希算法),即对区块头和一个随机数进行哈希运算,找出给定数量前导0的哈希值的过程,不断地遍历尝试,直到找到这个解,就相当于挖到了一个区块,同时也获得了10分钟内的全网交易记录的打包记账权,并将挖到的新块连接至主链中,而后所有节点切换至新的区块后继续进行工作量证明的计算。这种依靠工作量来争夺记账权达成共识的方式叫做工作量证明。工作量证明机制节点可以自由进出,可以说是完全的去中心化。比特币依靠POW机制维护区块链的整体运行,因此会消耗大量的算力和电力。


区块链:区块链是一个去中心化的分布式数据库,由一连串区块有序连接而成。说白了就是一个分布式的记账系统。每个人都可以在账本上记账,而不是传统的只有第三方金融机构才能记账的模式,这个账本是完全公开透明的,每一笔交易的金额、去向都被记录下来,不可篡改。比特币是每10分钟出一个块,10分钟之内的所有交易信息都被打包在这个块上,由算出SHA256算法的矿工进行打包并链接到之前的区块上,区块相连成为区块链。

04

对摘要的理解

在摘要中,作者也简单解释了点对点的电子现金系统的含义,就是不需要第三方金融机构,直接由一方转账给另一方。这或许对我们普通大众来说感知并不是那么明显,比不上互联网带来的改变那么明显,就好像我们现在有了支付宝以后对传统银行带来的改变,以前A想要转账给B要怎么做呢,去银行的柜台,支付宝出现后,A不用去银行了,直接动动手就能把钱转给B了,区块链带来的改变对A和B来说本质上没有什么变化,同样是动动手,但对支付宝来说可是天翻地覆,A和B之间不再需要支付宝,或者银行就可以实现两个人的转账了。任何的信用背书在区块链的世界里没有意义,人们可以放心地用区块链技术进行转账交易,这是区块链技术带来的革命,同样也是认知的革命。


至于区块链中的信息为什么不可篡改,这就有劳工作量证明机制以及区块链本身的特性了。因为工作量证明机制消耗了大量的算力,如果某个节点想要篡改他的交易记录,那么他需要把之前的所有区块上的交易信息都改了,这将是一项巨大的工程,且不说他能不能完成的问题,就算他有强大的算力篡改了,那么他会发现他已经掌握了全网至少50%以上的算力,那么他完全可以利用这个算力进行挖矿来获得挖矿的奖励,而不是费尽心思地区篡改一个数据。这就是摘要中的只要大多数的CPU 计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。

精读白皮书系列1:遇见比特币_java_05

05

对简介的理解

简介给我们讲了互联网上的交易依靠第三方的形势的弊端。因为第三方金融机构的存在,所以不可避免的会增加交易的时间成本以及金钱成本,比如转账需要手续费,且还要避免工作日。互联网上依靠第三方的贸易对卖家来说是一种损失,对买家来说是一种欺诈。怎么说呢?假如买家B从卖家A手里买了一个苹果,咬了一口发现不好吃, 于是想退货,你说你吃都吃了怎么退啊,这是一种极端的例子,更常见的是服务,比如授课,服务本身是不好退货的,退货就成了对卖家的损失,而比特币的不可篡改性就解决了这一问题。对买家来说,需要提供各种身份信息,以证明自己是爱国守法的好公民,不然卖家是不会相信他并卖他东西的,这样做会让一些卖家钻空子欺诈买家。所以比特币的优势又来了,大家是基于工作量证明的,不会让你提供个人信息,安全多了。

精读白皮书系列1:遇见比特币_java_06

所以,作者提出了基于密码学原理的比特币作为替代第三方机构的交易系统。 基于区块链发行的数字货币可以有效解决双重支付的问题,且区块链是安全有效的。


总结一下:

1、摘要告诉了我们什么是比特币;

2、比特币的共识机制是工作量证明(POW);

3、比特币交易的不可篡改性;

4、诚实节点挖矿大于攻击的问题;

5、简介告诉了我们为什么要用比特币,以及比特币相对于传统交易系统的优势。