为解决现有公钥基础设施跨域认证方案的效率问题,利用具有分布式和不易被篡改优点的区块链技术,提出基于联盟区块链的跨域认证方案。一方面,该方案对联盟链在传统实用拜占庭共识算法(PBFT)的基础上加入了节点动态增减功能;改进了主节点选举方式;将三阶段广播缩减为两阶段广播,减少了通信开销。另一方面,该方案设计了联盟链跨域认证协议,给出了区块链证书格式,描述了跨域认证协议,并进行了安全和效率分析。分析表明,在安全方面,该方案具有抵抗分布式攻击等安全属性;在效率方面,与已有跨域认证方案相比,该方案在计算开销上、通信开销上都有优势。
1
使用rust-libp2p作为网络层的 PBFT 共识算法的实现
2022-06-12 14:05:26 34KB rust 算法
区块链核心技术:拜占庭共识算法之PBFT.docx
2022-05-30 09:07:41 110KB 区块链 共识算法 综合资源 算法
针对现有实用拜占庭容错算法(PBFT)在联盟链应用场景下存在扩展性差,通信开销大,效率低等问题,提出了一种基于信用分级的拜占庭容错共识算法,即CLBFT (Credit-Layered Byzantine Fault Tolerance).在PBFT基础上,制定节点信用积分规则.提出一种基于信用等级划分的机制,把节点划分成4类,增强可信节点的主动性,减少异常节点的参与,达到系统良好运行的目的.实验结果表明,在长期运行状态下,CLBFT明显减少了通信开销,提高了系统效率.
1
背景 从事区块链相关研发几年了,共识这一块接触过pbft\kafka\raft,当然还有最经典的比特币的工作量证明,这个在上一篇比特币原理一文有讲述。对pbft一开始从fabric0.6开始,论文也看了几遍,后来共识换成了kafka\raft。pbft就没有继续研究下去,最近接触一个区块链底层平台,采用pbft。因此这里又把论文读了一遍,总结一下心得体会,对一些比较难理解的地方进行梳理。 PBFT算法 为什么是3f+1? 关于分布式系统里能够容拜占庭错误的节点数n>3f+1,这个结论早在1982年图灵奖得主lamport《The Byzantine Generals Problem》已经证明过
2022-03-11 23:57:56 76KB checkpoint 算法
1
pbft-实用的拜占庭容错
2022-02-28 17:18:24 1.86MB C
1
一种PBFT算法变种(实用拜占庭容错算法,联盟链共识算法),基于PBFT算法进行的改进。 原文名称:Tendermint: Consensus without Mining 作者:Jae Kwon
1
1、PBFT解决问题 BFT是区块链共识算法中,需要解决的一个核心问题。 以比特币和以太访为代表的POW,EOS为代表的DPOS,以及今后以太访逐渐替换的共识算法POS,这些都是公链算法,解决的是共识节点众多情况下的BFT;而PBFT是在联盟链共识节点较少的情况下BFT的一种解决方案。 PBFT算法由于每个副本节点都需要和其他节点进行P2P的共识同步,因此随着节点的增多,性能会下降的很快,但是在较少节点的情况下可以有不错的性能,并且分叉的几率很低。PBFT主要用于联盟链,但是如果能够结合类似DPOS这样的节点代表选举规则的话也可以应用于公链,并且可以在一个不可信的网络里解决拜占庭容错问题,TP
2021-11-28 11:50:34 121KB 区块链 数字货币 更新
1
区块链物联网 利用PBFT共识算法的区块链的python概念验证实现。 此特定实现专为IoT配置更新而设计。 在本地运行 在本地运行容器之前,请将manageChain.py中的'localIP'变量更改为您的本地IP地址。 然后,只需运行“ docker-compose up” 这仅仅是概念上的证明。 它不打算在实际部署中使用。
2021-10-22 20:37:45 303KB Python
1
区块链中的PBFT 实际的拜占庭容错在区块链中的实现 随附文章: : 文献资料 系统配置 通过在config.js文件中设置NUMBER_OF_NODES的值来更新系统中的节点数。 通过在config.js文件中设置TRANSACTION_THRESHOLD来更新要存储在一个块中的最大事务数。 运行节点 使用以下命令运行节点(假设总节点数为3) 第一个节点: SECRET="NODE0" P2P_PORT=5000 HTTP_PORT=3000 node app 第二个节点: SECRET="NODE1" P2P_PORT=5001 HTTP_PORT=3001 PEERS=ws://localhost:5000 node app 第三节点: SECRET="NODE2" P2P_PORT=5002 HTTP_PORT=3002 PEERS=ws://localhost:5
2021-10-22 20:36:28 215KB JavaScript
1