关灯
请选择 进入手机版 | 继续访问电脑版
0

常见共识机制总结-磨链社区

摘要: 区块基础更新相关共识机制、分布式概念https://www.gitbook.com/book/fisho2017/blockchain-basic-concept/details:常见共识机制POW:proof-of-work工作量证明,这个最简单的理解就是多劳多得,说的书面化,“通过 ...

区块基础

更新相关共识机制、分布式概念 https://www.gitbook.com/book/fisho2017/blockchain-basic-concept/details

  • :常见共识机制 
    POW:proof-of-work工作量证明,这个最简单的理解就是多劳多得,说的书面化,“通过工作以获得指定成果,成果证明付出的努力”,工作量证明最早出现的应用场景是哈希现金,Adam Back于1997年发明用于抵抗邮件的拒绝服务及垃圾邮件网管滥用。比特币中通过计算哈希函数(Hash Function)来作工作量证明,这里简要说明下哈希函数:也称为散列函数,给定一个输入x,它会算出相应的输出H(x),输入x可以是任意长度的字符串,输出结果即H(x)的长度是固定的,计算H(x)的过程是高效的(对于长度为n的字符串x,计算出H(x)的时间复杂度应为O(n)关于函数碰撞等具体问题将来另作一文说明)。比特币中计算方式是SHA256(Secure Hash Algorithm)输出为256位的哈希算法,比特币中区块结构如下: 
    比特币的区块由区块头及该区块所包含的交易列表组成。区块头的大小为80字节,由4字节的版本号、32字节的上一个区块的散列值、32字节的Merkle Root Hash、4字节的时间缀(当前时间)、4字节的当前难度值、4字节的随机数组成。区块包含的交易列表则附加在区块头后面,其中的第一笔交易是coinbase交易,这是一笔为了让矿工获得奖励及手续费的特殊交易(目前旷工奖励12.5比特币)。 
    拥有80字节固定长度的区块头,就是用于比特币工作量证明的输入字符串。因此,为了使区块头能体现区块所包含的所有交易,在区块的构造过程中,需要将该区块要包含的交易列表,通过Merkle Tree算法生成Merkle Root Hash,并以此作为交易列表的摘要存到区块头中。其中Merkle Tree的算法图解如下: 
    难度值(difficulty)是矿工们在挖矿时候的重要参考指标,它决定了矿工大约需要经过多少次哈希运算才能产生一个合法的区块。比特币的区块大约每10分钟生成一个,如果要在不同的全网算力条件下,新区块的产生保持都基本这个速率,难度值必须根据全网算力的变化进行调整。简单地说,难度值被设定在无论挖矿能力如何,新区块产生速率都保持在10分钟一个。 
    难度的调整是在每个完整节点中独立自动发生的。每2016个区块,所有节点都会按统一的公式自动调整难度,这个公式是由最新2016个区块的花费时长与期望时长(期望时长为20160分钟即两周,是按每10分钟一个区块的产生速率计算出的总时长)比较得出的,根据实际时长与期望时长的比值,进行相应调整(或变难或变易)。也就是说,如果区块产生的速率比10分钟快则增加难度,比10分钟慢则降低难度。这里有一个误区,不是每个区块产生的时间都是10分钟左右,有时候区块的产生要时间久很多或者很快生成,故这个10分钟是一个平均值。难度公式:新难度值 = 旧难度值 * ( 过去2016个区块花费时长 / 20160 分钟 ),而工作量证明的目标值(target)计算公式: 
    目标值 = 最大目标值 / 难度值(其中最大目标值为一个恒定值:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF新难度值 = 旧难度值 * ( 过去2016个区块花费时长 / 20160 分钟 )) 
    整个工作量计算公式具体为: 
    POW工作量证明一直运行在比特币上,但越来越多职责POW,一,资源的浪费,大量计算节点通宵达旦的计算,对于资源是很大程度的浪费。二、比特币的收益促使联合挖矿,矿池的集中是对去中心化的一种威胁(51%算力威胁)。 
    POS机制: 
    POS: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模式。 
    DPOS机制: 
    DPOS:股份授权证明机制,这种机制采用投票的方式,由Bitshares提出,先解释下这个投票过程:每一个持有数字货币的人来进行投票,投票选举一组代表,假设这一组的数据是101个,然后这101个代表理解成为101个特权节点,101个节点权利完全相等,类似议会制度,选举委员。当然不是选出后永远都是这些节点成为特权节点,一旦在生成区块的时候未能生成(这里会有网络原因,节点宕机,恶意行为等原因),节点被除名,再次选举新节点来替代。除名选举在系统中时刻进行。 
    这种方式仔细考虑下,时刻运行选择和除名操作,这样保证了网络上所有可信任节点,整个网络更加民主,不需要网络中所有节点或者大部分节点确认,被选举出来的节点实时保证在线有效,那么就保证了系统正常运行,更重要的是,区块一直由这些选举节点在确认生成大大提高了确认的效率,缩减整个交易确认时间,这个在很大程序上改善了比特币网络中POW效率的问题。对比之前的POW和POS机制,这种方式在单一区块中可容纳更多交易,使其可接近目前中心化系统的处理效率,每个节点投票选举,然后特权节点生成区块,每个节点有选举权,这样不依赖算力和持有币数量的的约束。有兴趣的可以看下DPOS的白皮书:https://wenku.baidu.com/view/74034196ba0d4a7303763a48.html 
    DPOS背后的理性逻辑: 
    使权益所有者能够通过投票决定记账人 
    最大化权益所有者的红利 
    最小化保证网络安全的消耗 
    最小化网络运行成本 
    最大化网络的性能 
    DPOS本质上是把整个网络中权益分给每一个节点,从而实现去中心化的概念,现实中的投票机制可能会有缺陷,但是通过不停的选举和淘汰,保证网络中节点的高效率,从而提高整个系统的高效性。

鲜花

握手

雷人

路过

鸡蛋

说点什么...

已有0条评论

最新评论...

本文作者
2018-7-2 15:28
  • 0
    粉丝
  • 152
    阅读
  • 0
    回复
作者其他文章

关注迪恩网络

扫描关注,了解最新资讯

联系人:高经理
电话:15562103797
EMAIL:125422921@qq.com
地址:威海市创新创业大厦2702
相关分类
热门评论
排行榜
  • 大致在网络上整理了区块链常见问答题,有需要可以参考学习下。
    1900
  • 作者:托斯卡纳的蓝 原文简书链接:https://www.jianshu.com/p/86be19b083e3首先说结论:信任是人类面对无
    1650
  • 区块链入门到崩溃把区块链学习入门做一个整理,逐步添加完善,有原创内容,也有网络转载整理分享。暂时取名
    2660
  • 版本:v-1.0日期:2018-07-04整理:金明杰把区块链学习入门做一个整理,逐步添加完善,有原创内容,也有网
    1810
  • 前言大致整理汇总区块链入门学习相关资料,虽然题目是“入门到崩溃”,希望还是能学到想要学的内容。入门区
    1730
  • ◆行业应用 1、上海银行开立区块链信用证。上海银行与建设银行签署区块链合作协议,并开立基于区块链的国内
    1660
  • 近三年各地区块链政策汇编 据不完全统计,当前全国已有十八个省(市/自治区)出台了鼓励区块链发展的政策。
    1880
  • 1、三菱日联金融集团计划于本月中旬进行Ripple跨境汇款试验。三菱日联金融集团宣布将联合三菱商事及英、泰
    1780
  • 1.百度原创图片服务平台“图腾”上线。平台推出全流程版权保护、多渠道内容分发、技术赋能生态等功能。试图
    2880
  • 最新资讯 1.联想发布首款区块链手机S5。20日下午,联想在京召开发布会,推出三款新机S5、K5及K5青春版。其
    1390
  • 版本:v-1.0日期:2018-07-04整理:金明杰把区块链学习入门做一个整理,逐步添加完善
    1810
  • 1.百度原创图片服务平台“图腾”上线。平台推出全流程版权保护、多渠道内容分发、技术
    2880
  • PBFT算法算法概要拜占庭问题衍生而来的PBFT算法,算法提出一个主要解决拜占庭容错的状
    2230
  • 区块链入门到崩溃把区块链学习入门做一个整理,逐步添加完善,有原创内容,也有网络转
    2660
  • 1、三菱日联金融集团计划于本月中旬进行Ripple跨境汇款试验。三菱日联金融集团宣布将
    1780
  • 磨链 (mochain): 区块链技术非盈利组织“磨链”---取磨炼之意,旨在普及区块链技术
    2680
  • 作者:托斯卡纳的蓝 原文简书链接:https://www.jianshu.com/p/86be19b083e3首先说结
    1650
  • 近三年各地区块链政策汇编 据不完全统计,当前全国已有十八个省(市/自治区)出台了鼓
    1890
  • bitcoin交易简介bitcoin交易是bitcoin系统中最重要的部分,中本聪巧妙的设计了UTXO这
    1900
  • 大致在网络上整理了区块链常见问答题,有需要可以参考学习下。
    1900
Copyright   ©2017-2018   磨链技术社区 - 专注区块链技术交流