中移链共识机制介绍

01

为什么需要共识

共识是对某事达成的共同看法,它是区块链的灵魂,对确保区块链的完整性和安全性起着至关重要的作用。在传统的集中式系统中,单个实体或一组实体有权验证和记录交易。然而,区块链中的一个核心概念是去中心化,在区块链中没有和传统数据库系统一样的中心数据库,每个节点都是对等的,如大多区块链采用对等式网络(Peer-to-peer network, P2P网络)来组织参与数据验证和生产的节点。P2P网络中的每个节点以扁平式拓扑结构相互交互, 要保证交易统一和安全成一个难题,这样就需要一套算法和机制来保证所有对等节点之间可以有效协作,这套算法和方式称为共识机制。共识机制的存在可以有效保证各个节点之间按照既定的原则共同维护账本,实现对交易的验证和确认,并达成一致的决策。共识机制本质上是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。

随着区块链技术的不停发展,共识机制也发展出了很多版本,以满足不同区块链系统的需求。现今主流的共识机制如下:

共识机制介绍优缺点
工作量证明(Proof of Work,PoW)是比特币和一些其他区块链项目最早采用的共识机制。节点需要通过解决复杂的数学难题来竞争产生区块的权利。第一个解答正确的节点可以获得区块奖励。这种机制需要大量计算能力,安全性较高,但能耗较大。

优点:安全性高,经过比特币多年的验证。需要计算复杂的数学问题,确保节点通过解题来创建新的区块,从而防止恶意节点的攻击。

缺点:计算机资源消耗巨大,需要大量的计算能力,限制了网络的扩展性,记账权容易集中在拥有大量算力的矿工手中。

权益证明(Proof of Stake,PoS)节点的产生权和验证权依赖于它们持有的通证数量。拥有更多通证的节点在出块和验证交易方面有更大的机会,无需进行大量计算,节省了能源。PoS的变体有DPoS(委托权益证明)和PoS的多个版本。

优点:计算资源消耗较低,不需要大量计算,通过抵押通证来获得出块权。可以提高网络的扩展性。

缺点:可能导致“富者愈富”的情况,因为拥有更多通证的节点有更大的影响力。可能存在“令牌堆叠”问题,即一个实体拥有过多的通证从而控制整个网络。

拜占庭容错( Byzantine Fault Tolerance,BFT)在分布式系统中,存在节点间的通信可能失败、消息可能延迟、节点可能崩溃等问题,这些问题都可能导致共识协议的失败。BFT共识算法旨在应对这些问题,确保在最多容忍一定数量的节点故障的情况下,系统仍能够达成一致的共识。

优点:适用于联盟链和私有链,具有高度的安全性和效率。允许在节点出现故障或攻击时仍能保持一致性。

缺点:一般较难实现,需要节点之间进行复杂的协调和通信。可能存在性能限制。

委托权益证明(Delegated Proof of Stake,DPoS)DPoS是PoS的一种扩展,选出代表节点负责出块和验证交易,提高网络性能和可扩展性。

优点:通过选举代表来执行出块,提高了网络的效率和扩展性。交易确认速度较快。

缺点:可能导致中心化,因为只有少数几个代表在出块。依赖于生产节点的诚实性和活跃性。

权威证明(Proof of Authority,POA)旨在解决一些传统的区块链共识机制(如Proof of Work和Proof of Stake)所面临的问题。网络的节点不是通过解决计算难题或抵押通证来获得权威,而是基于节点的身份和信任,由已知的权威实体或预选的验证者来验证和确认交易。这使得POA具有一定的中心化特点,但也赋予了网络更高的性能和可扩展性。

优点:高吞吐量和低延迟,适合快速交易确认。计算资源消耗较低,不需要大量计算。安全性可预测,与验证者信誉相关。

缺点:中心化风险,验证者选择集中。依赖验证者的信任,容易受到攻击。

总体来说,每种共识机制在不同的项目和应用场景中都有自己的适用性。选择合适的共识机制需要考虑项目的需求、性能要求、安全性需求以及社区治理等因素。随着技术的不断发展,未来可能还会出现新的共识机制或对现有机制进行改进,以满足不断变化的需求。

02

中移链的共识

在中移链中,使用委托权益证明(Delegated Proof of Stake,DPoS)和aBFT(异步拜占庭容错)结合的共识机制。委托权益证明(DPoS)用来选出活跃的生产者,这些生产者将被授权在网络中产生区块。异步拜占庭容错涉及交易确认过程和直到它成为最终(不可逆)的实际过程。

基于DPoS共识的核心思想,中移链通过选举产生多个生产节点,并由选举的生产节点按照顺序轮流产生区块。生产者每0.5秒生产一个区块,每个生产者可连续生产12个区块,即拥有6秒的连续出块时间。任何时刻,只会有一个生产者被授权产生区块。如果在某个时间内没有成功出块,则跳过该块。这样即使某个生产节点出现问题,区块链网络依然能正常运转。整体的共识流程大致如下:

图片

  • 投票权重:对于每个账户,将其持有的通证数量除以总的通证数量,得到一个比例,这个比例就是账户的投票权重,它反映了该账户在整个网络中的通证占比。

  • 选出生产节点:作为生产节点,需要通过投票系统来选择区块生产者,生产节点有责任维护区块链的安全和稳定。通常情况下,中移链网络中有一组固定数量的生产节点来保证链的稳定。同时取消了EOS中的区块产生的奖励和交易手续费,通过统一的资源管理员进行管理,保证了节点资源的稳定性。

  • 生产节点轮流生产区块:一旦代表节点被选举为生产节点,他们就有权利轮流产生区块。生产节点按照事先约定的时间间隔(默认为0.5秒)依次执行出块任务。这样的安排确保了区块的连续性,并使得交易能够迅速得到确认和处理。

  • 区块的生成和验证:当生产节点轮到执行出块任务时,他们会打包并确认一批待处理的交易。然后,这些交易被写入新的区块中,并附加到区块链的末尾。区块生成的过程通常包括对交易的签名和验证,以确保其有效性和安全性。

  • 区块验证:当超过2/3+1的验证者在他们的本地区块链上确认某个区块时,这个区块被认为是被多数验证者同意的。一旦一个区块被多数验证者确认,它被认为是“不可逆块”,即不会被更改。

需要注意的是,交易的确认时间也取决于网络的拥塞程度和交易的复杂性。高交易量或复杂的交易可能会导致确认时间延迟。因此,在实际操作中,建议根据网络状况和交易的重要性来确定等待的确认深度,以确保交易的安全性和不可逆性。

03

共识安全

共识安全是区块链系统中的一个至关重要的概念,它指的是确保网络中所有节点就区块链的状态达成一致的过程。在区块链中,共识机制决定了哪些节点有权力添加新的区块到区块链中,并决定了网络中所有节点对于交易和状态的认同程度。共识安全对于区块链系统的稳定性、安全性和可信度有着重要的影响,中移链主要通过以下几点来实现共识安全:

  • 去中心化:中移链中通过投票选出大量的区块生产者。这种分散的方法确保了权力在多个实体之间分配,而不是集中在少数人手中。网络越去中心化,恶意行为者就越难以勾结和破坏系统。

  • 出块机制:生产节点轮流生产区块,不仅能提供更高的性能和吞吐量,还能确保区块链网络的连续性。每个代表节点都有一定的时间段来生产区块,即使某个节点暂时出现问题或离线,其他节点仍然可以继续产生区块,避免了整个网络的停滞。同时生产节点需要遵守共识规则并按照约定的时间产生区块,否则他们可能会失去出块资格和面临罚没。这样的机制有助于防止恶意节点的行为,保护网络的安全性。

  • 罚没机制:如果一个代表节点违反共识规则或恶意行为,其可能会受到罚没。例如,如果代表节点出现双花攻击、延迟生产区块、拒绝确认合法交易等行为,其他节点可以发起投票将其罢免。罚没机制保证了生产节点必须遵守共识规则和维护网络的安全性。

  • 不可逆转的区块确认:在中移链中,一旦一个区块被特定数量的后续区块确认,它就变得不可逆转。此功能确保记录在确认块中的交易是不可变的,保证了交易的永久可信。

  • 定期升级周期:中移链会定期升级和改进。这些升级有助于解决任何潜在的安全漏洞,并确保网络与最新的安全最佳实践保持同步。

需要注意的是,没有任何共识机制可以完全免受安全风险的影响,持续警惕和改进对于维护安全的区块链生态系统至关重要。

04

总结

中移链是在满足我国信息化监管需求、合规可控的前提下,打造的中国移动区块链服务平台。其中,共识机制是确保区块链安全、稳定的核心机制。不同于传统中心化系统,区块链的共识是指网络中所有节点对交易有效性和顺序达成一致的过程,共识能确保节点交易状态的统一。缺乏共识会使区块链失去可靠性和防篡改特性。中移链使用DPoS(委托权益证明)共识算法来选出活跃的生产者,结合aBFT(异步拜占庭容错)共识算法进行快速的交易确认,确保网络连续性和更快的交易速度,保证了区块链系统安全高效。

参考资料

[1]BSN开放联盟链:

https://opb.bsnbase.com/main/index

[2]官方EOSIO共识介绍:

https://developers.eos.io/welcome/latest/protocol-guides/consensus_protocol#3-eosio-consensus-dpos--abft

[3]官方EOSIO白皮书:

https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md

[4]官方EOSIO核心概念:

https://developers.eos.io/welcome/latest/introduction-to-eosio/core_concepts

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4、FFmpeg命令行操作8

生成测试文件 找三个不同的视频每个视频截取10秒内容 ffmpeg -i 沙海02.mp4 -ss 00:05:00 -t 10 -codec copy 1.mp4 ffmpeg -i 复仇者联盟3.mp4 -ss 00:05:00 -t 10 -codec copy 2.mp4 ffmpeg -i 红海行动.mp4 -ss 00:05:00 -t 10 -codec copy 3.mp4 如果音视…

整理低秩的理解

秩的定义是矩阵中非零特征值的个数。比如一个NxN的矩阵,它的秩为r,r远小于N,我们可以说它是低秩的。 但还有另一种情况:这个矩阵的的秩接近N,但它的特征值大多数接近于0,只有少数几个特征值特别大&#xf…

【DevOps】Git 图文详解(四):Git 使用入门

Git 图文详解(四):Git 使用入门 1.创建仓库2.暂存区 add3.提交 commit 记录4.Git 的 “指针” 引用5.提交的唯一标识 id,HEAD~n 是什么意思?6.比较 diff 1.创建仓库 创建本地仓库的方法有两种: 一种是创建…

LoRA低秩微调技术详解

在当今快节奏的技术环境中,大型AI模型正在推动不同领域的突破。 然而,根据特定任务或数据集定制这些模型可能是一项计算和资源密集型工作。 LoRA是一种突破性且高效的微调技术,它利用这些高级模型的强大功能来执行自定义任务和数据集&#xf…

ForkLift:macOS文件管理器/FTP客户端

ForkLift 是一款macOS下双窗口的文件管理器,可以代替本地的访达。ForkLift同时具备连接Ftp、SFtp、WebDav以及云服务器。 ForkLift还具备访达不具备的小功能,比如从文件夹位置打开终端,显示隐藏文件,制作替换等功能。ForkLift 是一…

Spring Cloud学习(九)【Elasticsearch 分布式搜索引擎01】

文章目录 初识 elasticsearch了解 ES倒排索引ES 的一些概念安装es、kibana安装elasticsearch部署kibana 分词器安装IK分词器ik分词器-拓展词库 索引库操作mapping 映射属性索引库的 CRUD 文档操作添加文档查看、删除文档修改文档Dynamic Mapping RestClient 操作索引库什么是Re…

代码随想录二刷 | 数组 | 移除元素

代码随想录二刷 | 数组 | 移除元素 题目描述解题思路 & 代码实现暴力解法双指针法 题目描述 27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用…

手搓哈希表、列表、队列,只为了用C语言快速求解华容道游戏,我不是大佬,只是一个游戏算法爱好者

背景 多年前曾经写过C语言求解华容道,当时没有用到哈希表,导致整个查重搜索数组过大,每次求解都得花上数分钟的时间,如今时过境迁,对数据结构和算法有了更深的理解,所以得把这一块补上了。(其实就是最近想…

Redis面经

Redis使用场景 1、缓存: 缓存三兄弟(穿透、击穿、雪崩) 、双写一致、持久化、数据过期策略,数据淘汰策略 2、分布式锁 setnx、redisson 3、消息队列 4、延迟队列 何种数据类型(list、zset) 缓存三兄弟 缓存穿透 缓存穿透…

Python 如何实现职责链设计模式?什么是职责链设计模式?Python 职责链设计模式示例代码

什么是职责链(Chain of Responsibility)设计模式? 职责链(Chain of Responsibility)设计模式是一种行为型设计模式,旨在构建一个对象链,每个对象都有机会处理请求,并且可以将请求传…

动手学深度学习——循环神经网络的从零开始实现(原理解释+代码详解)

文章目录 循环神经网络的从零开始实现1. 独热编码2. 初始化模型参数3. 循环神经网络模型4. 预测5. 梯度裁剪6. 训练 循环神经网络的从零开始实现 从头开始基于循环神经网络实现字符级语言模型。 # 读取数据集 %matplotlib inline import math import torchfrom torch import …

五、hdfs常见权限问题

1、常见问题 2、案例 (1)问题 (2)hdfs的超级管理员 (3)原因 没有使用Hadoop用户对hdfs文件系统进行操作。 在Hadoop文件系统中,Hadoop用户相当于Linux系统中的root用户,是最高级别用…

react实现步进器

创建一个步进器组件,包含当前步骤(currentStep)的状态以及前进和后退的操作: import React, { useState } from react;function Stepper() {const [currentStep, setCurrentStep] useState(1);const handleNext () > {setCu…

⑩② 【MySQL索引】详解MySQL`索引`:结构、分类、性能分析、设计及使用规则。

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ MySQL索引 ⑩② 【MySQL索引】1. 索引2. 索引的…

搞科研、写论文,如何正确使用GPT?AIGC技术解析、提示词工程高级技巧、AI绘图、ChatGPT/GPT4应用

目录 专题一 OpenAI开发者大会最新技术发展及最新功能应用 专题二 AIGC技术解析 专题三 提示词工程高级技巧 专题四 ChatGPT/GPT4的实用案例 专题五 让ChatGPT/GPT4成为你的论文助手 专题六 让ChatGPT/GPT4成为你的编程助手 专题七 让ChatGPT/GPT4进行数据处理 专题八 …

Wordpress页面生成器:Elementor 插件制作网站页面教程(图文完整)

本文来教大家怎么使用Wordpress Elementor页面编辑器插件来自由创建我们的网页内容。很多同学在面对建站的时候,一开始都是热血沸腾信心满满的,等到实际上手的时候就会发现有很多问题都是无法解决的,希望本篇Elementor插件使用指南能够帮助到你。 Wordpress Elementor页面编…

使用VC++实现分段线性变换,直方图均衡化、锐化处理(使用拉普拉斯算子)

图像锐化1 获取源工程可访问huiningLi的gitee可在此工程的基础上进行学习。 实验要求 5.1实验目的、要求 实验目的: (1)掌握图像增强的原理与相关方法。 (2)能使用VC实现图像增强的一些相关功能。 实验要求&#xf…

【python】均值、中值和高斯滤波详解和示例

本文对均值、中值和高斯滤波进行详解,以帮助大家理解和使用。 这里写目录标题 均值滤波中值滤波高斯滤波核大小为(9,9)核大小为(51,51) 小结 下面是示例中使用的原图。 均值滤波 均值滤波是一种简单的平滑滤波器&…

PyTorch微调权威指南3:使用数据增强

如果你曾经参与过 PyTorch 模型的微调,可能会遇到 PyTorch 的内置变换函数,这使得数据增强变得轻而易举。 即使你之前没有使用过这些功能,也不必担心。 在本文中,我们将深入研究 PyTorch 变换换函数的世界。 我们将探索你可以使用…

CTFhub-RCE-过滤目录分隔符 /

根据源代码信息可知&#xff0c;过滤掉了/ <?php $res FALSE; if (isset($_GET[ip]) && $_GET[ip]) { $ip $_GET[ip]; $m []; if (!preg_match_all("/\//", $ip, $m)) { $cmd "ping -c 4 {$ip}"; exec($cmd,…