时间:2023-06-28|浏览:182
近日,在加密货币经历了“混乱时期”后,区块链再次变得火爆起来,受到了各方的极大关注。
区块链核心算法一:拜占庭协定
拜占庭帝国拥有巨大的财富,但周围10个邻邦垂诞已久。拜占庭高墙耸立,没有一个单独的邻邦能够成功入侵。任何单个邻邦的入侵都会失败,但也有可能会被其他9个邻邦同时入侵。要攻破拜占庭帝国的防御,至少要有十个邻邦中的一半以上同时进攻。然而,如果其中的一个或几个邻邦在实际过程中背叛协定,那么入侵者可能会被全部击败。因此,每个邻邦都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。
在区块链中,每个节点都有一份实时与其他节点同步的消息账本。账本里记录了每个节点的身份验证信息。如果出现了消息不一致的情况,可以知道是哪些节点造成了不一致。尽管存在消息不一致的情况,但只要超过半数的节点同意进行某项操作,少数服从多数,就可以达成共识。
因此,在一个分布式系统中,即使存在坏人,他们可以做任意事情(不受协议限制),比如不响应、发送错误信息、对不同节点发送不同决定、多个错误节点联合起来进行恶意行为等等。但只要大多数人是善意的,就完全有可能实现去中心化的共识。
区块链核心算法二:非对称加密技术
在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会导致系统混乱,各将军提出不同的攻击时间方案,无法达成一致。那么到底由谁来发起进攻呢?通过引入一种成本,例如在一段时间内只允许一个节点传播消息,问题就可以解决了。当某个节点发起统一进攻的消息后,其他节点接收到该消息后必须签名确认自己的身份。
在现实中,非对称加密技术完全可以解决这个签名问题。非对称加密算法使用不同的密钥进行加密和解密。这两个密钥通常成对出现。如果使用公钥加密消息,只有对应的私钥才能解密。同样地,如果使用私钥加密消息,只有对应的公钥才能解密。
区块链核心算法三:容错问题
在区块链网络中,消息可能会丢失、损坏、延迟、重复发送,并且接收消息的顺序可能与发送消息的顺序不一致。此外,节点的行为可以是任意的:可以随时加入或退出网络,可以丢弃消息、伪造消息、停止工作等,还可能出现各种人为或非人为的故障。我们的算法针对由共识节点组成的共识系统提供容错能力,包括安全性和可用性,并适用于任何网络环境。
区块链核心算法四:Paxos算法(一致性算法)
Paxos算法解决的问题是如何在分布式系统中达成一致。典型的场景是在分布式数据库系统中,如果各个节点的初始状态一致,并且每个节点执行相同的操作序列,那么最终它们会达到一致状态。为了确保每个节点执行相同的命令序列,需要在每条指令上执行一个“一致性算法”,以确保每个节点看到的指令是一致的。一致性算法是分布式计算中的重要问题,适用于许多场景。节点之间存在两种通信模式:共享内存和消息传递。Paxos算法是一种基于消息传递模式的一致性算法。
区块链核心算法五:共识机制
区块链共识算法主要有工作量证明和权益证明。以比特币为例,从技术角度来看,可以将工作量证明视为重复使用的Hashcash,在概率上是一个随机过程。在开采新的加密货币、生成区块时,必须得到所有参与者的同意,矿工必须提供包含所有数据的工作量证明。与此同时,矿工还需要不断观察和调整工作难度,因为整个网络要求平均每10分钟生成一个区块。
区块链核心算法六:分布式存储
分布式存储是一种数据存储技术,利用网络上每台机器上的磁盘空间,将这些分散的存储资源构建成一个虚拟的存储设备,数据分散存储在网络中的各个角落。因此,分布式存储技术不是每个计算机都存放完整的数据,而是将数据切割后分别存放在不同的计算机中。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,但加起来总数是100个。
(