【区块链】共识算法简介

news2024/11/24 11:47:14

共识算法简介

区块链三要素:

  • 去中心化
  • 共识算法
  • 智能合约

共识算法作为区块链三大核心技术之一,其重要性不言而喻。今天就来简单介绍共识算法的基本知识。

最简单的解释,共识算法就是要让所有节点达成共识,保证少数服从多数!大多数人认定一件事,这件事就是事实,也就意味着如果你要去改变一个既定事实,那么你必须伙同大多数人陪你一起作假。

image-20240502112210383

共识算法分类

区块链共识算法的分类标准不一,且其种类和数量还在增长,但可以大致根据容错类型部署方式一致性程度等加以分类。

  • 容错类型:区块链共识算法分为拜占庭容错非拜占庭容错
  • 部署方式:将区块链共识算法分为公有链共识联盟链共识私有链共识
  • 一致性程度:区块链共识算法分为强一致性共识弱(最终)一致性共识
  • 选主策略:区块链共识算法分为选举类证明类随机类联盟类混合类

看到这里有些读者开始疑惑了,什么是选主策略呢?下表列出了常见的选主策略:

选主策略具体解释
选举类共识即矿工节点在每一轮共识过程中通过“投票选举”的方式选出当前轮次的记账节点,首先获得半数以上选票的矿工节点将会获得记账权多见于传统分布式一致性算法,如Paxos和Raft等
证明类共识也称为“ProofofX”类共识,即矿工节点在每一轮共识过程中必须证明自己具有某种特定的能力,证明方式通常是竞争性地完成某项难以解决但易于验证的任务,在竞争中胜出的矿工节点将获得记账权;如PoW和PoS等共识算法是基于矿工的算力或者权益来完成随机数搜索任务,以此竞争记账权
联盟类共识即矿工节点基于某种特定方式首先选举出一组代表节点,而后由代表节点以轮流或者选举的方式依次取得记账权,这是一种以“代议制”为特点的共识算法,如DPoS等
混合类共识即矿工节点采取多种共识算法的混合体来选择记账节点,如PoW+PoS混合共识、DPoS+BFT共识等

部分常见的共识算法

常见共识算法表:

共识算法用途
PaxosGoogle Chubby
RaftETCD
ZABZookeeper
PoW比特币、莱特币、以太坊的前三个阶段
PoSEER Coin、NXT、以太坊第4阶段
DPoSBitShare
PBFTHyperledger Fabric
HotstuffLibra(Facebook/Meta)

常见共识算法图:

image-20240502130524873

PoX类共识算法

PoX类的共识算法主要包括比特币所采用的PoW共识及一些类似项目(如莱特币等)的变种PoW,即为大家所熟知的“挖矿”类算法。

核心思想:实际是所有节点竞争记账权,而对于每一批次的记账(或者说挖出一个区块)都赋予一个“难题” ,要求只有能够解出这个难题的节点挖出的区块才是有效的。

此类算法的代表有:PoW,PoS,DPoS

  • 工作量证明PoW(Proof of Work)算法,也被称为最耗电力的共识算法。在该算法中,所有节点通过提供工作量证明来争夺记账权,即最先提供足够的工作量证明的节点将向全网广播自己记的账(即区块),其他所有节点将该区块同步到自己的账本。
  • 权益证明PoS(Proof of Stake)算法类似于股份制公司的股东机制,根据持有数字货币的量和时间,分配相应的利息。是由系统权益替代算力来决定区块链记账权的共识算法。即,拥有权益越大的节点则越有可能成为下一个区块的生产者。
  • 委托权益证明DPoS(Delegated Proof of Stake)算法将成千上万个PoS节点,通过某种机制(例如持有代币的数量)选举出若干(奇数)个节点,在这几个节点之间进行投票选举(在一些实现中甚至会在这些节点间以令牌环的方式进行轮询,进一步减少投票开销)出每次的检点(出块)节点,而不用在网络中全部节点之间进行选择。

image-20240502131459899

BFT类共识算法

与PoX类共识算法相比,BFT类共识算法采用了完全不同的思路。它希望所有节点协同工作,通过协商的方式来产生能被所有(诚实)节点认可的区块。

拜占庭容错问题最早由Leslie Lamport等学者于1982年在论文《The ByzantineGenerals Problem》中正式提出,主要描述分布式网络节点通信的容错问题。从20世纪80年代起,提出了很多解决该问题的算法,这类算法被统称为BFT算法

非拜占庭错误(CFT)与拜占庭错误(BFT)

  • CFT(Crash Fault Tolerance):通常用于处理失效节点,即那些停止响应但不会伪造信息的节点。这类错误可以通过如Paxos、Raft等算法来处理,它们往往性能较好,能容忍不超过一半的故障节点。
  • BFT(Byzantine Fault Tolerance):用于处理恶意节点,即那些可能发送错误或不一致信息的节点。这类错误更为复杂,因为恶意节点可能会试图破坏系统的一致性。

BFT类代表算法:

image-20240502131856713

其中实用拜占庭(Practical BFT,PBFT)算法是最经典的BFT算法,由Miguel Castro和Barbara Liskov于1999年提出。PBFT算法解决了之前BFT算法容错效率较低的问题,且降低了算法的复杂度,使BFT算法可以实际应用于分布式系统。它能在恶意节点数不超过总结点数1/3的情况下达成共识。

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

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

相关文章

链表(基于C语言单向链表)

链表的实现的思想 链表表示一种是基于链接结构的线性表,链表实现的思想如下: 1、将表中的元素分别储存在一批独立的储存块里面。 2、表结构中的结点都能找到与之相关的下一个结点。 3、在前一个结点里用链表的方式显示的记录与下个结点之间的关联。 链…

原创字幕雨技术,二次剪辑混剪搬运短视频必备,轻松过原创

原创字幕雨素材教程,教你如何制作自己专属的字幕雨, 把素材运营到自己的二次剪辑,提升二创短视频的原创度, 帮助你做搬运或者短视频运营,轻松过原创。 课程目录: 1:什么是字幕雨 2&#xf…

Vue Vant 移动端如何禁止手机调起自带的输入键盘

前言 前不久在公司用Vue2开发了一个手机充值项目,键盘组件用的vant2的NumberKeyboard 数字键盘组件;上线后在IOS端只有一个vant数字键盘组件,但到了Android端,输入框一获取焦点不仅vant数字键盘弹出,连手机自带的键盘…

低空经济+飞行汽车:eVTOL技术详解

低空经济是以各种有人驾驶和无人驾驶航空器的各类低空飞行活动为牵引,辐射带动相关领域融合发展的综合性经济形态。它广泛体现于第一、第二、第三产业之中,在促进经济发展、加强社会保障、服务国防事业等方面发挥着日益重要的作用。 飞行汽车&#xff0c…

2024年第六届先进材料、机械和制造国际会议(AMMM 2024)即将召开!

2024年第六届先进材料、机械和制造国际会议(AMMM 2024)将于2024年9月6-8日在日本东京举行。AMMM 2024将以国际材料,机械和制造为主题,吸引到来自多个领域的研究人员和学者相聚在一起分享知识,讨论想法,并了…

如何免费体验 gpt2-chatbot

如何免费体验 gpt2-chatbot 就在五一假期期间,一个神秘模型在没有任何官方文件的情况下突然发布。发布后不到 12 小时就立即引起人工智能爱好者和专家们的关注。这个名为“gpt2-chatbot”的神秘新模型凭借其令人印象深刻的能力轰动全球。有人猜测它可能是 OpenAI 的…

手搓堆(C语言)

Heap.h #pragma once#include <stdio.h> #include <stdlib.h> #include <assert.h> #include <stdbool.h> #include <string.h> typedef int HPDataType; typedef struct Heap {HPDataType* a;int size;int capacity; }Heap;//初始化 void Heap…

MateBook D 14 2020款 锐龙版 R5/R7 集显(NblL-WFQ9)原厂Win10系统文件安装包下载

HUAWEI华为MateBook D 14锐龙处理器NblL-WFQ9原装出厂Windows10系统&#xff0c;恢复开箱状态预装OEM系统 适用型号&#xff1a;NblL-WXX9、NblL-WFQ9、NblL-WFP9 链接&#xff1a;https://pan.baidu.com/s/1Zl5gPjokDzkz0nHzGlRXVA?pwd5aty 提取码&#xff1a;5aty 华为…

408数据结构-二叉树的概念、性质与存储结构 自学知识点整理

前置知识&#xff1a;树的基本概念与性质 二叉树的定义 二叉树是一种特殊的树形结构&#xff0c;其特点是每个结点至多只有两棵子树&#xff08;即二叉树中不存在度大于 2 2 2的结点&#xff09;&#xff0c;并且二叉树是有序树&#xff0c;左右子树不能互换。 与树类似&#…

Java | Leetcode Java题解之第66题加一

题目&#xff1a; 题解&#xff1a; class Solution {public int[] plusOne(int[] digits) {int n digits.length;for (int i n - 1; i > 0; --i) {if (digits[i] ! 9) {digits[i];for (int j i 1; j < n; j) {digits[j] 0;}return digits;}}// digits 中所有的元素…

二维数组的鞍点(C语言)

一、鞍点解释&#xff1b; 鞍点就是该位置上的元素在该行上最大、在该列上最小&#xff1b; 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff…

利用大语言模型(KIMI)构建智能产品的控制信息模型

数字化的核心是数字化建模&#xff0c;为一个事物构建数字模型是一项十分复杂的工作。不同的应用场景&#xff0c;对事物的关注重点的不同的。例如&#xff0c;对于一个智能传感器而言&#xff0c;从商业的角度看&#xff0c;产品的信息模型中应该包括产品的类型&#xff0c;名…

Copilot Venture Studio創始合伙人楊林苑確認出席“邊緣智能2024 - AI開發者峰會”

隨著AI技術的迅猛發展&#xff0c;全球正逐步進入邊緣計算智能化與分布式AI深度融合的新時代&#xff0c;共同書寫著分布式智能創新應用的壯麗篇章。邊緣智能&#xff0c;作為融合邊緣計算和智能技術的新興領域&#xff0c;正逐漸成為推動AI發展的關鍵力量。借助分布式和去中心…

栈的拿手好戏——括号匹配问题

文章目录 1. 栈的应用——括号匹配问题2. 思路分析3. AC代码 1. 栈的应用——括号匹配问题 链接: link 2. 思路分析 这道题呢就非常适合用栈来搞&#xff1a; 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’…

数字电路-5路呼叫显示电路和8路抢答器电路

本内容涉及两个电路&#xff0c;分别为5路呼叫显示电路和8路抢答器电路&#xff0c;包含Multisim仿真原文件&#xff0c;为掌握FPGA做个铺垫。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01; 目录&#xff1a; 一、5路呼叫显…

YOLO实验记录

2023年2月17日 配置与环境 CPU&#xff1a;Intel Xeon Gold 6133 CPU 2.50GHz x8 GPU&#xff1a;NVIDIA Tesla V100 32G显存 python 3.8 pytorch1.12.1 cuda11.4 cuDNN 8.2.1 训练配置信息 输入图像尺寸&#xff1a;1280x1024 预训练模型&#xff1a;无 训练epoch&#x…

电商独立站最重要的功能设置:多语言转换和代运系统搭建

什么是独立站&#xff1f; 多语言模式切换 1 搭建电商独立站在我看来最简单的理解&#xff0c;就是独立的网站。 如果你在跨境圈子呆了一段时间&#xff0c;独立站是一个避不开且火热的一个词&#xff0c;并且也是所有的B2B、B2C商家都在运营和布局的市场。 独立站的优势有哪…

ssm101珠宝首饰交易平台开发+jsp

珠宝首饰交易平台 摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于珠宝首饰交易平台当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了珠宝首饰交易平台&#x…

【RabbitMQ】可靠性策略(幂等,消息持久化)

MQ可靠性策略 发送者的可靠性问题生产者的重连生产者确认 MQ的可靠性数据持久化Lazy Queue 消费者的可靠性问题消费者确认机制消息失败处理 业务幂等性简答问题 发送者的可靠性问题 生产者的重连 可能存在由于网络波动&#xff0c;出现的客户端连接MQ失败&#xff0c;我们可以…

VG做mirror引起的块偏移

事件起因 Oracle10.2环境 Aix操作系统使用aix的lvm技术。制作vg的mirror。以此来替换掉老的存储。 做mirror前&#xff0c;数据库已完全关闭 故障现象 在启动数据库时&#xff0c;发现IO错误。该系统的spfile&#xff0c;ctl&#xff0c;dbf均是用lv做的裸设备。其中dbf是使…