区块链技术的普及将使我们从数字互联网时代进入价值互联网时代
区块链注定是一场互联网的时代变革,以活在未来的眼光来看,了解区块链也就变的刻不容缓了
首先区块链它是什么呢?目前为止最专业的定义是这样的:一个去中心化的 数据不可篡改的 分布式 账本
首先想要去中心化,它得是分布式的,节点分布在世界各个角落,就互联网而言,已然是一个分布式的存在了,接下来要解决的是怎么记账的问题,想象一下全世界那么多账本,如何生出权威的一致公认的且不可篡改的账本,并且所有账本都同步成最新账本?这就需要一个共识机制的建立了,这也是区块链的核心问题,只要有这样一套被认可和信任的共识机制,就像宪法一样,制定出一套严格且可执行的条例来实现共治的目的,制订好这个共识机制后只要用程序给它编好跑起来不就简单了嘛,这里可以脑洞大开
今天就带着问题去了解下什么是区块链的共识算法,大概是怎么样的,想了下就从当下热点的EOS出发吧,如今EOS节点竞选火热,EOS每年会增发5%给维持节点的人,总量十亿,5%也就是五千万个,冲着每年五千万个EOS的收益和EOS生态的投票权,所有竞选者都在使出浑身解数,我们应该会投自己熟悉的吧,比如老猫、ono、EOS引力区、EOS联盟,那EOS到底是什么呢?它的共识算法又是什么呢?
EOS是一个底层公链系统,目的是解决现有的区块链应用性能低、安全性差、开发难度高以及过度依赖手续费的问题
EOS共识算法:BFT-DPoS,即带有拜占庭容错(BFT)机制的委托股权证明 (DPoS)共识算法
这里提到DPoS和BTF,暂用目前所知的概念来理一理:
L参与的比特币挖矿,是按每T多少价格来购买的,挖出来的币按算力占比分配,用的挖机是超级计算机,买的T其实就是计算机的算力,买算力就能挖矿,这是因为比特币的共识机制是用工作量证明来实现分布式记账的
工作量证明(Proof Of Work,简称POW),简单理解就是一份证明,用来确认你做过一定量的工作。比特币挖币的过程其实就是计算机抢夺记账权的过程,算的是一个合理的哈希值,谁的速度越快运算能力越强谁算出的概率也就越高,谁也就能形成新的区块也就是记账权,所以对计算机的算力有绝对的要求,算力越高速度越快挖出的币也就越多,可以想象一下所有节点每时每刻都在埋头苦算,谁最快算出那个正确答案形成新的区块后并广播,其他节点收到确认是最长链后立马在新链上继续运算试图形成下一个区块,由于网络会有延时问题,节点接收到的时间也会有延时,接收者以确认是否是最长链来验证谁是最先算出的,容错性是允许全网50%节点出错,如果节点足够分布,也就避免了恶意节点伪造区块的行为
POW机制缺点是资源浪费,每次区块形成需要所有节点共同参与计算,所以存在算力、电力等的资源浪费,计算一个哈希值只是节点间纯粹的权利角逐,没有实际意义,算力的角逐容易导致节点的集中,比如超级计算机、矿池的形成,导致节点无法分布式存在
POW之后提出了权益证明(Proof of Stake,简称PoS),根据每个节点所占代币的比例和时间,等比例地降低挖矿难度,从而加快找到随机数的速度。原来你会花大钱买矿机,现在只要多囤币就好了,囤的币越多越是大概率的拥有产生下一个区块链的权利,这里就需要将币锁仓的基础上运行区块链,币少了相应也就不容易挖到了,算法规定它会选择币多的节点,然后给你一定时间去计算这个哈希值,如果在规定时间内没有算出会重新选出下一个产生区块链的节点,直到产生新的区块链,同Pow一样也是以最长链为准,容错性与POW相同,相比Pow优点是不需要所有节点参与计算,减少了一定的资源浪费,产生区块速度相对提高,一定程度上缩短了达成共识的时间
再后来,提出了DPoS,是在pos的基础上演化的,它与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账,但其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,进行代理验证和记账。每个股东(持币者)可以将其投票授予一名代表,获票数量最多的前100位代表按既定时间表轮流产生区块,每位代表分配到一个时间段来生产区块,DPoS的优点是大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
拜占庭容错是指将军们在有叛徒的情况下仍然达成了一致,就称达到了“拜占庭容错”,前提是叛徒的数量不能大于等于1/3,也就是恶意节点不能超过1/3,诚实的节点应该大于2/3,这样就保证了结果的一致性
EOS目前的持币人投票选举21个超级节点的做法,就是持币人选举超级代表代理验证和记账的DPoS算法,那么带有拜占庭容错(BFT)机制的委托股权证明 (DPoS)共识算法是否就是意味着EOS允许有恶意节点存在,只要不超过1/3,就不会影响最终结果的一致性,为了EOS的生态建设,要谨慎投出手中的宝贵一票
ps:本文参阅自各大区块链研究前辈的文章,再加上自己的一些个人想法,逻辑并不完整,欢迎共同探讨和错误观点指出
2018-4-14G