网上有很多关于对pow和pos机制的浅见,常见的共识机制有哪些的知识,也有很多人为大家解答关于对pow和pos机制的浅见的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!
本文目录一览:
对pow和pos机制的浅见
区块链中的共识机制有很多。常见的几种共识机制包括PoW机制、PoS机制和PBFT机制等。
1.PoW机制PoW机制,即“工作量证明机制”(proof-of-work)机制,其基本思想很简单,即只有完成一定工作量的节点才能担负记账的工作。这样,就可以大幅增加恶意节点进行干扰的成本,让它们没有激励进行干扰。
PoW机制的思想最早源于辛西娅·德沃克(Cynthia Dwork)和莫尼·诺尔(Moni Naor)于1993年发表的论文。1997年时,亚当·贝克(Adam Back)也独立发明了基于PoW机制的哈希现金,并将其用来抵御邮件的拒绝服务攻击及垃圾邮件网关滥用。1999年时,马库斯·雅各布松(Markus Jakobsson)和阿里·朱尔斯(Ari Juels)正式将这一思想命名为了“工作量证明”。2008年时,中本聪将PoW机制应用于比特币的共识形成过程。袁文泽博客www.yuanwze.cn
由于PoW机制是根据节点的工作量来分配记账权的,因此它需要包括三个算法:产生挑战C的随机算法、解决挑战C的方法S的算法,以及验证C是否被S解决的算法。
举例来说,在比特币系统中,生成挑战的随机算法是基于SHA-256的。具体而言,它要求在待验证的信息后面加上一个合适的随机数(nounce),再将信息和随机数通过SHA-256算法转换后,前几位哈希值都是0。显然,要求为0的位数越多,这个挑战的难度就越大,难度的具体值可以根据具体的情况进行调整。由于在现有的数学条件下,SHA-256算法是不可逆的,因此各节点只能用穷举法来对以上问题进行破解。这样一来,破解这一问题的概率就会和节点所投入的算力成正比。由于以上问题需要大量计算,因此在一段时间内,系统只会收到一小部分节点提交的符合条件的工作证明。符合条件的工作证明结果会成为一个区块,在P2P网络中进行广播。收到区块的用户验证节点会验证该区块的正确性,得到超过50%的用户验证节点的证实后,该区块将会加入当前系统中最长的公链。当然,参与上述工作是需要巨大成本的,为保证各节点有激励参与这项工作,网络就需要对参与工作的节点有所回报。在区块链中,这个回报通常是以代币(token)的形式给出的。
图1 PoW机制工作原理示意
注:图中节点1进行了一笔交易,它随即向其他各节点进行交易广播。各节点利用PoW机制对交易进行验证。最后,节点4的证明结果被采用,节点4随后再向各节点广播验证结果。
在PoW机制中,所选取的计算问题必须满足以下特性:
(1)伪随机性。这一特征保证节点完成工作量证明的概率仅取决于自身投入的算力比例,保证了机制的相对公平性。
(2)难度可控。这一特征保证可以根据具体情况对计算难度进行调节。
(3)公开可验证性。这要求问题的求解结果可以通过比较简洁的方式进行验证。
由此可知,PoW机制可以保证区块链的一致性和安全性,也具有相对的公平性。但是,其缺点也是明显的。
首先,PoW机制的效率比较低下。每个区块的产生都需要耗费时间,并且新产生的区块需要后续区块的确认才能保证有效,这需要更长的时间。例如,比特币系统平均需要10分钟产生一个区块,然后等待后续的6个区块进行确认,因此需要60分钟的时间才能确认并完成一笔交易。显然,对于大多数交易来说,这是难以接受的。
其次,目前的算力存在着集中的趋势,这对PoW机制的安全性提出了挑战。PoW机制要求攻击节点所拥有的计算资源不超过全网的50%,而这一点在现实中很难确保。以比特币网络为例,目前超过90%的比特币算力集中在不到20家企业的手中,比特大陆(Bit-main)拥有的算力就超过了53%。在这种趋势下,只要拥有庞大算力的企业进行攻击,PoW机制就无法实现安全性。
再次,PoW过程计算的通常是一个无意义的序列,但所需的资源却是庞大的,这会造成巨大的浪费。根据普林斯顿大学计算机科学副教授阿尔文德·纳拉亚南(Arvind Narayanan)向美国参议院能源和自然资源委员会提交的一份书面报告,每天花费在比特币系统工作量证明上的成本高达600多万美元,每年的成本将高达数十亿美元。尽管计算机科学家目前已提出了很多降低PoW机制能耗、减少其浪费的方案,但都没有从根本上解决问题。
2.PoS机制PoS机制,即权益证明机制(proof-of-stake),是2011年时一位名为“Quantum Mechanic”的网友在著名比特币社区Bitcointalk论坛首次提出的。
PoS机制的原理类似于股份制。正如在公司中谁拥有的股份越多,谁就越具有话语权一样,在采用PoS机制的区块链中,谁的权益质押(在“链圈”,这通常被称为staking)越多,谁的话语权也越大。具体来说,在PoS机制中,有一个“币龄”(coin age)的概念,它等于用户在这个系统中拥有的“币”乘以将“币”存在系统中的时间。和PoW机制类似,在形成共识的过程中,系统也会向各个节点分发随机的挑战任务,然后根据解决问题的先后来决定最终的记账者。所不同的是,在PoW机制中,每个节点所分摊到的任务的预期难度是一致的,但在PoS机制中,“币龄”越高的节点所分摊到的问题会越简单。这样一来,那些高“币龄”节点获得记账权的概率自然也就越高了。
我们知道,在现实中,一个股东在某公司的股份中所占的比例越高,其利益和公司利益之间的捆绑就越紧密,因此他就越有动机关心公司的盈利。同样地,PoS机制将记账权交给拥有高权益的用户,也可以实现他们与区块链之间的利益捆绑,从而让他们更有激励确保记录内容的真实性。
与PoW机制不同,PoS共识机制的核心是网络中的权益,而不是单纯的算力。这些权益不一定需要通过“挖矿”获取,而是可以在交易所甚至OTC市场上直接购买。这个过程就类似于现实中的购买股票。
此外,和PoW机制相比,PoS机制的效率要高得多,其验证一笔交易的机制要远快于PoW机制,而消耗的能量却远小于PoW机制。自然,PoS也存在着一些潜在的问题:首先,其安全性还需要更进一步的检验。其次,产生和分配“币”的机制设计难度较高,如设计不合理,则可能严重影响区块链的公平。再次,其去中心化程度也被普遍认为不如PoW机制。
3.PBFT机制PBFT机制,即实用拜占庭容错机制(practical Byzantine fault tolerance),由米格尔·卡斯特罗(Miguel Castro)和芭芭拉·里斯科夫(Barbara Liskov)于1999年提出。它对传统的拜占庭容错机制进行了修改。
PBFT机制的验证过程包含三个阶段:预准备阶段、准备阶段和确认阶段。假设在系统中,总节点数为N个,“拜占庭节点”有f个。在预准备阶段,由主节点发布包含待验证记录的预准备消息。接收到预备消息后,每一个节点进入准备阶段。在准备阶段,每一个节点验证其正确性,将正确记录保存下来发送给其他节点。直到某一个节点接收到2f个不同节点发送的与预准备阶段接收的记录一致的正确记录,该节点才向其他节点广播确认消息,然后系统进入确认阶段。在确认阶段,直到每个诚实节点接收到2f+1个确认消息,协议才终止,各节点对记录达成一致。
在去中心化的情况下,利用PBFT机制可以实现区块链的一致性,剔出多余的计算量,避免资源浪费。此外,在PoW机制和PoS机制中,不同节点都可以提出新区块,因此在一定情况下可能会出现“分叉”问题;而在PBFT机制下,只有一个节点可以提出新区块,因而不会出现“分叉”问题。我们在图2中对这三种机制的特征进行了比较。
图2 PoW机制、PoS机制和PBFT机制的比较
很显然,无论是PoW机制、PoS机制,还是PBFT机制,都各有优劣之处。在实践中,人们经常对这些机制进行组合,从而达到扬长避短的效果。
dpos共识机制是什么?
DPOS共识机制是基于POW及POS的基础上,出现的一种基于投票选举的共识算法。在DPOS共识制度下,持币人根据手中持有的代币投票选出一定数量的代表,来负责生产区块和运营网络。
以上就是关于对pow和pos机制的浅见,常见的共识机制有哪些的知识,后面我们会继续为大家整理关于对pow和pos机制的浅见的知识,希望能够帮助到大家!
