1. 什么是区块链? Blockchain
区块链是由节点参与的分布式数据库系统。
区块链是由一串使用密码学方法产生的数据块组成的,每个区块都包含了上一个区块的哈希值,从创始区块开始连接到当前区 块,从而形成块链。
“链”指的是一个庞大而完整的数据库。(对应于比特币的账本)
“区块”则是这个大账本的组成部分,即在固定时间段内所有交易的记录。
区块链就是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构。
类比:区块链就像是一列火车,每节火车车厢里堆积货物,类似一每个区块里存放数据,把所有火车车厢连成火车,类似于把 所有区块连成一条链。(清华大学教授刘云浩)
2. 区块链有什么特点?
1) 新型去中心化协议
2) 能安全存储比特币交易或其他数据
3) 信息不可伪造和篡改
4) 可以自动执行智能合约
5) 无需任何中心化机构的审核
3. 区块链系统核心优势是什么?
1) 任何节点都可以创建交易。区块链可以有效防止双花问题的发生。
2) 重写或者修改交易记录的代价会非常高。
3) 区块链实现了两种记录:交易(transactions)和区块(blocks)。
交易是被存储在区块链上的实际数据。交易是由参与者在正常过程中使用系统创建。
4. 区块链工作原理
1) 什么是区块? 好比股票交易帐本
数据通过区块,永久记录在数字货币网络上。新的区块会被添加到记录(区块链)的末端,并且一旦书写很难修改或移除。
2) 区块结构
4字节 区块大小
80字节 区块头 三组元数据 (4+32+32+4+4+4)下边进行解释
1-9(可变整数) 交易计数器 交易的数量
可变的 交易 区块里的交易信息
3) 区块头
区块头由三组区块元数据组成。
第一组元数据:引用父区块哈希值的数据(用来将该区块与区块链中前一区块相连接)
第二组元数据:难度、时间戳和nonce,与挖矿竞争有关
第三组元数据:merkle树根(用来有效总结区块中多有交易的数据结构)
4) 区块头结构
4字节 版本 版本号,用于跟踪软件/协议的更新
32字节 父区块哈希值
32字节 Merkle根 该区块中交易的merkle树根的哈希值
4字节 时间戳 区块产生的近似时间
4字节 难度目标 工作量证明算法的难度目标
4字节 Nonce 用于工作量证明算法的计数器
5) 创世区块
什么是创世区块?(区块链的根)
比特币区块链的第一个区块,创建于2009年。它是比特币区块链里所有区块的共同的祖先,这意味着从任何一个区块,循 链向后回溯,最终都将到达这个创世区块。
创世区块的哈希值为:

5. 区块链分叉
诚实矿工只创建最长有效链上的最新区块。其中的长度并非指区块的数目,而是指区块链的累计计算难度。
区块链中的任何一个区块到达创世区块的路径只有一条;但是,从创世区块到达链中的其他区块,有时会出现分叉情况。
当创建两个区块的时间差只有几秒的时候,会创建出一个分叉区块。如果出现这种情况,节点会在最先接收到的那个区块上创建区块。
短链==无效连 短链中的区块被称为“孤儿块”。
6. 区块链衍生概念
公链:全世界任何人都可读取、发送交易且能获得有效确认的共识区块链。
它的安全由工作量证明机制(pow)或者权益证明机制(pos)等方式负责维护。
完全去中心化
共同体区块链:指其在共识过程受到预选节点控制的区块链。
部分去中心化
私链(无代币区块链):完全私有,写入权限仅在一个组织手里的区块链。读取权限对外开放或者被任意程度进行了限制。
7. 公链和私链的特点
1) 公链的特点:
a. 中立、开放、去中心化
b. 不可更改、不可撤销
c. 拥有网络效应
d. 抗审查性高
2) 私链的特点
a) 规则易于修改(交易、余额等)
b) 交易成本低
c) 读取权限受限制