时间:2022-04-20|浏览:18499
区块链核心算法一:拜占庭协议
拜占庭的故事大概是这样的:拜占庭帝国财源广进,周边10个邻居由来已久,但拜占庭屹立不倒,没有一个邻居能成功入侵。单个邻居的任何入侵都将失败,并且本身可能会被其他 9 个邻居入侵。拜占庭帝国的防御能力如此之强,以至于周边十国至少有一半同时进攻,才有可能突破。但是,如果一个或几个邻居自己答应一起进攻,但实际过程却是背叛,那么入侵者就可以全军覆没。所以双方都谨慎行事,不敢轻易相信邻国。这就是拜占庭将军问题。
区块链论坛 区块链中文社区_区块链开发公司哪家好区块链开发_区块链的所有的算法
在这个分布式网络中:每个将军都有一个与其他将军实时同步的消息账本。账本中每个将军的签名可以验证身份。如果有任何消息不一致,您可以知道消息不一致是哪些将军。虽然消息不一致,但只要过半数的人同意出击,少数服从多数,就能达成共识。
因此,在分布式系统中,虽然有坏人,但坏人可以做任何事情(不受限制),例如不响应、发送错误信息、向不同节点发送不同决策、不同错误节点联合起来做坏事等。 . 但是,只要大多数人都是好人,完全有可能以去中心化的方式达成共识
区块链核心算法二:非对称加密技术
区块链论坛 区块链中文社区_区块链开发公司哪家好区块链开发_区块链的所有的算法
上面提到的拜占庭协议中,如果10位将军中的几位同时发送消息,势必会造成系统混乱,导致各自谈论自己的进攻时间计划,行动难以统一. 任何人都可以发起攻击,但谁发送呢?其实只需要增加一个成本,即:在一段时间内只有一个节点可以传播信息。当一个节点发送统一的攻击消息时,每个节点都必须对来自发起者的消息进行签名和密封,以确认自己的身份。
在今天看来区块链的所有的算法,非对称加密技术可以彻底解决这个签名问题。非对称加密算法的加密和解密使用两个不同的密钥。这两个密钥就是我们常说的“公钥”和“私钥”。公钥和私钥通常成对出现。如果消息是用公钥加密的,则需要公钥对应的私钥才能解密;类似地,如果消息是用私钥加密的,则需要私钥对应的公钥才能解密。
区块链的所有的算法_区块链论坛 区块链中文社区_区块链开发公司哪家好区块链开发
区块链核心算法3:容错
我们假设在这个网络中,消息可能会丢失、损坏、延迟、重复发送以及接收顺序与发送顺序不一致。此外,节点的行为可以是任意的:可以随时加入和离开网络、丢弃消息、伪造消息、停止工作等,并可能发生各种人为或非人为的故障。我们的算法为由共识节点组成的共识系统提供容错性,包括安全性和可用性,适用于任何网络环境。
区块链核心算法4:Paxos算法(一致性算法)
Paxos 算法解决的问题是分布式系统如何就某个值(分辨率)达成一致。一个典型的场景是,在分布式数据库系统中,如果每个节点的初始状态是一致的,并且每个节点执行相同的操作序列,那么它们最终可以得到一致的状态。为了保证每个节点执行相同的命令序列,需要对每条指令执行“一致性算法”,以保证每个节点看到的指令是一致的。一个通用的共识算法可以应用在很多场景中,是分布式计算中的一个重要问题。节点通信有两种模型:共享内存和消息传递。Paxos 算法是一种基于消息传递模型的共识算法。
区块链核心算法5:共识机制
区块链共识算法主要是工作量证明和权益证明。以比特币为例,从技术角度来看,PoW其实可以认为是可重用的,而产生工作量证明在概率上是一个随机过程。挖矿一种新的加密货币,在生成区块时,必须征得所有参与者的同意,并且矿工必须获得区块中所有数据的PoW工作证明。同时,矿工还要不时观察和调整这项工作的难度,因为网络要求是平均每 10 分钟产生一个区块。
区块链核心算法六:分布式存储
分布式存储是一种数据存储技术区块链的所有的算法,它通过网络利用每台机器上的磁盘空间,将这些分散的存储资源组成一个虚拟存储设备,数据存储在网络的各个角落。因此,分布式存储技术并不是将完整的数据存储在每台计算机上,而是将数据切分后存储在不同的计算机上。这就像存放100个鸡蛋,不是在同一个篮子里,而是在不同的地方,加起来就是100个鸡蛋。
用戶喜愛的交易所
已有账号登陆后会弹出下载