区块链读书笔记01-区块链基础

基本概念

加密哈希函数(cryptographic hash function)

——两大特性:html

  • collision resistance:输入空间足够大时,某些哈希函数难以人为地制造哈希碰撞
  • hiding:输入空间足够大时,xH(x)的映射是单向的

哈希指针

——由数据计算出的哈希值,而且指向数据所在的位置(也就是说,哈希指针能够告诉咱们数据存储位置及数据的哈希值)。
经过哈希指针,咱们能够很容易地判断出数据是否有被篡改。web

父区块(parent block)

区块链中,每一个块经过哈希指针指向前一个块(这个前一个块也就是当前块的父区块)算法

创世区块(genesis block)

——区块链中的第一个区块。
创世区块(genesis block)没有父区块。数据库

分叉(Branch)

尽管每个区块只能有一个父区块,但却可能短期内拥有多个子区块——也就是说可能存在多个区块头部中存储的父区块的哈希值是同样的——不一样的区块在同一时间被不一样的矿工(miner)找到,这就形成了区块链的分叉。
可是区块链的分叉只是暂时的,系统会根据“最长链原则”来解决分叉编程

默克尔树(Merkle Tree)

——经过“不断地递归计算节点的哈希值直到只有一个哈希值”地自底向上地构建,这个最后的哈希值也就是默克尔树的根。安全

当梅克尔树中有N个数据时,最多只须要 2 l o g 2 N 2log_2N 次计算就能够验证某个特定数据是否存在——因此默克尔树是至关高效的。服务器

在区块链中用于组织和记录存储在区块中的交易,以便高效地验证某个交易是否存在区块中。网络

为了验证一笔交易是否包含在区块中,节点只须要计算 l o g 2 N log_2N 各哈希值,组成该交易到默克尔树树根的认证路径便可。app

目标哈希值

——用于控制区块的建立速度。一个有效区块的头部哈希值必需要小于目标值。分布式

智能合约(smart contract)

——一段可执行的计算机程序代码,它从外部对接可靠数据信息并加以判断识别,当所接收的信息达到程序设定的条件时,会触发系统自动执行合同条款。

什么是区块链(Blockchain)

——本质上是一个去中心化的分布式数据库。这个数据库中记录了全部提交的交易(all committed transactions)。
——实际上也是一个基于哈希指针构建的一个有序的,反向连接的交易块链表。

区块(Block)

区块(block):一个一个的存储单元(包括block header和block body),记录了必定时间内各个区块节点所有的交易信息以及前一个区块的哈希值(经过SHA256加密哈希函数计算而得)。

block header

其中,每一个block header记录的信息包括:

  • Block version:指明该区块要遵循的验证规则(validation rules) 集
  • Parent block hash:指向前一个区块的256位哈希值,也就是父区块的哈希指针
  • Merkle tree root hash:默克尔树树根值,至关于存储了该区块中全部交易的哈希值
  • Timestamp:按秒计数的当前时间戳(从1970-01-01 T 00:00 UTC开始算起)
  • nBits:压缩形式的当前目标哈希值
  • Nonce:一个4个字节的数据域,一般从0开始,每进行一次哈希运算则加一

block body

——由一个交易计数器(transaction counter)和该区块中全部的交易(transactions)组成

block
(图源:Blockchain Challenges and Opportunities: A Survey)

链(Chain)

链(chain):从创世区块开始(genesis block)开始,以后的每一个区块经过哈希指针进行反向连接。每个区块中都包含了父区块的哈希指针。
因此,后面的区块不只能够查找到前面全部区块,也能够验证前面区块数据有没有被更改。

blockchain
(图源:Blockchain Challenges and Opportunities: A Survey)

区块链的关键特征

去中心化(Decentralization)

在传统的交易系统中,每一笔交易都须要通过一个值得信赖的、可靠的第三方中介代理来验证确认。这种中间代理显然带来了额外的资源耗用。此外,正如集中式系统那样,交易数目的增多一定形成中央服务器的成本和性能瓶颈。
而在区块链中,一笔交易能够在任意两个在网络中处于对等地位的客户端之间进行(P2P),而不须要通过中央服务器的认证。

持久性(Persistency)

因为在网络中进行的每一笔交易都会被确认、并记录在分布在整个网络中的区块中,于是几乎不可能对这些交易进行篡改。并且,每个广播的块都会被其余的节点进行验证,因此任何的伪造数据都能轻易地被检测出来。

匿名性(Anonymity)

每个用户在区块链中进行交易时可使用一个生成的匿名地址,并且一个用户能够生成多个匿名地址进行交易,从而有效避免我的身份暴露。并且这时也不会有一个极可能存在信息安全隐患的中央机构存有用户我的的隐私信息。
可是因为存在内在约束(intrinsic constraint),区块链也并不能完美保证我的隐私安全性。

可审计性(Auditability)

因为区块链中的每笔交易都用一个时间戳认证并记录,因此用户经过得到该分布式网络中的任意一个节点,即可以轻易地跟踪并求证该节点以前的记录。这便提升了区块链中存储的数据的可追踪性和透明度。

区块链关键技术

区块链保证数据安全、不可篡改以及透明性的关键技术包括两个方面:

  • 数据加密签名机制
  • 共识算法

数据加密签名机制

在数据加密签名机制中,首先要有一个私钥。私钥是证实我的全部权的关键,好比证实某人有权从一个特定的钱包消费数字货币,是经过数字签名来实现的。其次,要使用哈希(Hash)算法。哈希散列能够把任意长度的输入经过哈希算法计算,变成固定长度的由字母和数字组成的输出,具备不可逆性。

共识算法

共识算法是区块链中节点保持区块链数据一致、准确的基础,现有的主流共识算法包括工做量证实(PoW)、权益证实(PoS)、瑞波共识协议(RCP)等。以PoW为例,是指经过消耗节点算力造成新的区块,是节点利用自身的计算机硬件为网络作数学计算进行交易确认和提升安全性的过程。交易支持者(矿工)在电脑上运行比特币软件不断计算软件提供的复杂的密码学问题来保证交易的进行。做为对他们服务的奖励,矿工能够获得他们所确认的交易中包含的手续费,以及新产生的比特币。

区块链发展阶段

区块链目前经历了三个发展阶段:

  • 区块链1.0阶段,又称“可编程货币”,是指应用分布式帐本、块链式数据、工做量证实等技术,发行和交易“虚拟货币”。这一阶段以比特币为表明,解决了货币和支付手段去中心化问题
  • 区块链2.0阶段,又称“可编程资产”,是指应用智能合约、虚拟化、分布式应用等技术,对金融领域的使用场景和流程进行梳理、优化的应用,拓展至除了“数字货币”之外的其余领域。其中,以以太坊、瑞波为表明的第二代区块链技术开创了区块链商业应用的序幕
  • 区块链3.0阶段,又称“可编程社会”,是指在社会领域下的应用场景实现,将区块链技术拓展到金融领域以外,为各行业提供去中心化的解决方案。其中,以墨客、EOS为表明的第三代区块链技术开创了区块链社会化应用的序幕

区块链的分类

当前的区块链系统大体能够分为三类:公共区块链(public blockchain),私有区块链(private blockchain),共同体区块链(consortium blockchain)。

  • 公共区块链:全世界任何人均可读取、可发送交易进行有效性确认,任何人都能参与其共识过程的区块链。其典型应用包括比特币、以太坊等
  • 共同体区块链:又称联盟链,指参与区块链的节点是事先选择好的,节点间一般有良好的网络链接等合做关系,区块链的数据能够是公开的也能够是内部的,为部分意义上的分布式,可视为“部分去中心化”。其典型应用包括超级帐本(Hyperledger)、区块链联盟R3CEV等
  • 私有区块链:参与的节点只有有限的范围,好比特定机构的自身用户等,数据的访问及使用有严格的权限管理。其典型应用如Eris Industries

如下从七个角度比较这三类区块链:

公共区块链 共同体区块链 私有区块链
共识决定者 全部矿工(miners) 指定的节点集合 一个组织(organization)
读权限 公共(public) 能够是公共的,也能够是受限的(restricted) 能够是公共的,也能够是受限的(restricted)
不变性 几乎不可能篡改 能够篡改 能够篡改
效率
中心的(centralized) 部分的(partial)
共识过程 不容许 容许的 容许的

参考文献

[1] Zibin Zheng. Blockchain Challenges and Opportunities: A Survey[J]. Iderscience Enterprises,2017 [2] https://yemengying.com/2018/02/11/hash-blockchain/ [3] 邓建鹏,孙鹏磊. 区块链国际监督与合规应对[M]. 北京: 机械工业出版社,2019 [4] 长铗,韩锋. 区块链: 从数字货币到信用社会[M]. 北京: 中信出版社,2016 [5]井底望天,蒋晓军,相里朋,刘纯如. 区块链与产业创新[M]. 北京: 人民邮电出版社,2018