目录

区块链是什么?

区块链的底层架构

一、数据层

二、网络层

三、共识层

四、激励层

五、合约层

六、应用层

区块链的特性

区块链用到哪些共识算法


区块链是什么?

区块链就是分布式数据存储、点对点传输、共识机制、加密算法等技术的应用。

狭义上来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。

广义上来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

区块链的特性:
1、
去中心化:不以任何人任何硬件设备为中心,每个人每个节点都是均等的。
2、
开放性:系统是开放的,透明的。
3、
公平性:公平公正,不受任何人为的干预。
4、
永久性:一旦信息经过验证并添加至区块链,就会永久的存储起来,任何人无法篡改删除销毁等。除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
5、
不可逆性:区块链的记录,不可逆,也就是无法破解!
6、
安全性:区块链采用的密码学加密算法,不可篡改和不可伪造,所以安全性非常高。

区块链的底层架构

区块链基础架构分为6层,包括数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。

1)数据层(Data Layer):主要描述了区块链系统的物理形式,是区块链从创世区块起始的链式结构,包含了区块数据、随机数、时间戳和公私钥等数据,是整个区块链技术中最底层的数据结构。
2)网络层(Network Layer):主要通过P2P技术实现分布式网络的机制,包括P2P组网机制、数据传播机制和数据验证机制。
3)共识层(Consensus Layer):包含共识算法以及共识机制,能够让高度分散的节点在去中心化的区块链网络中高效地针对区块数据达成共识,是区块链的关键技术之一。
4)激励层(Actrator Layer):主要包括经济激励的发行制度和分配制度,其功能是提供一定的激励措施,鼓励节点参与区块链中的验证工作,并将经济因素纳入到区块链技术体系中。
5)合约层(Contract Layer):主要包括各种脚本、代码、算法机制和智能合约,是区块链可编程的基础。
6)应用层(Application Layer):封装了各种应用场景和案例,类似于电脑操作系统上的应用程序。

一、数据层

数据层主要描述区块链技术的物理形式。区块链系统设计的技术人员们首先建立的一个起始节点是“创世区块”,之后在同样规则下创建的规格相同的区块通过一个链式的结构依次相连组成一条主链条。随着运行时间越来越长,新的区块通过验证后不断被添加到主链上,主链也会不断地延长。

每个区块中也包含了许多技术,比如时间戳技术,它可以确保每一个区块按时间顺序相连接;再比如哈希函数,它能够确保交易信息不被篡改。

二、网络层

网络层的主要目的是实现区块链网络中节点之间的信息交流。区块链网络本质上是一个P2P(点对点)网络。每一个节点既接收信息,也产生信息。节点之间通过维护一个共同的区块链来保持通信。

区块链的网络中,每一个节点都可以创造新的区块,在新区块被创造后会以广播的形式通知其他节点,其他节点会对这个区块进行验证,当全区块链网络中超过51%的用户验证通过后,这个新区块就可以被添加到主链上了。

三、共识层

共识层能让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识
区块链中比较常用的共识机制主要有

  • 工作量证明(Proof of Work)
  • 权益证明(Proof of Stake)
  • 股份授权证明(Delegated Proof of Stake)

还有投注共识、瑞波共识机制、Pool验证池、实用拜占庭容错、授权拜占庭容错、帕克索斯算法等。

四、激励层

激励层的主要功能是提供一定的激励措施,鼓励节点参与区块链的安全验证工作。我们以比特币为例,它的奖励机制有两种。在比特币总量达到2100万枚之前,奖励机制有两种,新区块产生后系统奖励的比特币和每笔交易扣除的比特币(手续费)。而当比特币总量达到2100万时,新产生的区块将不再生成比特币,这时奖励机制主要是每笔交易扣除的手续费。

五、合约层

合约层主要是指各种脚本代码、算法机制以及智能合约等。我们以比特币为例,比特币是一种可编程的货币,合约层封装的脚本中规定了比特币的交易方式和过程中涉及的种种细节。

六、应用层

应用层封装了区块链的各种应用场景和案例,比如基于区块链的跨境支付平台OKLink,以及在“应用篇”中我们将讲到的五花八门的应用。

区块链用到哪些共识算法

1、POW:Proof of Work,工作量证明

POW是比特币在Block的生成过程中使用的一种共识算法,也可以说是最原始的区块链共识算法了。POW工作量证明,简单地理解就是,通过一份证明来确认做过一定量的工作。

在比特币系统中,得到合理的Block Hash需要经过大量尝试计算。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算。

这种工作量证明的形式,在我们日常生活中也十分常见。比如驾照,能拿到驾照,说明你已经进行过为期几个月甚至几年的练车和考试;再比如现在很火的吃鸡和王者荣耀游戏中的K/D(Kill/Death)和胜率,分值越高证明你越厉害,同时也说明你进行了大量的游戏练习和技巧学习。

2、POS:Proof of Stake,权益证明

由于POW机制存在消耗算力巨大、交易确认时间较长,挖矿活动集中容易形成中心化等缺点,便演进出了POS权益证明。POS简单来说,就是一个根据持有数字货币数量和时间来分配相应利息的制度,类似平时我们在银行中存款。

基于权益证明共识的区块链系统中,参与者的角色是验证者Validator,只需要投资系统的数字货币并在特定时间内验证自己是否为下一区块创造者,即可完成下一区块的创建。下一区块创造者是以某种确定的方式来选择,验证者被选中为下一区块创造者的概率与其所拥有的系统中数字货币的数量成正比例,即拥有300个币的验证者被选中的概率是拥有100个币验证者的3倍。

在POS模式下,有一个名词叫币龄,每个币每天产生1币龄。比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000。这个时候,如果你验证了一个POS区块,你的币龄就会被清空为0,同时从区块中获得相对应的数字货币利息。

这下就很有意思了,持币有利息。并且由于POS是在一个有限的空间里完成,不是像POW那样在无限空间里寻找,因此无需大量能源消耗。

3、DPOS:Delegated Proof of Stake,授权权益证明

DPOS最早出现在比特股中,又称受托人机制,它的原理是让每一个持有比特股的人进行投票,由此产生101位代表 。我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利完全相等。

从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心数字货币的人身上,类似演唱会的黄牛,大量囤票而丝毫不关心演唱会的内容。

DPOS通过其选择区块生产者和验证节点质量的算法确保了安全性,同时消除了交易需要等待一定数量区块被非信任节点验证的时间消耗。通过减少确认的要求,DPOS算法大大提高了交易的速度。通过信任少量的诚信节点,可以去除区块签名过程中不必要的步骤。

4、PBFT:Practical Byzantine FaultTolerance,实用拜占庭容错

PBFT意为实用拜占庭容错算法,该算法由Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。

PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。

将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

5、RAFT,一致性共识算法

RAFT算法包含三种角色,分别是:跟随者(follower),候选人(candidate)和领导者(leader)。集群中的一个节点在某一时刻只能是这三种状态的其中一种,这三种角色可以随着时间和条件的变化而互相转换。

RAFT算法主要有两个过程:一个过程是领导者选举,另一个过程是日志复制,其中日志复制过程会分记录日志和提交数据两个阶段。RAFT算法支持最大的容错故障节点是(N-1)/2,其中N为集群中总的节点数量。