http://www.0797jjw.cn

「算法」软硬协同的共识算法设计——以FastBFT为例

樱花区块链门户资讯网荟萃众多优秀文章精选,如果想要浏览更多相关区块链技术,可以关注本文结尾推荐的优秀文章内容。本站区块链资讯虽然不乏优秀之作,但仅为大家参考使用,希望能对关注区块链的人有所帮助。

导 读


我们知道,相比公有链,联盟链中使用的拜占庭容错(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的代码也分为了两部分,如下图所示:

以上便是樱花区块链给大家分享的关于「算法」软硬协同的共识算法设计——以FastBFT为例的相关信息了,希望能帮助到大家,更多区块链相关内容,敬请关注樱花区块链!

本文标题:「算法」软硬协同的共识算法设计——以FastBFT为例
本文地址:http://www.0797jjw.cn/qkljs/jishu_26959.html