标准定足数交集

定义和背景

  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. 基于 TI Sitara系列 AM64x核心板——程序自启动说明

    前 言 本文主要介绍AM64x的Cortex-A53.Cortex-M4F和Cortex-R5F核心程序自启动使用说明.默认使用AM6442进行测试演示,AM6412测试步骤与之类似. 本说明文档适用 ...

  2. 核对不同文件夹所含内容的差异并提取缺失内容:Python代码

      本文介绍基于Python语言,以一个大文件夹作为标准,对另一个大文件夹所包含的子文件夹或文件加以查漏补缺,并将查漏补缺的结果输出的方法.   首先,来明确一下本文所需实现的具体需求.现有一个大文件 ...

  3. 计算订单签收率的sql查询思路与过程(涉及百分比和四舍五入)

    领导提出一个签收率需求,想要通过数据库达到excel中表现的形式,提高计算速度和工作效率, 如下形式: 数据库中表数据结构: 部分数据如下: sql语句思路如下: -- 1.已签收:以物流反馈管道,状 ...

  4. python3 安装pymssql失败 pip3 install pymssql

    python3 安装pymssql失败 报错信息: AttributeError: module 'platform' has no attribute 'linux_distribution' 解决 ...

  5. CF1860

    很失败啊 A 题大力分讨,罚了 \(2\) 次 B 题大力分讨,罚了 \(1\) 次 C 题大力 dp 一发过 然后就睡觉了 感觉 CF 打少了智商掉了,被前几题拖了太久

  6. frp内网穿透:基于centos8 云服务器和debian12客户端服务器

    前言 入了一台本地工控机盒子,刷成了debian12系统,性能比云服务器要好一点,现在想要远程访问这台盒子,但是盒子又没有公网地址,所以想通过内网穿透的方式,通过云服务器转发请求实现内网穿透.原来体验 ...

  7. Django详细笔记

    django 学习 特点 快速开发 安全性高 可伸缩性强 URL 组成部分 URL: 同意资源定位符 一个URL由以下几部分组成 scheme://host:port/path/?query-stri ...

  8. SpringBoot的知识点总结和常用注解

    SpringBoot 知识点总结 基础入门 基本介绍.基本特性.核心模块.版本选择.环境要求.安装集成.技快速开发接口.Maven Wrapper.Spring Boot CLl 配置管理 配置类.配 ...

  9. mac 安装mysql5.7.28附安装包

    mac 安装mysql教程 下载mysql安装包 百度云盘地址: https://pan.baidu.com/s/1qbF8vtON2sLzNetXCITnSQ 运行安装包 一直下一步即可 配置环境变 ...

  10. Vulnhub-ICA01

    简介 名称:ICA: 1 发布日期:2021 年 9 月 25 日 难度:容易 描述:根据我们情报网络的信息,ICA 正在开展一个秘密项目.我们需要弄清楚这个项目是什么.获得访问信息后,请将其发送给我 ...