0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应该如何看待公链的共识从PoW转向PoS的这股风潮

电子工程师 来源:lq 2019-05-08 17:04 次阅读

由以太坊为代表的 PoW 转向 PoS风潮,可以说是今年区块链技术最重要的发展。PoW 机制及背后的整个挖矿产业,被证明存在种种缺陷与争议。以太坊率先定下转向 PoS 的目标,经历多次反复调整迭代,如今终于来到将要落实启动的时刻。

然而转向 PoS 是否真能解决问题?或是将制造更多新的问题?这条路究竟是否走得通?本周 DeepHash 专栏邀请 Conflux 研究总监杨光来深入分析。他在文中详细比较了 PoW 与 PoS 各自的优缺点,并指出如果一条公链要从 PoW 转向 PoS,可能要面临到什么样的挑战和取舍。而他认为,现有的主流公链从 PoW 转向 PoS,需要慎之又慎,否则很可能会给整个共识系统带来不必要的风险、甚至是灾难性的后果。

就在几天前的 5 月 2 日,以太坊核心开发者会议上宣布,以太坊 Phase 0 Beacon Chain 的代码将于 6 月 30 日准备就绪,该升级将启用一个 PoW/PoS 混合的共识协议 Casper the Friendly Finality Gadget (“FFG”)—aka”Vitalik's Casper”,这是以太坊 2.0 升级路线图中,共识机制从工作量证明(PoW)转向权益证明(PoS)的第一步。

以太坊共识机制的转变,不仅是如今PoS 越来越流行的大趋势的一个缩影,同时其作为第一个由 PoW 转型至 PoS 的主流公链项目,想必还会为 PoS 阵营注入一股新鲜的血液,并推动 PoS 共识的发展。本文接下来就讨论一下应该如何看待公链的共识从 PoW 转向 PoS 的这股风潮。

PoW 和 PoS 在共识机制中的意义

首先需要澄清一点,无论是工作量证明、权益证明还是任何别的什么证明(PoX),它们本身都是用于抵抗女巫攻击,并不等同于共识机制。形象一点来说,它们只用于决定谁拥有投票权,而最终的共识则要通过统计得票数量才能确定。

以大家最熟悉的比特币为例,工作量证明仅仅证明一个打包好的区块是形式上合法的,最终决定块中包含的交易是不是有效,还要看这个区块是否处于最长链上。这里生成一个带有工作量证明的区块就相当于投出了一票,得到最多投票的那条链(也即最长链)才是有效的账本。

同样基于工作量证明的以太坊,就采用了另一种统计得票数量的方式,遇到分叉的时候不是根据最长链规则选择,而是按照贪心的方式选择可以观察到的最重子树,这种共识机制也被称为 GHOST(Greedy Heaviest Observed Subtree)。

另一方面,如何决定投票权在任何共识中都是非常核心的部分。基于同样的抗女巫攻击机制的共识协议常常具有很多相似之处,而更换该机制也往往意味着整个系统都需要重新设计。所以,很多时候我们就会简化地使用”PoW 共识”和”PoS 共识”来对共识机制进行分类。

PoW 和 PoS 机制的特点

基于工作量证明的 PoW 共识最大优点就是安全性高。这个安全性来源于两个方面:一是投票本身的边际成本比较高,因为每次成功投票都需要完成大量计算,在此过程中要消耗很多电力;二是投出的票和投票权是强绑定的,因为工作量证明所需解决的计算难题是根据要投给的区块计算得出的,对于一个区块 A 所做的工作量证明无法用于给另一个区块 B 投票。

其中第二点对于安全性尤为重要,因为它保证了通过工作量证明作出的选择是无法撤销、无法修改的,即便是想要修改自己过去投出的票也不行——除非对别的竞争选项重新做出工作量证明,而这需要再次消耗大量时间和电力等资源,作为之前的投票者本人并不比攻击者享有任何优势。

PoW 共识机制的另一个优点在于结构简单,易于分析和实现。例如比特币所用的最长链机制就很容易从博弈论的角度分析普通矿工的行为,从而对其安全性有一个比较客观的判断;另外比特币判定最长链的逻辑也是相当简单的,实现起来不易出错。

但是 PoW 的缺点也很明显:首先是能耗较高,这也是 PoW 最被人批评和诟病的一点。例如发改委就拟将虚拟货币挖矿列入淘汰类产业。尽管有人辩解说现在的挖坑产业使用的多是因为种种原因难以并入电网、不用就会被浪费掉的廉价电,并且通过 PoW 达成的共识物有所值,但是这些说法仍难扭转主流观点认为 PoW 挖矿浪费能源的态度。

第二个缺点是,由 PoW 共识控制孤块率以保障安全性的设计带来的延迟高、确认速度慢、吞吐量低的问题。实际上这个缺点可以通过其他基于 PoW 的共识协议(例如基于 DAG 的 GHOST 协议和基于树图的 Conflux 协议等)在一定程度上缓解,但是相关技术还需要经过实践和时间的考验。

最后还有一点是PoW 共识机制造成的治理难题,特别是当矿工的利益和开发者、用户的利益相冲突的时候。现有的治理方式很难在三者之间平衡,处理方式稍有不当就有可能导致社区分裂、公链硬分叉。

基于权益证明的 PoS 共识最大的优点就是几乎完美地解决了 PoW 共识的所有缺点:首先,PoS 对于能耗的需求很低;其次,PoS 的确认延迟和吞吐量的主要瓶颈是网络通信,不需要像采用最长链规则的 PoW 共识那样刻意降低出块速度和吞吐量,通过合理的设计就可以把交易确认速度和系统吞吐量都提高到比较理想的程度;最后,由于 PoS 共识(DPoS 除外)不需要专门做工作量证明的矿工,只有开发者和用户两种角色,所以社区的治理相对更为简单。

然而另一方面,PoS 共识也几乎失去了前面所说的 PoW 共识的所有优点。

在安全性方面,PoS 共识的本质要求确定投票权和行使投票权是相互分离的,因此可以用同一份投票权产生两份不同内容的投票,且两份投票单独看上去都是合法的。这直接导致了”无利害攻击”(Nothing-at-stake attack)和”长程攻击”(Long-range attack)两种在 PoW 共识中不曾有过的攻击方式。

“无利害攻击”指的是一个投票者可以同时给分叉的两个分支投票,从而在两个分支上都获得投票收益的问题;”长程攻击”指的是攻击者可以通过购买其他用户私钥的方式获得一段时间以前某次投票的投票权,如果对应于这份投票权的资产早已被转移,那么攻击者购买相应私钥的成本将远低于实际持有相同份额资产投票权的成本。

另外,因为 PoS 共识中总是先确定投票权后再决定如何投票,而且受限于通信量,每一轮投票只能选取一部分用户参加,所以攻击者也可以定向购买或者以 DDoS 等方式阻塞即将生效的投票权,从而在特定的轮次获得远高于其持有资产份额的投票权利,这就是所谓的贿赂攻击(Bribing attack)。

可以说,每一个 PoS 共识协议设计的过程都免不了同上面所说的几种攻击方式斗争的过程。为此,PoS 共识协议不得不设计出各种复杂的规则,来检测或抵抗这几种针对 PoS 机制的攻击方式,这直接导致 PoS 共识机制往往都比较复杂,分析和实现起来都比 PoW 共识难得多。即便如此,现有的 PoS 和 DPoS 共识(与 PoW共识相比)也都需要在安全性和/或去中心化上做出一些让步。

从 PoW 转向 PoS 是对是错?

在前面一节的对比中,我们可以看出PoS 共识相比与 PoW 共识在效率、特别是达成共识的速度上的提升,是显而易见的,缺点主要在于更复杂的协议设计和分析,以及潜在的安全性风险(代理的 PoS,即 DPoS,实际上放弃了一部分去中心化以降低系统的复杂性和进一步提升共识协议的性能)。

在理想的情况下,PoS 共识可以只进行两轮广播即确认一笔交易,这是 PoW 共识永远达不到的速度。因为按照 PoW 共识确认一笔交易必须等待包含交易的区块获得多数算力支持,这意味着要等待其他矿工产生足够多的区块,所需的时间和广播的轮数肯定远超过理想的 PoS 共识。尽管实际上的 PoS 共识可能需要多于两轮广播,并且每轮广播的延迟也可能显著高于由专业矿工组成的 PoW 共识网络,但是这无法动摇 PoS 共识在确认速度方面已经体现出的优势及其更高的上限。

在吞吐量方面,PoS 共识所能达到的上限并没有显著优于 PoW 共识,甚至可能还要略低一点。但是因为其确认快的特点,PoS 共识获取高吞吐量所需付出的额外成本可明显低于现有的 PoW 共识协议。例如基于 PoW 的Conflux 共识协议就需要从理论到算法多方面的改进,才能在保证和采用最长链规则的 PoW 相近的安全性下实现较高的吞吐量;而最花时间的投票过程,在大部分的 PoS 共识中所花时间实际上跟区块大小无关,可以通过简单地扩大区块把吞吐量提升到节点处理能力的极限——这样做的代价是增加确认时间,不能过分使用。

至于安全性方面,PoS 共识系统的缺点主要在于更多的潜在风险和被攻击的可能。比特币的共识机制的安全性已经经过了很长时间的考验,以太坊等主流 PoW 公链的安全性和可靠性也已被时间所证明,但是目前还没有哪个 PoS 公链经受过同等水平的考验。无利害攻击、长程攻击、贿赂攻击等多种攻击方式的存在,也使得人们更难相信 PoS 共识的安全性——即便它们可以抵抗这几种攻击,谁又能保证没有其它尚不被人们熟知的攻击方式呢?

PoS 共识中投票权和投票行为不绑定的特点,使得共识参与者可以采取的行动比 PoW 中的矿工丰富得多,这意味着攻击者有更大的自由度,而且也更难分析其他参与者们会如何行动。

现有的很多 PoS 共识的安全性依赖于”诚实的大多数”,但是实际上很难找到无条件执行协议的所谓”诚实的参与者”,在现实世界中的人更接近于经济学和博弈论所讨论的”理性人”——一个理性的好人能做到不干损人不利己的事,但是在有足够大的收益驱动的时候都也可能会干违反共识协议的”坏事”。

因此,一个安全的 PoS 共识系统除了保证在大多数参与者是诚实的情况下是安全的,还必须通过激励机制的设计,保证每一个理性的参与者都会遵守共识协议,而不是尝试通过违反协议获得更大的收益,这在博弈论中被称为”激励相容的”。现有的主流 PoW 共识都是满足激励相容的,例如按照比特币的规则,只有处在最长链上的区块的产生者才能拿到挖矿奖励,于是矿工们为了获得奖励就会按照规则在最长链后面挖矿。对于 PoS 共识系统,其本身的规则就已经非常复杂,参与者们的行动空间又比较大,因此想要深入分析 PoS 共识系统并证明类似的激励相容性自然也更为困难。

综上可以看出,PoS 在安全性上的缺点实际上更多的是一种隐患而不是不可修补的漏洞,是有可能通过完善的设计和精密的分析,做到部分、甚至是全部消除的。在某些合适的场景下,我们甚至可以通过在其它方面做出牺牲的方式得到堪用的安全性。因此笔者认为,在 PoS 共识的安全性可以达到应用场景的需求的前提下,使用 PoS 共识替代 PoW 共识是利大于弊的。

另外,原本是 PoW 的链转向 PoS,其实还有一点额外的好处,就是避开了 PoS 共识的公链在发布初期代币过于集中的问题。通常一个公链项目刚发布的时候所有代币都在开发团队和早期投资者手中,这就带来链上产生的收益甚至整条链的共识被少数人垄断的风险。当然,以太坊因为在 PoW 共识下已经过多年运营,其代币早被分散到大量用户手中,原本即不存在少数控制大量代币的用户通过 PoS 共识控制整条链的问题。

最后,笔者还是认为现有的主流公链从 PoW 转向 PoS 是需要慎之又慎的。毕竟,现在还没有一个公认可以安全地替代现有 PoW 的 PoS 共识,贸然启用一个尚未被证明安全的 PoS 共识机制,很可能会给整个共识系统带来不必要的风险、甚至是灾难性的后果。以太坊社区显然也非常清楚这点,所以自从 2015 年 12 月 Vitalik Buterin 第一次提出转向 PoS 共识的计划以来,为以太坊升级所设计的 PoS 协议,已经历了多个版本的反复讨论和迭代,并且规划出了先采用 PoW/PoS 混合共识的 Casper FFG,再过渡到纯 PoS 共识的 Casper CBC 的升级路线。

在此,我们预祝以太坊的这次”吃螃蟹”的升级一切顺利,可以作为一个成功转型的榜样,为整个区块链社区提供更多使用 PoS 共识的经验。当然,即使以太坊在这次升级过程中出现一些波折,也一定会以另一种形式为大家更好地了解和使用 PoS 共识做出贡献。(本文首发于DeepTech 平台每周二之 DeepHash 专栏)

杨光

杨光毕业于清华大学姚班,并于清华大学交叉信息研究院获得计算机科学博士学位。加入Conflux 团队前曾在丹麦奥胡斯大学、中科院计算所、比特大陆从事研究工作。他的研究方向包括密码学、博弈论和区块链。他的博士论文曾获得中国密码学会优秀博士学位论文奖。

“区块链技术非常复杂,而且有很多误解。更可怕的是,很多人自认为了解区块链技术,但表现出的却是无知。学术机构有着巨大的责任去培养下一代的创新者。”在杜克大学商学院开设区块链课程的教授 Campbell Harvey 曾经有感而发地说。

每项新兴技术发展都有它的周期,愈是可能带来重大变革的技术,这个周期往往也愈明显。就在区块链技术步入所谓“幻灭的低谷”之时,DeepTech 认为,下一个产业风口,如今正在每个顶尖高校的实验室、在各国央行与监管机构的研究室,在行业组织的研讨会中酝酿着。

DeepTech 认为,此时才是关键时刻,身为一家坚持深入报道科学科技产业的专业媒体与科技服务提供者,我们有责任也有必要,在这个时点上有带领读者去拨开迷雾、厘清误解,培养对区块链技术的更深刻认知。

因此我们于每周二固定推出 DeepHash 专栏,由 DeepTech 资深编辑林佳谊,邀集千人学者兼天德链创始人蔡维德、分布式系统专家王嘉平、Conflux 研究总监杨光、物联网区块链初创 BiiLabs 创始人朱宜振等专家学者共同维护,每周一次,带领读者在技术研发、在法规政策、在行业标准,在国际趋势,方方面面深入挖掘未来 3-5 年真正具有产业化潜力的区块链知识。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • POS
    POS
    +关注

    关注

    3

    文章

    118

    浏览量

    28148
  • 挖矿
    +关注

    关注

    6

    文章

    448

    浏览量

    15857
  • 以太坊
    +关注

    关注

    14

    文章

    1838

    浏览量

    31712

原文标题:淘汰挖矿!PoW转向PoS风潮崛起,是对?是错?| DeepHash专栏

文章出处:【微信号:deeptechchina,微信公众号:deeptechchina】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    低速转向时,汽车转向手感反馈及功能演示

    汽车转向系统
    北汇信息POLELINK
    发布于 :2024年03月12日 12:11:23

    POS机做CCC认证的认证标准与申请流程

    POS机申请CCC认证有哪些认证标准?在申请流程上跟其他类型产品又存在哪些区别?POS机是现代商业中不可或缺的支付终端设备,它在中国市场销售需要通过CCC认证。下面英利检测将介绍POS机CCC认证
    的头像 发表于 03-05 17:46 711次阅读
    <b class='flag-5'>POS</b>机做CCC认证的认证标准与申请流程

    汽车到底应该怎么卖?

    这股风潮由特斯拉带起,并迅速蔓延至几乎所有品牌。体量轻、成本低、人流量大、曝光度高,基本解决了一个全新品牌在销售、甚至传播端的各个功能兼顾问题。当然,这样的模式,也同样冲击着原本的汽车品牌经销商业态。
    的头像 发表于 12-27 17:01 393次阅读

    拆机一个POS机器, 欢迎围观一下

    有个POS机器没什么用了, 据说这个太专业高端了, 拆开看看 虽然是个迷你pos, 磁条,ic卡, nfc 一个功能都没少, 蓝牙连手机。外壳就不放了,放个主板。比较神奇的后面居然有一块没器件的板子, 不清出干什么用。
    发表于 12-11 14:37

    基于OC48POS线卡的设计与实现

    电子发烧友网站提供《基于OC48POS线卡的设计与实现.pdf》资料免费下载
    发表于 10-18 11:21 0次下载
    基于OC48<b class='flag-5'>POS</b>线卡的设计与实现

    Arm CryptoCell-312生成和验证安全引导和安全调试证书指南

    安全引导和安全调试是CryptoCell(CC)引导服务的基本功能。 安全引导和安全调试基于使用RSA私钥和钥方案的证书机制。 本教程介绍安全引导和安全调试证书的定义、生成和验证。 它还描述了
    发表于 08-24 06:09

    请问模式PCM的fs和bclk应该怎么设置?

    请问模式PCM的fs和bclk应该怎么设置。我自己理解8k的采样率8bit的数据,bclk应该是8*8000=64k,然后根据采样定理bclk应该设置成32khz不知道对不对
    发表于 08-21 06:20

    蓝牙POS机无线数传方案

    蓝牙BLE低功耗数据传输技术的使用加持在POS机新应用技术。 可以与移动终端智能设备,通过蓝牙配对功能,进行数据传输,通过移动终端显示电子小票,进行现场确认、签名,实现支付的功能。也可以在 POS
    发表于 08-19 15:31 1次下载

    透视汽车的转向系统与制动系统讲解

    汽车在行驶过程中,需按驾驶员的意愿经常改变其行驶方向,即所谓汽车转向。就轮式汽车而言,实现汽车转向的方法是,驾驶员通过一套专设的机构,使汽车转向桥(一般是前桥)上的车轮(即转向轮)相对
    的头像 发表于 07-06 09:20 890次阅读
    透视汽车的<b class='flag-5'>转向</b>系统与制动系统讲解

    请问模式PCM的fs和bclk应该怎么设置?

    请问模式PCM的fs和bclk应该怎么设置。我自己理解8k的采样率8bit的数据,bclk应该是8*8000=64k,然后根据采样定理bclk应该设置成32khz不知道对不对
    发表于 06-28 08:22

    线控转向技术路线的优点

      芝能汽车目前和汽车馆主联合一起在做行业技术报告,摘选部分比较基础的信息供参考。  01 线控转向技术路线 线控转向技术是一种创新的电子转向系统,通过采用传感器、电机和控制器等电子部件取代传统
    的头像 发表于 06-26 14:36 800次阅读

    请问模式PCM的fs和bclk应该怎么设置?

    请问模式PCM的fs和bclk应该怎么设置。我自己理解8k的采样率8bit的数据,bclk应该是8*8000=64k,然后根据采样定理bclk应该设置成32khz不知道对不对
    发表于 06-13 06:22

    KUKA E6POS结构类型的变量定义

    $POS_ACT 当前笛卡尔机器人位置 E6POS结构类型的变量定义了TCP相对于BASE坐标系的设定点位置。  X、Y、Z:原点沿轴的偏移,单位为[mm]  A、B、C:轴角度的旋转偏移,单位
    的头像 发表于 05-22 14:57 3411次阅读
    KUKA E6<b class='flag-5'>POS</b>结构类型的变量定义

    KUKA轨迹位置系统变量$POS_BACK,$POS_FOR,$POS_INT和$POS_RET

    POS_BACK可用于返回到中断的动作指令的起始位置$POS_BACK对应于用于近似窗口内的中断的窗口的开始,并且对应于用于在近似窗口之后的中断的窗的结束$POS_BACK触发KRL程序中的提前运行停止。
    的头像 发表于 05-19 09:37 3121次阅读
    KUKA轨迹位置系统变量$<b class='flag-5'>POS</b>_BACK,$<b class='flag-5'>POS</b>_FOR,$<b class='flag-5'>POS</b>_INT和$<b class='flag-5'>POS</b>_RET

    什么是连接器的头和母头?接线器头母头怎么区分?

    什么是连接器的头和母头?接线器头母头怎么区分?
    发表于 05-09 11:27