一、PBFT(Practical Byzantine Fault Tolerance)是一种应用于分布式系统的容错算法。它由吉米·米勒(J.M.Miller),罗伯特·鲍曼(R.P.Berman)和约翰·罗斯博士(Dr.JohnRossom)在1999年提出,它允许复制服务器在存在恶意(Byzantine)节点的情况下,仍能正确地计算和执行共识指令。 PBFT 能够用于解决分布式系统中出现的 Byzantine Generals 问题。 Byzantine Generals 问题指的是,有一大群将军围攻一个城市,而将军之间只能通过书信而不能直接交流,如何让所有将军的行动一致达成统一的决定?(交易用大牌:欧易官网注册,APP下载)
二、PBFT算法被广泛用于区块链系统,其目的是确保节点之间同步更新状态,但在存在恶意审计员的情况下仍能够确保结果的正确性和一致性。与其他加密货币及区块链系统不同,PBFT 算法采用基于投票的共识机制,从而确保网络的安全性和可靠性。
三、PBFT算法还可以用于币圈和链圈的防止诈骗工作:现在区块链方面的项目太火了,国内外各类传销、资金盘都打着“金融创新”“区块链”的旗号,通过发行所谓“虚拟货币”“虚拟资产”“数字资产”等方式吸收资金,侵害公众合法权益。此类活动并非真正基于区块链技术,而是炒作区块链概念行非法集资、传销、诈骗之实。请大家务必要警惕!还要警惕各类交易所小平台,必须选择全球知名的品牌。
四、PBFT算法的基本步骤有三个:预言阶段、投票阶段和 根据投票决定阶段。在预言阶段,N 个节点中的其中一个节点(usually被称为Primary)将发布一个报文,向其他节点广播它的预言。然后,其他节点以对该预言的投票出来表达自己的意见。在投票阶段,每一个节点都会根据其自己的算法发送出一个 投票消息,表达他对该预言的意见。最后,在最后的 entitle 阶段,所有的节点都会选择一个过半的决议,最终得到预言成功被接受的结果。
五、PBFT算法具有较高的安全性和性能,并可以减少负载和网络传输的开销,但有一定的限制。由于 PBFT 算法只是一种试验性的算法,它暂时不能应用于大型分布式系统中。此外,它还受到节点数量和投票阶段的限制,因此不能实现完整的共识性。
PBFT耗时与流量特征
以前面仿真程序为例,分析PBFT的耗时与流量特征。实验如下,100个节点构成1个无标度网络,节点最小度为5,最大度为38. 从每个节点发起1次交易共识。统计每次交易的耗时以及流量。本文所述的流量见前述仿真程序的说明:区块链实验室(3) – 用Go语言仿真PBFT算法。
1.耗时特征
耗时特征见下图所示。横坐标是节点的度,纵轴是耗时(毫秒)
从上图可以看出,在度值小的节点上发起的交易,与度值大的节点上发起的交易,两者的耗时差别不大。原以为在度值大的节点上发起交易(例如上图的度值38),该节点处于网络中心位置,报文传播速度快,耗时应该会少些。相应地,在度值小的节点上发起交易(例如上图的度值5),该节点处于网络的边缘位置,耗时会多一些。
实验数据并非如此,在度值大或者度值小的节点上完成交易,两者耗时差别不大。该网络共100个节点,协同共识的节点要满足3f+1的要求,f=33. 要满足这个条件,每条交易的共识,至少要传播到33个节点。即便从网络中心位置发起交易,传播到33个节点时,估计也到了网络边缘。同样地,从网络边缘位置发起交易,传播到33个节点时,估计也到了网络中心。因此,完成交易的耗时,也发起交易的位置没有显著关系,耗时差别不大。
2. 流量特征
流量特征见下图所示。如有兴趣,自行加以分析。
基于实用拜占庭共识算法(PBFT)的区块链模型的评估
研究背景
区块链是一种去中心化的或着严格意义上说是一个多中心化的分布式数据库系统。区块链中的每一个节点都存储这所有的交易记录或者其交易记录Merkle树的哈希值。该系统是由一系列使用密码学方法进行加密以及压缩产生的数据区块后再有序链接而成。由于前一个区块的merkle树的哈希值都包含在下一个区块中,因此在特定时间内,每个区块中的内容都是无法被他人篡改的。
当前,区块链一共发展成为三种差异化类型:公有链,联盟链,私有链。
公有链以比特币为代表,公有链上的所有的交易数据都是公开的,因此每个人都可以对公有链上的数据进行验证。由此可以看到公有链是完全的分布式去中心化系统,用户参与度高。
联盟链,顾名思义,参与其中的节点都是事先选择好的,并且之间有着一定的联系与关系。相对于公有链而言,联盟链中由于参与节点数量较为固定,节点的信用度更好等原因,其交易速度更快,成本更低,并且交易的耗能也更小。
私有链,参与其中的节点更少,比如某些特定的机构,由此可以看出,私有链相对于区块链的本质有所违背,然而可以满足部分场景的应用。
受到可编程货币的影响,各大银行机构都在探索如何将区块链这项技术技术应用于金融行业中。人们试验将智能合约的理念与技术应用于区块链之中,从而进一步形成了可编程金融的模式。
目前区块链中的“数据防伪”,“去中心化”等特点在各个领域都得到了广泛的重视。仲裁,溯源,物流,投票等领域都可以将区块链应用其中。从而让整个社会进入了智能互联网时代,使得区块链不仅仅在金融货币方面降低信任成本,在其他领域也可以得到相应的运用。从而形成一个可编程的社会。
随着互联网技术的飞速发展以及广泛的使用,很多人都认为区块链将会是“下一个互联网”。可以看出人们十分看好区块链技术的发展。目前世界各地的高校,银行,IT企业等都纷纷投入人力物力在区块链的研究中,一个重新定义信任的下一代互联网即将来临。
国外研究现状
目前,比特币以及衍生出来的不同种数字货币仍是区块链的主要研究与应用的对象。而各大互联网,IT等企业涉足区块链之后,着手研究将区块技术推向金融领域,最终将区块链应用到日常生活的各行各业中。目前,瑞波公司推出的ripple协议,希望成为下一代支付协议,使其像通信一样方便。其推出的瑞波币也得到了世界范围内越来越多人的关注。此外,区块链在其他方面也有广泛的应用。Follow My Vote公司开发出了区块链在线投票软件。这个投票软件不同于传统的投票软件,它是一个股份加权投票软件。与此同时,该软件利用区块链技术作为其底层,从而可以保证选民的选票不可被篡改,候选人的选票不可被更改。最终投票确定后的结果也是不可以被更改的,该结果对区块链上的所有用户公开,因此是否正确也可以方便查询。从而可以说这个投票软件可以让投票变得更加公平公开。
IBM发起了一个可以进行食品溯源的区块链项目IBM FoodTrastIBM公司认为食品行业的参与者需要从一个可信的、端到端的观点去看他们的供应链,他们还需要看到整个行业的透明度在不断增加。在食物供应链的整个系统中能对食品进行溯源以确保食品安全。并同时能够更快地对污染进行排查与追踪。这样使得食品链中的供给商、分销商、物流供应商等在每一步操作中都对外透明,从而使最终消费者从中受益。通过ffiM FoodTmst解决方案,若食品安全存在问题,供应商和零售商就能快速有效地追踪和召回产品。这个解决方案为食品供应链的参与者们提供了一个有权限的、共享的食品行业信息视图。若将区块链技术作为数字化战略的核心,则食品行业有机会迅速、高效、准确地应对目前存在的健康风险。从而大大提高视频安全。迄今为止,IBM己与多家公司签约将此项目投入实际使用。
国内研究现状
根据工信部发布的《中国区块链技术和应用发展白皮书》,可以从中梳理出区块链技术不等于数字货币,因此需要将区块链技术与数字货币进行区分。国家大力支持区块链技术的发展,而对于数字货币的管理在短时间内不会放宽。
不同于西方世界着眼于区块链在ICO领域的发展,由于国内监管部门的严密监控,我国更着重于区块链在落地应用方向的研宄。
区块链的研究主要可以分为区块链的侧链与跨链研究、区块链的应用研宄、区块链中智能合约的研究、区块链中的共识算法的改进与可扩展性的研究、区块链中节点数据传输性能的研究、区块链技术的安全研究等。
智能合约技术也是由于区块链技术的出现而再一次的出现在了人们的眼前,然而智能合约技术目前的不稳定性以及安全性等问题,还需要进一步的研究才能真正的应用在实际生活中。而区块链的共识算法,安全性,可扩展性以及节点数据传输性能等都旨在对区块链本身进行改进,从而使得区跨链能够更好地为我们进行服务。
区块链核心技术
区块链数据库
区块链是一个多中心化的分布式记账账本,区块链中的各个节点相当于分布式系统中的数据库,然而其与分布式数据库不一样的地方是没有一个中心管理员去维持各个数据库之间的数据同步。然而在区块链中,数据只能够写入到区块的数据库中,不能够进行删改操作。在区块链中利用各种密码学的技术来保证存储在区块中的数据的安全。并且区块链是一个分布式的系统,篡改一个节点的数据也得不到系统中大部分节点的承认,也只是徒劳而已。这种分布式数据库服务器集群的分布式为了实现服务的恢复与备份,数据的冗余等。然而他们仍然知识属于某一个企业或者机构,因此他们还是中心化管理的数据库集群。
然而由于区块链上的数据是分布式的并且经过了密码学的加密,因此无论是数据的上传者或者数据的存储者,都无法知道某个数据的具体存储的位置。这样就能很好的防止非法的内容污染区块链的数据库。
分布式账本
区块链是一个拥有具体技术的分布式账本,然而分布式账本并不全是区块链。
分布式账本在技术层面上与区块链一样是去中心化的,并且为了使得各个账本之间的数据保持一直也使用了共识算法。虽然使用的共识算法存在不同,这是因为传统的分布式账本不需要考虑拜占庭问题。
传统的账本结构都有着一个机构去管理着系统上的所有账本数据,从而这个分布式账本似乎并不是真正意义上的去中心化的系统。
在区块链中,我们所要实现的就是一个完全的,100%的去中心化,各个节点管理自己本地账本数据的分布式记账账本。
在这个系统中,没有一个机构能够管理着大部分的节点账本。
通过哈希函数与时间戳技术将各个账本连接在一起。
比特币中的分叉现象就是因为比特币社区中各个挖矿者之间竞争而造成的影响。
这是一种良性的竞争,这表明比特币系统中没有一个机构能够控制区块链上的所有的节点。
共识算法
POW与POS算法是目前公有链使用最多的共识算法。比特币,以太坊等目前比较著名的应用都是使用POW算法或POS算法。通过查阅比特币以及以太坊资料之后可以对POW算法与POS算法的性能可以得到以下一些结论:
目前公认的可以从系统的高吞吐量,低耗能,动态性等方面,根据区块链的使用场景对区块链的共识算法进行改进。
研究方向:
区块链的研究主要可以分为区块链的
侧链与跨链研究、
区块链的应用研宄、
区块链中智能合约的研究、
区块链中的共识算法的改进与可扩展性的研究、
区块链中节点数据传输性能的研究、
区块链技术的安全研究等。
在这其中侧链与跨链主要是为了解决目前单链情况下的存在的性能,容量,隐私以及各个链之间数据不能相互传递的问题。区块链的应用研宄是目前国内外区块链研宄的最热门方向。目前将区块链技术与各个领域各个行业相结合,可以大大增加各个行业的效率,从而得到了很多人的关注。
智能合约技术也是由于区块链技术的出现而再一次的出现在了人们的眼前,然而智能合约技术目前的不稳定性以及安全性等问题,还需要进一步的研究才能真正的应用在实际生活中。而区块链的共识算法,安全性,可扩展性以及节点数据传输性能等都旨在对区块链本身进行改进,从而使得区跨链能够更好地为我们进行服务。