上个文章讲了区块链和原理,作用和挖矿的原理,但挖矿也只是PoW共识算法中的一个获取加密货币的方法,区块链中不止有PoW一种共识算法,其他算法和PoW不相同,下面就来看看吧
什么是PoW
PoW类的共识算法主要包括区块链鼻祖比特币所采用的PoW共识及一些类似项目(如莱特币等)的变种PoW,即为大家所熟知的挖矿类算法。这类共识算法的核心思想实际是所有节点竞争记账权,而对于每一批次的记账(或者说,挖出一个区块)都赋予一个难题,要求只有能够解出这个难题的节点挖出的区块才是有效的。同时,所有节点都不断地通过试图解决难题来产生自己的区块并将自己的区块追加在现有的区块链之后,但全网络中只有最长的链才被认为是合法且正确的
比特币类区块链系统采取这种共识算法的巧妙之处在于两点:首先,它采用的 难题 具有难以解答,但很容易验证答案的正确性的特点,同时这些难题的 难度,或者说全网节点平均解出一个难题所消耗时间,是可以很方便地通过调整难题中的部分参数来进行控制的,因此它可以很好地控制链增长的速度。同时,通过控制区块链的增长速度,它还保证了若有一个节点成功解决难题完成了出块,该区块能够以(与其他节点解决难题速度相比)更快的速度在全部节点之间传播,并且得到其他节点的验证的特性;这个特性再结合它所采取的最长链有效的评判机制,就能够在大多数节点都是诚实(正常记账出块,认同最长链有效)的情况下,避免恶意节点对区块链的控制。这是因为,在诚实节点占据了全网50%以上的算力比例时,从期望上讲,当前最长链的下一个区块很大概率也是诚实节点生成的,并且该诚实节点一旦解决了难题并生成了区块,就会在很快的时间内告知全网其他节点,而全网的其他节点在验证完毕该区块后,便会基于该区块继续解下一个难题以生成后续的区块,这样以来,恶意节点很难完全掌控区块的后续生成
PoW类的共识算法所设计的难题一般都是需要节点通过进行大量的计算才能够解答的,为了保证节点愿意进行如此多的计算从而延续区块链的生长,这类系统都会给每个有效区块的生成者以一定的奖励。比特币中解决的难题即寻找一个符合要求的随机数。然而不得不承认的是,PoW类算法给参与节点带来的计算开销,除了延续区块链生长外无任何其他意义,却需要耗费巨大的能源,并且该开销会随着参与的节点数目的上升而上升,是对能源的巨大浪费
什么是PoS
在PoS共识机制上的演算法会依据各个节点在区块链上的质押代币多少来选出验证者,也就是我们要去争取到验证节点才能够取得记帐权。
演算规则是质押越多代币的一方就有越高的机率取得验证节点来提出区块并打包,接着该区块的资料会同步到整个区块链网络中,而其他节点则会依据质押代币的多少来验证该区块的合理性。
此时,PoS共识机制是不需要跟PoW共识机制一样透过购买矿机且消耗能源的方式来争取记帐权,而是透过投资者的质押代币多少在链上的智能合约中来争取记帐权。
换个角度思考,也可以说PoS共识机制是以购买代币的成本取代原先的PoW 共识机制的矿机运行成本。
质押代币是什么
质押代币(Staked Tokens)是指在PoS共识机制中,用户将拥有的代币锁定在网络中,作为证明其承诺参与共识的证据。这些锁定的代币被称为质押代币,它们在PoS网络中具有生成新块的权限,并且可以获得相应的报酬。质押代币的数量决定了持有者生成新块的概率,因此,越多的质押代币意味着更高的生成新块的机会
质押代币越多收益越高吗?
不一定。质押代币越多,占总代币数量的比例越高,因此您可能有更高的概率获得收益,但这不是保证。具体收益受到多种因素的影响,例如网络活动程度、抵押货币的利率等。此外,在某些PoS系统中,抵押代币的数量可能不再直接影响收益,而是用于确定抵押者的权重,从而影响其对网络的贡献和收益。因此,最好在投资之前充分了解系统的运作原理。
智能合约是什么
简单来说,智能合约是一种在满足一定条件时,就自动执行的计算机程序。例如自动售货机,就可以视为一个智能合约系统。客户需要选择商品,并完成支付,这两个条件都满足后售货机就会自动吐出货物。合约在生活中处处可见:租赁合同、借条等。传统合约依靠法律进行背书,当产生违约及纠纷时,往往需要借助法院等政府机构的力量进行裁决。智能合约,不仅仅是将传统的合约电子化,它的真正意义在革命性地将传统合约的背书执行由法律替换成了代码。俗话说,规则是死的,人是活的,程序作为一种运行在计算机上的规则,同样是死的。但是死的也不总是贬义词,因为它意味着会严格执行。
比如,球赛期间的打赌即可以通过智能合约实现。首先在球赛前发布智能合约,规定:今天凌晨2:45,欧冠皇马VS拜仁慕尼黑,如果皇马赢,则小明给我1000元;如果拜仁赢,我给小明1000元。我和小明都将1000元存入智能合约账户,比赛结果发布,皇马4:2胜拜仁,触发智能合约响应条件,钱直接打入我的账户,完成履约。整个过程非常高效、简单,不需要第三方的中间人进行裁决,也完全不会有赖账等问题。
尽管智能合约这个如此前卫的理念早在1995年就被提出,但是一直没有引起广泛的关注。虽然这个理念很美好,但是缺少一个良好的运行智能合约的平台,确保智能合约一定会被执行,执行的逻辑没有被中途修改。区块链这种去中心化、防篡改的平台,完美地解决了这些问题。智能合约一旦在区块链上部署,所有参与节点都会严格按照既定逻辑执行。基于区块链上大部分节点都是诚实的基本原则,如果某个节点修改了智能合约逻辑,那么执行结果就无法通过其他节点的校验而不会被承认,即修改无效。
智能合约的优缺点
就像任何其他新的系统协议一样,智能合约并不完美。使用智能合约有几个优点和缺点,包括更高的效率和缺乏监管。具体来说:
使用智能合约的一些主要优势包括在处理文档时的更高效率。这归功于它能够采用完全自动化的流程,不需要任何人为参与,只要满足智能合约代码所列出的要求即可。结果是,会节省时间,降低成本,交易更准确,且无法更改。
此外,智能合约去除任何第三方干扰,进一步增强了网络的去中心化。
另一方面,智能合约的使用也会产生不少问题。一些缺点包括:人为错误、完全实施有困难、不确定的法律状态。
虽然很多人把智能合约的不可逆转特性看作是它的主要好处,但也有人认为一旦出现问题无法修改。因为人类会犯错误,在创建智能合约时也一样,一些绑定协议可能包含错误,而它们是无法逆转的。
此外,智能合约只能使用数字资产,在连接现实资产和数字世界时会出现问题。最后也是最重要的是,智能合约缺乏法律监管,只受制于代码约定的义务。缺乏法律监管可能会导致一些用户对网络上交易持谨慎态度,特别是它很重要的话。
使用智能合约的优点是处理交易时效率更高,不可逆转,安全的交易以及全自动化流程。另外一个方面,缺点就是缺乏法律监管,人为的错误和实施有困难。
PoS 共识机制的币龄及利息
智能合约上的PoS 共识机制还会计算币龄(CoinAge) 以随机的方式选择下一个区块的验证者,币龄越大,争取记帐权的机率越高。
除此之外,币龄也会用来计算在取得记帐权时,能够获得多少利息奖励,每一个代币一天都会有一币龄。
换句话说,币龄的公式为币龄= 代币质押天数 × 质押代币的数量,比如说我质押100 颗代币花10 天争取到记帐权,此时我的币龄是1000。
然而其币龄所获得相对应的利息奖励公式为利息= 币龄× 该代币的年利率 ÷ 365,比如说我的代币年利率是12%,因此我可以获得1000 × 12% ÷ 365 = 0.328 颗代币利息奖励。
而币龄会归零重新再次计算,避免有大量代币质押的节点垄断区块链的问题产生。
另外,质押代币的年利率是参考年化报酬率,每日都会变动,并不代表质押结束后能拿到相对应的值,仅参考用。
年化报酬率是什么
年化报酬率是一种计算投资回报的方法,它代表了一年内投资回报的平均数,并以百分比形式表示。年化报酬率是对投资回报的折算,考虑到投资期限、投资金额和回报的时间。它可以帮助投资者评估投资的风险和收益,以便做出更明智的投资决策。
总结上述,我们能够知道增加争取记帐权的机率有以下三项条件:
-
质押代币数量越多
-
质押时间越久
-
距离上次获得记帐权的时间越久
PoS如何运作?
区块链的PoW 共识机制运行方式是由多个节点所连接起来的分散式网络组成,以共识机制的演算规则:
透过矿机来计算随机数的方式来不停地送出函数的Hash 值至节点,使得最后产生的答案达到演算法设定的范围内,才能够成功打包区块且持续地同步其链上资料至其他节点来达成共识。
但当人们注意到PoW共识机制所衍生的问题后,而提出新的共识机制解决方案:以质押代币的多寡来争取记帐权,也就是本文所讲的PoS 共识机制。
在PoS共识机制上的演算法会依据各个节点在区块链上的质押代币多寡来选出验证者,也就是我们要去争取到验证节点才能够取得记帐权。
其演算规则是质押越多代币的一方就有越高的机率取得验证节点来提出区块并打包,接着该区块的资料会同步到整个区块链网络中,而其他节点则会依据质押代币的多寡来验证该区块的合理性。
此时,PoS共识机制是不需要跟PoW共识机制一样透过购买矿机且消耗能源的方式来争取记帐权,而是透过投资者的质押代币多寡在其链上的智能合约中来争取记帐权。
PoS的优势与劣势
PoS共识机制是为了解决PoW共识机制的缺点而提出的解决方案,但这也将会牺牲一些区块链不可能三角的优势来去弥补缺点。
我们将会透过条列式的方式来简单区分说明PoS 的各个优缺点。
PoS的优点
-
相较于PoW矿机设备面临供不应求时,PoS 不需要担心有无矿机设备问题
-
在PoS 的质押代币机制下,可以减少骇客作为验证者控制51% 以上的权益节点的恶意操作攻击机率
-
响应环保意识下,更可以符合人们期望,大幅节省资源能源的消耗
-
交易的验证效率及性能相比PoW更快,缩小达成共识所需的时间
PoS的缺点
-
若区块链分叉成2条链时,质押的代币在2条链都能够获得利息,可能会影响区块链的通膨
-
大量代币集中在某一节点上,很可能会演变成资本主义而失去原有区块链的信念
-
缺乏外部稀缺性使得质押代币不用支付太多成本,很可能会造成严重的区块链币价支撑问题
-
质押的代币无法马上取回,若币价发生暴跌,将会发生赚了利息赔了本金的问题
因此我们可以理解PoS 共识机制虽然有很好的优势,但也伴随着相对应的风险。 这也是区块链所提到的不可能三角问题:只要两方得到提升,必然会有一方是属于弱势的。
此时,我们就必须要思考在PoS 共识机制中,牺牲了哪些因素呢?
然而区块链所提到的「不可能三角」,指的是在区块链的所有共识机制中,目前没有一个共识机制可以完美的同时兼具这三项特质:去中心化(Decentralization)、可扩展性(Scability)、安全性(Security)
虽然在PoS共识机制下,可以让投资者透过质押代币的方式取得稳定的利息收入,满足不可能三角的「安全性」及「可扩展性」,
但也伴随富者越富的风险,而丧失「去中心化」,因此该机制还是有风险与限制的存在。
PoS与PoW、DPoS的差异
PoS是透过质押代币多少的方式在区块链上争取记帐权,并获取相对应的代币利息奖励。虽然其中的原理像我们购买股票来领取股息,但是实际上背后定义并不一样。
-
PoS:权益证明(Proof of Stake),是针对PoW共识机制所衍生的问题而提出的共识机制,以质押代币的多少来争取记帐权,虽然解决了能源消耗问题,但是并未有效改善性能、效能及扩展性的问题,因此后来又衍生出改良版的DPoS共识机制。
-
PoW:工作量证明(Proof of Work),是区块链最早出现的共识机制,也是BTC所采用的共识机制,以矿机设备的算力来争取记帐权,但相对能源消耗问题比其他两者共识机制高出许多,同时性能效率及扩展性较差,因此也就有PoS共识机制替代方案来解决此问题。
-
DPoS:代理权益证明(Delegated Proof of Stake),与PoS共识机制原理相同,差异在于多出选择数个见证者,类似民主投票概念,以投票方式选出见证者,由他们负责管理验证与记帐,这种机制能够大幅降低节点量来提升性能效率及扩展性的不足,但相对权力会集中在少数节点上而牺牲安全性及去中心化。
共识机制 | 权益证明 | 工作量证明 | 权益证明 |
---|---|---|---|
代称 | 验证者 | 矿工 | 见证者 |
挖矿方式 | 质押代币 | 电脑算力 | 质押代币及声量 |
挖矿成本 | 代币 | 电力、矿机设备 | 代币 |
代理人 | 无 | 无 | 有 |
能源消耗 | 无 | 有 | 无 |
安全性 | 中 | 高 | 低 |
去中心化 | 中 | 高 | 低 |
可扩展性 | 中 | 低 | 高 |
缺点 | 资产被锁仓 | 矿机设备贵 | 资产被锁仓 |
其他共识机制
PoB(Proof of Burn),证明燃烧,是一种区块链共识机制,要求节点销毁(燃烧)一定数量的代币作为证明其参与网络的证明。
PoC(Proof of Capacity),证明容量,是一种区块链共识机制,要求节点分配一定的硬盘容量来存储数据块的哈希值,以证明其参与网络的证明。
PoT(Proof of Transfer),证明转移,是一种区块链共识机制,要求节点证明其已经完成了一笔资产的转移,以证明其参与网络的证明。
PoV (Proof of View) 是区块链的一种共识机制。它是一种基于用户浏览内容的证明方式,涉及到用户在浏览内容时自动记录、计算和验证的过程。这种共识机制通常在针对观看视频、阅读文章等内容的平台上使用,以确保参与者对内容的真实参与,并为内容创作者提供相应的报酬。
PoV(Proof of Velocity)是一种区块链共识算法,它将点对点网络中的数据流动性(速度)作为验证其所拥有代币的证明。这种算法通过计算针对特定区块的数据传输速率来证明参与方的价值,从而保证其能够持续参与网络的交互和共识。通过激励网络的活跃度,PoV的目的是在保持区块链网络的安全性的同时,提高网络效率。
PoSV(Proof of Stake Velocity),证明持币速度,是一种区块链共识机制,结合了PoS(证明持币)和PoV(证明速度)的特点,要求节点持有足够的代币并且经常交易以证明其参与网络的证明。
BFT类算法
无论是PoW类算法还是PoS类算法,其中心思想都是将所有节点视作竞争对手,每个节点都需要进行一些计算或提供一些凭证来竞争出块的权利(以获取相应的出块好处)。BFT类算法则采取了不同的思路,它希望所有节点协同工作,通过协商的方式来产生能被所有(诚实)节点认可的区块
具体地,BFT类共识算法一般都会定期选出一个领导者,由领导者来接收并排序区块链系统中的交易,领导者产生区块并递交给所有其他节点对区块进行验证,进而其他节点“举手”表决时接受或拒绝该领导者的提议。如果大部分节点认为当前领导者存在问题,这些节点也可以通过多轮的投票协商过程将现有领导者推翻,再以某种预先定好的协议协商产生出新的领导者节点。
BFT类算法一般都有完备的安全性证明,能在算法流程上保证在群体中恶意节点数量不超过三分之一时,诚实节点的账本保持一致。然而,这类算法的协商轮次也很多,协商的通信开销也比较大,导致这类算法普遍不适用于节点数目较大的系统。业界普遍认为,BFT算法所能承受的最大节点数目不超过100
结合可信执行环境的共识算法
上述几类共识算法均为纯软件的共识算法。除此之外,还有一些共识算法对硬件进行了利用,如一些利用可信执行环境(Trusted Execution Environment, TEE)的软硬件结合的共识算法。
可信执行环境是一类能够保证在该类环境中执行的操作绝对安全可信、无法被外界干预修改的运行环境,它与设备上的普通操作系统(Rich OS)并存,并且能给Rich OS提供安全服务。
可信执行环境所能够访问的软硬件资源是与Rich OS完全分离的,从而保证了可信执行环境的安全性。利用可信执行环境,可以对区块链系统中参与共识的节点进行限制,很大程度上可以消除恶意节点的不规范或恶意操作,从而能够减少共识算法在设计时需要考虑的异常场景,一般来说能够大幅提升共识算法的性能。