标准定足数交集

定义和背景

  1. 系统模型:

    • 系统中有 \(n\) 个节点,其中最多 \(f\) 个节点可能是拜占庭故障节点(恶意节点)。
    • 为了保证容忍 \(f\) 个拜占庭节点,系统通常需要至少 \(3f + 1\) 个节点。
  2. Quorum(定足数):

    • 一个定足数(quorum)是一个足够大的节点子集,能够代表整个系统做出决定。在拜占庭容错模型中,一个常用的定足数大小是 \(2f + 1\) 个节点。
  3. 标准多数交集特性(Quorum Intersection Property):

    • 定足数交集特性要求任意两个定足数集合之间至少有一个共同节点。这个共同节点确保信息的一致性,即便存在恶意节点。

数学依据

考虑一个系统中总共有 \(n = 3f + 1\) 个节点,其中最多 \(f\) 个节点可能是拜占庭故障节点。为确保共识的正确性和安全性,我们需要以下条件:

  1. Quorum Size:

    • 每个定足数(quorum)包含至少 \(2f + 1\) 个节点。
  2. Intersection Property:

    • 任意两个定足数集合之间至少有一个公共节点。假设有两个定足数 \(Q_1\) 和 \(Q_2\),其中 \(Q_1\) 和 \(Q_2\) 均包含 \(2f + 1\) 个节点。我们需要证明 \(Q_1\) 和 \(Q_2\) 之间至少有一个节点是公共的。

证明

我们有总共 \(n = 3f + 1\) 个节点:

  1. 假设不相交:

    • 如果假设 \(Q_1\) 和 \(Q_2\) 没有交集,那么 \(Q_1\) 和 \(Q_2\) 的节点总数将会是 \((2f + 1) + (2f + 1) = 4f + 2\)。
  2. 矛盾:

    • 由于总体只有 \(3f + 1\) 个节点,而 \(4f + 2\) 大于 \(3f + 1\),这与总节点数冲突,因此 \(Q_1\) 和 \(Q_2\) 必然至少有一个公共节点。
  3. 结论:

    • 因此,任意两个包含 \(2f + 1\) 个节点的定足数必然至少有一个公共节点。这就是标准多数交集特性的核心。

应用场景

  1. 共识算法(例如拜占庭容错共识算法,如 PBFT、Tendermint):

    • 在这些共识算法中,参与者必须就某一事务(如交易、状态更改)达成一致。标准多数交集特性确保即使部分节点是恶意的,只要诚实节点占多数(\(2f + 1\)),系统能够达成安全的一致性。
  2. 分布式数据库

    • 在分布式数据库中,更新和查询需要通过多数集合来确保数据的强一致性和可用性。
  3. 可靠性和容错性

    • 通过确保定足数之间的交集特性,系统能够有效地防止数据一致性问题,即便存在网络分区或节点故障。

Standard Quorum Intersection的更多相关文章

  1. Paper Reading_Distributed System

    最近(以及预感接下来的一年)会读很多很多的paper......不如开个帖子记录一下读paper心得 Mark一个上海交通大学东岳网络工作室的paper notebook Mark一个大神的笔记 Ed ...

  2. 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 ...

  3. 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 ...

  4. 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 ...

  5. 一篇很好的解释了.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 ...

  6. 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 ...

  7. CF1029C Maximal Intersection 暴力枚举

    Maximal Intersection time limit per test 3 seconds memory limit per test 256 megabytes input standar ...

  8. 理解 .NET Platform Standard

    相关博文:ASP.NET 5 Target framework dnx451 and dnxcore50 .NET Platform Standard:https://github.com/dotne ...

  9. [LeetCode] Intersection of Two Arrays II 两个数组相交之二

    Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...

  10. [LeetCode] Intersection of Two Arrays 两个数组相交

    Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...

随机推荐

  1. ARM+DSP异构多核——全志T113-i+玄铁HiFi4核心板规格书

    核心板简介 创龙科技SOM-TLT113是一款基于全志科技T113-i双核ARM Cortex-A7 + 玄铁C906 RISC-V + HiFi4 DSP异构多核处理器设计的全国产工业核心板,ARM ...

  2. Redis学习篇

    Redis 能用来做什么? 01 缓存 Redis 的最常用的用例是缓存,以加快网络应用的速度.在这种用例中,Redis 将经常请求的数据存储在内存中.它允许网络服务器频繁访问的数据.这就减少了数据库 ...

  3. Docker自定义网段实现容器间的互访【开发环境中】

    我们都知道docker容器之间是互相隔离的,不能互相访问,但如果有些依赖关系的服务要怎么办呢,所以自定义网段实现容器间的互访. Docker 安装好之后默认会创建三个虚拟网卡,可以使用 docker ...

  4. 1. CMake 概述

    1. CMake 概述 CMake 可以用来构建C/C++工程,可以跨平台.允许开发者指定整个工程的编译流程 在CMake 没有出来之前,开发者需要手写 makefile,但是不同平台下的 makef ...

  5. 存储器与CPU的连接

    存储器与CPU连接分主要看前五步 1.首先根据给出的地址范围写出二进制码 2.确定芯片的类型和数量 3.确定地址线 4.确定片选信号 要注意MREQ是低电平有效,要连到138译码器的低电平

  6. WebGL加载本地模型

    前言 大部分的webgl框架,比如threejs和babylon等,都可以加载obj和gltf模型. 我们的引擎,基于three封装,同样有加载模型的loader,因此加载obj和gltf模型也是很简 ...

  7. 通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型

    通过Jupyter Notebook+OpenAI+ollama简单的调用本地模型 起因是收到了ollama的邮件,貌似支持使用openai来调用本地的ollama下载的模型为自己用 想了下正好试下, ...

  8. Umov移动方块-scratch编程作品

    程序说明: <Umov移动方块>是一款基于Scratch平台制作的小游戏.在这个游戏中,玩家将面对一个3×3的圆圈棋盘,并通过鼠标控制蓝色方块在这些圆圈中灵活移动.游戏的挑战在于,舞台的四 ...

  9. docker 概念,安装,启动,运行

    docker概念,安装,启动,运行模式 docker的概念 镜像(image) 模板,可以通过模板来创建容器服务,tomcat镜像===>run==>tomacat01容器(提供服务),通 ...

  10. 【Mybatis】04 官方文档指北阅读 vol2 配置 其一

    https://mybatis.org/mybatis-3/zh/configuration.html 配置 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 配置文 ...