casper简介

作者: 磨链社区 | 来源:发表于2018-05-18 22:28 被阅读23次

    Casper

    Casper不是一个具体的项目。它是两个研究项目的融合,最近一直由以太坊开发者团队承担: 

    Casper the Friendly Finality Gadget(FFG):Vitalik参与的Casper版本。 

    Casper the Friendly GHOST: Correct-by-Construction(CBC):Vlad Zamfir领导的Correct-by-construction Casper。

    github上capser地址:https://github.com/ethereum/casper

    以太坊四个阶段: 

    Frontier(前沿) 

    Homestead(家园) 

    Metropolis(大都会) 

    Serenity(宁静) 

    在前三个阶段以太坊共识算法采用工作量证明机制(POW),在第四阶段会切换到权益证明机制(POS)。

    那么Casper会成为以太坊未来的pos协议。

    POW(Proof of Work),工作量证明机制。我们最直观的理解就是,一份证明,这个证明确认你做了一定的工作量,类似于现代生活中一些检测考试,通过检测考试你就取得了一份证明,只不过这个证明是一个工作量的证明。 

    工作量证明一开始是以工作量证明系统提出,这个概念来自Cynthia Dwork 和Moni Naor 1993年在学术论文中,是一种拒绝服务攻击和滥用服务的对策,要求发起者需要消耗一定量的计算机资源来进行计算。那么POW这个词汇在1999年 Markus Jakobsson 和Ari Juels的文章中正式提出。 

    提到工作量证明,一般都会说到hash现金,亚当·贝克(Adam Back)在1997年发明的,用于抵抗邮件的拒绝服务攻击及垃圾邮件网关滥用。在比特币之前,哈希现金被用于垃圾邮件的过滤。哈希现金也被哈尔·芬尼以可重复使用的工作量证明(RPOW)的形式用于一种比特币之前的加密货币实验中。另外,戴伟的B-money、尼克·萨博的比特金(Bit-Gold)这些比特币的先行者,都是在哈希现金的框架下进行挖矿的。工作证明原理:首先工作量证明需要客户端做一个有难度的工作且得出一个结果,这个结果公布后,验证的一方需要很快能进行验证。这是不对等的。比如我们在一个字符串后加一个随机数(nonce),对这个字符串进行SHA256计算,然后得到的结果用16进制来表示,我们要求这个计算后的16进制表示的初始几位为:0000,那么才能算通过了验证。这种规则就需要计算机去不断的尝试,当然你可以记得其中一些,但是这个概率毕竟是很小的。正常情况下需要不断的输出计算尝试,直到出现正确的要求结果。 

    数学期望值,计算过程中会统计实际的计算次数,平均后得到的计算的次数,这个数学期望就是要求的“工作量”,当然这是一个符合数学统计学中的概率事件。

    POS权益证明(proof of stake)。这个解释为股权证明,2012年sunny king首次提出了POS概念,POS不需要大量算力来维持网络安全,通过钱包相应权重来获取奖励。所谓POS股权证明,通俗解释依据你持有的数字货币的数量和持有时间,根据这个两个要素发放一个利息,这里的银行存款的概念很相似。这里需要引入一个币龄的概念,币龄根据你持有的币乘以持有时间来计算,一旦你发现了一个POS的区块,那么你的币龄就被清空。当你被清空了365币龄,你将获得0.05个币的利息,那么计算公式就是:数字货币量*持有时间/365=利息。Pos机制鼓励每个人去打开客户端钱包,根据上面对POS的解释,打开客户端钱包里才可能发现区块,那么就会获得利息,当然现在POS2.0的机制(下文会解释2.0)里,必须在线运行客户端钱包,才会按照你的数字货币持有量和运行客户端钱包时间分发利息,不停的有在线客户端钱包运行,这也就保障了整个系统网络的健壮和系统运行的保障了。昨天刚好有个朋友来问,在比特币系统中万一比特币挖完了,那么算力大大降低了,是不是就可能出现51%算力集中攻击。这个问题如果在POS机制中,就要求攻击者需要拥有51%的货币量,试想下,51%的货币量被控制,这个难度和这个环境的不可靠,应该也不会吸引到太多的人了。再对比下比特币,有些人认为比特币是不会膨胀的一个货币体系,因为他的数量的是确定的,但是有没有想过一个钱包丢失的问题,要深究的话,比特币是一个货币紧缩体系,总数一定,但是会有不确定丢失。POS的机制,那和比特币的POW机制相比,POS认为是一定程序上缩短了达成共识的时间,而且节省了资源,不像POW需要大量的算力。但是POS也有自己不可避免的缺点,单纯来说POW中,算力是基础,根据算力来决定你的话语权,但是控制算力目前来看,规模越大,越无法控制甚至垄断,相对来说比较公平。POS类似股票,持有货币量决定话语权,在一个公司内部,前期奋斗,后期可能作为决策者有大量的股份那就有决定权,数字货币环境不是单纯的一个公司那么简单,数字货币要求一个公正的环境,那么POS机制下,后来者明显处于了劣势,你前期持有币,那么你就可以不断的通过利息机制获得新币,这个过程对于先前就掌握了币的人不需要付出太多的成本,可以永久吃利息,那么这会造成一个买卖币的问题,掌握了一定数量币,而且一直增加,那么就没有太大的卖币的需求,而且你的话语权因为你掌握的币不会变,后来者不管如何努力,话语权还是处于劣势。技术角度来说,之前的文章中有对软分叉和硬分叉做过简单介绍,那么在POS机制中,一旦发生了硬分叉,这个问题就相当复杂了,因为持有货币的人在两条链上都有相同数量的货币,新的分叉也能获得利益,那么这个分叉就很大程序会被默许,这样的分叉一旦出现就会不断出现,整个系统就处于崩溃,缺乏约束健壮性。大多数都是采用POS+POW机制,例如点点币,黑币。POS2.0:这里再说下黑币,黑币的机制被称为POS2.0(上文有提过),这个概念是前5000个区块,使用纯POW机制,5001到10000使用POS和POW混合机制、10001之后采用纯POS机制。这种模式在前期完成开采和分配,然后再进入POS模式。

    Casper是一种基于保证金的经济激励共识协议(security-deposit based economic consensus protocol)。协议中的节点,作为“锁定保证金的验证人(bonded validators)”,必须先缴纳保证金(这一步叫做锁定保证金,"bonding")才可以参与出块和共识形成。Casper共识协议通过对这些保证金的直接控制来约束验证人的行为。具体来说就是,如果一个验证人作出了任何Casper认为“无效”的事情,他的保证金将被罚没,出块和参与共识的权利也会被取消。保证金的引入解决了"nothing at stake",也就是经典POS协议中做坏事的代价很低的问题。现在有了代价,而且被客观证明做错事的验证人将会付出这个代价。

    Casper中相关概念

    下注共识 (Gambling on Consensus):Casper要求验证人将保证金中的大部分对共识结果进行下注。而共识结果又通过验证人的下注情况形成:验证人必须猜测其他人会赌哪个块胜出,同时也下注这个块。如果赌对了,他们就可以拿回保证金外加交易费用,也许还会有一些新发的货币;如果下注没有迅速达成一致,他们只能拿回部分保证金。因此数个回合之后验证人的下注分布就会收敛。

    交易最终确认(Transaction Finality):当锁定保证金的验证人中的绝大多数(满足协议定义阈值的一群验证人:保证金比例达到67%到90%之间某个百分比)以非常高的概率(例如,> 99.9%)下注某个块时,任何不包含这个块的分叉都不可能胜出,此时我们说这个块已最终确认(final)。此外,如果客户端发现所有小于高度H的块都已最终确认,那么此客户端永远不能接受一个在高度H - 1的状态和顺序执行这些完全块得到的状态不一样的分叉。这种情况下我们说这个状态(H - 1高度的状态)已最终确认。 

    因此这里有相关的两种交易的最终确认:交易在特定高度被执行的最终确认(也就是对应块的最终确认,早于所有此高度之后的交易执行),以及交易执行后状态的最终确认(需要对应块和所有低于此高度的块被最终确认)。

    防审查(Censorship Resistance):共识协议最大的威胁之一是矿工形成以损害非成员利益为代价最大化成员获利的联盟。如果Casper中验证人的收入主要由手续费构成,一个多数联盟就能够通过过滤其它节点的出块来获取更大利益。不仅如此,攻击者还可以贿赂节点来剔除特定地址发出的交易,只要多数节点是理性的,他们就能够联合起来过滤掉没有剔除指定交易的块。 

    为了抵御多数派联盟攻击,Casper将共识过程看作一个合作博弈,确保每一个节点只有在由所有节点组成的联盟中才能获得最大利益(至少在当利益主要由协议内奖励构成的情况下如此)。如果p%的验证人参与了共识博弈,那么他们将得到f(p) ≤ p%的收益;如果有100%的验证人参与则能获得更多回报。

    来自:https://blog.csdn.net/fidelhl/article/details/50520572

    相关文章

      网友评论

        本文标题:casper简介

        本文链接:https://www.haomeiwen.com/subject/jpvndftx.html