导航:首页 > 观区块链 > 区块链中proof

区块链中proof

发布时间:2024-01-02 03:46:18

1. 区块链技术框架有哪些

当前主流的区块链架构包含六个层级:网络层、数据层、共识层、激励层、合约层和应用层。图中将数据层和网络层的位置进行了对调,主要用途将在下一节中详述。
网络层:区块链网络本质是一个P2P(Peer-to-peer点对点)的网络,网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入。每一个节点既接收信息,也产生信息,节点之间通过维护一个共同的区块链来同步信息,当一个节点创造出新的区块后便以广播的形式通知其他节点,其他节点收到信息后对该区块进行验证,并在该区块的基础上去创建新的区块,从而达到全网共同维护一个底层账本的作用。所以网络层会涉及到P2P网络,传播机制,验证机制等的设计,显而易见,这些设计都能影响到区块信息的确认速度,网络层可以作为区块链技术可扩展方案中的一个研究方向;
数据层:区块链的底层数据是一个区块+链表的数据结构,它包括数据区块、链式结构、时间戳、哈希函数、Merkle树、非对称加密等设计。其中数据区块、链式结构都可作为区块链技术可扩展方案对数据层研究时的改进方向。
共识层:它是让高度分散的节点对区块数据的有效性达到快速共识的基础,主要的共识机制有POW(Proof Of Work工作量证明机制),POS(Proof of Stake权益证明机制),DPOS(Delegated Proof of Stake委托权益证明机制)和PBFT(Practical Byzantine Fault Tolerance实用拜占庭容错)等,它们一直是区块链技术可扩展方案中的重头戏。
激励层:它是大家常说的挖矿机制,用来设计一定的经济激励模型,鼓励节点来参与区块链的安全验证工作,包括发行机制,分配机制的设计等。这个层级的改进貌似与区块链可扩展并无直接联系。
合约层:主要是指各种脚本代码、算法机制以及智能合约等。第一代区块链严格讲这一层是缺失的,所以它们只能进行交易,而无法用于其他的领域或是进行其他的逻辑处理,合约层的出现,使得在其他领域使用区块链成为了现实,以太坊中这部分包括了EVM(以太坊虚拟机)和智能合约两部分。这个层级的改进貌似给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系
应用层:它是区块链的展示层,包括各种应用场景和案例。如以太坊使用的是truffle和web3-js.区块链的应用层可以是移动端,web端,或是是融合进现有的服务器,把当前的业务服务器当成应用层。这个层级的改进貌似也给区块链可扩展提供了潜在的新方向,但结构上来看貌似并无直接联系。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。

2. 区块链共识算法——(二)PoS共识(Proof of Stake)

2011 年 7 月, 一 位 名 为 Quantum Mechanic 的 数 字 货 币 爱 好 者 在 比 特 币 论 坛 首次提出了权益证明 PoS 共识算法. 随后, Sunny King 在 2012 年 8 月发布的点点币 (Peercoin, PPC) 中首次实现. PoS 由 系统中具有最高权益而非最高算力的节点获得记账 权, 其中权益体现为节点对特定数量货币的所有权, 称为币龄或币天数 (Coin days)

PoS是考虑到PoW的最大缺陷:浪费资源而提出的,简单来说就是 谁的权益大,谁说了算

PoS共识机制(Proof of Stake 权益证明)通过权益记账的方式,解决效率低下、资源浪费、节点一致性等问题。

各个节点需要满足一定的条件(如抵押一定的代币)才能成为验证节点(权益提高),系统通过算法在其中选择一部分作为出块节点(矿工),每隔一段时间重新选择,算法会保证完全随机,不可被操控。只有出块节点才能进行数据处理,争夺记账权。

权益主要由权益因子决定,可以是持币数量,也可以是币龄及两者的结合。

以太坊在之后很有可能会改用PoS进行共识,其更加符合以太坊高效率的特点。

3. POA(Proof of Activity)区块链共识算法

POA(Proof of Activity)算法是一个区块链的共识算法,基本原理是结合POW(Proof of work)和POS(Proof of stake)算法的特点进行工作,POW算法和POS算法的具体内容可以参考:

POW算法 : https://www.jianshu.com/p/b23cbafbbad2
POS算法 : https://blog.csdn.net/wgwgnihao/article/details/80635162

POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。
POA算法需求的网络中同样包含两类节点,矿工和普通参与者,其中普通参与者不一定一直保持在线。POA算法首先由矿工构造区块头,由块头选出N个币,这N个币的所有者参与后续的校验和生成块的过程。
从这里可以看到POA算法不仅与算力有关,后续的N个参与者的选举则完全由参与者在网络中所拥有的币的总数量决定。拥有越多币的参与者越有机会被选为N个后续的参与者。而后续N个参与者参与的必要条件是这N个参与者必须在线,这也是POA命名的由来,POA算法的维护取决于网络中的活跃节点(Active)。

POA算法的一个理想的基本流程是,类似于POW协议,矿工构造出一个符合难度要求的块头,通过矿工得到的块头计算衍生出N个币的编号,从区块链中追溯可以得到这几个币目前所述的参与者。矿工将这个块头发送给这N个参与者,其中前N-1个参与者对这个块进行校验和签名,最后第N个参与者校验并将交易加入到该块中,将这个区块发布出去,即完成一个区块的出块。
一个理想过程如下图所示:

在实际运行中,无法保证网络上所有参与者都在线,而不在线的参与者则无法进行校验和签名,这个无法被校验和签名的块头则会被废弃。
即在实际运行中,应该是一个矿工构造出块头后广播给各个参与者签名,同时继续重新构造新的块头,以免上一个块头衍生的N个参与者存在有某一个没有在线,而导致块头被废弃。
因此,在这种情况下,一个块是否被确认不仅与矿工的计算能力有关同时也与网络上的在线比例有关。
与纯POW相比,在与比特币(POW)同样10分钟出一个块的情况下,POA由于会有参与者不在线而产生的损耗,因此,10分钟内矿工可以构造的块的数量会更多,即块头的难度限制会降低,那么矿工在挖矿过程中会造成的能量损耗也会降低。
与纯POS相比,可以看到POA的出块流程并不会将构造区块过程中的相关信息上链,可以明显减少区块链上用于维护协议产生的冗余信息的量。

本节对上诉协议中一些参数设置进行分析

在矿工构造出块头后对块头进行校验和区块构造的N个参与者的数量选定比较类似于比特币中每一个块的出块时间的选取。比特币中选择了10分钟作为每一个块的期望出块时间并通过动态调节难度来适应。
这里N的取值同样可以选择选定值或者动态调节。动态调节需要更加复杂的协议内容,同时可能会带来区块链的数据膨胀,而复杂的协议也增加了攻击者攻击的可能性。另外暂时没有办法证明动态调节可以带来什么好处。静态调节在后续的分析(4 安全分析)中可以得到N=3的取值是比较合适的。

从上面的描述可以看到,构造新的区块的除了矿工还有从块头中衍生出来的N个币所有者。在构造出一个新的区块后,这些参与者同样应该收到一定的激励,以维持参与者保持在线状态。
矿工与参与者之间的非配比例与参与者的在线状态相关。给予参与者的激励与参与者保持在线状态的热情密切相关,越多参与者保持在线状态,能更好地维持网络的稳定。因此,可以在网络上在线参与者不够多的时候,提高参与者得到的激励分成比例,从而激发更多的参与者上线。
如何确定当前参与者的在线情况呢?可以最后第N个参与者构造区块时,将构造出来但是被废弃的块头加入到区块中,如果被丢弃的块头数量过多,说明在线人数过低,应当调节分成比例。
同时最后第N个参与者与其他参与者的分成同样需要考虑,第N个参与者需要将交易加入区块中,即需要维护UTXO池,同时第N个参与者还需要将被丢弃的块头加入新构建的区块中。
为了激励其将废弃区块头加入新构建的区块中,可以按照加入的区块头,适当增加一点小的激励。虽然加入更多的区块头,可以在下一轮的时候增加分成的比例,应当足够激励参与者往区块中加入未使用的块头了(这里参与者不可能为了增加分成而更多地加入区块头,每一个区块头都意味着一位矿工的工作量)。
一个参与者如果没有维护UTXO池则无法构造区块,但是可以参与前N-1个的签名,因此为了激励参与者维护UTXO池,作为最后一个构造区块的参与者,必须给予更多的激励,比如是其他参与者的两倍。

从3.2的描述中可以知道一个用户必须在线且维护UTXO池才可能尽可能地获得利益。这种机制势必会导致一些用户将自己的账户托管给一个中心化的机构。这个机构一直保持在线,并为用户维护其账户,在被选为构造区块的参与者时参与区块的构建并获取利益。最后该机构将收益按照某种形式进行分成。
上面说到参与者必须用自己的密钥进行签名,而托管给某个机构后,这个机构在可以用这个密钥签名构造区块的同时,也有可能使用这个密钥消费用户的财产。这里可以采用一种有限花销的密钥,这个密钥有两个功能,一个是将账户中的部分财产消费出去,另一个是将所有财产转移到一个指定账户。在托管的时候可以使用这个密钥,在被通知部分财产被花费后可以立即将所有财产转移到自己的另一个账户下,以保证财产的安全。

从上面的分析可以看到,POA的安全性与攻击者所拥有的算力和攻击者所拥有的股权有关。假设攻击者拥有的在线股权占比为 ,则攻击者的算力需要达到其他所有算力的 倍才能达成分叉。假设攻击者股权总占比为 ,网络中诚实用户的在线比例为 ,则攻击者的算力需要达到其他所有算力的 倍才能达成攻击。
攻击的分析表格如下:

从上文的分析可以看到,POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。同时,PoA协议的攻击成本要高于比特币的纯PoW协议。

参考文献:Proof of Activity: Extending Bitcoin’s Proof of Work via Proof of Stake

4. 号称“区块链的灵魂”的共识机制是什么

我们知道区块链是去中心化分布式记账技术,在区块链系统当中,没有一个像银行一样的中心化记账机构,如何保证每一笔交易在所有记账节点上的一致性呢?共识机制解决的就是这个问题,因此也可以说共识机制是区块链的灵魂。

目前比较常见的共识机制有:工作量证明 PoW(Proof of Work)、权益证明(Proof of Stake)以及委托权益证明(Delegated Proof of Stake):

 01 

PoW(Proof-of-Work)

工作量证明机制

POW的全称为Proof of Work,翻译过来即“工作证明”或者“工作量证明”。挖矿获得多少货币奖励,取决于挖矿贡献的有效工作,也就是说矿机的性能越好、挖矿的时间越长,所获得的货币奖励就越多。

BTC就是POW机制下最成功的加密货币。POW机制虽然已经成功证明了其长期稳定和相对公平,但在现有框架下,采用POW的“挖矿”形式,将消耗大量的能源。其消耗的能源只是不停的去做SHA256的运算来保证工作量公平,并没有其他的存在意义。而目前BTC所能达到的交易效率为约5TPS(5笔/秒),以太坊目前受到单区块GAS总额的上限,所能达到的交易频率大约是25TPS,与平均千次每秒、峰值能达到万次每秒处理效率的VISA和MASTERCARD相差甚远。

 02 

PoS(Proof-of-Stake)

权益证明机制

POS 即权益证明或者股权证明,全称为 Proof of Stake。权益证明模式就是根据所持有货币的量和时间,来发利息的的一个模式。

POS机制,相比于POW,POS机制节省了能源,引入了“币龄”这个概念来参与随机运算。POS机制能够让更多的持币人参与到记账这个工作中去,而不需要额外购买设备(矿机、显卡等)。每个单位代币的运算能力与其持有的时间长成正相关,即持有人持有的代币数量越多、时间越长,其所能签署、生产下一个区块的概率越大。一旦其签署了下一个区块,持币人持有的“币龄”即清零,重新进入新的循环。

在POS机制下,因为区块的签署人由随机产生,则一些持币人会长期、大额持有代币以获得更大概率地产生区块,尽可能多的去清零他的“币天”。因此整个网络中的流通代币会减少,从而不利于代币在链上的流通,价格也更易受到波动。由于可能会存在少量大户持有整个网络中大多数代币的情况,整个网络有可能会随着运行时间的增长而越来越趋向于中心化。相对于PoW而言,PoS机制下作恶的成本很低,因此对于分叉或是双重支付的攻击,需要更多的机制来保证共识。稳定情况下,每秒大约能产生12笔交易,但因为网络延迟及共识问题,需要约60秒才能完整广播共识区块。长期来看,生成区块(即清零“币龄”)的速度远低于网络传播和广播的速度,因此在PoS机制下需要对生成区块进行“限速”,来保证主网的稳定运行。

 03 

DPoS

委托权益证明机制

DPOS即授权股权证明(delegated proof of stake)。

DPoS机制要求在产生下一个区块之前,必须验证上一个区块已经被受信任节点所签署。相比于PoS的“全民挖矿”,DPoS则是利用类似“代表大会”的制度来直接选取可信任节点,由这些可信任节点(即见证人)来代替其他持币人行使权力,见证人节点要求长期在线,从而解决了因为PoS签署区块人不是经常在线而可能导致的产块延误等一系列问题。DPoS机制通常能达到万次每秒的交易速度,在网络延迟低的情况下可以达到十万秒级别,非常适合企业级的应用。

 04  其他共识机制

区块链系统中还有其它共识机制比如联盟链常用的PBFT,新经币(NEM)用的POI等。这些共识机制是为了解决现有共识机制的一些缺点而被提出的。但目前使用的系统不如POW,POS和DPOS多。

共识机制是区块链系统的核心,它决定了一个区块链系统的去中心化程度,性能和安全性。因此公链的开发中,共识机制的设计是核心和关键。

5. 区块链使用安全如何来保证呢

区块链本身解决的就是陌生人之间大规模协作问题,即陌生人在不需要彼此信任的情况下就可以相互协作。那么如何保证陌生人之间的信任来实现彼此的共识机制呢?中心化的系统利用的是可信的第三方背书,比如银行,银行在老百姓看来是可靠的值得信任的机构,老百姓可以信赖银行,由银行解决现实中的纠纷问题。但是,去中心化的区块链是如何保证信任的呢?
实际上,区块链是利用现代密码学的基础原理来确保其安全机制的。密码学和安全领域所涉及的知识体系十分繁杂,我这里只介绍与区块链相关的密码学基础知识,包括Hash算法、加密算法、信息摘要和数字签名、零知识证明、量子密码学等。您可以通过这节课来了解运用密码学技术下的区块链如何保证其机密性、完整性、认证性和不可抵赖性。
基础课程第七课 区块链安全基础知识
一、哈希算法(Hash算法)
哈希函数(Hash),又称为散列函数。哈希函数:Hash(原始信息) = 摘要信息,哈希函数能将任意长度的二进制明文串映射为较短的(一般是固定长度的)二进制串(Hash值)。
一个好的哈希算法具备以下4个特点:
1、 一一对应:同样的明文输入和哈希算法,总能得到相同的摘要信息输出。
2、 输入敏感:明文输入哪怕发生任何最微小的变化,新产生的摘要信息都会发生较大变化,与原来的输出差异巨大。
3、 易于验证:明文输入和哈希算法都是公开的,任何人都可以自行计算,输出的哈希值是否正确。
4、 不可逆:如果只有输出的哈希值,由哈希算法是绝对无法反推出明文的。
5、 冲突避免:很难找到两段内容不同的明文,而它们的Hash值一致(发生碰撞)。
举例说明:
Hash(张三借给李四10万,借期6个月) = 123456789012
账本上记录了123456789012这样一条记录。
可以看出哈希函数有4个作用:
简化信息
很好理解,哈希后的信息变短了。
标识信息
可以使用123456789012来标识原始信息,摘要信息也称为原始信息的id。
隐匿信息
账本是123456789012这样一条记录,原始信息被隐匿。
验证信息
假如李四在还款时欺骗说,张三只借给李四5万,双方可以用哈希取值后与之前记录的哈希值123456789012来验证原始信息
Hash(张三借给李四5万,借期6个月)=987654321098
987654321098与123456789012完全不同,则证明李四说谎了,则成功的保证了信息的不可篡改性。
常见的Hash算法包括MD4、MD5、SHA系列算法,现在主流领域使用的基本都是SHA系列算法。SHA(Secure Hash Algorithm)并非一个算法,而是一组hash算法。最初是SHA-1系列,现在主流应用的是SHA-224、SHA-256、SHA-384、SHA-512算法(通称SHA-2),最近也提出了SHA-3相关算法,如以太坊所使用的KECCAK-256就是属于这种算法。
MD5是一个非常经典的Hash算法,不过可惜的是它和SHA-1算法都已经被破解,被业内认为其安全性不足以应用于商业场景,一般推荐至少是SHA2-256或者更安全的算法。
哈希算法在区块链中得到广泛使用,例如区块中,后一个区块均会包含前一个区块的哈希值,并且以后一个区块的内容+前一个区块的哈希值共同计算后一个区块的哈希值,保证了链的连续性和不可篡改性。
二、加解密算法
加解密算法是密码学的核心技术,从设计理念上可以分为两大基础类型:对称加密算法与非对称加密算法。根据加解密过程中所使用的密钥是否相同来加以区分,两种模式适用于不同的需求,恰好形成互补关系,有时也可以组合使用,形成混合加密机制。
对称加密算法(symmetric cryptography,又称公共密钥加密,common-key cryptography),加解密的密钥都是相同的,其优势是计算效率高,加密强度高;其缺点是需要提前共享密钥,容易泄露丢失密钥。常见的算法有DES、3DES、AES等。
非对称加密算法(asymmetric cryptography,又称公钥加密,public-key cryptography),与加解密的密钥是不同的,其优势是无需提前共享密钥;其缺点在于计算效率低,只能加密篇幅较短的内容。常见的算法有RSA、SM2、ElGamal和椭圆曲线系列算法等。 对称加密算法,适用于大量数据的加解密过程;不能用于签名场景:并且往往需要提前分发好密钥。非对称加密算法一般适用于签名场景或密钥协商,但是不适于大量数据的加解密。
三、信息摘要和数字签名
顾名思义,信息摘要是对信息内容进行Hash运算,获取唯一的摘要值来替代原始完整的信息内容。信息摘要是Hash算法最重要的一个用途。利用Hash函数的抗碰撞性特点,信息摘要可以解决内容未被篡改过的问题。
数字签名与在纸质合同上签名确认合同内容和证明身份类似,数字签名基于非对称加密,既可以用于证明某数字内容的完整性,同时又可以确认来源(或不可抵赖)。
我们对数字签名有两个特性要求,使其与我们对手写签名的预期一致。第一,只有你自己可以制作本人的签名,但是任何看到它的人都可以验证其有效性;第二,我们希望签名只与某一特定文件有关,而不支持其他文件。这些都可以通过我们上面的非对称加密算法来实现数字签名。
在实践中,我们一般都是对信息的哈希值进行签名,而不是对信息本身进行签名,这是由非对称加密算法的效率所决定的。相对应于区块链中,则是对哈希指针进行签名,如果用这种方式,前面的是整个结构,而非仅仅哈希指针本身。
四 、零知识证明(Zero Knowledge proof)
零知识证明是指证明者在不向验证者提供任何额外信息的前提下,使验证者相信某个论断是正确的。
零知识证明一般满足三个条件:
1、 完整性(Complteness):真实的证明可以让验证者成功验证;
2、 可靠性(Soundness):虚假的证明无法让验证者通过验证;
3、 零知识(Zero-Knowledge):如果得到证明,无法从证明过程中获知证明信息之外的任何信息。
五、量子密码学(Quantum cryptography)
随着量子计算和量子通信的研究受到越来越多的关注,未来量子密码学将对密码学信息安全产生巨大冲击。
量子计算的核心原理就是利用量子比特可以同时处于多个相干叠加态,理论上可以通过少量量子比特来表达大量信息,同时进行处理,大大提高计算速度。
这样的话,目前的大量加密算法,从理论上来说都是不可靠的,是可被破解的,那么使得加密算法不得不升级换代,否则就会被量子计算所攻破。
众所周知,量子计算现在还仅停留在理论阶段,距离大规模商用还有较远的距离。不过新一代的加密算法,都要考虑到这种情况存在的可能性。

6. 区块链共识算法——(四)PoA共识(Proof of Activity)

PoA共识(Proof of Activity)也称为活动证明,其结合了PoW工作量证明与PoS权益证明的特点并进行了相应扩展,PoA共识具有更为复杂的记账节点选取,同时有更为公平的奖励机制。

PoA活动证明,主要的优势是利用公平的激励措施保证节点保持在线状态,调动节点积极性,线上矿工即使不挖矿也有一定的概率获取收益。大大提高了全网维护质量。

step1:每个矿工先利用自身算力通过工作量证明机制后得出nonce并生成一个空区块头,这个区块头除了没有交易信息数据外其他数据与正常区块一致。

step2:最先生成空区块的节点广播全网节点,全网节点接收到消息后,将此区块的hash值与上一区块的hash值进行拼接,然后加上n个固定后缀值进行再hash,最后得出n个值作为输入,进入follow-the-satoshi程序,然后可输出n个随机权益持有者。

step3:前n-1个随机权益持有者对空区块进行签名,第n个随机权益持有者即为获取到记账权的节点,他将在空区块的基础上添加交易数据与签名。

step4:第n个随机权益持有者将打包好的区块广播全网,全网节点接收到区块后进行验证,验证成功后上链。

step5:产生空区块的矿工与第n个随机权益持有者以及前n-1个已签名的随机权益持有者共享交易费奖励。

7. 区块链pow是什么意思

区块链PoW就是区块链上的一种共识机制,目前区块链上的共识机制的种类是有很多的,PoW只是其中的一种,它的意思是工作量证明机制,其它的共识机制还有POS(权益证明机制)、DPOS(股份授权证明机制)、DAG(有向无环图)、PBFT(实用拜占庭容错)等很多种。
POW的全称为ProofofWork,翻译过来就是“工作证明”或者“工作量证明”。
比特币、狗狗币和莱特币等都是基于POW模式的数字货币。就是说挖矿获得多少货币奖励,取决于挖矿贡献的有效工作,也就是说,矿机的性能越好、挖矿时间越长,所获得的货币奖励就越多。
工作量证明的重要意义在于:它迫使货币的产生,需要付出一定的工作量和成本,这就赋予了货币一定的商品属性,使得自由市场这只无形的手能够通过“价格机制”自发地调节货币供应,保证了货币具有稳定的价值,从而使得货币能够获得人们的信任。

8. 区块链笔记——PBFT

PBFT是实用拜占庭容错的简称,是解决拜占庭将军问题的一种方案。比起最开始的BFT算法,PBFT额外要求网络封闭,即节点数目确定并提前互通,但将复杂度从指数级降低到多项式级,使得BFT系列算法真正具有可行性。

与POW、POS等大家耳熟能详的共识不同,BFT系列的共识不需要“Proof”,亦即不需要节点投入算力或其他资源来确权,因此不需要代币激励便可完成共识。缺点是原始的BFT效率太低,只能存在于理论而无法应用。而改进的PBFT虽然效率大大提高,却对节点数量和状态提出了要求,导致合格的记帐节点太少,并且也只能维持在少数,过多的节点会拖慢网络速度。因此PBFT更多是用在联盟链和私链上。公链也有应用,例如NEO,便是采用了PBFT算法。

拜占庭将军问题的实质是在恶劣的通讯环境中,如何使各参与方达成一致意见。POW和POS等共识要求参与方投入成本,争夺唯一的发言权。在某一段时间内只有唯一的发言人,自然只会有一个意见,从而达成共识。PBFT采取不同的思路,要求各参与方相互发送及验证彼此的信息,最终采用多数原则达成共识。

PBFT能够以一种低成本的方式实现节点间共识,其理念其实相当贴近我们的生活习惯。例如在老师布置作业后,同学们总要互相问问确认一下,才放心地把今天的作业记到本子上。当然实现上还有很多细节,保证各节点的平等关系。在节点数目不多的时候,节点之间实现相互通信的成本并不高,节点之间可以快速发送确认。但节点数目增长却会带来整体性能的下降。PBFT可以容忍的坏节点数量不多于总数的三分之一,如果节点损坏率比较固定,提高总节点数量虽然能使系统获得更好的冗余,却会大大增加通讯量,造成效率下降。加上PBFT没有激励机制,其适合联盟链和私链场景。作为公链不可避免地节点数量太少,分布过分集中,例如NEO只有七个节点。

PBFT要求坏节点数量f<=(n-1)/3,这里n是总节点数。只要f满足这个条件,共识总是可以达成。为什么f要满足这个条件?简单来说,假设网络中存在恶意节点联盟,其控制了数量为f的节点,这些节点可以故意发布错误的信息。此时网络中正常节点数量为n-f个。将这n-f个节点分为两部分,各自包含一部分节点。对于任一部分正常节点来说,只要恶意节点数f大于自身节点数,同时大于剩余的正常节点数,这部分正常节点便会与恶意节点联盟达成共识。此时只要恶意节点联盟先后向两部分正常节点发送不同的共识信息,便可造成网络分叉。因此要保证网络运行,对于每一部分正常节点来说,网络中恶意节点数量不能同时大于自身节点数和网络剩余正常节点数。代入计算便得到f<=(n-1)/3。

9. 区块链共识机制有哪些

1.pow( Proof of Work)工作量证明
一句话介绍:干的越多,收的越多。
2.POS Proof of Stake,权益证明
一句话介绍:持有越多,获得越多。
3.PBFT :Practical Byzantine Fault Tolerance,实用拜占庭容错
介绍:在保证活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容错性。
4.dBFT: delegated BFT 授权拜占庭容错算法
介绍:小蚁采用的dBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。
5.POOL验证池
基于传统的分布式一致性技术,加上数据验证机制。
智链ChainNova是一家做区块链的公司,感觉挺不错的,虽然不懂什么哈希算法,但还是知道一点点。

阅读全文

与区块链中proof相关的资料

热点内容
BTC3S杠杆的风险 浏览:168
币空间矿池 浏览:332
中国会恢复比特币交易 浏览:692
有私钥如何还原比特币 浏览:709
现在值得入手虚拟货币 浏览:268
2100BTC 浏览:586
以太坊今天实时价位 浏览:809
挖以太坊的风险是什么 浏览:299
奥马电器和数字货币有关系吗 浏览:442
数字货币的商机是真的还是假的 浏览:860
数字货币组合投资 浏览:9
比特币算力与电信网络有关吗 浏览:544
虚拟货币市场哪种比较有潜力 浏览:701
比特币还有什么币减半 浏览:340
达沃斯论坛中国区块链白皮书 浏览:978
ethpoolorg矿池 浏览:578
比特币价格数学模型 浏览:244
区块链技术利润 浏览:885
虚拟货币能赚多少 浏览:262
以太坊开宝箱的游戏 浏览:265