多读书多实践,勤思考善领悟

区块链主流开源技术体系

本文于1552天之前发表,文中内容可能已经过时。

一、 比特币体系

比特币(BitCoin)是最早也是全球最广泛使用和真正意义的去中心化区块链技术,因此他的开源技术体系非常值得参考。

比特币区块链的核心技术框架采用C++语言开发,共识算法采用POW算法,工作量(挖矿)证明获得记账权,容错50%,实现全网记账,公网性能TPS<7。

开源地址为:https://github.com/bitcoin/bitcoin

虽然说POW算法比较低效率和耗能,比特币区块链由于推出时间比较早又不够强大(如不支持智能合约),但不可否认的是,目前市场上相对成熟和稳定的区块链体系还是比特币。市面上群魔乱舞的山寨币,正是基于比特币的源代码照搬或小改动而创造的,在比特币区块链的体系基础上,还创造了几种区块链技术体系:

彩色币(染色币),彩色币本身就是比特币,是在历史上的创世交易里面被转移过的比特币。在技术上将比特币网络从其货币价值中抽离出来,它们具有一些特殊的属性,比如支持代理或聚集点,从而具有与比特币面值无关的价值。彩色币可以用作替代货币、商品证书、智能财产以及其他金融工具,如股票和债券等。

闪电网络,是为了解决比特币区块链的瓶颈处理能力而生的,他可以有效解决时延、容量扩展、最终性的问题,为比特币区块链提供了一个可扩展的微支付通道网络,使用闪电网络后,TPS最大可以扩展到300。交易双方若在区块链上预先设有支付通道,就可以多次、高频、双向地通过轧差方式实现瞬间确认的微支付;双方若无直接的点对点支付通道,只要网络中存在一条连通双方的、由多个支付通道构成的支付路径,闪电网络也可以利用这条支付路径实现资金在双方之间的可靠转移。

比特币侧链

侧链是以锚定比特币为基础的新型区块链,就像美金锚定到金条一样。比特币的在区块链相当在货币体系的黄金地位,因为他是最去中心化、最多分布节点、最公平区块链。侧链是以融合的方式实现加密货币金融生态的目标,而不是像其它加密货币一样排斥现有的系统。利用侧链,我们可以轻松的建立各种智能化的金融合约,股票、期货、衍生品等等。你可以有成千上万个锚定到比特币上的侧链,特性和目的各不相同,所有这些侧链依赖于比特币主区块链保障的弹性和稀缺性。比较著名的比特币侧链是Rootstock和BlockStream推出的元素链。

Rootstock是一个基于比特币侧链的开源智能合约平台,他使得比特币拥有了智能合约,基于Rootstock的智能合约能够运行无数应用,为核心比特币网络增加价值和功能。Rootstock使用一种比特币双向挂钩技术,这种双向挂钩以一种固定的转换率输送或输出Rootstock上的比特币,Rootstock双向挂钩是一种混合驱链和侧链的技术。更值得关注的是,Rootstock向后兼容以太坊,实现了以太坊虚拟机的一个改进版本,所以以太坊发布的DApps程序能够轻松地在Rootstock上使用,实现比特币级别的安全性和以太坊大量Dapps的复用性,更快的执行性并和比特币发生更强的相互作用。使用Rootstock可以将性能扩展到TPS为300。

元素链(Elements)是Blockstream的开源侧链项目,同样使用比特币双向挂钩技术,除了智能合约外,他还给比特币快速带来许多创新技术,包括私密交易、证据分离、相对锁定时间、新操作码、签名覆盖金额等等特性。核心技术框架采用C++语言开发,开源地址为:https://github.com/ElementsProject/elements

二、 以太坊ETH

刚结束的以太坊全球开发者大会DEVCON2,吸引了无数大牛到上海,可以看到,以太坊生态系统正在高速地成长着,正朝着成为“世界计算机”的目标前进。无论是the DAO众筹到攻击,还是ETH与ETC 分道扬镳,或者是各种以太坊生态的开发框架和应用,以太坊目前在区块链平台是最吸引眼球的。

以太坊是一个图灵完备的区块链一站式开发平台,采用多种编程语言实现协议,采用GO语言写的客户端作为默认客户端(即与以太坊网络交互的方法, 支持其他多种语言的客户端)。基于以太坊平台之上的应用是智能合约,这是以太坊的核心。智能合约配合友好的界面和外加一些额外的小支持,可以让用户基于合约搭建各种千变万化的DApp应用,这样使得开发人员开发区块链应用的门槛大大降低。

以太坊ETH的开源地址:https://github.com/ethereum/ 。以太坊的整个技术生态系统比较强大,同时迭代周期比较快,所以有比较强的生命力,但事物都有两面,对于依赖于以太坊特别是以太坊公网的商业应用来说,频繁的迭代升级和处于风口浪尖(被攻击),使得基于以太坊的商业应用,有时候不得不打足精神去跟以太坊一起升级维护和补丁。

目前以太坊正在正式运行1.0版本,采用的是POW挖矿的共识算法,目前公网的TPS是25笔,在开发中的1.5版本,将采用类POS的Casper算法,以使区块链的确认速度相对于POW的线性效率,达到指数级。采用Casper后将会更好的确认机制,以及大幅降低能量消耗。在规划的 2.0版本目标,TPS有望可以达到2000TPS。

三、 IBM HyperLedger fabric

IBM HyperLedger,又叫 fabric,是一个带有可插入各种功能模块架构的区块链实施方案,他的目标是打造成一个由全社会来共同维护的一个超级账本。Elwin个人感觉fabric分层设计比较合理,模块化程度非常不错,虽然目前还是在完善阶段,并没有真正商用(最近IBM携手中国银联打造区块链为基础的忠诚积分交易系统,但还是属于探索试样项目),但以IBM的多年技术底蕴,fabric应该是大企业构建区块链底层的选择之一。

fabric架构核心逻辑有三条:Membership、Blockchain和Chaincode。MembershipServices这项服务用来管理节点身份、隐私、保密性、可审计性。Blockchain services使用建立在HTTP/2上的P2P协议来管理分布式账本,提供最有效的哈希算法来维护区块链世界状态的副本。采取可插拔的方式来根据具体需求来设置共识协议,比如PBFT,Raft,PoW和PoS等等,IBM首选PBFT算法。Chaincode services 会提供一种安全且轻量级的沙盒运行模式,来在VP节点上执行chaincode逻辑,类似以太坊的EVM虚拟机及其他上面运行的智能合约。

开源地址:https://github.com/hyperledger/fabric 。Fabric的主要框架核心开发语言是GO语言,系统目标是15个验证节点下最理想情况下可以有100K TPS的性能,更适合于联盟链。

四、 比特股BitShare

比特股(BitShares)是区块链历史上里程碑式的产品之一,截至目前仍然是完整度最高、功能最丰富、性能最强大的区块链产品之一。比特股是可以看作是一个公司、货币甚至是一个社区。它提供的BitUSD等锚定资产是虚拟币历史上的一个最重要变革之一,能够极大消除虚拟货币被人诟病的波动性大的问题。

比特币低效率高能耗的POW算法,使得比特股及其DPos共识算法应运而生。有别于比特币特定的共识机制,DPos有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。与比特币相比,比特股系统的投票权牢牢掌握在股东手里,而不是雇员。比特股系统的去中心化程度紧紧掌握在比特股持有者们的手中,他们决定了出块受托人的个数。同时,作恶的受托人不会得到任何好处,并且很快就会被投票出局。此外,比特股内置了强大的账户权限设定、灵活的多重签名方式、白名单等特性,足以满足企业级的功能定制需求。

比特股的1.0开源地址是:https://github.com/bytemaster/bitshares ,2.0开源库在:http://github.com/bitshares 。他的核心技术框架采用C++语言开发,既适用于公有链,也适合于联盟链,只需要少量节点进行记账,TPS>500,容错50%,在比特股2.0中如果在最优的网络和硬件情况下可以达到最高100K的TPS。

五、 公证通Factom

公证通(Factom)利用比特币的区块链技术来革新商业社会和政府部门的数据管理和数据记录方式,也可以被理解为是一个不可撤销的发布系统,系统中的数据一经发布,便不可撤销,提供了一份准确、可验证、且无法篡改的审计跟踪记录。利用区块链技术帮助各种各样应用程序的开发,包括审计系统,医疗信息记录,供应链管理,投票系统,财产契据,法律应用,金融系统等。

建立在Factom基础之上的应用程序寻求能够直接利用区块链实现追踪资产和实现合约,而不用将交易记录写入区块链,Factom在自己的架构中记录条目。跟以太坊类似,Factom系统会创造一个叫Factoids的电子币。持有Factoids意味着有权使用Factom系统。只要把Factoids转化成输入积分便有权把数据写入Factom系统中。同时运行着Factom的联邦服务器也能收获Factoids作为维护系统的回报。Factom虽然同样基于比特币网络,但却并不是之前提到侧链或染色币的技术架构,Factom只将目录区块的哈希值锚定到比特币区块链。Factom很好地解决了比特币三个核心的约束和问题,速度、成本和区块链膨胀。

Factom中的政策和奖励机制与POS机制有相似之处。与其不同之处在于,Factom中只有一小部分的用户权益能够被认可。只有已经提交到系统的权益有投票权,而可转移的Factoid权益没有投票权,避免了POS机制的“股份磨损”和“没有人进行POS”问题。

公证通的开源地址是:https://github.com/FactomProject/FactomCode 。他的核心技术框架采用GO语言开发,TPS是27笔左右(待考究)。

最新情况,Factom将不会只依赖于比特币区块链,他将会同样会通过整合以太坊区块链,以来确保存放的数据时时刻刻都是安全的。

六、 瑞波Ripple

瑞波(Ripple)是世界上第一个开放的支付网络,是基于区块连的点到点全球支付网络。通过这个支付网络,使你轻松、廉价并安全的把你的金钱转账到互联网上的任何一个人,无论他在世界的哪个地方,他可以转账任意一种货币,包括美元、欧元、人民币、日元或者比特币,简便易行快捷,交易确认在几秒以内完成,交易费用几乎是零,没有所谓的跨行异地以及跨国支付费用。

Ripple有两个重要概念,其一是推出Ripple币瑞波币——XRP,它作为Ripple网络的基础货币,就像比特币一样可以整个网络中流通,主要是燃料Gas的作用,每产生一笔交易就会消耗一些 XRP;其二是引入网关(Gateway)系统,它类似于货币兑换机构,允许人们把法定货币注入、抽离Ripple网络,并可充当借、贷双方的桥梁。

Ripple引入了一个共识机制RPCA,通过特殊节点的投票,在很短的时间内就能够对交易进行验证和确认。Ripple客户端不需要下载区块链,它在普通节点上舍弃掉已经验证过的总帐本链,只保留最近的已验证总帐本和一个指向历史总帐本的链接,因而同步和下载总帐本的工作量很小。

Ripple的作用并不仅仅只负责清算货币兑换,它可以是各种虚拟货币、数字资产或任意一种有价值的东西。

Ripple的开源地址是:https://github.com/ripple/rippled ,他的核心技术框架采用C++语言开发,TPS<1000。

七、 未来币NXT

未来币(Nxt、Nextcoin)是第二代去中心化虚拟货币,它使用全新的代码编写,不是比特币的山寨币。它第一个采用100%的股权证明POS算法,有资产交易、任意消息、去中心化域名、帐户租赁等多种功能,部分实现了透明锻造功能。

Nxt是且是第一个100%的股权证明机制的电子货币,Nxt不再通过消耗大量的资源“挖矿”产生新货币,而是通过现有账户的余额去“锻造”区块,并给与成功“锻造”区块的账户交易费用奖励。

Nxt具有一个非常灵活的特性,称为“透明锻造”。这一机制使得每一个用户客户端可以自动决定哪个服务器节点能够产生下一个区块。这使得客户端可以直接将交易发送到这个节点,从而使得交易的时间达到最短。实时和高优先级的交易可以通过支付额外的费用来被优先处理。

Nxt区块链2.0已经在讨论和计划实施中了,其核心思路就是要通过主链(Main Chain)和子链(Child Chain)的这种架构来增加Nxt区块链的可扩展性和可删减性,从而解决长期存在的区块链膨胀等问题;

Nxt的开源地址是:https://bitbucket.org/JeanLucPicard/nxt/overview ,他的核心技术框架采用JAVA语言开发,TPS<1000。

八、恒星网络

恒星网络,stellar,一个由前瑞波(Ripple)创始人Jed McCaleb发起的区块链接项目,用于搭建一个数字货币与法定货币之间传输的去中心化网关。最近,乐视金融与恒星基金会签约,共建NBiLe与Lumens两个平行网络,实现通缩与通胀并行。

恒星网络是基于Ripple基础上进行开发,在比特币和瑞波的技术基础上做了的很多改进,特别是相关的共识机制和验证算法,恒星网络运行节点性能得到提高,并节点资源需求非常低。众多改进其中,最大改动的是恒星支付系统的支撑算法SCP(恒星共识协议),号称是目前最安全的类拜占庭算法。SCP共识机制应用“集合块”,即各节点选择其可信任的其他节点。所有这些个体选择之和便是系统层面的共识集合。这些集合块将整个系统联结起来,正如个体网络的决策统一了互联网一样。SCP对计算能力以及经济成本消耗要求适度,降低了进入门槛并潜在地把金融系统开放给新的参与者,同时也是一种最佳的对抗恶性行为参与者使得系统恢复的构建方法。

开源代码地址为https://github.com/stellar/stellar-core ,系统主要开发语言为C++,共识机制为SCP,支持智能合约,适用于公链和联盟链。

(注意,目前网上有些借着恒星网络诈骗的情况,这个应该是非官方行为,请小心识别)

九、Tendermint

美国公司推出的Tendermint作为第二代区块链架构,已经超越了受限制的基于代币/类比特币的单片系统,是第一个实施分片技术的公共区块链。

Tendermint是一种开源的区块链套接字协议,消除了区块链之前的复杂性,为区块链开发提供了模块化结构,并且在区块链核心提供了一个开源的区块链引擎,使得各种机构和开发团队都能够轻松且高效地创建属于他们自己的区块链技术。Tendermint主核心将会管理所有的区块链分区,你可以有比特币分区或以太坊分区,具有很大的灵活性。在Tendermint平台上可以搭建基于任何编程语言的应用开发界面,主核心管理所有分片,分片包含很多类型,可以是比特币分片、或者以太坊分片。

Tendermint共识引擎通过Tendermint套接字协议(TMSP)与应用程序进行连接。Tendermint通过在应用程序进程和共识形成过程之间设置一个非常简单的应用程序接口,可以对区块链设计进行分解。并且TMSP不依赖于某一特定的编程语言,所以开发人员可以使用任意一种编程语言来编写智能合约。用户同样还能够利用现有的代码库,工作流和开发生态系统来创建复杂的应用程序。

开源代码地址为https://github.com/tendermint/tendermint ,系统主要开发语言为GO,所使用的是拜占庭容错共识机制,支持智能合约,具有去中心化控制、低延时、渐进安全的特效,大大提高扩展性和速度,每秒钟可以完成超过10,000笔交易,适用于公链和联盟链、私链。

十、Openchain

Openchain是由区块链技术公司Coinprism开源分布式总账区块链工具,主要提供给大型企业和金融机构,Openchain 在处理大型企业和金融机构的数据的时候,相较于传统的区块链工具,能大大的降低计算速度,并能降低成本和交易方风险。

不同于比特币,Openchain基于一种独特的分布式账本技术,它可帮助用户部署自己版本的区块链,减少用户的交易成本和结算时间。Openchain去除了区块,交易和交易之间直接连通,这意味着交易可以得到即时确认。任何人都可以连接到一个验证的节点,并收到一份交易验证的实时复制本,Openchain还通过数字签名来保护交易的安全性,使交易不可伪造。另外,通过挂钩模块,基于Openchain的token可以作为侧链挂钩到比特币网络上。

开源代码地址为https://github.com/openchain/ ,系统主要开发语言为C#开发,他是DNX应用,可以支持跨平台运行,支持智能合约,适用于联盟链。

十一、多链MultiChain

多链Multichain,他是一个区块链软件平台,任何人都可以在上面创建和部署私链(permission chain)。隐私与控制的争议是比特币成为行业性金融机构的障碍,而用MultiChain创建的私有链则克服了这个困难。Multichain支持快速部署,两步就可以生成自已的区块链,三步就可以连接上其它区块链。

MultiChain是采用PoW共识机制,通过对用户权限的综合管理解决了挖矿,隐私和公开性问题。MultiChain提供了一种创新性的可信决策网络实体的方法来解决私有区块链的挖矿问题。该平台可将挖矿活动限制在一套可供验证的实体内,并且避免了单一方对挖矿过程的垄断。这种被成为“多样性挖矿”的方案通过限定给定窗口内同一矿工的区块数量来解决挖矿问题。“多样性挖矿”取消了工作量证明的重要性和本地加密货币的必要性,并且可使处理交易的矿工以随机轮转的方式认可交易。

MultiChain向后兼容比特币,因此用户能够把现存的比特币应用导入到 MultiChain。不是支持像比特币内核的单一链, MultiChain可被配置以同时支持同一网络的不同区块链。MultiChain能够支持很多第三方资产,能够使私有区块链和比特币区块链相互转换。

MultiChain开源代码即将发布中。

十二、Corda

R3的区块链软件Corda,旨在为参与其中的70多家银行研发解决方案,专为金融服务所设计的新分散式的分类帐平台。他号称自己不是区块链,而用以记录和管理金融合约的分布式账本。但Elwin认为,Cordar的系统核心还是是基于区块链技术的,他包含区块链的五大特性,共识、有效性、唯一性、不可更改性和认证,Corda採用许多区块链技术的优势与特性,同时捨弃掉让区块链技术无法融进大多数金融领域的设计理念,排除了一些不适合银行业应用场景的设计思路。

Corda平台基于产业标准工具所打造,不包含原生虚拟货币,主要特性包括能可支援各种共识机制、自动编排跨组织之间的工作流,不需仰赖单一中心化的控制机构,Corda用非常精确的时间界限来处理交易而非区块挖掘时平均大致的时间界限,且能直接设计出负责监管与监督观察作业的节点,并经由特定交易方来验证,不需由一大群与该交易无关的验证者。

Corda在智能合约,数据处理等方面也做了创新,而且也符合通过协作以保持金融数据协议的准确和共享。自然隐私和监管也在它的专用平台设计之中。Corda关注可互操作性和增量部署,不对第三方泄露机密信息。公司可以查看与对手方达成的协议,并确保双方看到的信息一致并向监管机构报备。Corda系统引入了法律语言体系,并包含管理金融协议的作用,该系统必须使企业逻辑编写简单化并与现有代码兼容,还必须支持协议相关企业间的行为协调。

针对金融使用场景和面向银行为主要使用者,Corda系统主要特点:

  1. -没有多余的全局数据共享:只有有合法需求的参与方可以按照协议获取数据;
  2. -Corda编写和配置在企业间流转,无中心控制者;
  3. -Corda在企业间单个交易水平达成共识,而不是在系统水平上;
  4. -系统设计直接支持监管观察员节点;
  5. -交易直接由交易双方验证,而不是由一大群不相干的验证者进行;
  6. -支持多种共识机制;
  7. -记录了智能合约代码和人类语言法律文件的清晰联系;
  8. -用行业标准工具创建;
  9. -没有原始加密货币。

Corda适用于联盟链,特别为金融业务打造,下个月将发布开源代码。

十三、龙链

龙链(Dragonchain)是迪士尼打造的,他是将其混合公有/私有区块链的区块链平台。

龙链是另一种用来保持记录和处理交易的区块链。它与比特币的底层技术十分相似,但又有一点不同。龙链是一种多币制的区块链,节点就可以随之定义一种货币并支持其使用。该网络上可以同时使用多种货币。龙链的共识机制可以支持一种或多种现有的共识机制(Trust,PoW,PoS),甚至是可以支持自己定义和创建一种新的共识机制。

龙链的目标特性:

  1. -易于集成现有的系统
  2. -便于传统的工程师和程序员开发,不一定需要熟悉的区块链、分布式系统和密码密码学技术
  3. -C/S客户服务器方式和RESTful方式集成
  4. -简单灵活的架构
  5. -默认情况下提供对业务数据的保护
  6. -允许业务集中控制过程
  7. -固定长度和周期,短和高速的区块
  8. -多货币支持
  9. -没有基础货币
  10. -与其他公共和私人blockchains的互操作性

开源代码地址为https://github.com/dragonchain/dragonchain ,系统主要开发语言是Python,支持智能合约,适合联盟链和私链。

十四、量子链

量子链Qtum是中国社区原创的区块链公链。Qtum通过价值传输协议(Value Transfer Protocol)来实现点对点的价值转移,并根据此协议,构建一个支持多个行业的(金融、物联网、供应链、社交游戏等)去中心化的应用开发平台(DAPP Platform)。

量子链的定位是,做一个符合行业监管的区块链去中心化应用开发平台。为了符合以后的行业监管,量子链团队在设计的时候,为监管者的角色设计了很多可选项,引入数字身份和第三方征信平台,设计一种新的合约类型—主控合约,把监管者的角色引入,同时监管者可以作为 Qtum系统中的喻言和数据源的提供者。

量子链采用可插拔的共识机制:Qtum系统包括 Qtum 公链和Qtum联盟链,因为网络环境和参与者的不同,考虑到公链的去中心化程度、参与门槛、安全性和可靠性,量子链开发团队采用IPOS(Incentive Proof of Stake)机制作为区块链网络的共识机制。因为联盟链大多参与者都是受限的节点、身份已知的对手方,对共识机制的考量不同于公链网络,在联盟链中,量子链将采取Proof of Time 和Raft结合的共识协议,实现高速的区块链共识网络。

Qtum的开源代码地址Elwin未找到,支持EVM的虚拟机(EVM/EVM2.0),支持智能合约,适合公链和联盟链。

十五、Chain

Chain是由一家刚成立两年的美国创业公司Chain推出,是一个企业级的区块链平台架构,可以让机构构造从零开始更好的金融服务。

作为区块链供应商,Chain在过去的两年多时间中获得了极好的信用。Chain通过将专属区块链和分布式总账的源代码进行开放,可以让更多的人在其软件上增加应用或是建立专属网络。Chain核心开发者版本的创建花费了数年时间,它是区块链供应商和金融机构合作的直接产物。由于这个开源软件针对的是金融领域,因此它允许用户创建和发行他们自己认为合适的数字资产。

Chain 开放标准在以下方面实现突破:

-全新的共识模型在不到一秒的时间里实现交易的最终完成,即便是交易量非常大也能支持

-私密解决方案对区块链数据进行加密,并让相关对手方和监管者进行有选择的读取

-智能合约框架和虚拟机支持简单的规则执行,以及进行键值存储的图灵完整程序

-可伸缩的数据模型可以为网络参与者降低运行负荷

-丰富的元数据层可支持满足KYC(了解你的客户)和 AML(反洗钱)要求

开源代码地址为https://github.com/chain/chain ,系统主要开发语言是GO,共识协议采用联邦拜占庭协议,支持多种数字资产,适合联盟链。

十六、其他

此外,还有几个区块链技术体系也介绍一下:

英特尔的锯齿湖(Sawtooth Lake),目前是用于建造、部署和运行分布式账本的高度模块化平台,重点领域在数字资产,在锯齿湖的数据模型和交易事务语言中,是由称为“transaction family”的体系来实现的, 給用户可以有开箱即用的功能齐全的市场数字资产管理体系。采用PoET和Quorum Voting两种共识算法,框架核心开发语言Python ,开源地址为https://github.com/intelledger

布比区块链,目前采用的是对联盟链内定向开源,共识算法采用自研发的Pool验证池,可以集成Byzantine Paxos、Byzantine、Raft等商用共识算法,实现免Gas费用的秒级共识验证,框架核心开发语言是C++,应用场景比较广泛。

小蚁区块链,开源地址为https://github.com/antshares/antshares ,采用改进的拜占庭容错算法-dBFT共识算法,支持智能合约,目前重点领域在数字资产应用,框架核心开发语言C#。

最后,汇总一下几大主流开源技术的比较。

名称 公识算法 适合场景 开发语言 智能合约 TPS
比特币1.0 POW 公链 C++ 7
以太坊ETH 1.0 POW 公链/联盟链 GO 25
IBM HyperLedger fabric PBFT为主 联盟链 GO 100K
比特股BitShare DPos 联盟链 C++ 500
公证通Factom Factom自有共识机制,类Pos 公链/联盟链 C++ 27
瑞波Ripple RPCA 公链/联盟链 C++ 1000
未来币NXT Pos 公链/联盟链 JAVA 1000

*附注[共识算法解释]:

共识机制是区块链技术的关键点。共识机制的核心是在分布式网络中,利用一种规则(算法)来保证全网对于Block的创建是一致的,下面是主要的共识算法。

1、Pow工作量证明,就是大家熟悉的挖矿,通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;

2、Pos权益证明,Pow的一种升级共识机制;根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。

3、DPos股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。

4、Pool验证池,由布比构建,基于传统的分布式一致性技术,加上数据验证机制;是目前行业链大范围在使用的共识机制

5、PoET(Proof ofElapsed Time),也就是‘消逝时间量证明’,它是由英特尔构建在可信执行环境的一种彩票协议。

6、QuorumVoting,属于Quorum拜占庭协议,仲裁投票算法,它采用了瑞波和恒星的共识协议,用来解决需立即交易定局的需求。”

7、Casper,以太坊社区提出的正在研发中的类POS共识协议。Casper的基本思路是,任何人抵押足够多的以太币到系统中就可以成为矿工参与到挖矿过程。共识算法要求所有的矿工诚实工作,如果一个矿工有意破坏,不遵守协议,系统就会对矿工做出惩罚:没收之前抵押的以太币。有人把Casper这样的挖矿机制称为“虚拟挖矿”。

8、PBFT(PracticalByzantine Fault Tolerance)算法,拜占庭容错算法,属于状态机拜占庭协议,IBM HyperLedger fabric实现和推荐的共识算法,采取一个节点一票的方案确定记账结果,少数服从多数投票,性能较好,主要用于联盟链。