作为区块链小白你需要知道的知识点
【本文由赞我(zaneds.com)独家冠名】

《图说区块链》是一本区块链小白入门科普书籍,语言浅显易懂,图文并茂,为想初步了解区块链的人提供一个比较好的渠道。看完这本书至少要明白这么几个问题。
什么是区块链?
1、我们家里都会有一个人记账,有时候收支会对不上。有了区块链,如果有家庭成员要支出一笔钱,必须广而告之告诉所有家人,然后所有家庭成员拿出自己的账本,记下这件事:某年某月爸爸买了一台电视,这样的好处就是账目清晰透明,谁也不能篡改和抵赖,如果想改动就要告诉所有人,难度很大。当然区块链不是普通的手写记账,它是用算法来高效的实现信息透明。
2、从信息互联网进入价值互联网,在信息互联网时代,发送一个文件PDF或者 PPT,原件可以存在自己手里。但是对于钞票、股票、知识产权,信息就没办法复制了。这些只能转移不能分享的有价值的信息往往需要信用的背书。比如,P2P借贷平台,必须要有一个资金托管银行。区块链可以在没有第三方信用背书的情况下,在一个开放式的平台上进行远距离的安全支付。
中本聪
说起区块链行业里的传奇人物,不提这位肯定说不过去,他就说比特币的创造者-----中本聪。传说中的中本聪被描绘成一个集经济学家、数学家、密码学家以及顶级黑客为一体的人物,他的传奇历史始于2008年11月1日,这一天,他发表了一篇论文《比特币:一种点对点的点子现金系统》,之后他又把理论付诸实践,在2009年1月4日创造了比特币世界的而第一个区块,“创世区块”,童年1月11日,他开发了一个客户端,其名称非常朴素------比特币客户端0.1版,召唤各路小伙伴一起玩耍。中本聪是一个超神秘人物,至今没有人见过他。
区块链的工作原理
区块链究竟是如何工作的呢,我们假设A和B之间要发起一笔交易,A先发起一个请求——我要创建一个新的区块,这个区块就会被广播给网络里的所有用户,所有用户验证同意后该区块就被添加到主链上。这条链上拥有永久和透明可查的交易记录。全球一本账,每个人都可以查找。
区块链技术实际上是一个分布式数据库,在这个数据库中记账不是由个人或者某个中心化的主体来控制的,而是由所有节点共同维护、共同记账的。所有的单一节点都无法篡改它。如果你想篡改一个记录,你需要同时控制整个网络超过51%的节点或计算能力才可以,而区块链中的节点无限多且无时无刻都在增加新的节点,这基本上是不可能完成的事情,而且篡改的成本非常高,几乎任何人都承担不起
区块链中涉及的几个核心概念
一、区块
区块作为区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主体构成。区块头包含三组元数据:
1. 用于连接前面的区块、索引自父区块哈希值的数据;
2. 挖矿难度、Nonce(随机数,用于工作量证明算法的计数器)、时间戳;
3. 能够总结并快速归纳校验区块中所有交易数据的Merkle(默克尔)树根数据。
区块链系统大约每10分钟会创建一个区块,其中包含了这段时间里全网范围内发生的所有交易。每个区块中也包含了前一个区块的ID(识别码),这使得每个区块都能找到其前一个节点,这样一直倒推就形成了一条完整的交易链条。从诞生之初到运行至今,全网随之形成了一条唯一的主区块链。
二、哈希算法
哈希算法是区块链中保证交易信息不被篡改的单向密码机制。哈希算法接收一段明文后,以一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据。

它有两个特点:
1. 加密过程不可逆,意味着我们无法通过输出的散列数据倒推原本的明文是什么;
2. 输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都必将导致最终输出的散列数据的变化。在区块链中,通常使用SHA–256(安全散列算法)进行区块加密,这种算法的输入长度为256位,输出的是一串长度为32字节的随机散列数据。区块链通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。区块链的哈希值能够唯一而准确地标识一个区块,区块链中任意节点通过简单的哈希计算都可以获得这个区块的哈希值,计算出的哈希值没有变化也就意味着区块中的信息没有被篡改。
三、公钥和私钥
在区块链的话题中,我们还经常听到这样的词汇——公钥和私钥。这就是俗称的不对称加密方式,是对以前的对称加密方式(使用用户名与密码)的提高。我们用电子邮件加密的模型来简单介绍一下:公钥就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章的。私钥就是自己的,必须非常小心保存,最好加上密码,私钥用来解密/签章,私钥由个人拥有。在比特币的系统中,私钥本质上是32个字节组成的数组,公钥和地址的生成都依赖私钥,有了私钥就能生成公钥和地址,就能够花费对应地址上面的比特币。私钥花费比特币的方式就是对这个私钥所对应的未花费的交易进行签名。
在区块链中,使用公钥和私钥来标识身份,我们假设区块链中有两个人,分别为小白和小黑,小白想向小黑证明自己是真实的小白,那么小白只需要使用私钥对文件进行签名并发送给小黑,小黑使用小白的公钥对文件进行签名验证,如果验证成功,那么就证明这个文件一定是小白用私钥加密过的。由于小白的私钥只有小白才能持有,那么,就可以验证小白确实是小白。在区块链系统中,公钥和私钥还可以保证分布式网络点对点信息传递的安全。在区块链信息传递中,信息传递双方的公钥和私钥的加密与解密往往是不成对出现的。
信息发送者:用私钥对信息进行签名,使用信息接收方的公钥对信息加密。信息接收方:用信息发送者的公钥验证信息发送者的身份,使用私钥对加密信息解密。
四、时间戳

区块链中的时间戳从区块生成的一刻起就存在于区块之中,它对应的是每一次交易记录的认证,证明交易记录的真实性。时间戳是直接写在区块链中的,而区块链中已经生成的区块不可篡改,因为一旦篡改,生成的哈希值就会变化,从而变成一个无效的数据。每一个时间戳会将前一个时间戳也纳入其随机哈希值中,这一过程不断重复,依次相连,最后会生成一个完整的链条。
五、Merkle树结构

区块链利用Merkle树的数据结构存放所有叶子节点的值,并以此为基础生成一个统一的哈希值。Merkle树的叶子节点存储的是数据信息的哈希值,非叶子的节点存储的是对其下面所有叶子节点的组合进行哈希计算后得出的哈希值。同样地,区块中任意一个数据的变更都会导致Merkle树结构发生变化,在交易信息验证比对的过程中,Merkle树结构能够大大减少数据的计算量,毕竟,我们只需验证Merkle树结构生成的统一哈希值就可以了。
区块链的四大特点
经过无数次的记账,区块链就成为一个可信赖、超容量的公共账本。它具有以下几个特征:

1. 去中心化:在一个去中心化的金融系统中,没有中介机构,所有节点的权利和义务都相等,任意节点停止工作都不会影响系统整体的运作。
2. 去信任:系统中所有节点之间无须信任也可以进行交易,因为数据库和整个系统的运作是公开透明的,在系统的规则和时间范围内,节点之间无法欺骗彼此。
3. 集体维护:系统是由其中具有维护功能的所有节点共同维护的,系统中所有人共同参与维护工作。
4. 可靠的数据库:系统中每一个节点都拥有最新的完整数据库拷贝,修改单个节点的数据库是无效的,因为系统会自动比较,认为最多次出现的相同数据记录为真。
公有链
公有链是指全世界任何人都可读取、任何人都能发送交易且交易能获得有效确认,任何人都能参与共识过程的区块链——共识过程决定哪个区块可被添加到区块链中,同时明确当前状态。公有链有如下几个特点:
1. 保护用户免受开发者的影响在公有链中程序开发者无权干涉用户,区块链可以保护其用户。
2. 访问门槛低任何人都可以访问,只要有一台能够联网的计算机就能够满足基本的访问条件。
3. 所有数据默认公开公有链中的每个参与者可以看到整个分布式账本中的所有交易记录。
私有链
私有链是指其写入权限仅在一个组织手里的区块链,目的是对读取权限或者对外开放权限进行限制。私有链有如下几个特点:1. 交易速度非常快,私有链中少量的节点具有很高的信任度,并不需要每个节点都来验证一个交易。因此,私有链的交易速度比公有链快很多。
2.为隐私提供更好的保障私有链的数据不会被公开,不能被拥有网络连接的所有人获得。
3.交易成本大幅降低甚至为零私有链上可以进行完全免费或者至少说是非常廉价的交易。如果一个实体机构控制和处理所有的交易,它就不再需要为工作收取费用。
4.有助于保护其基本的产品不被破坏银行和传统的金融机构使用私有链可以保证它们的既有利益,以至原有的生态体系不被破坏
区块链的应用
区块链的应用前景广阔,但是本书并没有很深入。大致有这么几个方面。
区块链+金融
区块链+互联网管理
区块链+能源
区块链+政府
区块链+物联网
区块链+农业
区块链+慈善
区块链+其他
什么是比特币
大家已经知道,区块链是一个分布式账本,既然是账本,就要有人来记账,比特币就是系统为了激励记账的人而产生的。