设为首页 - 加入收藏 梅州站长网 (http://www.seo-so.com)- 梅州领先的创业资讯站长网站!
热搜: 赚钱 网站 之路 千元
当前位置: 金亚洲代理 > 运营中心 > 建站资源 > 经验 > 正文

区块链核心算法之共识机制

发布时间:2018-08-28 05:00 所属栏目:[经验] 来源:链得得APP
导读:副标题#e# 技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战 共识机制在区块链系统中起到决定谁负责生成新区块的作用。 一、什么是共识? 在理解共识的概念之前,先简单粗爆地假设咱们村有100人,现在要投票选举谁当村长,如果100人
技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

金亚洲代理 www.seo-so.com 共识机制在区块链系统中起到决定谁负责生成新区块的作用。

一、什么是共识?

在理解共识的概念之前,先简单粗爆地假设——咱们村有100人,现在要投票选举谁当村长,如果100人都亲自到场投出自己的一票,那参与度是100%;如果这100人选出了10个代表去投票,参与度则只有10%。这两种投票,哪一种投票更能代表民意呢?毫无疑问是前者,因为参与度更高;相反,后者选出了10位代表去投票,参与度低,难免以偏盖全。通过这个假设,我们可以对什么是参与度有一个简单粗暴的理解。

共识(Consensus)是一切交易的基础,达成共识越分散(参与度越高),其效率就越低,但满意度越高,因此也越稳定;相反,达成共识越集中(参与度越低),效率越高,也越容易出现独裁和腐败现象。

区块链技术的伟大之处在于去中心化和去信任(或降低信用成本),如何在一个完全陌生的网络环境里,通过代码撮合交易?言外之意,这些代码究竟发挥了何种神奇的魔力,让买卖双方产生信任呢?

答案就是共识机制。

共识机制

区块链系统的核心是有系统中节点竞争记账,这个竞争的过程称为共识机制,区块链的底层有四部分构成,一个分布式的数据库用来存储以往和将来的交易数据,密码学的公私密钥体系用来确认交易双方的身份,P2P网络用来广播和蔓延各类消息(如节点加入消息,节点失效消息,得到挖矿数据的消息)和 用来决定节点记账权利的共识机制。

区块链核心算法之共识机制

共识机制在区块链中扮演着核心的地位,共识机制决定了谁有记账的权利,以及记账权利的选择过程和理由。不用的虚拟货币采用共识机制不同,常见的共识机制如POW,POS,DPOS 拜占庭容错等。现梳理如下:

区块链核心算法之共识机制

目前区块链的共识机制大致可以分为PoW(工作量证明)、PoS(权益证明)、DPoS(股份授权证明)以及分布式一致性算法几类。

(一):工作量证明PoW

POW(Proof of Work),即工作量证明机制。整个系统中每个节点为整个系统提供计算能力(简称算力),通过一个竞争机制,让计算工作完成最出色的节点获得系统的奖励,也就是完成新生成货币的分配。区块链是一个持续增长的顺序块组成的,每个块包含了头文件和一系列的交易信TXi,其中头文件中?;ち藅imestamp Ti ,上一个块的索引Hi-1,和nounce Ni-1,区块链是密码上的安全,对于每一轮只要找到相应的HASG的碰撞就算成功,HASG的碰撞的意思可以了解为hash值的前多少位相同,我们知道何难找到两个hash一模一样的文件,但是我们可以找到前几位相同的,我们将一个完整的挖矿过程整理如下:

其中Di是难度系数,可以认为是前多少位的碰撞。挖矿的过程就是在不停的尝试找Ni的过程。下面我们给出一个模拟挖矿的例子。测试环境说明:

运行如下脚本:

区块链核心算法之共识机制

对结果进行排序,找到前9位对撞成功的n的值.

区块链核心算法之共识机制

实验结果如下:

区块链核心算法之共识机制

虽然只是模拟实验,但是完整的反映了POW的运作原理。

(二):权益证明PoS

POS(Proof of Stake)即股权证明。顾名思义,指的是直接根据所持有的份额来达成共识机制。其目的在于让链上所谓的“股权持有者”来代替POW里的矿工,这本质上的共识过程是以“股权所有”代替“挖矿”过程。

在PoW机制中,由于想要找到符合条件的 nonce.nonce往往需要花费大量的电力和时间成本,因此,为了使每个Block更快被生成,PoS机制去掉了穷举 noncenonce这一过程,继而采用以下更快速的算法:

SHA256(SHA256(Bprev),A,t)≤balance(A)m

H 某个哈希函数

t 为 UTC 时间戳

Bprev指的是上一个区块

balance(A)代表账户A的账户的余额

唯一可以不断调整的参数是t,等式右边m是某个固定的实数,因此,当balance(A)越大,找到合理t的概率越大,网络中,普遍对于t的范围有所限制,如可以尝试的时间戳不能超过标准时间戳1小时,也就说,一个节点可以尝试 7200次,来找到一个符合条件的t,如果找不到即可放弃。因此,在PoS中,一个账户的余额越多,在同等算力下,就越容易发现下一个区块。

但是它和POW机制一样解决问题的思想也导致了它与POW拥有一样的缺点,也是牺牲了一部分的共识(同样分叉),而且需要等待多个确认。

优点:对节点性能要求低,达成共识时间短(网络环境好的话可实现毫秒级);

缺点:没有最终一致性

PoW与PoS流程对比图:

区块链核心算法之共识机制

(三):股份授权证明DPos:

是基于POS衍生出的更专业的解决方案,股份授权证明类似于董事会投票,假设某个区块链系统的世界里有10万人,现在这10万人投票选出了4位股东作为代表来行驶记账权,这4位董事分别是A、B、C、D,在记账过程中,按顺序每位董事有两秒钟的时间来记账,如果在规定的时间内记账失败,则直接把权限交给下一位董事,这样原本10万人参与记账竞争的游戏,现在变成了4人。

这样做的优点是大幅缩减了参与验证和记账的数量,形成共识几乎可以达到秒级,缺点是固定数量的董事作为记账候选人,与去中心化的理念相违背,董事数量太少,参与度太低,也缺乏一定的代表性。

对比这三种最常用的共识算法,不难发现各有利弊,它们的诞生都围绕着一个核心——如何更加公平、公正、透明、轻量(不过多消耗资源)、高效(更快)地达成共识,挑选出记账的人(节点)。

PoS与DPoS对比图:

区块链核心算法之共识机制

结论:

PoW采用简单粗暴但极为有效的方式,通过节点首先自证其资质后才进行广播的方式,大幅度减少了网络间的通讯压力,但与之带来的问题则在于自证资质的计算资源消耗极大。

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章