近期,加密货币经历了“混乱期”后,区块链再次火热起来,受到了各方的高度关注和关注。成为资本市场和各领域关注的焦点。就连朋友圈里的讨论和分享也让人目不暇接。那么,区块链到底是什么?区块链的核心算法有哪些?
区块链核心算法一:拜占庭协议
拜占庭的故事是这样的:拜占庭帝国拥有巨大的财富,周围有10个历史悠久的邻国。然而,拜占庭的高墙高耸,坚不可摧,任何一个邻国都无法成功入侵。任何单个邻居的入侵都会失败,也有可能被其他9个邻居入侵。拜占庭帝国的防御能力如此强大,十个邻国中至少有一半必须同时进攻,才能够突破。然而,如果一个或几个邻居同意一起进攻,但在实际过程中出现背叛,那么入侵者可能会全部被歼灭。所以各方都行事谨慎,不敢轻易相信邻国。这就是拜占庭将军问题。
在这个分布式网络中:每个将军都有一个与其他将军实时同步的消息账本。账本中每个将军的签名可以用来验证身份。如果有消息不一致,可以知道该消息与哪些将军不一致。即使信息不一致,只要过半数同意进攻,少数服从多数,达成共识。
因此,在分布式系统中,虽然有坏人,但坏人可以做任何事情(不受协议限制),比如不响应、发送错误信息、向不同节点发送不同决策、不同错误节点联合起来做坏事事情等等等等。不过,只要大多数人都是好人,完全有可能以去中心化的方式达成共识。
区块链核心算法2:非对称加密技术
在上述拜占庭协议中,如果10位将军中的几位将军同时发起消息,势必会造成系统混乱,导致各自有自己的攻击时间计划,行动难以协调。任何人都可以发出攻击性信息,但谁来发送呢?事实上,这只需要增加一个成本,即:一段时间内只有一个节点可以传播信息。当节点发送统一的攻击消息时,每个节点必须对来自发起者的消息进行签名和盖章以确认其身份。
如今看来,非对称加密技术可以彻底解决这个签名问题。非对称加密算法使用两个不同的密钥进行加密和解密。这两个密钥就是我们常听到的“公钥”和“私钥”。公钥和私钥通常成对出现。如果消息是用公钥加密的,则需要公钥对应的私钥才能解密;类似地,如果消息使用私钥加密,则需要与私钥对应的公钥来解密它。
区块链核心算法三:容错问题
我们假设在这个网络中,消息可能会丢失、损坏、延迟、发送两次、接收顺序与发送顺序不一致。此外,节点的行为可以是任意的:它们可以随时加入和退出网络,它们可以丢弃消息、伪造消息、停止工作等。还可能发生各种人为或非人为故障。我们的算法为共识节点组成的共识系统提供了出色的容错能力。这种容错包括安全性和可用性,适用于任何网络环境。
区块链核心算法四:Paxos算法(一致性算法)
Paxos算法解决的问题是分布式系统如何对某个值(分辨率)达成共识。一个典型的场景是,在分布式数据库系统中,如果每个节点的初始状态是一致的,并且每个节点执行相同的操作序列,那么它们最终可以获得一致的状态。为了保证每个节点执行相同的命令序列,需要对每条指令执行“一致性算法”,以保证每个节点看到的指令是一致的。通用的共识算法可以应用于很多场景,是分布式计算中的一个重要问题。节点通信有两种模型:共享内存和消息传递。 Paxos算法是一种基于消息传递模型的共识算法。
区块链核心算法五:共识机制
区块链共识算法主要是工作量证明和权益证明。以比特币为例,其实从技术角度来看,PoW 可以看作是对Hashcash 的复用。就概率而言,生成工作量证明是一个随机过程。为了开采新的保密货币,在生成区块时,所有参与者都必须同意,并且矿工必须获得区块中所有数据的PoW 工作量证明。同时,矿工必须不断观察和调整这项工作的难度,因为网络要求是平均每10分钟生成一个区块。
区块链核心算法六:分布式存储
分布式存储是通过网络利用每台机器上的磁盘空间,将这些分散的存储资源构建成虚拟的存储设备,将数据分散存储在网络的各个角落的数据存储技术。因此,分布式存储技术并不是在每台计算机上存储完整的数据,而是将数据拆分并存储在不同的计算机上。这就像存放100个鸡蛋,不是放在同一个篮子里,而是放在不同的地方。总和是100。
(作者:BYEX,内容来自链得得内容开放平台“得得好”;本文仅代表作者观点,不代表链得得官方立场)