下一代共识机制探究——基于DAG的BFT共识

在区块链的语义里,BFT 共识是试图让 N 个验证节点(其中最多存在 f 个拜占庭节点)就一个无限增长的提案(区块或者交易集合)序列达成一致的机制。

众所周知,经典的基于 BFT 的共识算法,无论是 PBFT 还是改进的 HotStuff 通信复杂度都比较高,可扩展性差,且在网络不稳定的情况下延迟很高。

最近几年,随着 DAG 技术在区块链上的广泛应用,一种基于 DAG 的 BFT 共识被提出并不断完善,利用 DAG 的高效实现和其天然的异步通信机制在提升共识的可扩展性、缩短确认时间和提高交易吞吐量方面优势明显。但 DAG 作为异步操作,它不存在一个全局的排序机制,这就很可能出现节点间所存储的数据在运行一段时间以后出现偏差,在这种偏差下,如何就序列最终达成一致是 DAG 共识的关键。

本文将先介绍基础理论:基于 DAG 的 BFT 共识和基于轮的 BFT 共识,然后详细解读 DAGRider 、Tusk 以及 Bullshark 协议。

基于DAG的BFT共识

DAG,英文全称 Directed Acyclic Graph,中文意为有向无环图。

图(graph)由两部分组成:点(vertex)和边(edge),所谓有向无环图,其实就是:有方向的边,这些边在一个图中不会构成一个闭合的环路。
在这里插入图片描述

上面是有向树、DAG 图和有向图的示意图,从中可以看出三者之间的区别:

  • 有向树:每个顶点只能指向一个之前的顶点,整个数据有个明显流动方
  • 向 DAG 图:每个顶点可以指向多个之前的顶点,整个数据流也有一个明显的方向
  • 有向图:与 DAG 不同的是有向图允许有数据回流,整个结构的数据流向不明显

DAG在共识中的应用

在基于 DAG 的共识中,每个共识消息都包含一个提案(一个区块或者一组交易集合)和一组对以前消息的引用,这里的引用可以理解为:每一条新消息都必须明确地指向若干之前的消息,引用某一条消息即表明对该消息的认可和投票。

对应在 DAG 图中,一个消息是一个顶点,它的引用是一条边,因此,所有共识消息一起形成了一个不断增长的 DAG 图。

基于 DAG 的共识可分为两层:

  • 网络通信层:负责可靠地传播和接收提案、投票消息,并将消息绘制成 DAG 图
  • 零通信开销的定序层:各验证节点在不发送额外消息的前提下,仅通过解析其本地的 DAG副本独立提取提案的公共顺序,并能保证所有验证节点就提案的串行提交顺序最终达成一致

从消息的产生到消息的最终提交,由于网络的异步特性,不同验证节点上的 DAG 视图在任何时候都可能略有不同,所以如何保证所有验证节点就提交顺序最终达成一致是所有基于 DAG 共识算法的关键和难点。

与传统BFT的比较

经典的基于 BFT 的共识算法,无论是 PBFT 还是改进的 HotStuff 都需要一个 Leader 节点收集交易生成区块,广播并接收来自其他节点的投票,经过三个阶段的交互后(pre-prepare、prepare、commit)最终对区块提交达成一致性共识,协议比较依赖各节点间共识消息的可靠传递。

而基于 DAG 的共识,利用 DAG 图抽象出网络通信层,将消息传播与共识逻辑(提案定序)分离。这种分离带来的好处是,每个节点都可以异步地计算共识状态与提交序列,从而降低延迟与减少通信过程中的网络开销,再加上 DAG 的高效实现,使得基于 DAG 的共识拥有较好的可扩展性和高吞吐量。

基于轮的BFT共识

在基于轮(round)的 DAG 中,每个顶点都与一个整数(round number)相关联。每个验证节点

相关推荐

面向隐私计算+AI的TensorFlow深度定制化实践

面向隐私AI的TensorFlow深度定制化实践文章目录面向隐私AI的TensorFlow深度定制化实践TensorFlow 快速回顾TensorFlow 的核心概念TensorFlow 自定义算子库的扩展方法Rosetta 对 TensorFlow 的深度定制化计算图的转换构建过程小结参考文献参考文献在上一篇文章整体介绍中,我们整体上了介绍了基于深度学习框架开发隐私 AI 框架中的工程挑战和可行解决方案。在这一篇文章中,我们进一步结合 Rosetta 介绍如何定制化改造 TensorFlow 中前后

Matrix_element的博客 4655

【密码学探秘】EVM链和并行执行交易

在web3.0世界中,交易的处理性能一直是公链面临的一大技术挑战,如何在不降低安全性和去中心化程度的前提下显著的提升区块链交易的TPS无疑成为众多公链技术专家追逐的目标。是否可以既做到对EVM的兼容,又可以通过并行执行交易来达到提升性能的目的呢?

Matrix_element的博客 563

PrivacIN Week4课程回顾 | ZK应用实践

隐私学院【PrivacyIN】第一期ZK训练营第四课——《ZK Hands-on》如期开讲,主要介绍Circom电路开发和ZK应用实践。

Matrix_element的博客 2019

PrivacIN Week3课程回顾 | 韩博士讲授ZK电路开发 & zkEVM设计

隐私学院PrivacyIN首期ZK训练营第三课——《Applied ZK In Practice》开讲,由香港科技大学在读博士韩思远以ZK电路开发和zkEVM设计为主题,围绕零知识证明应用电路设计及zkEVM构建思路展开讲授。

Matrix_element的博客 857

PrivacyIN Week2 | 张宇鹏博导开讲经典零知识证明协议设计原理

隐私研究院PrivacyIN第一期ZK训练营课程精讲内容上线,本期课堂邀请到美国德州农工大学(Texas A&M University)计算机科学与工程学院的助理教授张宇鹏,主要介绍经典零知识证明协议设计原理,课堂主题为《Basic Principles of the Classic ZK Protocols (Groth16 Plonk Stark)》。

Matrix_element的博客 698

PrivacyIN Week1课程回顾 | 张宇鹏博导开讲零知识证明密码学基础&研究导论

隐私学院PrivacyIN第一期ZK训练营课程精讲内容上线,本期课堂邀请到美国德州农工大学(Texas A&M University)计算机科学与工程学院的助理教授张宇鹏,主要介绍ZK理论及相关应用,课堂主题为《Basics of ZK Cryptography & Research Overview》。

Matrix_element的博客 1793

PrivacyIN隐私学院第二期训练营开启报名 聚焦门限签名及安全多方计算

TSS(Threshold Signature Scheme 门限签名) 是MPC(安全多方计算)密钥管理的重要研究方向,可以支持多方管理私钥和资产。

Matrix_element的博客 1508

PrivacyIN课程 | 详尽解析ZK重要协议的设计理念【内含视频】

本期课程由德克萨斯农工大学计算机科学与工程系助理教授张宇鹏详细介绍了ZK重要协议的设计理念,包括:Groth16 Plonk Stark。不同电路满足不同的场景,从性能、可信启动等角度进行对比。

Matrix_element的博客 356

PrivacyIN课程视频 | Basics of ZKP Cryptography & Research Overview

初识零知识证明

Matrix_element的博客 343

PrivacyIN首期ZK训练营毕设启动 学术、投资导师全程护航

第二期再见!

Matrix_element的博客 364

转:PrivacyIN隐私学院掀起密码学热潮 首期密码学讲座今日开启

PrivacyIN将开启课程之外的系列讲座,首期讲座于今日7月28日20:30(UTC+8)开启

Matrix_element的博客 968

PrivacyIN隐私学院开启报名啦!打造密码学全球「私」塾

PrivacyIN隐私学院首期ZK训练营开启报名!

Matrix_element的博客 447

【隐私计算笔谈】零知识证明系列专题(二):一个个人化的视角:零知识、模拟与归约

> 你或许已经坐在了历史上最好的观景台上。眼下的密码算法与协议——如零知识证明与安全多方计算等——正在深刻地改变社会个体/组织之间信任的来源和它的成本。密码技术可能会远远超出一个技术的范畴,最终对社会变革产生深远的影响。或许,我们将要看到的景象要远比Michael Lewis「在金融业即将迎来变革的戏剧性时刻坐在位置最好的观景台前」所看到的更加波澜壮阔。——邓燚文 | 邓燚本文承接:【隐私计算笔谈】零知识证明系列专题(一):零知识证明与重置模拟文章目录Feige-Shamir:优雅的证据

Matrix_element的博客 1534

【隐私计算笔谈】MPC系列专题(十九):三方复制秘密共享(五)

文章目录三方OT跨表示形式的子秘密计算推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路【隐私计算笔谈】MPC系列专题(.

Matrix_element的博客 1584

【隐私计算笔谈】零知识证明系列专题(一):零知识证明与重置模拟

【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)你或许已经坐在了历史上最好的观景台上。眼下的密码算法与协议——如零知识证明与安全多方计算等——正在深刻地改变社会个体/组织之间信任的来源和它的成本。密码技术可能会远远超出一个技术的范畴,最终对社会变革产生深远的影响。或许,我们将要看到的景象要远比Michael Lewis「在金融业即将迎来变革的戏剧性时刻坐在位置最好的观景台前」所看到的更加波澜壮阔。——邓燚文 | 邓燚文章目录【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(

Matrix_element的博客 1836

【隐私计算笔谈】MPC系列专题(十八):三方复制秘密共享(四)

【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)在三方复制秘密共享的基本操作中,有些操作在算数电路的环Z2k{Z_{2^k}}Z2k​上进行效率高,而有些则在布尔电路上进行效率高,因此需要有操作将在环上表示的操作数转换为布尔表示(二进制表示),而操作数在安全多方计算中都是以子秘密( Share )的形式,因此实际是将环上表示的三方复制秘密共享子秘密转换为按比特共享的子秘密形式,记为[x]A→[x]B。之前的科普已经介绍过将在域Fq下的子秘密转换为按比特共享的子秘密形式,三方复制秘密共享

Matrix_element的博客 1336

【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)

作者 | 胡震恺 等【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)文章目录【隐私计算笔谈】MPC系列专题(十七):三方复制秘密共享(三)三方复制秘密共享(二)推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私.

Matrix_element的博客 1456

【隐私计算笔谈】MPC系列专题(十六):三方复制秘密共享(二)

作者 | 胡震恺 等【隐私计算笔谈】MPC系列专题(十六):三方复制秘密共享(二)文章目录【隐私计算笔谈】MPC系列专题(十六):三方复制秘密共享(二)Truncate ITruncate II推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元.

Matrix_element的博客 1569

【隐私计算笔谈】MPC系列专题(十五):三方复制秘密分享

【隐私计算笔谈】MPC系列专题(十五):三方复制秘密分享文章目录【隐私计算笔谈】MPC系列专题(十五):三方复制秘密分享三方复制秘密分享三方复制秘密分享复制秘密共享( three-party replicated secret sharing ),是另一种秘密共享技术。本次科普要介绍的是Araki等人的半诚实的三方复制秘密共享协议,用于在三方环境下的安全多方计算和秘密共享,可以容忍最多一个腐化用户,其相比于Shamir(2, 3)来说有非常小的通信量和计算量。首先介绍在布尔电路下的情景,假设参与者

Matrix_element的博客 2814

【隐私计算笔谈】MPC系列专题(十四):双方比较

【隐私计算笔谈】MPC系列专题(十四):双方比较文章目录【隐私计算笔谈】MPC系列专题(十四):双方比较双方比较双方比较之前已经介绍过了利用加密电路或者比特分解来实现安全多方比较。本次再介绍一种利用不经意传输来实现双方比较的方法。不经意传输在之前的科普进行过介绍,该比较协议的主要思路为:将需要比较的两个比特串分为多个部分,每个部分再进行比较,最后利用树形结构进行组合。假设有比特串????和比特串????,将比特串????划分为两个部分,分别为????1,????0,将比特串????也划分为????

Matrix_element的博客 1747

【隐私计算笔谈】MPC系列专题(十三):比特分解

【隐私计算笔谈】MPC系列专题(十三):比特分解文章目录【隐私计算笔谈】MPC系列专题(十三):比特分解比特分解推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺【隐私计算笔谈】

Matrix_element的博客 1042

【隐私计算笔谈】MPC系列专题(十二):比特比较

【隐私计算笔谈】MPC系列专题(十二):比特比较文章目录【隐私计算笔谈】MPC系列专题(十二):比特比较比特或比特比较(Bitwise Compare)推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私计算笔谈】MPC系列专题(六

Matrix_element的博客 1389

【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享

【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享作者 | 胡震恺 崔泓睿 郁昱文章目录【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享共享随机数随机单比特分享(Joint Random Bit Sharing)推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】M

Matrix_element的博客 1685

【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算

【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算作者 | 胡震恺 崔泓睿 郁昱文章目录【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算集合运算隐私保护集合交推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议

Matrix_element的博客 1619

【隐私计算笔谈】MPC系列专题(九):OT协议(三)

【隐私计算笔谈】MPC系列专题(九):OT协议(三)作者 | 胡震恺 崔泓睿 郁昱文章目录【隐私计算笔谈】MPC系列专题(九):OT协议(三)OT扩展协议推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议【隐私计算笔谈】MPC系列专题

Matrix_element的博客 2256

【隐私计算笔谈】MPC系列专题(八):OT协议(二)

【隐私计算笔谈】MPC系列专题(八):OT协议(二)作者 | 胡震恺 崔泓睿 郁昱文章目录【隐私计算笔谈】MPC系列专题(八):OT协议(二)通用的半诚实公钥OT协议Beaver的非黑盒构造推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BM

Matrix_element的博客 2940

【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路

【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路文章目录【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路Kolesnikov 的门估值秘密共享方案推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议Kolesniko

Matrix_element的博客 1702

【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺

【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺文章目录【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺零知识证明比特承诺零知识证明交互式证明系统由两方参与,分别为证明者( Prover )和验证者( Verifier ) 。证明者掌握某一秘密,证明者需要让验证者相信自己掌握该秘密。交互式证明过程需要多轮,最典型的是每一轮验证者向证明者发送一个询问信息( 挑战,Challenge ),证明者对询问信息进行计算,并回复信息响应( Response )。验证者根据证明者每一

Matrix_element的博客 1971

【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议

【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议文章目录【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议Beaver三元组BMR协议推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议Beaver三元组Beaver三元组( Beaver Triple )主要用

Matrix_element的博客 7652

【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议

【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议文章目录【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议GMW协议BGW协议推荐阅读【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路GMW协议GMW协议由Goldreich等人提出,基于混淆电路( Garbled Circuit ),支持多方的半诚实的安全计算协议。和之前所述的姚氏混淆电路估

Matrix_element的博客 6207
上一篇: 【密码学探秘】EVM链和并行执行交易
PlatON技术团队
PlatON技术团队 企业官方账号 企业官方账号
博客等级 码龄6年 326粉丝 36原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值