第13讲 | 深入区块链技术(五):PoS共识机制

  上一篇我们讲到了PoW共识机制,这一篇我们就来分享另外一种共识机制,PoS共识机制。

  PoS全称是Proof of Stake,中文翻译为权益证明。这一篇我们会将PoS与PoW对比讲解,帮助你加深理解。

PoS的由来

  PoS最早出现在点点币的创始人Sunny King的白皮书中,它的目的就是为了解决使用PoW挖矿出现大量资源浪费的问题。PoS共识机制一经提出就引起了广泛关注,Sunny King 也基于PoW的基础框架实现了第一代PoS区块链:点点币。

  PoW的具体实现有很多版本,但它们大多只是在挖矿算法上有所改进,主体逻辑并没有发生质的变化。PoS包含了多个变种实现,每个变种往往会涉及区块链代币经济模型的改动,可以说是牵一发而动全身。

  这些实现有点点币、黑币、未来币、瑞迪币,它们都推动了PoS机制的发展,PoS研究前沿还有以太坊的 Casper ,以及 Cardano 的Ouroboros。

  那到底是什么样的机制导致PoS具有这样的特性呢?让我们来看一看。

什么是PoS?

  在讲PoS之前,我先来讲一个叫做币龄的概念,币龄这个概念其实很好理解,它的英文是 CoinAge,字面意思就是币数量乘以天数。

  比如你有100个币,在某个地址上9天没有动,那么产生的币龄就是900,如果你把这个地址上这100币转移到任意地址,包括你自己的地址,那么900个币龄就在转移过程中被花费了,你的币数量虽然还是100个,但是币龄变更为0。币龄在数据链上就可以取到,任何人都可以验证。

  我们回过头来看看PoS究竟是什么,区块链共识机制的第一步就是随机筛选一个记账者,PoW是通过计算能力来获得记账权,计算能力越强,获得记账权的概率越大。

  PoS则将此处的计算能力更换为财产证明,就是节点所拥有的币龄越多,获得的记账的概率就越大。这有点像公司的股权结构,股权占比大的合伙人话语权越重。

  以上算是简述了PoS的概念,实际上,PoS的发展经历了三个版本,第一个版本是以点点币为代币的PoS1.0版本,这个版本中使用的是币龄;第二个版本为代表的是黑币(blackcoin),它使用的为PoS2.0版本,对应这个版本使用的是币数量,相当于是财产证明,后面黑币又升级到PoS3.0,这个版本又回到了币龄。

  PoW早在比特币出现之前就已经应用了,而PoS是才是真正意义上为了区块链而创造出来的概念。

PoS的实现原理

  好了,现在我们开始讲解PoS的具体实现原理吧。这一部分公式较多,如果你在收听音频,可以点击文稿查看。

  通过上一篇我们知道PoW挖矿的基本逻辑和步骤,我们先寻求一个nonce小于目标值,这一步用公式可表示为:

Hash (block_header) < Target

  从公式中我们可以看到,PoW下所有矿工的目标值是一样的,只要计算结果哈希小于目标值即可,简化来看就是前导0的个数。

  而在PoS系统中,这个公式变更为:

Hash (block_header) < Target * CoinAge

  我们可以看出多引入了一个变量叫做CoinAge,也就是币龄,这里就有意思了。

  这个变量为会造成每个矿工看到的目标值不一样,如果你的币龄越大,也就意味着你的获得答案越容易。这里的Target与PoW一致,与全网难度成反比,用来控制出块速度的。

  例如当前全网的目标是4369,A矿工的输入的币龄是15,那么A矿工的目标值为65535,换算成十六进制就是0xFFFF,完整的哈希长度假设是8位,也就是0x0000FFFF。

  而B矿工比较有钱,他输入的币龄是240,那么B矿工的目标值就是0x000FFFFF。你如果仔细观察肯定会发现,相比A矿工的目标值,B直接少了一个零。即如下:

  • A 矿工 Hash( block_header ) < 0x0000FFFF
  • B 矿工 Hash( block_header ) < 0x000FFFFF

  所以B矿工获得记账权的概率肯定要比A高。

  具体代码分析这里就不讲解了,这里需要币龄作为输入,如果我们写示例代码也只是一个简单的参数,PoS需要放到区块链的语境中才能运作。

PoS的相关问题

  通过上述的介绍我们知道:PoS似乎完美地解决了PoW挖矿资源浪费的问题,甚至还顺带解决了51%攻击的问题,这里可以顺便讲一下51%攻击是什么,它是指PoW矿工如果积累了超过51%的算力,则可以一定程度篡改账本。

  这里顺便科普一下,什么是51%攻击呢,我们发现,矿工挖矿的成本不再是物理设备和电费,而是虚拟代币,它的边际成本几乎为零,本质上PoS让挖矿者和使用者合二为一了。

  这也意味着如果挖矿者发起51%攻击,就需要拥有全网51%的币或币龄,这几乎不可能办到,即使你成功地实施了51%攻击,那么也意味着作为全网最大的持币大户的你,损失也会最大。

  PoS看起来相当完美,其实并不然,PoS有很多缺陷。

  PoS遇到的第一个问题就是币发行的问题。一开始的时候,只有创始区块上有币,意味着只有这一个节点可以挖矿,所以让币分散出去才能让整个网络壮大,那么如何分散出去又是另外一个难题了。

  所以早期PoS币种基本都采用了分阶段挖矿,有的叫混合挖矿,其实,我并不同意混合挖矿这个说法,混合就意味着同时。很多币种其实是分了阶段的,即第一阶段是PoW挖矿,到第二阶段才是PoS挖矿。

  随着ERC20类型的标准合约代币的出现,这个问题被解决了,不再需要第一阶段改成PoW,也可以将代币分散出去。

  第二个问题是由于币龄是与时间挂钩的,这也意味着用户可以无限囤积一定的币,等过了很久再一次性挖矿发起攻击;所以解决方案是:PoS机制需要引入一个时间上限来控制时间因素的自然增长。

  第三个问题是虽然引入了时间上下限,用户还是倾向于囤积代币,这会造成币流通的不充分;基于此,所以瑞迪币引入了币龄按时间衰减,构造了权益速度证明,鼓励用户流动代币,而不是倾向于囤积代币。

  第四个问题是离线攻击,即使引入了时间上下限,时间仍然是自然流动的,也就是可以不需要求挖矿节点长时间在线。挖矿是可以离线的,这简直是灾难,所以任意一个PoS机制的实践形式都必须避免这个问题,因为网络节点数量的多少直接关系到区块链网络的健壮性。

  当然这些问题都不是致命问题,还记得我们一开始提到了PoS经历了三个版本,而第二个版本PoS 2.0使用的不是币龄,而直接是币的数量。

  这会造成完全不同的结果,上述第二、三、四问题都不存在了,似乎看起来直接使用币的数量会更好一些,但却出现了整个PoS机制的致命问题。

  这个问题叫做Nothing at Stake,翻译过来叫做无成本利益问题。大体的意思在PoS系统中做任何事几乎没有成本,比如在PoS系统上挖矿几乎没有成本,这也就意味着分叉非常方便。

  方便到什么程度呢,每个诚实矿工在产生孤块的时候都可以继续挖下去,反正也没什么成本,反正分叉链和主链都可以同时挖,也就是任何持币较少的用户都可以尝试分叉,并且把分叉链广播出去。

  这个时候如果其他诚实矿工看到了,第一反应也是没有成本,那么咱们也来挖吧,说不定什么时候就值钱了,意思就是说任何逐利的矿工并不会使这个系统变得更强壮稳定,而是更加的混乱。

  无成本利益问题无论以币龄还是币数量作为PoS的参数,都无法避免。

  而PoW则没有这样的问题,我们回到PoW系统中来看,因为任何的分叉都会造成挖矿成本直接变成负收益,所以这会抵抗分叉的产生,矿工倾向于跟随“最长”的链。

  由于以太坊部分采用了PoS共识,它的名字叫做Casper,它必须解决上述无成本利益问题攻击。所以Casper协议要求PoS矿工需通过抵押保证金的方法对共识结果进行下注,具体实践结果我们还需要拭目以待。

总结

  最后我们来总结一下PoS共识机制,PoS的区块链系统无需外部物理输入,所以它相比PoW更为环保不费电,并且矿工就是使用者,这会在一定程度上抵御了51%攻击,所以基于PoS机制的数字货币属于理想状态的数字货币。

  PoS的缺点是缺乏工业级的区块链应用,从逻辑上来看有点循环自证明的味道,就是用自己的币来维护系统的安全,而币的安全性是由系统保证的,所以现阶段PoS共识机制往往不是独立运行的,而是混合了PoW一起运行,这就可以弥补PoS的缺陷。

  PoS共识机制目前也出现了矿池,也可能会出现中心化挖矿的风险。

  虽然PoS共识机制未来变数依然很多,但它的可塑性比PoW好,技术上的探索空间大,目前PoS币种相比较PoW币种风险也较高。

  那么有哪些区块链项目使用了PoS共识机制呢?你可以给我留言,我们一起讨论,感谢你的收听,我们下期再见。

原文地址:https://www.cnblogs.com/sueyyyy/p/9726812.html

时间: 2024-11-09 01:07:42

第13讲 | 深入区块链技术(五):PoS共识机制的相关文章

第14讲 | 深入区块链技术(六):DPoS共识机制

上一篇文章里,我们讲解了PoS共识机制,这一篇我们来分享PoS的一个扩展机制,这个机制在业界也非常的流行,它叫做DPoS共识机制.DPoS全称是Delegated Proof of Stake,中文翻译过来是代理权益证明. 从BM开始聊起的故事 我们聊DPoS时,为什么要从BM聊起呢, 其实,这和聊比特币绕不开中本聪一样,DPoS是BM一手创造的.DPoS不是独立提出的共识算法,而是直接被BM应用到比特股项目中,在稳定运行了3年多后,又接着被BM构造成可复用的区块链工具箱:石墨烯. 虽然应用得很

第10讲 | 深入区块链技术(二):P2P网络

在上一篇文章中,我大致讲解了一下区块链技术的几个核心要素.P2P网络协议.分布式一致性算法(共识机制).加密签名算法.账户与存储模型.今天我们就来看看区块链技术的第一个核心要素:P2P网络. 如果我们简单来看P2P技术,它的应用领域已经非常广泛了,从流媒体到点对点通讯.从文件共享到协同处理,多种领域都有它的身影出现. 同样的,P2P的网络协议也有很多,比较常见的有BitTorrent.ED2K.Gnutella.Tor等,也就是我们常说的BT工具和电驴. 比特币.以太坊等众多数字货币都实现了属于

区块链技术公司谈并不是所有手机都叫区块链手机

本文由彭利编辑有问题联系微信2398788267)看手机是否利用了区块链技术要讲清楚该款产品用的是什么共识机制,有多少个节点,是公有链.联盟链还是私有链,这才是关键,什么都没有,则称不上是区块链,那么什么叫做公有链.联盟链还是私有链,公有链注重匿名性与去中心化,联盟链则是开放程度介于公有链和私有链之间的区块链.私有链是完全中心化的区块链,私有链的各个节点的写入权限收归内部控制,读取权限可视需求选择性对外开放,私有链及联盟链注重高效率公有链是完全去中心化的区块链,任何个体或者团体都可以发送区块链交

区块链技术开发 聊区块链+物联网场景应用

几乎在同一时期,区块链技术开发的诞生与物联网概念出现,但"遗憾"的是,二者直到最近一两年才"擦出火花",一方面,物联网几何级扩张后问题暴露得更加明显,亟待寻找解决方案,另一方面,区块链带来的全新思维方式也逐渐被主流商业群体所接受,空白的市场吸引了各行各业切入其中,抢时间成为了大家做区块链技术开发的共同目标. 从区块链技术开发的结构机制来看,去中心化的架构直接颠覆了物联网旧有的中心架构,不但大大减轻中心计算的压力,而且释放了物联网组织结构的更多可能,为创新提供了更多空

区块链快速入门(五)——区块链技术的演化

区块链快速入门(五)--区块链技术的演化 一.区块链技术的发展 比特币区块链面向转账场景,支持简单的脚本计算.如果引入更多复杂的计算逻辑,将能支持更多应用场景,即智能合约(Smart Contract).智能合约可以提供除了货币交易功能外更灵活的合约功能,执行更为复杂的操作.引入智能合约的区块链,已经超越了单纯数据记录功能:可以为区块链加入权限管理,高级编程语言支持等,实现更强大的.支持更多商用场景的分布式账本系统.区块链技术的三种典型演化场景如下: 二.区块链技术的分类 根据参与者的不同,区块

第22讲 | 国内区块链项目技术一览

区块链的深入技术篇写到了现在,我们已经一起看过了很多国外区块链项目的技术逻辑.实际上,国内的优质区块链项目其实也不少,并且势头很足,不容小觑. 我在前面的文章中介绍过国内的几个区块链项目,不过仅从发展的角度做了一个简要概述,并没有进行深入探讨,今天我们就重点来看一看这些项目的设计思路与技术特点. 小蚁NEO 1.简介 我们以前讲到过,NEO的前身是小蚁,小蚁最早在2015年发起,它在2017年中正式更名为NEO. NEO项目一共经历过两次ICO,第一次ICO是项目创立,第二次ICO是项目更名后的

什么是“区块链”技术

简单谈谈究竟什么是“区块链”技术 今年9月,13家顶级银行,包括汇丰银行.德意志银行等,已经加入了一个由金融技术公司R3领导的组织.R3公司将会利用区块链技术作为框架.宣布加入的13家银行是:花旗银行.美国银行.摩根斯坦利.德国商业银行.法国兴业银行.瑞典北欧斯安银行.纽约梅隆银行.三菱UFJ金融集团.澳大利亚国民银行.加拿大皇家银行和多伦多道明银行.由此总计22家银行加入财团.此前,另外9个银行已经签署了R3的初创协议,这代表着首次,银行之间对于如何利用区块链——支撑比特币的技术——用于金融层

区块链技术与数据库技术

区块链技术与数据库技术 IBM是最早介入区块链研发的国际大公司之一,例如去年大家熟知的IBM和三星的区块链合作项目以及Linux/IBM联合项目.作为IBM区块链技术中国区的负责人和专利评审委员会的联合主席,我和团队也在去年10月就提交并获得区块链的美国专利.这是中国人获取的第一个区块链国际专利.紧接着12月,我们组织了IBM全球Fintech峰会及内部闭门会议,邀请IBM全球13大研究院在区块链相关领域的院士, DE, VP和CTO齐聚上海进行为期2天的研讨.讨论的结果是公司在今年迅速将区块链

区块链技术从入门到精通

详情请交流  QQ  709639943 01.区块链技术从入门到精通 02.2017年新生大学区块链视频教程 03.Node.js入门到企业Web开发中的应用 04.精通高级RxJava 2响应式编程思想 05.Java秒杀系统方案优化 高性能高并发实战 06.Java深入微服务原理改造房产销售平台 07.快速上手Linux 玩转典型应用 08.快速上手Ionic3 多平台开发企业级问答社区 09.Java Spring Security开发安全的REST服务 10.深入Java虚拟机(JVM