区块链学习笔记(三)

我的博客地址:https://blog.csdn.net/qq_41907991

前两篇文章我们对区块链技术跟工作量证明机制做了简单的介绍,这次我们接着说一说其他的共识算法。

    权益证明(POS)的概述

与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间(币龄)依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行挖矿运算PoS即权益证明,它将PoW中的算力改为系统权益,拥有权益越大则成为下一个记账人的概率越大。这种机制的优点是不像Pow那么费电,但是也有不少缺点: 
1)没有专业化,拥有权益的参与者未必希望参与记账; 
2)容易产生分叉,需要等待多个确认; 
3)永远没有最终性,需要检查点机制来弥补最终性;

 币龄(Coin age)

至少早在 2010年,中本聪就在BTC设计中提出并使用了币龄这一概念,用于给交易排出优先次序,但这个概念在其安全模式中没有起来很重要的作用。币龄只是简单地定义为货币的持有时间段。简单举例说明一下:如果李明从韩梅那里收到了10个币,并且持有90天,那么李明就收集到了900币天的币龄。
此外,如果李明使用了从韩梅收到的这10个币,我们就认为李明从这10个币上积累的币龄被消耗(销毁)了。
为简化币龄的计算,我们为每个交易引入了时间戳的概念。区块时间戳及交易时间戳相关联的协议得以强化,以便确定对币龄的运算。

   POS的设计理念

来自于对比特币危机的思考,原因有三:

首先,我们都知道,比特币的区块产量每4年会减半,在不久的未来,随着比特币区块包含的产量越来越低,大家挖矿的动力将会不断下降,矿工人数越来越少,整个比特币网络有可能会逐渐陷入瘫痪(因为大家都减少了运行比特币客户端的时间,因此越来越难找到一个P2P节点去连接和同步网络数据)。 

POS解决方案:在POS体系中,只有打开钱包客户端程序,才能发现POS区块,才会获得利息,这促使很多不想挖矿的人,也会常常打开自己的钱包客户端,这帮助了P2P货币网络的健壮。
 
其次,若干年后,随着矿工人数的下降,比特币很有可能被一些高算力的人、或团队、或矿池,进行51%攻击,导致整个比特币网络崩溃。51%攻击简单来说,就是当你拥有了超过全球51%的比特币算力时,你将能伪造比特币网络的任何数据,比如你伪造你有一百万个比特币但实际上你没有。(拓展阅读:什么区块链是51%攻击)
 
POS解决方案:在POS体系中,即使你拥有了全球51%的算力,也未必能够进行51%攻击,因为,有一部分的货币并不是挖矿产生的,而是由利息产生(利息存放在POS区块中),这要求攻击者还需要持有全球超过51%的货币量。这大大提高了51%攻击的难度。
 
第三,虽然我们知道比特币是一个永远不会通货膨胀的体系,因为他的货币总量表面看起来是固定的,但是,你是否知道,比特币其实是一个通货紧缩的体系。因为,当我们重装了系统,或者忘记了钱包密钥时,我们会永远无法再拿回钱包里的钱,这意味着,每年都会有一些比特币随着钱包的丢失而永远被锁定,这就形成了实质上的通货紧缩,也许在五十年后,有效的比特币,将会只剩下一千万个。
 
POS解决方案:提供一定的年利率,尽可能保证既不通货膨胀,也不通货紧缩。
 

从以上3点我们可以看出,POS体系是在POW的基础上全新建设的体系,有着非常长远的见解和先进的理念。

   基于POS的造币(minting)

除了BTC的POW区块之外,在PPC中还有一种新型的POS造币过程。POS区块将根据在币利交易中所消耗的币龄产生利息币。设计时设定了每币一年将产生1分(利息),以避免将来的通胀。
虽然我们在造币时保留了POW,使最初的造币更加方便,但是可以预料到的是在一个纯粹的POS系统里,最初的造币可以种植在创世区块里,形式类似于现实证券市场中的IPO。

   主链协议

判断主链的标准已经转化为对消耗币龄的判断。每个区块的交易都会将其消耗的币龄提交给该区块,以增加该区块的得分。获得最高消耗币龄的区块将被选中为主链。

这与BTC主链协议中以POW工作量最高的为主链的协议是不同的。

   校验机制:保护历史数据

使用消耗币龄总数来决定主链的不足之处在于其降低了攻击整个区块链历史的成本。即使BTC在保护历史数据方面有较强的机制,但中本聪仍在2010年提出了校验机制来保护区块链历史,防止任何可能在校验点之前对区块链的修改。

另外一个忧虑是双重支付的成本也可能降低了,由于攻击者可以累积一定量的币龄来迫使区块链重组。为使此系统在商业上具操作性,我们引入了一个中心校验机制,每一天大概会向全网广播若干次,以冻结区块链及结算交易。这种新型的校验机制与BTC的警报系统类似。

Laurie(2011) 提出BTC并没有完全解决大家的担忧,即校验机制没有发布给大家。我们尝试设计一种可行的去中心化的校验机制,但发现在对抗网络分叉(fork)时很困难。虽然向全网广播的校验机制是一种中心化的形式,但在没有去中心化的解决方案之前,我们认为这是可以接受的。

另外一个使用中心化的广播校验机制的原因是:为了抵御一类DOS攻击,在每个节点都接纳一个POS区块到本地数据库(区块树)之前,权益核心必须得到验证。由于BTC的节点数据模式(交易索引),需要为数据校验设定一个最后期限,以确保在采纳POS区块进入区块权之前,所有节点都有能力校验与每个权益核心的联接。从实用角度考虑,我们决定不修改节点的数据模式而是使用中央校验机制。我们的解决方案是修改币龄的计算,设置一个最低币龄,比如说一个月,低于这个数字将计算为零。然后中央检验机制被用于确保所有节点都认可过去所有大于1个月的交易,由于核心要求不低于零的币龄,这样就让允许权益核心得以验证,这样就必须使用大于一个月的输出。

    

   区块签名及双重权益协议

每个区块都必须由其拥有者签名,以避免同一POS受到复制并被攻击者使用。
为了抵御攻击者使用单个POS来产生多个区块进行DOS攻击,我们在设计上采用了双重权益协议。每个节点都会收集其接触到的(核心,时间戳)配对的所有利息币交易信息。假如一个已接收到的区块包含与其它之前收到的区块中的配对信息(核心,时间戳)是重复的,我们会忽略此区块直到后者被孤立(orphaned)出去。

    

   节能

当POW采矿产出趋近于零时,其对矿工的激励作用就会越来越弱。长远来看,由于矿工失去使用POW方式采矿的兴趣,网络消耗的能量就会降到非常低的水平。除非交易量/交易费用升到相当高的水平,否则 BTC网络将难以维持这样能源消耗。在我们的设计中,即使PPC网络中消耗的能源接近于零,其仍被POS保护着。假如一种电子密码货币允许POW趋于零的话,我们将这种币称为长期节能货币。


   其它考虑

我们把POW的采矿产出率修改为随难度变化,而不是随着区块高度(时间)而调整。当采矿难度升高,POW采矿产出率下降。与BTC的分步减半产出相比,PPC的产出曲线相对平滑,以避免人为地动摇市场。更具体地说,每当难度升高16倍,采矿产出就会减半。
在摩尔定律下,长期而言,POW的产出率不会与BTC的通化膨胀行为有大的区别。根据传统看法,我们认为更明智的做法是市场更青睐低通胀货币,而非高通胀货币,尽管出于理想主义的原因,某些主流经济学家对BTC进行了严厉批判。
Babaioff et al.(2011)在研究了交易费用的效果后,认为交易费用将鼓励矿工们互相不合作。在我们的设计里,这种攻击加重了。所以我们不再给发现区块的矿工奖励交易费。我们决定销毁交易费用。这样就去除了矿工们互相不承认对方区块的动机。这也成为平衡POS造币所产生通胀的通缩措施。
我们也在协议层面执行交易费,以防止区块膨胀攻击。





猜你喜欢

转载自blog.csdn.net/qq_41907991/article/details/80278940