Standard Quorum Intersection
标准定足数交集
定义和背景
- 系统模型: - 系统中有 \(n\) 个节点,其中最多 \(f\) 个节点可能是拜占庭故障节点(恶意节点)。
- 为了保证容忍 \(f\) 个拜占庭节点,系统通常需要至少 \(3f + 1\) 个节点。
 
- Quorum(定足数): - 一个定足数(quorum)是一个足够大的节点子集,能够代表整个系统做出决定。在拜占庭容错模型中,一个常用的定足数大小是 \(2f + 1\) 个节点。
 
- 标准多数交集特性(Quorum Intersection Property): - 定足数交集特性要求任意两个定足数集合之间至少有一个共同节点。这个共同节点确保信息的一致性,即便存在恶意节点。
 
数学依据
考虑一个系统中总共有 \(n = 3f + 1\) 个节点,其中最多 \(f\) 个节点可能是拜占庭故障节点。为确保共识的正确性和安全性,我们需要以下条件:
- Quorum Size: - 每个定足数(quorum)包含至少 \(2f + 1\) 个节点。
 
- Intersection Property: - 任意两个定足数集合之间至少有一个公共节点。假设有两个定足数 \(Q_1\) 和 \(Q_2\),其中 \(Q_1\) 和 \(Q_2\) 均包含 \(2f + 1\) 个节点。我们需要证明 \(Q_1\) 和 \(Q_2\) 之间至少有一个节点是公共的。
 
证明
我们有总共 \(n = 3f + 1\) 个节点:
- 假设不相交: - 如果假设 \(Q_1\) 和 \(Q_2\) 没有交集,那么 \(Q_1\) 和 \(Q_2\) 的节点总数将会是 \((2f + 1) + (2f + 1) = 4f + 2\)。
 
- 矛盾: - 由于总体只有 \(3f + 1\) 个节点,而 \(4f + 2\) 大于 \(3f + 1\),这与总节点数冲突,因此 \(Q_1\) 和 \(Q_2\) 必然至少有一个公共节点。
 
- 结论: - 因此,任意两个包含 \(2f + 1\) 个节点的定足数必然至少有一个公共节点。这就是标准多数交集特性的核心。
 
应用场景
- 共识算法(例如拜占庭容错共识算法,如 PBFT、Tendermint): - 在这些共识算法中,参与者必须就某一事务(如交易、状态更改)达成一致。标准多数交集特性确保即使部分节点是恶意的,只要诚实节点占多数(\(2f + 1\)),系统能够达成安全的一致性。
 
- 分布式数据库: - 在分布式数据库中,更新和查询需要通过多数集合来确保数据的强一致性和可用性。
 
- 可靠性和容错性: - 通过确保定足数之间的交集特性,系统能够有效地防止数据一致性问题,即便存在网络分区或节点故障。
 
Standard Quorum Intersection的更多相关文章
- Paper Reading_Distributed System
		最近(以及预感接下来的一年)会读很多很多的paper......不如开个帖子记录一下读paper心得 Mark一个上海交通大学东岳网络工作室的paper notebook Mark一个大神的笔记 Ed ... 
- Gym 100952J&&2015 HIAST Collegiate Programming Contest J. Polygons Intersection【计算几何求解两个凸多边形的相交面积板子题】
		J. Polygons Intersection time limit per test:2 seconds memory limit per test:64 megabytes input:stan ... 
- Introducing XAML Standard and .NET Standard 2.0
		XAML Standard We are pleased to announce XAML Standard, which is a standards-based effort to unify X ... 
- Codeforces Round #506 (Div. 3)   C. Maximal Intersection
		C. Maximal Intersection time limit per test 3 seconds memory limit per test 256 megabytes input stan ... 
- 一篇很好的解释了.Net Core, .Net Framework, .Net standard library, Xamarin 之间关系的文章 (转载)
		Introducing .NET Standard In my last post, I talked about how we want to make porting to .NET Core e ... 
- codeforces  D. Area of Two Circles' Intersection   计算几何
		D. Area of Two Circles' Intersection time limit per test 2 seconds memory limit per test 256 megabyt ... 
- CF1029C Maximal Intersection 暴力枚举
		Maximal Intersection time limit per test 3 seconds memory limit per test 256 megabytes input standar ... 
- 理解 .NET Platform Standard
		相关博文:ASP.NET 5 Target framework dnx451 and dnxcore50 .NET Platform Standard:https://github.com/dotne ... 
- [LeetCode] Intersection of Two Arrays II 两个数组相交之二
		Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ... 
- [LeetCode] Intersection of Two Arrays 两个数组相交
		Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ... 
随机推荐
- ARM+DSP异构多核——全志T113-i+玄铁HiFi4核心板规格书
			核心板简介 创龙科技SOM-TLT113是一款基于全志科技T113-i双核ARM Cortex-A7 + 玄铁C906 RISC-V + HiFi4 DSP异构多核处理器设计的全国产工业核心板,ARM ... 
- Redis学习篇
			Redis 能用来做什么? 01 缓存 Redis 的最常用的用例是缓存,以加快网络应用的速度.在这种用例中,Redis 将经常请求的数据存储在内存中.它允许网络服务器频繁访问的数据.这就减少了数据库 ... 
- Docker自定义网段实现容器间的互访【开发环境中】
			我们都知道docker容器之间是互相隔离的,不能互相访问,但如果有些依赖关系的服务要怎么办呢,所以自定义网段实现容器间的互访. Docker 安装好之后默认会创建三个虚拟网卡,可以使用 docker ... 
- 1. CMake 概述
			1. CMake 概述 CMake 可以用来构建C/C++工程,可以跨平台.允许开发者指定整个工程的编译流程 在CMake 没有出来之前,开发者需要手写 makefile,但是不同平台下的 makef ... 
- 存储器与CPU的连接
			存储器与CPU连接分主要看前五步 1.首先根据给出的地址范围写出二进制码 2.确定芯片的类型和数量 3.确定地址线 4.确定片选信号 要注意MREQ是低电平有效,要连到138译码器的低电平 
- WebGL加载本地模型
			前言 大部分的webgl框架,比如threejs和babylon等,都可以加载obj和gltf模型. 我们的引擎,基于three封装,同样有加载模型的loader,因此加载obj和gltf模型也是很简 ... 
- 通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型
			通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型 起因是收到了ollama的邮件,貌似支持使用openai来调用本地的ollama下载的模型为自己用 想了下正好试下, ... 
- Umov移动方块-scratch编程作品
			程序说明: <Umov移动方块>是一款基于Scratch平台制作的小游戏.在这个游戏中,玩家将面对一个3×3的圆圈棋盘,并通过鼠标控制蓝色方块在这些圆圈中灵活移动.游戏的挑战在于,舞台的四 ... 
- docker 概念,安装,启动,运行
			docker概念,安装,启动,运行模式 docker的概念 镜像(image) 模板,可以通过模板来创建容器服务,tomcat镜像===>run==>tomacat01容器(提供服务),通 ... 
- 【Mybatis】04 官方文档指北阅读 vol2 配置 其一
			https://mybatis.org/mybatis-3/zh/configuration.html 配置 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 配置文 ... 
