中移链共识机制介绍

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode - 160. 相交链表(C语言,配图)

思路: 1. 我们算出两个链表的长度lenA,lenB。我们在这里最后判断一下,两个链表的尾节点是否是一样的,如果是相交链表,那它们的尾节点一定是一样的。 2. 算出长链表和短链表的差距n(n | lenA- lenB |&#…

年产200万件的超级工厂投产!巨头「闭环」汽车电子全产业链

随着汽车电动化程度的提升,汽车电子部件占整车成本比重逐步升高,已经从2012年的25%上升到2021年的55%。 且汽车电子电气架构向整车集中演进,智能汽车已经进入了软件及数据定义时代,底层硬件打破了过去几十年围绕特定应用不断增加…

MySQL5.7和MySQL8对比分析

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: MySQL学习 ✨特色专栏: My…

使用CycleGAN训练自己的数据集

一、下载源码 源码下载链接:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 二、调整自己的数据集格式 按照如下格式放 三、安装好所需要的python包 使用命令:pip install 包名称 在anaconda里面安装, 四、训练和测试 在开始训…

【算法】最短路径——弗洛伊德 (Floyd) 算法

目录 1.概述2.代码实现3.扩展3.应用 1.概述 (1)弗洛伊德 (Floyd) 算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与 Dijkstra 算法类似。该算法名称以创始人之一、1978 年图灵奖获得者、…

应用在智能照明系统中的LED防蓝光灯珠

智能照明系统是利用电磁调压及电子感应技术,对供电进行实时监控与跟踪,自动平滑地调节电路的电压和电流幅度,改善照明电路中不平衡负荷所带来的额外功耗,提高功率因数,降低灯具和线路的工作温度,达到优化供…

到手价的低价监测怎么做到

品牌在做数据监测时,要考虑是否是到手价的监测,如果只是监测页面价的低价,真实情况是会漏掉很多的低价数据,如果是做经销商的低价监测工作,这样的监测方式下的数据会降低品牌对渠道的掌控力,因为监测的不是…

PPP协议_基础知识

ppp协议 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。 一.ppp协议的组成 PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成: 对各种协议数据报的封装方法(封装成帧)链路控制协议LCP    …

揭秘2023年最热门的跨境电商源码趋势,你不能错过的关键信息

随着全球市场的不断扩大和国际贸易的加速,跨境电商源码正成为越来越多企业的首选。在本文中,我们将揭秘2023年跨境电商源码的最新趋势,为您带来关键信息,帮助您抓住机遇,实现商业成功。 2023年跨境电商源码趋势解析 …

JS-项目实战-鼠标悬浮设置字体颜色以及控制键盘输入

1、fruit.js //当页面加载完成后执行后面的匿名函数 window.onload function () {//get:获取 Element:元素 By:通过...方式//getElementById()根据id值获取某元素let fruitTbl document.getElementById("fruit_tbl");//table.rows:获取这个表格的所有的行&a…

Go 使用Viper处理Go应用程序的配置

在开发Go应用程序时,处理配置是一个常见的需求。配置可能来自于配置文件、环境变量、命令行参数等等。Viper是一个强大的库,可以帮助我们处理这些配置。 什么是Viper? Viper是一个应用程序配置解决方案,用于Go应用程序。它支持JS…

推介会如何做好媒体宣传

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 推介会是一种专为企业、社会组织和团体、政府等提供的展示自身特点、产品和政策的活动形式,旨在促进交流活动,形成合作,从而带来共同利益。推介会的本…

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

目录 一、cenc-aes-ctr 原理介绍 二、显式 cenc-aes-ctr 和隐式 cenc-aes-ctr 三、加密工具---ffmpeg 四、播放---ffplay 五、总结 ​​​​​​​一、cenc-aes-ctr 原理介绍 加密算法:CENC-AES-CTR 使用 AES(Advanced Encryption Standard&…

微服务架构学习与思考

参考:微服务架构学习与思考(01):什么是微服务?微服务的优势和劣势 - 九卷 - 博客园 (cnblogs.com) 一、单体应用 在软件开发早期阶段,大家都在一个应用系统上开发。各个业务模块之间耦合也比较紧密。软件发布也是整体发布&#…

实验室LIMS系统 asp.net源码 lims系统源码

LIMS系统是以实验室为中心,将人员、仪器、试剂、方法、环境、文件等影响分析数据的因素有机结合,针对实验室的要求,遵循ISO 17025准则,采用先进的计算机网络技术、数据存储技术、快速和强大的数据处理技术来对实验室进行全面管理的…

【备忘】websocket学习之挖坑埋自己

背景故事 以前没有好好学习过websocket,只知道它有什么用途,也知道是个好东西,平时在工作中没用过,所以对它并不知所以然。如今要做个自己的项目,要在付款的时候实时播报声音。自己是个开发者,也不想用别人…

【XTDrone Ubuntu20.04】XTDrone+ Ubuntu20.04 + PX4安装

XTDrone仿真平台配置 文章目录 XTDrone仿真平台配置依赖安装 ROS一键安装Marvos安装PX4 安装安装QTGroundControlXTDrone下载安装 环境: VMWare 16.0 Ubuntu 22.04 (因为没人配过)Ubuntu 20.04 参考文章: 仿真平台基础配置 (yuq…

还有医学生不知道这个免费好用的在线样本量计算器吗?

相信很多小伙伴都有过这样的经历:做科研设计、撰写论文,设计好主题后摆在眼前的是你最头痛的问题——样本量计算。事实上,样本量计算往往是临床医生做临床研究设计的一大障碍,是临床研究设计、临床知识经验以及统计学知识的结合。…

adguarg通过dns代理全局过滤广告,全系统操作指南

路由器dns配置 安卓(鸿蒙) 设置>>其他网络与连接>>私人DNS(不同手机系统设置名称会有些许出入,但是大差不差) (左图鸿蒙):将域名m.centos.chat填入手机私人DNS IOS系统 将代理服务器IP&am…

React-Router源码分析-History库

history源码 history 在 v5 之前使用单独的包, v6 之后再 router 包中单独实现。 history源码 Action 路由切换的动作类型,包含三种类型: POPREPLACEPUSH Action 枚举: export enum Action {Pop "POP",Push &quo…