区块链要成为一个难以攻破的、公开的、不可篡改数据记录的去中心化诚实可信系统,需要在尽可能短的时间内做到分布式数据记录的安全、明确及不可逆,提供一个最坚实且去中心化的系统。
区块链分布式记账的方式使得每个人手上都有一本完整的账本,全网共有。但是随着节点的不断增多,数据越多,账本也越安全,难以摧毁。除此之外,任意一个或者部分节点的账本被篡改,都不可能被全网认同,除非你能控制51%的节点,即51%攻击,但是这耗能巨大,几乎是不可能的。同时随着节点不断增加,谁来记账,如何选择合适的人来记账成为一个问题,而制定一个记账人的选择方式以及规定,让大家来遵守这个规定,达成共识,这就是区块链里面的共识机制。
共识机制是区块链节点就区块信息达成全网一致共识的机制,说得更直白一些就是对于如何选择记账人达成共识。共识机制可以保证最新区块被准确添加至区块链、节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击。
比特币作为区块链的第一个应用,它的共识机制PoW共识机制曾经一枝独秀,但是随着区块链技术的不断发展,各类不同的共识机制开始不断涌现。
那么共识机制有哪些呢?
1、PoW( Proof of Work)工作量证明:多劳多得
机制中根据矿工的工作量来执行货币的分配和记账权的确定。算力竞争的胜者将获得相应区块记账权和比特币奖励。因此,矿机芯片的算力越高,挖矿的时间更长,就可以获得更多的数字货币。
优点:算法简单,容易实现;节点间无需交换额外的信息即可达成共识;破坏系统需要投入极大的成本。
缺点:浪费能源;区块的确认时间难以缩短;新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;容易产生分叉,需要等待多个确认;永远没有最终性,需要检查点机制来弥补最终性。
2、PoS(Proof of Stake)股权证明算法:持有越多,获得越多
POS 机制采用类似股权证明与投票的机制,选出记帐人,由它来创建区块。持有股权愈多则有较大的特权,且需负担更多的责任来产生区块,同时也获得更多收益的权力。
POS 机制中一般用币龄来计算记账权,每个币持有一天算一个币龄,比如 持有 100 个币,总共持有了 30 天,那么此时的币龄就为 3000。在 POS 机制下,如果记账人发现一个 POS 区块, 他的币龄就会被清空为 0,每被清空 365 币龄,将会从区块中获得 0.05 个币的利息(可理解为年利率 5%)。
优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源挖矿。
缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。
3、DPOS(Delegated Proof-of-Stake)股份授权证明
DPOS 是在 POS 基础之上发展起来的。与PoS的主要区别在于持币者投出一定数量的节点,代理他们进行验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。
DPoS的工作原理为:每个股东按其持股比例拥有影响力,51%股东投票的结果将是不可逆且有约束力的。其挑战是通过及时而高效的方法达到51%批准。为达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。如果一个平均水平的区块含有100股作为交易费,一名代表将获得1股作为报酬。DPoS的投票模式可以每30秒产生一个新区块。
优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。
4、DAG(Directed acyclic graph)有向无环图:无区块链概念
DAG最初出现就是为了解决区块链的效率问题。其通过改变区块的链式存储结构,通过DAG的拓扑结构来存储区块。在区块打包时间不变的情况下,网络中可以并行的打包N个区块,网络中的交易就可以容纳N倍。
之后DAG发展成为脱离区块链,提出了blockless无区块的概念。新交易发起时,只需要选择网络中已经存在的并且比较新的交易作为链接确认,这一做法解决了网络宽度问题,大大加快了交易速度。
优点:交易速度快;无需挖矿;极低的手续费。
缺点:网络规模不大,导致极易成为中心化;安全性低于PoW机制。
5、PBFT实用拜占庭容错:分布式一致性算法
实用拜占庭容错在保证活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容错性。在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算机(Coordinator / Commander)或成员计算机 (Member /Lieutanent)可能因系统错误并交换错的讯息,导致影响最终的系统一致性。拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。而拜占庭问题的可能解决方法为:在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。
优点:系统运转可以脱离币的存在,pbft算法共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证;共识的时延大约在2~5秒钟,基本达到商用实时处理的要求;共识效率高,可满足高频交易量的需求。
缺点:当有1/3或以上记账人停止工作后,系统将无法提供服务;当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;去中心化程度不如公有链上的共识机制;更适合多方参与的多中心商业模式。
实用拜占庭容错主要应用于央行的数字货币以及布萌区块链。
6、Pool验证池——私有链专用
Pool验证池,基于传统的分布式一致性技术,加上数据验证机制;之前曾是行业链大范围在使用的共识机制,但是随着私有链项目的逐渐减少渐渐开始势微。
优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。
缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式。
迄今为止,没有任何一种共识机制完美地解决了所有问题,每个共识机制都存在各自的短板。数字货币市场在不断扩大,毫无疑问共识机制也在不断地自我更新。
从PoW到PoS,PoS到DPoS,以及DAG的无区块链概念,无疑不是对效率的不断追求。但是共识越集中(参与度越低),效率越高,也越容易出现安全和独裁腐败现象(和去中心化的初衷背道而驰)。只有做到各方面的平衡,通过之后的发展以及不断的更迭,数字货币以及区块链未来可期。
网友评论