Algorand 系列二: Algorand 共识算法(2017)的设计原理-1

本文深入探讨Algorand早期共识算法,包括分级共识协议GC和二元拜占庭协议BBA*,解析其在区块链系统中的应用和设计原理,以及在Algorand中的核心角色。

YOUChain Research

YOUChain 研究团队,成员毕业于国内外顶级名校,有长期的工业界经验。我们持续跟踪的区块链学界和业界的前沿发展,致力于深入区块链本质,推动学术和技术发展。团队诚邀加密、算法、区块链、工程人才加入!

本文来自 yipast@YOUChainResearch

一、背景知识

一提到Algorand就想到了VRF抽签。关于VRF,已有专门的文章进行了详细的分析 传送门,本文专注于Algorand早期版本的共识算法设计原理。

Algorand在2017年发布的协议是基于拜占庭共识(BA),命名为 BA∗BA^*BA 协议,主要包含两阶段:

  1. 第一阶段:分级共识协议 GCGCGC

  2. 第二阶段:二元拜占庭协议 BBA* 。

首先,我们来了解下这两个阶段详细的背景知识。

1.1 分级共识协议 GC

结合 graded broadcast 与 crusader agreement,分级共识协议概念的定义如下。

在这里插入图片描述

gradecast 就是一个 (n,t)(n,t)(n,t) 分级的共识协议,包含了3-Step。而Algorand共识算法中第一阶段的GC包含了 gradecast 的最后两步。具体的内容如下。

在这里插入图片描述
Step 1:每个节点 iii 给所有节点发送 vi′v_i^{'}vi

Step 2:当且仅当 #i2(x)⩾2t+1\#_i^2(x) \geqslant 2t+1#i2(x)2t+1 时,每个节点 iii 给所有节点发送字符串 xxx

输出决定条件:

在这里插入图片描述

1.2 二元拜占庭协议 BBA∗BBA^*BBA

二元拜占庭协议BBA∗BBA^*BBA借鉴了Feldman、Micali提出的二元BA​协议

前提:诚实节点超过 2/3,即总节点数 n≥3t+1n \geq 3t+1n3t+1,其中 ttt 代表恶意节点的最大可能数量。

不管恶意节点如何操作,每次主循环的执行都有 1/3 的概率把节点带入协议中。

该协议有一个设置的要求:需要一个共同的随机字符串 rrr,不依赖节点的key (Algorand中是 QrQ^rQr)。

协议实际上是一个3步循环:节点间不停的交换布尔值。

节点可以在任意时间退出该循环。如果节点 iii 在退出前,在某步骤广播了一个值 bbb,退出后,其它节点就假装从 iii 那收到了 bb

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值