您的位置:首页 > 编程语言 > Go语言

一文轻松读懂Algorand的核心原理技术-Pure PoS, PoW, dPoS,BpoS优劣势

2019-04-20 11:35 471 查看

翻译校对与补充讲解:Future小哥哥(币圈超越小汤哥)

今天,我们有很大的机会来重新启动整个世界的金融系统。

数据网络比以往任何时候都快:消息可以在几分之一秒内传遍全球,成本可以忽略不计。但是,钱根本不会快速流动。
简单的金融交易可能需要数天才能完成清算和最终确定。

这个过程也很昂贵:每年浪费5万亿美元来处理所有类型的交易费用。全世界有22亿人完全无法获得现代金融服务:他们的交易规模太小而无法为银行带来利润。

有了正确的技术,我们就能做得更好。
区块链承诺The Blockchain Promise。几年来,开发人员和创新者已经预感到区块链技术就是正确的技术; 区块链是实现更高效,更具包容性的金融体系的关键。

简单来说,区块链是一个公共账本。
它是以块为单位组织的一系列交易记录,保证了三个基本属性:

  1. 每个人都可以读取每个块,因此区块也变成了常识。
  2. 每个人都可以在未来的区块中记录交易。
  3. 没有人可以改变块中的交易或块的顺序。

因此,不再让中央机构保留一个隐藏的数据库(类似银行一样) - 而不是让交易通过秘密数据库层来清除,我们可以拥有一个可供所有人阅读的单一公共账本,其中每个人都可以写入,但没有人可以改变所写的内容。

有了这些属性,区块链的使用基本上是无限的。实际上,区块链技术可以带来更快,更便宜,更安全,无边界的经济。

一个明显的“不可能三角问题“。到目前为止,区块链基本上仍然是有抱负的。也许今天区块链的最大的期望性能来自着名的区块链不可能三角。由于2000年的证据和计算区块链项目到目前为止的表现,这个不可能三角理论基本上表明现有的区块链技术最多可以提供以下三个性能中的两个:

●安全性
●可扩展性
●去中心化性

实际上,不可能三角中的确没有太好的选择。
如果没有去中心化,我们仍然会一直处于今天已经存在的金融体系中:排他性和秘密性。
如果没有安全保障,交易块就会消失:交付货物或服务的人可能会发现收到的货物和服务的付款已经消失;债务可能会被删除;并且公共分类账可能被对手篡改为自己的利益。
如果没有可扩展性,您将只能与小型网络进行交易;你无法参与全球金融体系。任何用户都不应该考虑妥协任何这些基本属性。

成本,速度和安全性

可以肯定的是,安全性,可扩展性和去中心化性并不是独立变量,而是相互关联的变量。它们共同影响对个人和机构用户都很重要的措施:即速度,安全性和成本。

速度不够的区块链不可能有高扩展性。但是通过增加成本来保证速度并不是解决方案:操作成本太高的区块链也无法扩展。实际上,如果成本由每个人承担,那么就很少有人会加入区块链。如果成本仅限于少数几个实体,那么系统将过于中心化。任何中心化的系统本质上都是不安全的,因为更少的目标比数百万个目标更容易攻击。

 一个好消息。幸运的是,这个不可能三角问题只是对过去的描述,也是对难以一起实现所有三个属性的建议。 Algorand很高兴能够建立一个能够同时提供这三种属性的区块链。

 区块链挑战。区块链有两种不同的需求:

  1. 首先是使区块链防篡改。这种需求已通过密码学中最简单和最古老的原语之一解决:单向散列函数。本质上,最新块的散列包含在下一个块的一部分中。所有区块链都分享这种方法,所以在这方面它们都是平等的。
  2. 第二个需求是生成新块:如何选择要附加到链的新块。这是真正的挑战,不同的区块链有不同的方法。

一个新块应包含一组到目前为止未出现在区块链中的有效事务。问题在于,在任何时间点,两个用户可能已经看到相同的块序列,但可能看到不同的新事务。情况就是如此,因为在分布式账本中,每笔交易都不会通过网络立即传播。通常,它从每个用户传输到少数其他用户,然后将其传输给其他用户,直到该交易到达所有用户。因此,在每个时间点,由不同用户看到的新有效交易的集合即使在它们具有显着重叠时也可能是不同的。

总之,用户U可能认为新块应该是BlockU并且用户V认为它应该是BlockV。那么:谁设想的区块Block应该附加到链上呢?

之前流行的方法及其致命缺陷:
目前已经在使用多种方法来选择下一个块:特别是,工作量证明PoW,委托证明delegated proof of stake,以及保证金的保证证明bonded proof of stake。然而,所有这些方法都存在以下致命缺陷:
整个系统经济都受到了一小部分个体的摆布。
这个缺陷是致命的,因为它同时涉及安全行和去中心化性。让整个经济体的命运受到经济体中一小部分的支配是一颗定时炸弹。
可以肯定的是,如果这些成员行为不端,他们会降低经济中的所有资产,包括他们的资产。但是,如果他们自己的资产只占整个经济体的一小部分,那么他们也可能很容易弥补他们的损失,增加一些利润以获得良好的衡量标准,并对其他所有人造成巨大的损害。经济中不应该有一小部分能够控制整个经济生态体系。

让我解释一下之前这些方法是如何产生这种缺陷的:

**

工作量证明Proof-of-Work:

**

第一种方法是工作量证明PoW,由Nakamoto用于比特币并由许多其他区块链继承而着名。在这种方法中,用户在很高的层次上竞相解决一个非常复杂的加密难题。解决这个难题的第一个有权将下一个块附加到链。工作证明存在几个缺陷:
第一个缺陷:PoW不能扩展。工作证明非常缓慢。比特币的加密难题非常难以保证每10分钟就找到一个解决方案,无论有多少矿工尝试解决加密拼图。我们可以理解昂贵和快速, 但昂贵和缓慢很难理解。世界是一个大的地方,每10分钟就有一块交易是不够的。

第二个缺陷:POW导致中心化的结果。工作量证明PoW导致了巨大的权力集中。这种集中化是PoW既昂贵又浪费的结果。矿工执行的计算量 - 即用户试图解决加密难题 - 令人震惊。今天的采矿利用专用硬件的机架和机架,并消耗大量的电力。一名矿工赢得比赛并产生新的区块,所有其他人的努力都被浪费了。如果没有比特币目前提供的补贴,在比特币区块链上发布单笔交易的成本约为20美元。如果你想使用区块链进行日常交易,比如购买一块比萨饼,或者如果你想使用它,就可以为那些目前没有金融系统服务的22亿人提供金融服务。如果她试图用她的笔记本电脑解决加密拼图,普通用户会赔钱。 无论输赢,她必须支付为笔记本电脑计算所需的电力。 这个电量可能不会很大,但她获胜的可能性非常小,以至于在期望中她会赔钱。

只有专业矿工才能获得微薄的利润,他们已经购买了必要的资本支出来购买机架和超专业采矿设备。 因此,只有他们参与块生成。 此外,矿工与采矿池合作。
今天,比特币的区块链仅由三个采矿池和以太坊的两个采矿池控制。 如果他们如此决定,或者他们被贿赂,这些挖掘池可以重写数据库:他们可以擦除块或更改块的顺序。 工作证明已经将在逐渐将去中心化的系统的转变为极其中心化的系统。

第三个缺陷:Proof-of-Work并不安全。正如我们所说,任何偏中心化的区块链,无论是设计还是事实上,都是不安全的。但是,工作量证明还存在其他漏洞,并且特别容易受到网络攻击。区块链最终是通信协议,并且任何这样的协议在底层通信网络上执行。因此,攻击者可以攻击协议 - 例如,通过发送与规定的消息不同的消息 - 或通信网络本身 - 例如通过干扰路由器,电缆等。

PoW工作量证明的不确定性可能被低估了,因为目前分析区块链安全性的方法存在缺陷。此分析通常仅关注协议攻击,忽略网络攻击,尤其是在工作量证明的情况下,可能是致命的。

例如,在工作证明区块链中,能够将通信网络划分一两个小时的对手可以双重花费而不受惩罚。在成功的分区攻击中,攻击者阻止属于一组用户A的用户发送的消息到达单独的集合B中的用户,反之亦然。网络分区并没有引起太多关注,因为它被认为太昂贵而不实用。但是,一旦收益足够高,网络攻击的成本可能是合理的。一个真正无国界的经济可能会花费数万亿美元。如果一个对手非法获得数十亿美元,他可能愿意“投资”数百万美元。

第四个缺陷:分叉。工作量证明的另一个缺点是不可避免地存在分叉。每当两个或更多用户在几秒内解决加密谜题时,链就会分支,因为用户现在可能会看到下一个块的多个候选者。 fork可能会继续存在一段时间,并且所有分支甚至可以通过添加新块来延长。但最终,除了一个分支之外的所有分支都将死亡,死亡分支中的所有分块都将消失。

分叉是一个不受欢迎的,不确定性和延迟的来源。如果向您支付的款项出现在添加到链中的最新区块中,您就不能认为自己已付款并运送货物。这是因为某些分支可能会克服当前的链条,并且您的区块可能最终处于死分支并消失。在考虑自己付费之前,您需要等待一系列的块添加到您的付款中,以便最大限度地减少软叉出现的可能性,并且包含您的付款的块将最终出现在死分支上。
你要等多久?有些人建议在您之后添加六个块以确保您的块将保留在链上。其他人建议等待更长时间,如果向您支付的款项相当大。因此,而不是等待十分钟,对交易的最终结果有合理的信心,实际上你必须等待数小时。

有些人建议使加密拼图更容易,以加快认证过程,例如通过每分钟而不是每10分钟找到一个解决方案。然而,通过这样做,在两秒内获得两个解决方案的概率显着增加。该系统可以应对偶尔的软分叉,但不能使用非常频繁的分叉。费用,缓慢的速度和不确定性确实是工作证明POW方法的主要缺陷,但与其致命的缺陷相比,它们显得苍白无力。

工作证明中的致命缺陷。回想一下已经讨论过的致命缺陷:整个经济受到经济的一小部分的支配。在工作证明中,经济的这一小部分是矿工所拥有的。由于矿工只拥有工作证明区块链中的一小部分资金,因此该连锁店并不安全。

委托权益证明Delegated Proof-of-Stake

一种不同的方法是委托权益证明(PoS)。这是一个非常简单的想法。社区授权一些特殊用户,即代表,至少在一段时间内选择下一个区块。 (例如,在EOS中,代表人数为21.)因此,DPoS从一开始就是集中化的。希望所选代表诚实地开始。但是,依靠需要长期保持诚实的节点是有风险的。我们再一次认为整个经济都受到经济的一小部分的支配。
实际上,在DPoS区块链中,代表们可能拥有系统中总资金的一小部分,但是当且仅当大多数代表诚实值得信任时,整个区块链才是安全的。

其他安全问题。即使假设有一个铁定的保证,所有代表将永远保持诚实,他们也很容易受到攻击。特别是,它们可能会因denial of service(DoS)攻击而被打倒。在这样的攻击中,攻击者用数以万计的垃圾邮件轰炸他选择的任何用户,导致该不幸用户的缓冲区溢出。如果超级节点受到如此轰炸,他将无法履行其职责,即将新的有效交易整理到下一个区块。区块链将陷入停顿。DoS攻击非常便宜,可以立即安装,不仅可以对付21人,甚至可以对付1000人。由于超级节点已经是众所周知的,即使他们只持续一天或一小时或一分钟,一个高级的对手也可能会通过快速的DoS攻击击倒所有超级节点。

Bonded Proof-of-Stake质押权以证明

BPoS允许20个用户,200个用户,尽可能多的人愿意将一些钱放在桌面上 -即一个Bond— 这是一个他们无法再触摸它的纽带。这些节点就是我们所有人选择的代表我们出块的用户。如果他们行为不端,他们的钱就会被没收。
这种方法有效吗?
让我问一个更简单的问题:你有多少可支配收入可以质押?答案是非常少的一部分。因此,Bonded-PoS不仅使其成为可能,而且实际上使得拥有大笔资金的大盗贼很容易将不成比例的钱进行质押,仅用于控制区块链。

但那又怎么样?
如果他们行为不端,就会失去质押的钱呀。但是,真正去中心化的,可扩展且安全的区块链应能保护数万亿美元的资产。由于行为不端,恶意用户将赚取数十亿美元。既然如此,你认为他可能会被没收几百万美元吗?这只是做生意的代价,相比较而言这是一个很小的代价。再一次,在Bonded-PoS中,我们也有同样的致命缺陷:整个经济受到经济的一小部分的支配。事实上,在一个受保护的PoS中,这个经济体的一小部分由(所有者)“把钱质押的人”组成。

总之,先前的方法存在几个缺点。我们需要更好的设计。________________________________________

**

Algorand的逻辑和纯粹的股权证明Pure Proof-of-Stake。

**

Algorand的逻辑很简单:它将整个经济的安全与大多数经济体的诚实联系起来,并使一小部分经济体无法控制整个经济的命运。 Algorand基于新的Proof-of-Stake:Pure PoS。从本质上讲,Pure PoS并不会因为害怕罚款而试图让用户保持诚实。更确切地说,它使的那些坏人想通过少量钱作弊是不可能的,但通过大量金钱作弊又是十分愚蠢的。

在Algorand,没有永远被质押的Money。所有的钱总是应该存在的地方:在你的钱包里,正在准备花的钱,或在Algorand区块链为你提供的各种金融工具中。当你考虑系统中的所有资金时,无论它在哪里,当大部分资金都在诚实用户的手中时,整个系统就是安全的。

正如我们所说,一小部分资金的所有者不可能损害整个系统,而且大多数资金的所有者行为不端以使自己的资产贬值将是十分愚蠢的。

例如,在PoW或BPoS中,少数用户可以阻止其他用户进行交易。在Algorand,只有大部分资金的所有者才能阻止其他用户进行交易。但如果他们这样做,货币的声誉将受到极大的损害,货币将不再被普遍接受,其购买力将大大降低。对于大多数资金的所有者来说,这并不是一个好的结果。

实行Pure PoS。
现在让我们看看Algorand如何使用PurePoS来选择下一个块。
还记得不可能三角问题吗? 我们希望块生成同时具有可扩展性,安全性和去中心化性。
在Algorand的一个非常高的层次上,一个新的区块分为两个阶段建造:

●在第一阶段,随机选择一个Token,其所有者是建议下一个块的用户。
●在第二阶段,从当前系统中的所有令牌中选择1000个Token。

这1000个Token的所有者被选为第2阶段委员会的一部分,该委员会批准第一个用户提出的区块。

因此,委员会的一些成员可以被选择两次或更多次,通常是k次,在这种情况下,该成员将在委员会中拥有k票以批准下一个区块。

**

为什么第二阶段是必要的?

**

在任何社会中,区块链也不例外,总有一小部分坏人被发现;比如1%。也许2%。如果一个人不幸生活在一个非常危险的社会中,那么10%的人可能是坏人。也许甚至20%!但在任何社会中,不良行为者都不会占多数; 否则,就没有社会。只要大多数成员遵守规定的规则,就会存在一个稳定和谐的社会。

假设Algorand中10%的代币属于不诚实的人。然后,十分之一,在阶段1中选择以提议块的用户可能是坏演员。因此,他可以告诉一些用户该块是X而其他用户该块是Y等等,从而产生关于区块链是什么的不同意见。

阶段2消除了这个问题。实际上,如果你选择随机的1000个代币,当最多10%的代币是不诚实的手牌时,大多数所选硬币属于不良参与者的概率,即委员会大多数投票是糟糕的演员的概率是如此之低,以至于可以忽略不计。

假设,这一次,你没有被选中提议一个块。也没有被选中成为批准拟议区块的委员会成员。但是你看到给定的B区块已经获得委员会700票的批准。然后,你将会知道B的确是下一个块。

一个关键问题。在这种高级描述中,自然会出现几个问题。让我们从最明显的一个开始:谁来进行随机选择委员会?

假设我告诉你我做了。那么你可能会说“这是有史以来最中心化的系统,而你就是它的中心!”假设我告诉你所有用户都在讨论,直到他们就成千上万的委员会成员达成一致意见,然后他们同意这个问题。那么你可能会告诉我,人性就是这样,一辈子时间都不足以选择我们需要的千名委员会成员。

Algorand采取非正统的方式:委员会成员选择自己。你可能会想“什么?这是一个糟糕的主意!因为如果我是一个坏演员,我会选择自己成为这个委员会的成员。接下来。那之后…“但不是那么快。

要想属于委员会,你的一枚硬币必须独立赢得这个机会,加密地公平的彩票,你可以在你自己的计算机隐私中独立运行 - 也就是说,不与任何其他人交谈。而且由于彩票是加密公平的,你不能改变被选中的机会。 (即使是拥有巨大计算资源的民族国家,也无法增加被选中的概率。)

为了在例如10,000,000,000个令牌中选择1,000个随机令牌,每个令牌以概率1,000 / 10,000,000,000被选择 - 即,概率为1万分之一。

因此,一旦用户看到提议的块,她就会问自己:我可以成为选择批准一个区块的委员会的成员吗?

我将获得多少票?
为了回答这些问题,她在她的笔记本电脑上为她拥有的每一个代币运行加密抽奖。 (如果用户有n个令牌,额外的算法技术基本上允许她运行一个单整张彩票而不是n个单独的彩票!)一旦用户运行她的抽奖,就会出现两种情况之一。
要么她的所有代币都没有赢得彩票,在这种情况下,无论她对该区块表达何种意见都将被忽略。或者其中一些k> 1的代币赢得了彩票,在这种情况下,她获得了一张中奖彩票,即一个简短的证明,即每个人都可以很容易地证明她在委员会中有k票。在后一种情况下,她通过网络传播(i)证明她有k票的中奖票和(ii)她对该票的意见。

解决区块链不可能三角!让我争辩说,这个初版的方法是 - 终于!
-可以同时可扩展,安全和去中心化。

1.可扩展性。
用户运行自己的彩票需要多长时间?无论她有多少令牌,大约为一微秒。那确实超级快。 (此外,所有彩票都是相互独立运行的,因此任何用户都不必等待其他用户完成彩票运行。)
一旦被选中,每个成员就向网络传播单个,短且立即计算的消息。因此,无论系统中有多少用户,需要传播的最大消息数为1000条短消息。这可扩展吗?是!

2.安全性。
现在我们来安全。假设我是一个非常强大的对手,能够随时随地腐蚀用户。显然,我想腐败委员会的成员,但我有一个问题:我不知道他们是谁。之所以如此,是因为委员会成员是通过秘密运行,加密公平的个人彩票来选出的。

因此,只有他们知道自己是谁,直到他们通过网络传播他们的获奖门票和他们对该区块的意见的那一刻。只有在那个时候,我才能了解委员会成员是谁,纵使我有超能力,我可以立即腐蚀整个委员会。但那又怎么样?在这个时候再腐蚀他们为时已晚。

无论委员会成员如何说,他们已经说过了,他们的获奖票和关于该区块的上下意见在整个网络中传播。我没有权力将他们的信息放回瓶中,而不是政府有权将维基解密病毒传播的信息放回瓶中。

换句话说,Algorand方法是安全的,因为事先,对手不知道谁会腐败,而且当他做的时候,腐败是无用的。与此相反,拥有一个固定的1000强委员会。如前所述,即使委员会继续执政一分钟,它也很容易受到DoS攻击。如果委员会继续执政的时间更长,比如一周,那么成员甚至可能通过贿赂等传统方式在现实世界中被腐化。然而,在Algorand的情况下,人们不会知道对谁进行DoS攻击,一旦委员会发言,DoS攻击就没用了。

3.去中心化性。

最后,我们来到了去中心化性。是否有少数用户负责选择下一个区块?不是,没有。也没有一个固定的,1000强的委员会负责批准该块。这一次,委员会被随机(并秘密)选中。下一次,将随机(和秘密)选择一个不同的委员会。每个人都有机会参与新区块的生成。

Algorand是一个不会分叉的链。

Algorand技术的另一个优势是其链永远不会分叉。这是因为只有一个区块可以具有所需的委员会投票门槛。因此,在Algorand所有交易都是最终的。一旦出现一个块,您就可以指望它永远是链条的一部分。如果新区块包含向您支付的款项,您可以认为自己已付款并立即发送货物。

金融世界已经有了自己的风险,并且没有必要用“阻止消失”的额外不确定性来加重它。顺便说一下,当我说Algorand的链永远不会分叉时,我其实有点撒谎。实际上,分叉可能出现在Algorand,但它们非常罕见。在Algorand中分叉的概率按设计为10⁻¹⁸(10的负十八次幂)。这种可能性似乎是一种极低极其奇怪的选择,但它实际上有一个自然的解释。物理学家告诉我们,10¹⁸(十的十八次幂)恰好是从大爆炸到现在的秒数。
换句话说,如果你产生一个块,顺便说一句非常好的剪辑,你可能会看到一个软叉,但你必须等待宇宙的生命周期才能看到它。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: