• 权益证明机制 (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来说,区块链分叉的成本为零,极易引起分叉,故仍需结合更多的机制来阻止分叉的发生。

  • 相关阅读:
    【Android 工具类】经常使用工具类(方法)大全
    driver: Linux设备模型之input子系统具体解释
    ural 1057 Amount of degrees 【数位dp】
    Java8 Lambda表达式教程
    Java线程池
    NodeJS实战——创建基础应用并应用模板引擎
    【网络】代理服务器
    【HTTP】Wireshark过滤规则
    【HTTP】WireShark中获取Content-Encoding: gzip时的响应内容
    【python】判断字符串日期是否有效
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313527.html
Copyright © 2020-2023  润新知