Conflux杨光:PoW和PoS的全面比较 | 碳话第一期

本文深入探讨了区块链共识机制中的PoW(工作量证明)和PoS(权益证明)两种主流方式。PoW以算力决定出块权,特点是无许可和安全性较高,但确认速度慢、能耗高。PoS则是通过持币量分配打包权和投票权,优点是确认快、环保,但存在无利害攻击、长程攻击等问题。文章对比了两者的优缺点,并提出PoS的解决方案,如随机委员会和代理权益证明。最后,文章探讨了如何将PoW和PoS的优势结合,以寻求更理想的共识协议设计。
摘要由CSDN通过智能技术生成

640?wx_fmt=gif

640?wx_fmt=png


关于共识机制的讨论已经有许多,但这些分析大多不全。在碳链价值举办的「碳话」线下沙龙第一期活动中,Conflux研究总监杨光博士用一万三千余字,全面分析了POW与POS共识机制的原理、运行时遇到的问题,以及两者的优劣比较。本篇文章适合收藏并反复观看。

640?wx_fmt=jpeg

演讲者:Conflux研究总监杨光

文字整理与校对:Cinderella、唐晗


非常高兴有机会在这里跟大家分享我在这个领域的一些研究和见解。


首先给大家简单介绍一下我们的 Conflux 团队:我们团队的核心是姚班的几个同学以及师弟,并且有幸请到姚期智先生担任我们的首席科学家和顾问。我们之所以投入到区块链这个行业中来,是因为这个行业里边有很多非常重要也很有意义的新问题——以我最熟悉的密码学和博弈论为例,区块链面对的和要解决的很多问题已经是学术界最前沿的研究方向了。这些问题不是单靠工程师就可以解决的,而是需要更多学术界的力量参与进来,大家一起合作才能推动整个区块链行业往前发展得更好。 



 01 


女巫攻击与区块链共识协议



今天我来讲一下 PoW 和 PoS 的对比。我们先来回顾一下最典型的区块链共识协议:大家把交易打包成块,通过哈希引用把块连接成一条链,就得到了一个共享的账本。但是直接这样用一个账本肯定是很不安全的,因为坏人也可以造一个账本,然后把两个账本同时摆在你面前,哪个是真的哪个是假的,我们应该相信哪一个,这就成了一个问题。 


640?wx_fmt=png


如果是中心化的,当然这个问题非常好解决——我用支付宝,支付宝说我账户有多少钱,那就是多少钱。如果和事实不一致的话,我有不同意见可以去法院告他。但如果是去中心化的,这件事就很难说了。去中心化的时候,大家没有一个这样一锤定音的机构,需要通过其他方式达成共识,才能有一个公正的账本。那么在去中心化的环境下,应该怎样做共识呢?一个很容易想到的办法就是我们投票,大家共同投票,投出来一个账本,然后都相信这个就行。 


但是,既然说到投票,那么首先就有一个投票的公平性问题:投票权要怎么分配?比如今天我们大家一起投票,然后我手里有一百票,在坐的各位每人一票,我们这个不叫投票,我有一百票,基本上我说什么想投什么,结果就是什么样的。如果我们真的想达到一个共识,就不可能用这种特别不公平的方式去投票。所以投票权的分配是共识协议里面最核心最重要的部分之一。在线下投票权分配的问题其实比较容易解决:我们就简单的一人一票即可。大家都有身份证,然后投票的时候登记一下就行了。但是线上的话,要想实现一人一票就非常困难。 


640?wx_fmt=png


首先,你在线上的环境中,特别是去中心化的环境中,如何定义「什么叫做一个人」,这就是一个很大的问题。你是把一个账户当一个人还是一个ip当一个人,还是说你用别的什么方法去确定?在网上的话,大家都是以匿名的方式存在的,你在聊天的时候,你甚至都无法判断网络另一边跟你聊天的到底是一个抠脚大汉还是一条狗。因此,我们就需要一个抗女巫攻击的机制。


我们先简单讲一下什么是女巫攻击:它是说攻击者可以低成本地制造很多账户,然后控制这些账户一块儿去行动,让别人看上去以为人多势众的样子。 比如说在论坛上大家会见到有水军引导舆论,再比如电影评分的网站也会有人专门去组织去在上面刷评论刷分。如果说有很多这种水军马甲的账号在攻击的话,你最后投票得到的结果就不是真实的。有可能某个人通过这种方式投出非常多的票,最后投票的结果就是完全受这一个人控制的。在传统的互联网环境下,我们有很多对抗女巫攻击的方式,比如增加每个账户的注册成本。大家在网上要注册一个账号的时候,常常需要输入一个验证码,这件事就是计算机实现起来比较麻烦,即使能写程序做也比较困难,但人去做的话就很简单;还有的网站注册的时候要求绑定一个手机号,或者检测ip地址,这都是比较常见的抗女巫攻击的方式。但是在去中心化的环境下,以上那些方式就不好用了。因为去中心化的环境下,谁去发布这个验证码,谁去判断验证码填得对不对?然后谁去验证手机号?即使用ip地址的话,其实也是一个非常不公平的方式。因为我们知道并不是每个人都平等地享有一个静态的ip地址的。 


所以在区块链中,我们实际上用到的解决方案最常见的就是一个工作量证明(PoW),一个是权益证明(PoS),后者包括代理的权益证明(DPoS)。还有一些其他的证明方式,比如说证明你拥有多少空间,或者证明你燃烧了多少货币,还有别的一些方法,但是目前最主要最常见的还是 PoW 和 PoS 这两种。这里我还要稍微强调一下,无论 PoW 还是 PoS 或者别的什么 PoX,都是抗女巫攻击的机制,是共识算法(协议)里边一个重要的组成部分,但它们本身不等价于共识算法。



 02 


工作量证明



接下来我先讲一下大家都比较熟悉的工作量证明。


工作量证明的基本思想就是算力决定出块权。如果你能解出一个 PoW 计算难题,你就可以出块。粗糙地概括下,可以理解为一个CPU一票,或者一个GPU、一台矿机一票,大概是这么个意思。它的好处首先是这个系统是无许可的。参与者不需要任何人许可,只要有机器有算力就可以参与——理论上甚至都不一定需要机器。如果说你可以手动算出一个区块的哈希,并及时把这个上传上去,别人也会承认这是一个合法的区块。还有一个是PoW投票行为本身成本是比较高的,不管用CPU、GPU还是用矿机,机器的成本和电力的成本,都是要实打实地花出去的。这就跟我们之前说的验证码,其实形式上有一点像,对吧?有一些验证码,人看了以后还是要花一点时间去识别里边的数字或者字母到底是什么,然后才能打上去通过验证。工作量证明一个最大的优点,我认为就是所投的票和投票权是绑定的:一旦投票成功以后,即使是投票者本人也修改不了投票的内容。 


按照工作量证明的一般逻辑,投票的时候需要先打包出一个块,然后再对这个块做工作量证明,如果做出来证明就相当于投出去一票,但是这个时候打包的块已经没有办法修改了。例如我的矿机跑一天可以投出很多票,但是如果我想把之前一天的算力集中到新的一个块上,这是办不到的;另一方面,如果我想要回滚掉自己出的块,我也必须付出和回滚别人的块时候所需的同等的算力。这是PoW一个特别好的特点。


当然基于PoW机制去做共识算法也有一些缺点。首先这个缺点就是延迟比较高&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值