Polkadot - ELVES

ELVES (Endorsing Light Validity Evaluator System) 即 轻量级背书有效性评估系统 。它是 JAM 可扩展且自适应的区块审计协议,即是JAM用于finalise区块的协议, 确保只有有效区块才能最终确定。

  • 论文 – 2024-961 : Jeff Burdges、Cevallos 等人在2024年提出的 ELVES 方案。该方案采用非冗余验证者分配策略,并将其与验证者参与的提议与审计博弈相结合。这一机制旨在清除和惩罚无效计算,同时确保一个网络的最终性状态依赖于所有因果相关的网络。

(1)加密经济机制-ELVES的作用

该协议的总体思路是随机选择一小部分初始参与方(例如,使用 VRF)来重建和审计区块。如果存在相互矛盾的声明,或审计员缺席,则会为该区块分配更多审计员。

ELVES 确保验证者在区块成为平行链状态的一部分之前共同确认其有效性。

验证者通过质押获得激励,并因恶意或错误操作而受到惩罚,以确保其遵守协议。这种方法最大限度地降低了无效状态在网络中传播的可能性,从而为平行链提供了强大的安全性。

(2)ELVES 的运⾏分为⼏个阶段

  1. 在第⼀个“⽀持”阶段,⼀些称为“⽀持者”的初始审计员接收区块,检查区块,然后签署声明,声明该区块有效。

  2. 在第⼆个“可⽤性”阶段,⽀持者分发区块,以便任何审计者都可以选择检查该区块。我们通过为每个审计者分配⼀个区块 Reed-Solomon 编码的符号来保持此分发过程的带宽效率。验证者同意,该区块的分发⽅式确保了其在拜占庭假设下能够重建。

  3. 在第三个“批准”阶段,我们随机指派⼀组初始审计员来检查, 每当指定的审计员没有及时做出反应时,该块就会随机增⻓ (⽤⾜够多的随机审计员替换所有缺席的审计员)

  4. 第四阶段,如果任何审计员声称该区块⽆效,则所有审计员将进⼊“争议”阶段进⾏核查,并通过常规拜占庭投票解决。

  5. 第五阶段, 最终确定区块

    投票结果: 如果发现某个区块⽆效,那么我们将永久地弹出其⽀持审计员(在权益证明协议中,⽀持这些审计员的权益应被没收,例如在 Polkadot 中进 ⾏ 100% 削减)。

(3)基于Gearbox的审计员选举协议

重点:

  • 任何遵循非负预期利润策略的理性对手都无法使协议接受无效区块
  • 如果接收有效区块作为输入的初始审计方是诚实的,则所有验证者都同意该区块有效。
  • 每个验证区块所需的审计验证者数量为 O(logn)O(log\ n)O(log n)

Gearbox协议

Gearbox [DMM+22]协议利⽤安全性与活性⼆分法优化了分⽚规模。具体⽽⾔,该协议最初选择规模较⼩的委员会以确保安全性(但可能牺牲活性),但 之后逐渐选择规模更⼤的委员会以实现活性。该协议在部分同步模型下运⾏,并考虑了静态腐败。我们的协议 ELVES 在此基本理念的基础上更进⼀步,并在两 个⽅⾯有所不同:

  1. Gearbox ⽆法对抗⾃适应崩溃对⼿,因为对⼿可以轻易地让分⽚中的所有参与⽅崩溃;我们的协议以⼀种直接的⽅式解决了这个问题,即在 未收到⾜够多的有效响应时,尽可能地向所有参与⽅扩展分⽚规模;
  2. 更重要的是,我们的协议实现了更⼩的委员会规模。具体⽽⾔,对于2−602^{-60}260的错误率和 1/3 的腐败率,我们的委员会规模约为 400,⽽ Gearbox 需要 1000 个参与⽅。

怎么成为审计员?

⾸先乐观地选择⼀个规模较⼩的委员会来检查区块,其中⾄少有⼀名诚实⽅当选的概率很⾼。如果 没有达成⼀致意⻅,我们将回到稻草⼈⽅法,选择⼀个规模更⼤的委员会,并获得三分之⼆多数票。这样做,在乐观条件下,只会部署规模较⼩(约数十人)的委员会。我们可以进⼀步发展这个想法,通过分⼏个步骤添加参与⽅:不是直接回到稻草⼈⽅法,⽽是可以逐渐添加参与⽅,直到委员 会规模达到稻草⼈⽅法的规模。

验证区块所需的审计验证者数量为 O(logn)O(log\ n)O(log n), ⼀个区块中的审计员数量服从⼆项分布 Binom(n,sδ /n)

区块分发后,我们使⽤ VRF 选举初始审计委员会C0,各⽅以固定概率独⽴分配到该委员会,因此C0的预期规模较⼩,约为数⼗⼈

  • 区块⽀持者
    • 审计员轮流担任新区块的⽀持者
    • 一个区块一个支持者; 同⼀时间处理的两个区块由不同的⽀持者分发
    • 向全体审计员发送RS编码分片与Merkle路径证明
  • 使⽤ VRF 从全体审计员中选举出初始审计委员会(约数十个)
    • 重建区块
    • 验证
    • 投票
  • 全体审计员约400个, 作为候选
    • 有审计员未及时响应时,自动选一个新的替换.
    • 如果发现区块无效, 则全员进行拜占庭投票 (估计是一轮2/3投票,如果两轮的话,网络压力巨大为O(n2)O(n^2)O(n2) )

怎么审计?

(一个或多个)⽀持者验证通过后, 广播签名和区块给初始审计员验证. 如果初始审计员是诚实的,则所有初始审计员都同意该区块有效; 如果发现区块无效, 则进行常规拜占庭投票解决, 如果投票结果确实无效, 支持它的初始审计员将被剔除和罚没

委员会选举与检查:C0 中的每⼀⽅发布其分配证明,依次接收来⾃ S 中各⽅的代码字,重建并审计区块 B,并发布其结果。此时有三 种情况:

1)某些⽅声称该区块⽆效;

​ 检查会升级到所有参与⽅,并进⾏多数投票来决定区块是否有效,少数⽅会被罚没,⽀持者则被纳⼊⽀持该区块的⼀⽅

2)所有宣布其任务分配的各⽅声称该区块有效

​ 该区块会被接受。

3)有⼀些未出现的各⽅宣布了其任务分配但未按时公布其审计结果。

​ 对于每个缺席的参与⽅,都会选举出⼀个新的、预期规模恒定的参与⽅(⼦集),并将 其添加到审计委员会,规则 1 ⾄ 3 将再次应⽤于新当选的参与⽅。

(4)基于RS纠删码的分发方案

  1. 可⽤性分发:⽀持者将初始区块 B 分发给所有参与⽅。更准确地说,⽀持者使⽤重建阈值为参与⽅ 1/3 ⽐例纠删码,获得码字s1,...,sns_1, ..., s_ns1,...,sn,并将其编码到 Merkle 树中,为每个码字sis_isi获取⼀个证明πiπ_iπi 。每对 (si,πi)(s_i , π_i)(si,πi)都会以双边⽅式发送给参与⽅Pi ,Pi随后会发布投票, 表明收到的对 (si,πi)(s_i , π_i)(si,πi)是否正确。当 2/3 参与⽅的集合 S 发布投票时,此阶段结束。
  2. 可⽤性⽅案由⼀对 (Dist, Rec) 分布式协议组成。在协议 Dist 中,指定⽅ P(经销商)持有要分发的输⼊消息 m。在协议结束时,所有参与⽅就协议是否成功达成⼀致,如果成功,则每⼀⽅ Pi输出⼀个==编码数据⽚段 (si , πi)==和⼀个正确性证明。在协议 Rec 中,每⼀⽅Pi向接收者 R发布其对 (si , πi) ,接收者 R 应⽤⼀个函数来重建原始消息 m

image-20250503095247611

image-20250503095946696

引理 1. 协议 (Πt Dist, Πt Rec) 是一种安全可用性方案,在存在总计 γ < 1/3 的损坏(可能是静态主动或自适应崩溃)的情况下。

证明。我们首先论证正确性。如果庄家 P 是诚实的,则 P 计算出 m 的正确 Reed-Solomon 编码,且根出现在 F ∆ smr 中。此外,每个诚实方在最多 ∆ 时间后都会收到一个有效对 (si , πi),并在 F ∆ smr 中发布签名投票。因此,在 ∆ 时间后,至少出现 (1 − γ)n 个签名投票,则 ΠDist 被视为成功。

(5)基于Merkle证明和拉格朗日插值法的批准方案

image-20250503105709720

引理 2. 设 Q 为 Merkle 树诱导的输入谓词。也就是说,每一方都有一个对应于叶子节点的私有输入 (si,πi),以及一个关于公共输入 Com(即 Merkle 根)的 Merkle 树证明,所有参与方都接收该公共输入。进一步设 VerifyData 表示有效性谓词。则 协议 ΠAppr 是一种安全的批准方案,当存在最多 γ < 1/3 的损坏时,这些损坏可能是静态主动或自适应崩溃。

(6)ELVES协议

将各⽅分为两种⻆⾊:

  • 初始审计者(称为“⽀持 者”),他们获得区块作为输⼊(以及有效性证明);
  • 以及“验证者”,他们将区块提供给其他⽅并检查其有效性。

缺点

然而,实施 ELVES 方案需要更为复杂的逻辑设计,并且由于网络间的因果纠缠,可能会对网络的可扩展性,即可以添加的网络数量,构成一定的限制。


附录

名词

  • Fsmr∆F ^∆ _{smr}Fsmr: 各方可以访问资源 (又名主链)
    • smri = (smri [1],smri [2], . . .): 状态机复制资源, 每一方 Pi 输入一条消息,并跟踪一系列消息, 每个索引一个,即输出给 Pi 方
    • com: 承诺, 即 Merkle Root
  • Fp2p∆F ^∆ _{p2p}Fp2p: 各方可以访问完整的网络
    • Fflood∆F ^∆ _{flood}Fflood: 扩散网络功能
  • FcepF ^p _{ce}Fcep: 委员会选举预言机功能
  • Πid: 作弊识别
  • ΠAppr: 容错1/3的安全批准方案

数字签名

数字签名⽅案由三个算法(KGen、Sign、Ver)组成,定义如下:

  1. KGen(κ) 是密钥⽣成算法,它采⽤安全参数并输出验证/签名密钥对 (vk,sk)。
  2. Sign(sk, m) 是⼀种签名算法,它以签名密钥和消息作为输⼊,并输出签名 σ
  3. Ver(vk, m, σ) 是⼀种验证算法,其输⼊是验证密钥、消息和签名。如果 σ 是验证密钥 vk 下 m 上的有效签名,则算法输出 1,否则输出 0。

RS纠删码⽅案 (ECCS)

能够容忍⼀定次数擦除的纠删码⽅案. 设 n 为共享数,t 为可容忍的擦除次数。(t, n) 擦除编码, 即重建阈值为t. (用到拉格朗日插件法)

编码⽅案(ECCS)由两种算法组成:

  1. Enc 接收消息 m 并⽣成⼀系列份额 s1,...,sns_1, ..., s_ns1,...,sn
  2. Dec 取一系列份额 s′1,...,s′ns′_1 , . . . , s′_ns1,...,sn ,使得对于至少 n − t 个份额 s′i=sis′_i = s_isi=si ,对于剩余的份额 s′i=⊥s′_i = ⊥si=,(⊥表示已被腐蚀, 即作恶) , 则输出原始消息 m
  3. 我们使⽤标准 Reed-Solomon 码 [RS60] 来有效地实例化 (t, n)-ECCS,其中每个份额的⼤⼩为 O(ℓ/(n−t))O( ℓ / (n−t) )O(/(nt)),对于⼤⼩为ℓ位的消息

在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

ELVES与JAM

2/ ELVES 是什么?ELVES 是 JAM 的去中心化区块批准和审计系统

  • 在最终确定之前确保区块有效性
  • 使用小型、自适应的审计委员会
  • 保护 JAM 免受无效区块和验证者不当行为的影响

3/ ELVES 如何运作?区块批准流程分为几个阶段

  • 支持阶段 – 验证者提议并验证区块
  • 批准阶段 – 指派小型委员会审核区块
  • 争议阶段 – 如果出现争议,所有验证者将拜占庭投票决定解决方案
  • 最终确定 – 只有在成功批准后,区块才会最终确定

4/ 为什么高效?ELVES 会分配小型委员会,以最大限度地降低计算开销。

  • 委员会采用基于 VRF 的机制进行选举
  • 规模自适应 → 如果审计员未能响应,委员会规模将自动扩大
  • 拜占庭容错 → 可处理高达 1/3 的腐败验证者

5/ 如果验证者行为不当会发生什么? 惩罚

  • 批准无效区块的验证者将被罚没
  • 自适应崩溃后快速恢复 → 即使大量验证者同时失败
  • 无效区块在最终确定之前就会被拒绝

6/ ELVES 如何保障安全?

  • ELVES 使用统计保证(Reed-Solomon decoding),确保即使是小型委员会也能高精度地发现坏块。
  • 快速争议解决 → 完整验证器集对冲突进行投票
  • 不当行为将受到经济惩罚 → 激励诚实行事

7/ 与其他区块链相比如何?

  • @Ethereum – 没有基于委员会的审计;依赖于最终确定后的欺诈证明
  • @Solana – 没有最终确定前的审计;共识必须捕获无效区块
  • Polkadot – 已经在使用 ELVES。
  • JAM – 将 ELVES 应用于其新颖的设计。

8/ 为什么 ELVES 对 JAM 如此重要:

  • ELVES 可以防止因错误状态转换而产生的分叉
  • 它们允许 JAM 在不牺牲安全性的情况下进行扩展
  • 验证者需要承担责任 → 不当行为 = 罚没

9/ TL;DR:ELVES = JAM 的自适应区块有效性层

  • 快速、安全、可扩展
  • 在无效区块最终确定之前将其阻止
  • 保持验证者的诚实 JAM 保持安全 — — 即使规模扩大。

往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
BTC系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列

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

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

相关文章

【科研写作自动化工具】如何​​用AI技术组合(大模型+多Agent+自动化)打造一个“智能论文生产线”​​,把写作流程变成自动化

自主构建智慧科研写作系统——融合LLM语义理解、多智能体任务协同与n8n自动化工作流n8n 是一款开源的 ​​工作流自动化工具​​&#xff0c;类似于 Zapier 或 Make&#xff08;原 Integromat&#xff09;&#xff0c;但更注重灵活性和开发者友好性。在课程文件中提到的 ​​n8…

window显示驱动开发—监视器类函数驱动程序

设备节点用于表示已连接到一台监视器的显示适配器上的每个视频输出。 设备节点是显示适配器设备节点的子节点。通常情况下&#xff0c;设备堆栈中只有两个设备对象代表一对视频输出/监视器&#xff1a;物理设备对象 (PDO)。功能设备对象 (FDO)。在某些情况下&#xff0c;筛选器…

STM32CubeMX + HAL 库:基于 I²C 通信的 AHT20 高精度温湿度测量实验

1 概述1.1 实验目的本实验基于 STM32CubeMX 与 HAL 库&#xff0c;借助硬件 IC 接口实现对 AHT20 高精度温湿度传感器的测量与数据处理。实验内容涵盖 AHT20 的初始化流程、指令交互机制、测量数据的采集与物理量转换等关键环节。通过对实验驱动代码与测试结果的完整展示&#…

今日分享:C++ -- vector

&#x1f60e;【博客主页&#xff1a;你最爱的小傻瓜】&#x1f60e; &#x1f914;【本文内容&#xff1a;C vector &#x1f60d; 】&#x1f914; --------------------------------------------------------------------------------------------------------------------…

NAS Docker 安装N8N

NAS Docker 安装N8Ndocker 操作中文版使用 Docker Compose&#xff08;更易于管理&#xff09;创建一个 docker-compose.yml 文件&#xff0c;内容如下&#xff1a;yaml version: 3services:n8n:image: n8nio/n8n:latestcontainer_name: n8nrestart: unless-stoppedports:- &q…

Node.js汉字转拼音指南:pinyin-pro全解析

pinyin-pro 工具库简介核心功能&#xff1a;汉字转拼音、多音字处理、音调控制、格式定制等性能特点&#xff1a;高效、轻量级、支持多种拼音风格应用场景&#xff1a;搜索优化、数据排序、中文输入法等环境准备与安装Node.js npm 或 yarn 安装 pinyin-pronpm install pinyin-p…

UART-TCP双向桥接服务

UART-TCP双向桥接服务是一种将串口&#xff08;UART&#xff09;通信与TCP/IP网络通信相互转换的技术服务&#xff0c;其核心功能是实现两种不同协议之间的数据透明传输。1. 基本概念UART&#xff08;串口&#xff09;&#xff1a;硬件设备的传统通信接口&#xff0c;常见于嵌入…

江协科技STM32学习笔记补充之001。为什么C语言在对STM32编程过程中的二进制要用十六进制来进行读写。而不能直接用二进制来进行读写。

下面给你一个“为什么嵌入式 C&#xff08;如 STM32&#xff09;普遍用十六进制而不是二进制来读写寄存器/地址”的系统性分析。核心观点&#xff1a;十六进制是对底层位模式更高效、更可靠的“人类可读编码”&#xff0c;与硬件资料、编译器和调试器生态形成了标准化协同。1&a…

从 “对话” 到 “共创”:生成式 AI 如何重塑内容创作全流程,普通人也能掌握的高效工具指南

一、引言&#xff1a;内容创作的 “AI 范式转移”—— 从单向输出到双向共创​传统内容创作痛点&#xff1a;灵感枯竭、流程繁琐&#xff08;选题 - 调研 - 初稿 - 修改 - 定稿耗时久&#xff09;、专业门槛高&#xff08;如设计需掌握 PS、写作需深厚文字功底&#xff09;​生…

函数、数组与 grep + 正则表达式的 Linux Shell 编程进阶指南

文章目录1.函数相关2.数组相关3.正则表达式与grep根据你提供的内容&#xff0c;我整理了一份关于Shell脚本中函数、数组和正则表达式的简明参考&#xff1a; 1.函数相关 函数调用&#xff1a; 直接使用函数名调用&#xff1a;函数名 参数传递&#xff1a; 函数内接收参数&…

nginx-realip问题解决方案

nginx-realip问题解决方案一、配置真实ip解析二、日志中记录真实 IP三、在日志中验证一、配置真实ip解析 让backend server知道前端是谁来访问的&#xff0c;知道他们的ip地址 LB在转发数据包的时候&#xff0c;在http请求报文里增加一个字段&#xff0c;携带user的ip地址&am…

Kafka入门指南:从安装到集群部署

一、Kafka 基础与系统要求 1.1 核心概念 Broker&#xff1a;Kafka 服务器节点&#xff0c;负责存储消息和处理客户端请求 Topic&#xff1a;消息分类的逻辑容器&#xff0c;每条消息需指定发送到某个 Topic Partition&#xff1a;Topic 的物理分片&#xff0c;可分布式存储…

20250828在荣品RD-RK3588-MID开发板的Android13系统下适配Bainianxing的GPS模块BU-16M10

20250828在荣品RD-RK3588-MID开发板的Android13系统下适配Bainianxing的GPS模块BU-16M10 2025/8/29 9:50荣品RD-RK3588-MID开发板。适配GPS 38400bps 需要配置波特率吗&#xff1f;一般是 9600这边使用的泰斗 你要适配新的gps模块&#xff1f;规格书&#xff1a;Baud rate 3840…

对部分国家(地区)出口商品类章金额数据库

一、数据库简介【艾思产研数据平台】对部分国家(地区)出口商品类章金额数据库&#xff0c;收录了2015年02月 - 2025年5月的信息&#xff0c;共计49万余条数据&#xff0c;整理出7个常用字段内容。更新频率为月更。字段内容年月、类章、国家、国家id、所属分类、月出口商品类章金…

STM32——中断

总&#xff1a;STM32——学习总纲 一、什么是中断 1.1 作用与意义 1.2 STM32 GPIO 外部中断简图 二、NVIC 2.1 NVIC 基本概念 Nested vectored interrupt controller&#xff0c;嵌套向量中断控制器&#xff0c;属于内核&#xff08;M3、M4、M7&#xff09; 用不到很多的优先…

DVWA靶场通关笔记-Weak Session IDs (Impossible级别)

目录 一、Session ID 二、源码分析 1、index.php 2、impossible.php 三、Weak Session IDs安全级别对比 四、impossible防范方法分析 1、高随机性会话 ID 生成 2、严格的 Cookie 作用域限制 3、安全的传输与存储控制期 本系列为通过《DVWA靶场通关笔记》的Weak Sessio…

SyncBack 备份同步软件: 使用 FTPS、SFTP 和 HTTPS 安全加密传输文件

传输加密是使用安全连接在网络中传输数据&#xff08;例如文件&#xff09;的过程。TLS&#xff08;传输层安全&#xff09;、SSL&#xff08;安全套接字层&#xff09;、SSH&#xff08;安全套接字外壳&#xff09;、HTTPS&#xff08;基于 SSL/TLS 的超文本传输协议&#xff…

保健品跨境电商:如何筑牢产品质量与安全防线?

保健品跨境电商&#xff1a;如何筑牢产品质量与安全防线&#xff1f;在保健品跨境电商领域&#xff0c;“质量与安全”是消费者信任的基石&#xff0c;也是品牌长期发展的生命线。从海外工厂生产到国内消费者手中&#xff0c;产品需经历“跨国运输、清关核验、仓储配送”多环节…

手把手教你搭建 UDP 多人聊天室(附完整源码)

一、项目介绍 本文将分享一个基于 UDP 协议的简易多人聊天室项目&#xff0c;包含服务器端和客户端的完整实现。该聊天室支持多客户端同时连接&#xff0c;能实现消息群发、用户加入 / 退出通知等核心功能&#xff0c;适合作为网络编程入门实践案例。项目采用 C 语言开发…

Vue基础知识-使用监视属性watch和计算属性computed实现列表过滤+排序

一、完整源码<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src…