LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 如何启动区块链:选择共识算法

如何启动区块链:选择共识算法

2020-04-20 wanbizu AI 来源:区块链网络

在开发自己的区块链之前,您的团队必须清楚地了解区块链的用途以及可以为其内容分配的预算。

区块链的设计和发布都有自己的细微差别。如果您错误地估计了任务的数量和复杂性,在计划时很容易错过它们。

为了帮助项目避免此类错误,MixBytes研究部门负责人Sergey Prilutsky编写了有关如何启动区块链的分步指南。

本文将帮助您根据共识算法的技术特性和局限性(用于构建自己的区块链)做出决定(在上一篇文章中对其进行了详细介绍)。

***

我将从一个事实出发,即区块链是为相当复杂的交易而设计的。所有经过考虑的解决方案均适用于处理放置在区块链上的代码。

我故意不将处于开发早期阶段的解决方案列表包括在其中,这对于广大程序员来说是未知的,或者没有确保区块链安全运行的重要机制:它们对节点的拜占庭行为不稳定(非BFT)或可以通过单个帐户成功攻击。没有这些属性,区块链就没有价值,会变成使用数据库的缓慢,昂贵和不便的地方。

要决定是构建新系统还是使用现成的解决方案,首先,您需要确定共识-提供BFT区块链属性的主要算法。

共识:工作量证明,权益证明,权限证明

首先,在启动和运行网络方面考虑不同类型的共识。区块链中的任何BFT共识都必须至少满足分布式系统的两个重要属性:安全性和活动性。

安全性可确保大多数节点如实遵守协议,并且永不枯燥地确保算法永远不会出错,并且算法不会因无法选择路径而卡住。

如果网络中有拜占庭式参与者故意以最坏的方式行事,则必须保证满足这些属性。

工作量证明(PoW)

这种共识的优点是无需在网络中注册验证器。任何符合要求的区块都将被接受,而无需其他参与者的确认。这使您仅保留逻辑部分中负责更改挖掘复杂性的部分。

从理论上讲,这种共识允许任何数量的验证者-毕竟,许多验证者可以竞争一个区块。在真实的网络中,如果有很多验证者(矿工),并且网络的复杂性很高,那么单个矿工获得块状奖励的机会就很少。为了达成这样的共识,有必要立即计划结合采矿能力和相应软件的采矿池的工作。

网络启动时,验证者必须立即建立强大的计算能力。这经常被忽略,希望网络复杂性和矿工数量逐渐增加。当攻击者在很短的时间内租用大量服务器以获取51%的网络哈希并进行双花攻击时,较低的哈希率为51%的低成本攻击打开了大门。

因此,对于PoW网络,您将不得不计划一个更复杂的启动过程。首先,团队使用自己的验证器启动一个网络,然后逐步让位于矿工生产区块,而在这种情况下,可以逐渐增加产能。

授权证明(PoA)

PoA共识是一种算法,它使用一组预定义的帐户,这些帐户可以产生区块并进行投票以接受和排除新成员。对于企业区块链和测试网络,这种共识是一种自然选择。可能根本没有内部令牌,在对区块进行投票时以及在选举验证人时,1个验证人= 1票。

该算法系列由基本的pBFT算法表示。在修改后的形式中,它是达成大量共识的基础,使您可以在所有数据均具有所有安全保证的情况下达成共识。

在上一篇文章中,我已经说过,不能保证需要来自验证者的消息少于2/3 +1的安全共识。 pBFT在数学上证明了这一点。以不同的共识,这些消息在不同的时间点被收集,这些消息确认验证者接受了该块。

收集确认并进一步识别该区块为最终版本的过程已收到一个单独的名称以进行最终确定。达成共识的区块称为最终区块。为了减少有关算法的消息数量,最终性不是在所有块上实现,而是仅在某些“保证”几个块上实现。因此,大大减少了验证者之间的消息数量,并大大加快了共识。

由于块验证和完成过程是分开的,因此存在一些混淆,使得难以评估共识速度。

例如,在Tendermint共识(Cosmos)中使用的pBFT算法需要每个块达成共识,即立即完成它,EOS算法仅完成许多块中的一个,立即完成链。

Aura-一种用于基于以太坊的POA网络的流行算法-对每个块使用验证器的伪随机选择,并使用GRANDPA算法同时协商最终确定的块,等待来自其他验证器的> 2/3确认签名。这种并行化完成算法称为“完成性小工具”。

EOS共识以类似的方式工作,在特定时间段(纪元)为验证者创建“时间表”,并要求在每个纪元结束时完成块定稿。

股权证明(PoS)

这些算法的几乎所有现有实现都包括POA共识算法,这加剧了混乱。现代PoS算法的工作方式如下:利用参与选举的验证者(牛排)的余额,形成验证者列表(例如,通过投票,冻结存款等)。在一段时间内,直到更改验证者列表之前,网络都使用PoA算法(例如pBFT)进行操作。

最常见的算法称为委托权益证明(DPoS),其中网络帐户以各种方式对验证者的余额进行投票,从而构成N个验证者的顶部。

在为区块链选择共识时,您首先应该考虑完成区块的过程。客户将收到其交易确认的时间取决于该时间。代币经济学方面,最好单独考虑“选择”验证者的程序和获得整体奖励的过程。在这一部分中,可以应用大量不同的经济机制。

我注意到,即使企业网络没有任何经济性和代币,企业网络也不应忽略其经济机制和PoS算法。任何免费交易几乎总是一个帐户对系统的攻击。当攻击者根本没有足够的资金来进行全面攻击时,帐户上“技术”令牌的余额可以用作方便的限制器,并且还可以更灵活地控制访问和网络负载。

实施方案

在计划您的区块链时,您需要了解是否可以使用现成的解决方案,或者是否值得从头开始创建所有内容,完全控制代码。

区块链是开源软件的世界。封闭代码实际上是不可能的-长期以来在公开的国际竞争中创建了加密协议,并且由于存在巨大的风险,很少有人信任封闭源代码的实现。

使用您之前创建的程序员。您的任务很可能已经解决,讨论和检查了,因此您不应该在这些任务上花费额外的精力。

如果您决定就网络交互达成共识,或者使用的新加密概念在架构上不适合传统的区块链设计;如果您要解决所有现有的性能解决方案,请节省每一点;如果您的区块链中的交易是如此具体,以至于世界上不存在任何此类交易……那么您的路径就是从头开始的区块链。

订阅Forklog YouTube频道!

—-

原文链接:https://forklog.com/kak-zapustit-svoj-blokchejn-vybor-konsensusa/

原文作者:Nick

编译者/作者:wanbizu AI

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...