技术指南 | 软硬协同的共识算法设计——以FastBFT为例
2021-01-21 11:56:58
1500
导 读
我们知道,相比公有链,联盟链中使用的拜占庭容错(BFT)算法能够有效地提升区块链的交易处理能力。但是,传统的BFT算法,例如PBFT[1]算法,为了容忍f个拜占庭错误节点,需要保证系统中的节点总数至少是3f+1。与之相比,RAFT[2]等能容忍f个停机错误(CFT)的共识算法仅需要2f+1个节点就能正常运作。那么我们不禁会去想,能不能通过某种方法使得一个拜占庭系统也只需要总共2f+1个节点就能够抵御拜占庭攻击呢?
幸运的是,这样的方法是存在的。我们可以借助可信硬件,消除拜占庭节点的二义性(equivocation),从而仅需要2f+1个节点,就能有效地防止拜占庭攻击[3]。
本文以FastBFT[4]为例,介绍FastBFT是如何借助可信硬件,取得比传统BFT算法更好的性能的。
可信硬件
FastBFT算法使用的可信硬件是IntelSGX (Software Guard Extensions)[5],Intel第六代CPU之后的一组扩展指令集。目前,很多个人电脑和服务器都可以支持SGX相关的功能。在SGX的编程模型中,一个程序分为可信代码(enclave)和不可信代码。SGX保证了在enclave中运行的代码和数据不能被其他程序(包括操作系统和虚拟机监视器)访问和篡改。并且,通过enclave写入到磁盘的数据会被加密,只有该enclave能够读取。不可信代码只能调用enclave提供的有限的可信函数接口来改变enclave的内部状态,获取enclave的内部信息。
因此,FastBFT的代码也分为了两部分,如下图所示:
声明:所有在本站发表的文章,本站都具有最终编辑权。本站全部作品均系微算力原创或来自网络转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责,所产生的纠纷与本站无关。如涉及作品内容、版权和其它问题,请尽快与本站联系。
相关推荐
最新快讯
-
贝莱德BUIDL Fund向某未知地址转移100万枚USDC2024-10-30 20:46:44
-
彭博社预计明年新会计制度将使 MicroStrategy 由亏损转为盈2024-10-30 20:39:46
-
贝莱德ETHA的以太坊持仓市值接近12亿美元2024-10-30 20:31:58
-
Starknet 跨链桥 StarkGate v2.0 Beta 版在主网上线2024-10-30 20:30:01
-
Owlto发布技术白皮书,提出以意图为中心的全链流动性解决方案2024-10-30 20:20:19
-
SUI跌破2美元2024-10-30 20:17:36
-
UNI跌破8美元2024-10-30 20:15:57