区块链的技术 区块链背后的4大核心技术
时间: 2020年11月1日                     分类: 区块链技术 标签:

区块链的技术

作者|陈浩

来源|极客时间“简单性区块链”专栏

区块链的技术定义

简单来说,区块链是一个分布式数据库,提供拜占庭容错能力并保证最终一致性;从数据结构上看,它是一个基于时间序列的链式数据块结构。从节点拓扑结构来看,其所有节点都是彼此的冗余备份。从操作的角度来看,它提供了基于密码的公用和专用密钥管理系统来管理帐户。

也许以上概念太抽象了。让我给你一个例子,以便您理解。

您可以想象全球分布有100台计算机。这100台计算机之间的网络是一个广域网,这100台计算机的所有者互不信任。

那么,我们可以使用哪种算法(共识机制)为其提供值得信赖的环境并启用:

不能篡改节点之间的数据交换过程,也不能篡改已生成的历史记录;每个节点的数据将与最新数据同步,并验证最新数据的有效性;根据少数派遵循多数派的原则,整个节点维护的数据可以客观地反映交换历史。

区块链是解决上述问题的技术解决方案。

结合我们之前说过的内容和我们要谈论的内容,我们将首先完善区块链的7个技术特征。记住,我们会慢慢跟进:

区块链的存储基于分布式数据库;数据库是区块链的数据载体,而区块链是交易的业务逻辑载体。区块链及时对区块数据进行序列化,整个网络处于最终状态;区块链仅对添加有效,对其他操作无效;交易基于公钥和私钥验证的不对称加密;区块链网络要求拜占庭将军要容错。共识算法可以“解决”双重支出问题。

区块链的核心技术组成

无论是公共链还是联盟链,都至少需要四个模块:P2P网络协议,分布式共识算法(共识机制),加密签名算法,帐户和存储模型。

1.P2P网络协议

P2P网络协议是所有区块链中最底层的模块,负责交易数据的网络传输和广播,节点发现和维护。

通常,我们使用比特币P2P网络协议模块,该模块遵循某些交互原理。例如,第一次连接到其他节点时,将要求您根据握手协议确认状态,并在握手后开始请求对等节点的地址数据和块数据。

此P2P交互协议也有其自己的指令集。这些说明反映在消息头的命令字段中。这些命令为上层提供节点发现,节点获取,块头获取和区域块获取等功能,这些功能是非常底层的,非常基础的功能。如果您想了解更多信息,可以参考《比特币开发人员指南》中的“对等发现”一章。

2.分布式共识算法

在经典的分布式计算领域,我们有以Raft和Paxos算法家族为代表的非拜占​​庭容错算法,以及具有拜占庭容错特性的PBFT共识算法。

从技术演进的角度,我们可以画一幅图,其中区块链技术扩展了经济学中的原始分布式算法。

区块链的技术

(图片来自网络)

在图中,我们可以看到计算机应用程序一开始主要是单点应用程序。使用冷灾备灾是为了实现高可用性和便利性。后来,它发展成在不同地方的多种活动。这些远程的多个活动可能使用负载平衡和路由技术,随着分布式系统技术的发展,我们已经过渡到基于Paxos和Raft的分布式系统。

在区块链领域,主要使用PoW工作量证明算法,PoS权益证明算法和DPoS代理权益证明算法。以上三种是业界主流的共识算法。这些算法与经典的分布式共识算法不同。此外,它们已融入经济博弈的概念中。下面我将简要介绍这三种共识算法。