区块链 PoW 与 PoS 的纷争

最近在研究区块链,可能会有一些非前端文章,感兴趣的可以关注关注哟。

有关注区块链的,肯定会经常看到这两个名词 -- PoW 与 PoS。但是很多人对他们的含义的理解存在很多偏差。那么他们的含义与区别是什么呢?

简单而言,PoW 和 PoS 是 2 种不同的对记账权利的分配方式。

PoW

POW(Proof of Work)直译过来即是工作证明,也叫工作量证明。(例子:BTC、LTC)

这是什么意思呢?这就是说,你能够获得的币的数量,取决于你挖矿贡献的有效工作,也就是说,你用于挖矿的矿机的性能越好,分给你的收益就会越多,这就是根据你的工作证明来执行币的分配方式。

比特币采用的共识算法就是 PoW,专业一点说,矿工们在挖一个新的区块时,必须对SHA-256密码散列函数进行运算,区块中的随机散列值以一个或多个0开始。随着0数目的上升,找到这个解所需要的工作量将呈指数增长,矿工通过反复尝试找到这个解。

额,通俗的说,PoW 的意思就是社会主义,按劳分配,多劳多得。

PoW 的优势与劣势

PoW机制的设计目的是保证安全。无论是在中心化还是非中心化系统中,防止作弊都是很重要的。

PoW 假设大多数人不会作弊,如果你想作弊,你要有压倒大多数人的算力(51%攻击),但不能防止矿工抱团取暖。

51%攻击:所谓51%攻击,就是利用一些虚拟区块链货币使用算力作为竞争条件的特点,使用算力优势撤销自己已经发生的付款交易。如果有人掌握了50%以上的算力,他能够比其他人更快地找到开采区块需要的那个随机数,因此他实际上拥有了绝对那个区块的有效权利。

因为作弊要付出一定成本,作弊者就会谨慎对待了。在比特币的 PoW 机制中,由于获得计算结果的概率趋近于所占算力比例,因此在不掌握51%以上算力的前提下,矿工欺诈的成本要显著高于诚实挖矿,甚至不可能完成欺诈(由于概率过低)。

PoS

PoS(Proof of Stake)直译过来就是股权证明,即直接证明你持有的份额。 (例子:恒星币,狗狗币等)

由于 BTC 的 PoW 机制决定了谁的算力强谁就能获得更多收益,拥有更大的记账权。所以类似比特币这样的 PoW 币种挖矿带来了巨大的电力能源消耗,为了解决这种情况,所以有了 PoS。

PoS 试图解决 PoW 机制中大量资源被浪费的情况。这种机制通过计算你持有占总币数的百分比以及占有币数的时间来决定记账权。

在现实世界中 PoS 很普遍,最为熟知的例子就是股票。股票是用来记录股权的证明,股票持有量多的,拥有更高更多的投票权和收益权。

额,通俗的说,PoS 就是资本主义,按钱分配,钱生钱。

PoS 的优势与劣势

Pos 当然也能防作弊,因为如果一名持有 51%以上股权的人作弊,相当于他坑了自己,因为一个人自己不会杀死自己的钱。

PoS 机制由股东自己保证安全,工作原理是利益捆绑。在这个模式下,不持有 PoS 的人无法对 PoS 构成威胁。PoS 的安全取决于持有者,和其他任何因素无关。

DPoS

DPoS(Delegated Proof of Stake)即是委托股权证明,是 PoS 的进化方案,由 Dan Larimer 发明。(例子:比特股 BTS)

在常规 PoW 和 PoS 中,一大影响效率之处在于任何一个新加入的 Block,都需要被整个网络所有节点做确认。

DPoS 优化方案在于:通过不同的策略,不定时的选中一小群节点,这一小群节点做新区块的创建,验证,签名和相互监督,这样就大幅度的减少了区块创建和确认所需要消耗的时间和算力成本。

PoW + PoS 混合机制

所以,为了结合两种挖矿方式的优点,开始有了基于 PoW+PoS 混合共识机制的币。例如 Hcash,以及以太坊 ETH 也正在向 PoW+PoS 混合挖升级矿转变。

那么,PoW + PoS 混合机制的优势是什么呢?

它能够将受众群体最大化。

假设一个币它的机制是PoW + PoS 的混合机制。那么持有该币的用户与矿工均可以参与到投票中,共同参与该币社区的重大决定,持币者与矿工都可以影响预先编制好的更新,如隔离见证(SegWit)、增大区块等等。如果这些更新被广泛认可,无需开发者干预,链就会自动分叉以配合更新。而这才是真正的去中心化。

以混合机制来实现广义上的 DAO(去中心化自治组织)的高效运行。通过 PoW+PoS 公平的按持币数量与工作量分配投票权重,实现社区自治。

总结

PoW 和 PoS 各有优缺点。但看上去似乎是 PoW 的优点多。看看流通市值排行榜靠前的币种,大多数都是PoW

PoS 有中心化的嫌疑,PoW 虽然能做到充分地去中心化,但是存在大量消耗能源的缺点。也许 PoW + PoS 是一种很好的解决方式,但是区块链社区是不断发展的,技术也是不断迭代更新优化的,更好的解决方式也许又会被推出来。

不断的学习,了解,才能更好的立足于区块链。当然本文只是初浅对 PoW、PoS、DPoS 进行科普,具体算法实现介绍,将在后续慢慢展开。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小樱的经验随笔

“玲珑杯”ACM比赛 Round #13 题解&源码

A ? 题目链接:http://www.ifrog.cc/acm/problem/1111 分析:容易发现本题就是排序不等式, 将A数组与B数组分别排序之后,...

2784
来自专栏算法与数据结构

PTA 邻接矩阵存储图的深度优先遍历

6-1 邻接矩阵存储图的深度优先遍历(20 分) 试实现邻接矩阵存储图的深度优先遍历。 函数接口定义: void DFS( MGraph Graph, Vert...

2676
来自专栏岑玉海

hbase 学习(十二)非mapreduce生成Hfile,然后导入hbase当中

  最近一个群友的boss让研究hbase,让hbase的入库速度达到5w+/s,这可愁死了,4台个人电脑组成的集群,多线程入库调了好久,速度也才1w左右,都没...

3718
来自专栏用户画像

5.3.3 图的遍历与图的连通性

对于无向图来说,如果无向图是连通的,则从任一结点出发,仅需一次遍历就能够访问图中所有顶点;

542
来自专栏数据结构与算法

BZOJ1468: Tree

Description 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K Input N(n<=40000) 接下来n-1行边描...

3119
来自专栏积累沉淀

HBase新版本与MapReduce集成

1.MapReduce从hbase读取数据 //读取hbase表数据 public class HbaseAndMapReduce { public s...

3196
来自专栏数据结构与算法

各种平衡树

记一下自己写的平衡树 方便以后复制粘贴 题目链接 Vector 最快:284ms 1 #include<cstdio> 2 #include<vector>...

2665
来自专栏owent

PKU POJ 2728 Desert King 解题报告

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2728

663
来自专栏Jed的技术阶梯

HBase案例之2个逻辑思维训练小题目

我们知道,在对Hbase表中的数据进行全表扫描时,可以指定rowkey的范围,比如:

1193
来自专栏个人分享

Spark读写Hbase中的数据

然而并没有什么乱用,发现一个问题,就是说,在RDD取值与写入HBASE的时候,引入外部变量无法序列化。。。。。。网上很多说法是说extends Serializ...

721

扫码关注云+社区