zoukankan      html  css  js  c++  java
  • 权益证明机制 (PoS):权益决定验证权,谁更有钱谁发言

    PoS证明机制是PoW共识机制的一次升级。由于PoW对能源的消耗巨大,同时确认交易速度慢,效率低,使得PoS共识机制诞生,投入到区块链的运行中。

    一、起源

    PoS为权益证明机制(Proof of Stake)的缩写。2012年,一个化名为SunnyKing的极客推出了点点币PPC(Peer to Peer Coin),并第一次使用了PoS证明机制。在点点币的白皮书中提到,PoS的灵感根本来源于比特币。

    一开始,创始人意识到,币龄(coin age)或许可以成为PoW以外的一种设计——也就是说,币龄可以像工作量证明一样成为一种证明维度。2010年,中本聪就曾经在比特币的设计中提出过币龄的概念,但在比特币的模式中,币龄并没有起到很大的作用,而单纯是代表着持币时间。

    币龄实际上是持币数量和持币时间的结合,若一个用户拥有100个比特币,且已经持有了30天,那么该用户的币龄即为3000币天。

    2011年,点点币团队发现了PoS和币龄的概念,并同时认识到,如果对比特币的模式进行改造,那么PoS能够代替PoW的大部分功能。因为,和工作量证明一样,权益证明也同样很难被伪造。

    二、原理

    和工作量证明挖矿产生新区块不同,权益证明是“铸造”或者制造新区块。将权益证明代替工作量证明,矿工也随之消失,但验证者依然存在。

    在PoS区块链中,验证者并不是随机选出,要成为验证者,必须要持有一定的代币作为权益,权益的份额大小代表了被选为验证者的几率。而这样一笔权益,相当于保证金,验证者若是通过了欺诈性交易,会扣除一部分权益作为惩罚。

    同时,如果验证者成功验证了一笔有效交易,则会获得交易费用作为奖励。为了使验证者更具有可信性,验证者的权益必须要高过所有的交易费用,为了保障自己的权益,验证者必然会自觉维护区块链。

    在一个区块获得验证资格的验证者们,会轮流在下一个区块发起并进行投票,投票的根据依然是持有权益的权重。以此类推下去,新的验证者和新的区块源源不断地产生。

    PoS

    三、优点

    和工作量证明相比,权益证明主要有以下两方面的优点:

    首先是无需每个节点参与验证,且避免了挖矿带来的巨大能源消耗,节省了过多的电力浪费;同时,无需再比拼算力,降低了维护成本。

    然后,由于成本下降,激励了更多节点参与到区块链的维护中来,加强了区块链的去中心化。在工作量证明中,掌握了51%的算力,就能够对区块链网络发起攻击,而在基于PoS算法的区块链中,只有掌握51%的代币,才能够发起攻击,攻击的代价是巨大的。

    验证者的增加,可以加快区块链上交易确认的速度,提高交易和验证的效率;去中心化的加深,同时增强了区块链的安全性;而且,权益证明机制能够有效地组织工作量的双花攻击。

    四、缺点

    PoS同时也具有很明显的缺点。

    其一,根据持币量来选择验证者,这对富有的用户来说具有极大的优势。由于贫富差距带来的验证者资格竞争,就显得不公平;而富者成为验证者,获得交易费变得更加富有,会令区块上的验证者形成两极分化的断层。最终,基于PoS的区块链验证者选择,也终究是富人的游戏。

    很多项目为了在代币分发初期避免被大庄“垄断”,都会与PoW机制相结合,比如点点币,在分发初期采用挖矿进行分发,保证点点币更加分散。

    但在后期阶段,投资者依然能够通过手中的资本囤积代币,达到“垄断”的效果。在使用纯PoS机制的项目中,大庄能够在ICO阶段直接收购大量的低价代币,导致该项目代币极具操盘风险,同时主链也容易受到攻击。

    其二,基于PoS证明的区块链同时也具有“理性分叉”的风险,由于这种分叉的成本较低,所以很容导致区块链分叉。

    如果一个用户持有的权益非常小,那意味着他的责任也会很小。所以假如该用户想要对主链进行分叉,可能性很小,但是却有仍有很大的尝试空间,因为这并不消耗任何资源。对于P
    oS而言,这个分支如果即使不被接受,也不会有任何损失。

    一般来说,诚实节点看到这条分支本应不予理会,因这条链被接收的几率是很小的,但在这样一条分支上进行记账并没有任何损失,且能够获得同样的收益,所以即使是诚实节点,也会足够理性地在收到的这条分支上同时进行验证。

    总之,对于PoS来说,区块链分叉的成本为零,极易引起分叉,故仍需结合更多的机制来阻止分叉的发生。

  • 相关阅读:
    LeetCode120 Triangle
    LeetCode119 Pascal's Triangle II
    LeetCode118 Pascal's Triangle
    LeetCode115 Distinct Subsequences
    LeetCode114 Flatten Binary Tree to Linked List
    LeetCode113 Path Sum II
    LeetCode112 Path Sum
    LeetCode111 Minimum Depth of Binary Tree
    Windows下搭建PHP开发环境-WEB服务器
    如何发布可用于azure的镜像文件
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313527.html
Copyright © 2011-2022 走看看