区块链现有框架
㈠ 区块链之联盟链(三) 认识Fabric
Fabric 是超级账本联盟推出的核心区块链框架,它适合在复杂的企业内和企业间搭建联盟链。根据超级账本联盟的目标, Fabric 被建设为一个模块化的、支持可插拔组件的基础联盟链框架。;
与以太坊系的Quorum不同,Fabric从一开始就只考虑企业间的应用。其独有的channel概念,将企业根据业务目的不同以不同的子网连接起来, 每一个子网对应一个channel,而每个channel有自己独立的区块链。而Quorum很显然是只有一个公网(所有企业节点都加入进去),企业与企业间的私有业务是通过Private Manager 完成的。
理解channel的最简单方法就是,将它类比为一个消息服务提供的Topic,实际上Fabic最早就是基于Kafka 的分布式消息服务来实现。
在Fabric网络中,一个企业可以有一个或多个节点加入整个联盟链;一个企业可以加入1个或者多个Channel(子网); 一个节点可以加入1个或者多个channel。每个channel构成一个子网,所以Fabric 是 一种由子网组成的网络。
那么Fabric是怎么实现智能合约的执行和完成业务上链(将事务结果记录在区块链里)的呢?
与其它框架不同, Fabric 将整个过程分成了三个阶段:
业务背书阶段 : 客户的请求发送的背书节点,通过智能合约完成业务的计算(但不更新状态),并完成背书;将背书结果返回个客户端。
业务的排序阶段 : 客户端将背书结果通过Channel被发送到排序节点(orderer),在排序节点完成事务的排序,并打包到block里,最后下发给所有连接到channel的节点。
业务验证并写入账本阶段 : 通过Gossip 网络,所有Channel的节点都会接收到新的block,节点会验证block中的每一个事务,确定是否有效:有效地将会跟新world state,无效的将会标志为“无效”,不会更新World state,但整个block会被完整的加入到帐本中(包括无效的事务)。
根据以上的描述,Fabric 节点实际可以分为 ,普通节点和Order节点:
Peer, 普通节点, 完成背书(包括只能合约的执行)和验证.
orderer, 排序节点,完成排序。
加入orderer节点的Fabric网络可以被描述如下:
每一个Channel,都定义了所有属于channel的节点,但是并不需要所有节点都连接到Orderer 节点(节点间可以通过gossip 协议通讯来传播私有数据或事务).
在区块链中,共识是区块链的基础。与公有链不同,联盟链的共识要求所有加入账本的事务是确定的、最终的,也就是不可以有分叉,区块与区块间的顺序是一定的,只存在唯一条链。在Fabric 中,这个客观需求正是由排序实现的,所有的事务将被提交给orderer节点获得确定的顺序,并最终打包成block进入帐本。 Fabric 从1.4.1开始支持基于Raft实现排序服务, 可以认为基于Raft实现共识。
基于RAFT的排序服务相对于早期的Kafka 具有更好的分布性,配置更加简单,是联盟链里常用的一个常用的达成共识的算法,Quorum就 默认使用RAFT作为共识层。简单的说,RAFT是一个leader和follower的模式, 所有加入RAFT网络的节点,任意时候都有一个leader, 只有这个leader有权决定事务的顺序,并打包成Block,其它节点只能作为follower提交事务和同步block。
基于FAFT网络,每个企业可以有一个或多个节点参与到Orderer中去。在Frabric中企业间的网络连接可以变化成如下形式:
区块链的使用用户在以太网中被称作EOA(External of Account), EOA的载体是钱包。我们沿用这个概念,来看看Fabric是如何实现用户和发起事务的。Fabric中EOA是一个CA中心发布的certificate(x.509),一个Certificate代表一个Identity(这与以太坊还是有很大区别的, 以太坊中一个EOA其实是一个hash地址),EOA能够参与的channel以及被授权的操作是有channel的MSP( Membership Service Provider)决定的(如下图)。
注:certificate 是一种密码学上验证身份的通用做法; certificate包含了个人的信息,公钥以及发布这个certificate的CA的签名。验证方只需要拥有这个CA的证书(包含CA的公钥),就可以验证这个签名是否正确,certificate的内容是否有篡改。简单的说,通过CA和Certificate,我们可以获得一个可验证的的身份和信任链。
如上图,fabric中通要使用Wallet作为EOA的载体,一个Wallet中可以包含多个Identity(x.509 certificate)。 Identity 通过 CA提供的信任链来验证正确性。
验证了身份之后, Fabric 通过MSP在区块链网络中解决该身份是否代表组织的成员和在组织内具有什么角色。例如,channel首先会验证当前用户Identity是否是有效地身份,然后通过MSP查看其所处的企业和具有的角色,最终确定该用户是否有权执行操作。
可以说,Fabric的访问控制是通过MSP来完成的。在每一个需要访问控制的地方都需要定义一个MSP。 例如,每个channel都定义一个MSP,这个MSP规定了在channel范围内资源的访问权限。 MSP 是Fabric里一个晦涩难懂的概念,也是其赋予企业间安全访问的基础。
前文提到, Fabric 将业务处理和上网分成了三个部分, 背书,排序,验证后加入账本。
其中背书是Fabric执行智能合约的阶段。以太坊中,智能合约是在EVM中执行的,有多种语言支持。 在Fabric,智能合约被称为chaincode: 一个chaincode 可以理解为是智能合约的容器,可以包含一个或多个智能合约, 不用于EVM, chaincode是在 JVM 或NodeJS中执行。
客户应用程序通过智能合约来访问账本,每一个可访问的智能合约都被安装在客户端可以访问的节点上,并被定义在channel里。(有只能合约的节点被称为背书节点,没有只能合约的节点被称未提交节点,提交节点只维护账本)
客户应用提交一个交易请求, 请求到达背书节点, 背书节点首先会验证客户的签名,确保客户的身份有权执行本次交易,接着执行交易提及的智能合约(chaincode),并生成一个背书响应(或者叫做交易提案,tran-proposal)。这个背书响应中通常包含World state 的读集合,写集合, 以及节点对本次交易的签名。这里与以太坊系联盟链最主要的不同是: 背书阶段只模拟交易,并不真正更新交易结果。 而真正更新交易在第三阶段完成。背书节点最后将生成的背书响应fanhui给客户端, 智能合约部分的执行就结束了。
通常一个交易的执行需要多方的签名,所以客户端需要将一个交易发送给多个背书节点,这些背书节点的选择需要满足背书策略的要求。
下图是一个包含有客户、背书节点,提交节点的网络示意图。
根据Fabric官方的参考文档,客户交易的正果过程可使用下图描述。
如上图,从1到3,为背书阶段,4为排序阶段,4.1,4,2, 5为验证提交阶段。 参考 Frabic的节点 概念,可以了解更多在交易细节的概念。
总的来看, Fabric 更专注于企业间,通过上文,可以让大家对Fabric的基本构成与概念有一个总的了解。 Fabric本身并不神秘,都是使用的现有的企业间的技术。要更好的了解,建议参考阅读分布式消息系统和企业的安全基础设施(CA相关)的支持。与以太坊系联盟链实现比较, Fabric 的子网更概念对于复杂企业间应用适应更强,但是其复杂的安全考量,使得运营成本很高,另外,Fabric 使用Certificate做为用户身份,有很大的局限性,在新的2.0里,Fabric对于此处将有所改变。
下一篇,我们将来看看Sawtooth , 由Inter 提供的区块链框架。
区块链之联盟链(一) 认识以太坊
区块链之联盟链(二) 认识Quotum
区块链之联盟链(三) 认识Fabric
区块链之联盟链(四) 认识Sawtooth
㈡ 什么是区块链,区块链有什么作用
什么是区块链?会对以后的生活带来什么样的改变?
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
比特币白皮书英文原版其实并未出现 blockchain 一词,而是使用的 chain of blocks。最早的比特币白皮书中文翻译版中,将 chain of blocks 翻译成了区块链。这是“区块链”这一中文词最早的出现时间。
国家互联网信息办公室2019年1月10日发布《区块链信息服务管理规定》,自2019年2月15日起施行。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
其实非常简单和形象的理解我们可以想象为把生活的一切事情都以数字化的形式实现,衣食住行,看病,教育等等的一切,以互联网为基础,在家就可以轻松搞定,不论去哪里办事还是交易,手机就可以完全操作完成,随着不断的发展我们的万事万物都可以在网上轻松完成,比容工作,生产,种植等等,当然5g的崛起带来的到底是什么现在也没有人可以精准的预测,但是肯定会给生活和 社会 形态带来翻天覆地的变化!
区块链诞生自中本聪的比特币,自2009年以来,出现了各种各样的类比特币的数字货币,都是基于公有区块链的。
数字货币的现状是百花齐放,列出一些常见的:bitcoin、litecoin、dogecoin、OKcoinetc,除了货币的应用之外,还有各种衍生应用,如NXT,SIA,比特股,MaidSafe,Ripple,Ethereum等等。
2016年1月20日,中国人民银行数字货币研讨会宣布对数字货币研究取得阶段性成果。会议肯定了数字货币在降低传统货币发行等方面的价值,并表示央行在 探索 发行数字货币。
可以用区块链的一些领域可以是:
▪ 智能合约
▪ 证券交易
▪ 电子商务
▪ 物联网
▪ 社交通讯
▪ 文件存储
▪ 存在性证明
▪ 身份验证
▪ 股权众筹
可以把区块链的发展类比互联网本身的发展,未来会在internet上形成一个比如叫做finance-internet的东西,而这个东西就是基于区块链,它的前驱就是bitcoin,即传统金融从私有链、行业链出发(局域网),bitcoin系列从公有链(广域网)出发,都表达了同一种概念——数字资产(DigitalAsset),最终向一个中间平衡点收敛。
区块链体系结构的核心优势包括:
任何节点都可以创建交易,在经过一段时间的确认之后,就可以合理地确认该交易是否为有效,区块链可有效地防止双方问题的发生。对于试图重写或者修改交易记录而言,它的成本是非常高的。区块链实现了两种记录:交易(transactions)以及区块(blocks)。交易是被存储在区块链上的实际数据,而区块则是记录确认某些交易是在何时,以及以何种顺序成为区块链数据库的一部分。交易是由参与者在正常过程中使用系统所创建的(在加密数字货币的例子中,一笔交易是由bob将代币发送给alice所创建的),而区块则是由我们称之为矿工(miners)的单位负责创建。
所以终上所述,这无疑是一个改变生活的新技术,未来的整个 社会 的生产活动都会以区块链作为底层逻辑展开进行,很多事情我们都可以触手可及,加上人工智能和大数据的融入,能让我们轻松搞定现在看来貌似比较繁琐的事情,比如一些证券市场的交易,和理财活动的智能化匹配。
通俗易懂的说区块链是将人财物,人机物、人场货一体化,打包做成一个整体;把它放在一个基础设施上来运行的网络计算中心。
现在笔者的脑洞不够大,无法想象未来的世界会是什么样子的,很期待!
这个问题,我了解一二,下面我们就认识一下这个神秘的东东-区块链。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块
越是热潮,越要去伪存真。首先,我们先得搞清楚什么是真正的区块链技术。
举例说明, 以网上购买水果为例。
以网购买水果的流程如下 :
使用区块链技术,去中心化的形态后,购买水果的流程如下:
小结:
1、我们发现,原有的交易流程是:买家跟卖家做交易,所有的关键流程都是在跟支付平台打交道。这样的好处在于:万一哪个环节出问题,卖家和买家都可以通过平台寻求帮助,让平台做出仲裁。但平台发生重大bug或被黑客攻击,导致一段时间内的转账记录全部丢失,损失怎么处理是一个麻烦事。
2、使用区块链技术的交易流程是:所有人的账本上都有着完全一样的交易记录,即使支付宝的账本服务器坏了,卖家的账本还存在,买家账本还存在。这笔交易一旦发生,就再也抹不去痕迹。
这就是区块链的核心,就是“记账+认账”四个字。
区块链技术的发展与成熟离不开以上新一代互联网技术的基础和铺垫,区块链不单单是一种技术,更是提供了一种服务模式和解决方案,为互联网产业的进一步发展起到了极其重要的推动作用。
1、区块链+金融
2、区块链+供应链管理
3、区块链+智能制造
4、区块链+公共服务
5、区块链+教育就业
6、区块链+文化 娱乐
7、区块链+支付
8、 区块链+发票{深圳已启用}
区块链的可追溯性及不可篡改性,与金融行业天生本质及需求,恰好结合到一起,这使得区块链在金融服务领域的应用,是到目前为止最为深入、相对成熟的领域。区块链技术有着广泛的应用前景。未来的 科技 竞争,也必将是属于区块链的竞争。
理解区块链很重要,这对于识破各种伪区块链骗术很重要。
如果别人用一堆专业术语来解释区块链,您很难听懂,他自己也未必真懂。
所以,我们首先建立起一道心理防线。给您兜售概念、讲一大堆不明觉厉专业术语的人,可能就是骗子。要千万小心!
理解区块链要知道区块链最核心的诉求是什么。您想象,当今互联网高度发达的世界,最担心什么?
隐私,对就是隐私。如何保护隐私?您随时可能被监控着,您个人的任何资料随时都有可能被人窃取。如果个人隐私得不到绝对保护,那互联网就会变成另一个权力金子塔。站在金子塔顶的是谁?是最聪明的技术高手,是平台提供者,是信息监管者。您我,可能是这个金子塔底的人。
最初发明区块链的人怀着个人被互联网完全吞噬的严重忧虑,试图创造一种绝对安全的加密技术,把个人隐私锁起来。这种技术完全颠覆了传统的加密技术。实际上,与其说是把隐私锁起来,还不如说是把隐私撕碎,然后把各个碎片分配到不同人手里私下保管。除非所有人都同意把碎片拿出来拼出完整的密码,否则真相无法再现。这也就是区块链的第一个机制,即去中心化。
但是光去中心化还不够,还必须让那些偷密码碎片的人无处遁形,让小偷的每一个动作都被无法擦除的记录下来,并在互联网中随处扩散,公之于众。这就是区块链的第二个机制,即不可匿机制。您想,哪个窥探隐私的人不是鬼鬼祟祟的?
总结起来,区块链就是要把隐私分散地藏起来,把任何再现这个隐私的行动记录起来并公之于众。看到这,您可能要为区块链拍手叫绝了。先别急,世上哪有那么好的事?存在绝对安全的乌托邦吗?如果真能实现绝对意义上的区块链,政府的存在还有意义吗?不错,区块链最初就是无政府主义的化身。它的终极意义注定不会实现。它的生存可能必须依附权力,注定成为另一个被精致包装的谎言,骗人的幌子。从这个意义上讲,政府必然也必须为区块链的发展指定框架,对区块链的价值进行重构,将区块链里面裹挟的反政府、反国家企图驱逐出去。区块链的一些技术能够具体应用,但绝不能宣扬什么去中心化。总之,对区块链要保持高度警惕。美丽的外表下面往往藏着毒刺。绝对理想化的配方往往成了毒药。那个说能绝对保护你隐私和资金安全的人,才是真正的偷窥狂和吸血魔。
我们最能保护隐私的方法或许只能是不要有任何隐私,完全坦荡地生活,要么活成一轮太阳,要么活成一个酒神。
观点:1.区块链概念最早起源于比特币技术属性(分布式数据存储记账、去中心化、无法篡改交易记录、点对点信息传输、共享机制…),但后来有人把概念继续延伸和扩展到很多商业领域便于资本炒作,2.现实中的区块链(目前市面上的区块链非常混乱),炒作概念在股市圈钱的居多,还存在缺乏监管漏洞,法律法规问题等,甚至存在洗钱的情况(区块链产品实际运作是一回事,背后资本运作是另一回事),就目前而言全世界的计算机体系无法满足区块链属性特征的技术要求(比如分布式数据存储记账,去中心化……,),网络带宽以及存储技术和计算机运算体系都无法实现交易运行要求(很容易通过计算机技术手段让你的网络堵塞或无法完成分布式数据存储或交易随时中断或延迟等实际应用产生的风险,另外就目前全球的计算机体系而言很容易破解区块链底层程序(这是目前全球的计算机存在的致命缺陷,0和1二进制逻辑,另外如果采用逆区块链模式运算算法非常容易破解区块链,这种逆运算模式也完全可以篡改所有交易记录,如果未来真正意义的量子计算机面市,更可以直接秒破所有区块链计算机体系,比特币挖矿就是庞氏骗局,3.目前全球市面上的区块链大多基本都是资本炒作概念圈钱,
区块链的提法已经有几年了,去年初听一个区块链大佬说,2018年是区块链最好的发展之年,过了这一年,外发展就落后了。 什么是区块链?影响的说,就像猪大肠,一节一节连在一起。区块链就是要把这些区块连在一起,固定下来,采用计算机和互联网加密技术,防止向外泄露秘密。 这项技术不能通过专业术语讲给非专业人士听,一般情况下听不懂。只能打比方来说明。我来举两个例子:
1.甲乙丙丁四个人在麻将馆打麻将赌钱,每局用筹码,散伙的时候一次性结账,甲输了1500元,乙输了300元,丙赢了200,丁赢了1600。结果,甲只有1000元,其他人都理清了,但甲还欠丁400元。这件事,只有这四个人都知道,这四个人就是一个区块。 口说无凭,这种事也不会写欠条,今后甲不还钱,怎么办?这事除了甲乙丙丁4人在场,其他人都不知道,如果甲要赖账,说根本不欠钱,也只有乙丙丁这3人知道甲赖账,其他人不好判断甲是否欠钱不还。 所以,区块链的价值需要扩大参与面,如果这4个人当时打麻将的时候,有十几个朋友围观呢?这甲赖账的成本就大了吧?这是现实生活的区块。延伸到互联网呢?那就有无限可能了,场景就多了。
2.假如甲乙丙丁四个人是在一个500人的生意群里面做生意,这500人的群就是一个大区块。有一次,甲向乙要了一万元的货,但是没有及时打钱给乙,甲当时说3天内就打钱给乙。这事在群里大家都知道,如果甲在3天内没打钱给乙,那这个群里的其他498位生意伙伴都知道了,甲如果要赖账不还,自己在这个生意圈里面的声誉就受到影响。这是一个区块。
后来,甲又想丙做生意,丙向甲要货,甲说,你先打5000定金,马上就发货,丙打了5000块钱给甲,结果甲迟迟不发货,这事群里面的人都知道,这又是一个区块。两个区块连在一起,大家对甲的信誉就怀疑了。这样搞几次,甲先生今后还玩得下去吗?这就是区块链的价值。
区块链,看似复杂,其实也不复杂;看似简单,其实真要操作起来也很难。区块太小,没有什么意义。区块想要做大,会涉及隐私和商业秘密,比如谈恋爱这事,就不方便在大群里说;比如合作做大生意,就不方便事前在群里(区块)公开讨论。不过,区块链技术使用的场合还是有的,比如扶贫工作、救灾资金管理等,晒在阳光下,大家都知道,相互来监督。 举了这两个例子,不知道大家了解了一点没有?
【关于区块链最核心、易懂的简介】
一、区块链是如何创造信任的?我们以 “1”、 “2”、 “3”来总结区块链的特点:
- “1”句话概括区块链:可信的分布式数据库;
- “2”大核心性质:分布式、不可篡改;
- “3”个关键机制:密码学原理、数据存储结构、共识机制。
“分布式”与“不可篡改”的性质保证了区块链的“诚实”与“透明”,这是区块链能够创造信任的基础。
二、行业方面,预计未来3-5年将以金融行业为主,逐渐向其他实体行业辐射,更切合实际的场景加速落地,行业从“1到N”发展到包括 娱乐 、商品溯源、征信等。
未来,区块链除了自身运用侧链、闪电网络、跨链等技术外,更需要与5G、人工智能、大数据、物联网等新兴信息技术深度融合,从而提升技术性能和链下数据质量并减少资源浪费。
三、智能合约可能是区块链上最具革命性的应用。如果智能合约在区块链上实现广泛运用,经济分工将在互联网时代进一步细化,全球范围内的各网络节点将直接对接需求和生产,更广泛的 社会 协同将得以实现。
如果上述愿景实现,区块链技术与行业的结合有望迎来“从1到N”的爆发时刻,它的爆发或将不是线性的而是非线性的,区块链也才可能从“信任机器”升级成为引领产业浪潮的重要“引擎”。
去中心化。防止作弊。原来一个人记账,可以改,现在是50个人,每个人记录一笔,每个人都账本都有记录,你能把50个都改了吗?50个账本是通的,除非都改掉。所以用处很大。
看到很多人回答,普通人不能直观地理解。我简单明了地解释一下,区块链就是去中心化,发生一件事的时候,大家都记下,且有自己的密码,不可篡改。
就是黑客想改,也得一个一个来,累死他,事实上不可能,至少目前。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链起源于比特币,是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性和生成下一个区块。
区块链在国际汇兑、信用证、股权登记和证券交易所等金融领域有着潜在的巨大应用价值。将区块链技术应用在金融行业中,能够省去第三方中介环节,实现点对点的直接对接,从而在大大降低成本的同时,快速完成交易支付。
看了这么多高人的精心指点,本人还是一脸懵,就只记得好像以前有人利用这个所谓的“区块链”做传销……
㈢ 区块链正式进入3.0时代,房地产、供应链等将成应用重点领域
随着区块链的不断发展,区块链的应用覆盖的范围越来越广,伴随可扩展性和效率的提高,区块链应用范围将超越金融范畴,拓展到物流、地产和物联网等领域,成为未来 社会 的一种最底层的协议,这也就意味着区块链将进入3.0时代。
区块链1.0时代是以BTC(去中心化概念)为代表,更多的是起到一种分布式记账的作用如BTC、Ripple、BCH、莱特币、狗狗币等。更多的是充当数字货币记账用的。当然第一个阶段发展的也并不完美,比特币还有很多问题需要解决,比如扩容,闪电支付,硬分叉等。
随着进一步完成,区块链来到了2.0时代,以ETH(智能合约)代表,进入合约阶段。
ETH为代表的区块链2.0是一大进步,但仍然存在着很多问题,比如通道拥堵,交易速度慢,分叉风险,高额手续费等等。举例来说,风靡一时的加密猫( CryptoKitties)在以太坊平台上线后,最高时占据了约25%的以太坊网络,造成了整个以太坊网络的拥堵,严重地影响了其他以太坊用户的体验。目前的发展就是处于第一个阶段到第二个阶段的过度过程。
在告别了1.0和2.0时代之后,得益于技术的不断发展,区块链变得更加实用。这也意味着区块链将彻底脱离去初创时期的金融属性,凭借其去中心化等特性,进入到各行各业的实际应用场景中去。
这也意味着区块链正式开启其3.0时代——全面应用的时代。而3.0时代的区块链产业结构,也更加复杂,今天就为大家简单分析一下。
3.0时代区块链产业分为基础层、服务层、应用层三个层次。
(1)、基础层
对应的产业链上中下游包括:上游底层技术及基础设施(核心技术、设备、底层平台部署方式),中游服务层主要是面向开发者提供基于区块链技术的应用;下游应用层包括金融、供应链管理、智能制造、政府企业、服务、 社会 应用等。
硬件、技术及基础设施厂商主要提供区块链应用所必备的芯片、矿机、矿池、硬盘、路由器等基础设施。
底层平台部署方式可以分为公有链、联盟链、私有链。
底层技术包括核心基础组件、协议和算法。基于底层核心技术组件,针对不同应用场景提供不同功能,包括智能合约、可编程资产、激励机制、成员管理等。
基础层提供底层区块链或分布式账本技术框架,主要包括以太坊、Hyperledger Fabric、R3 Corda、FISCO BCOS等。
(2)、服务层
服务层是指BaaS(Blockchain as a Service)平台,国内主要的BaaS平台有蚂蚁区块链BaaS平台、腾讯云TBaaS、平安壹账链BaaS平台等。
主要是面向开发者提供基于区块链技术的应用,是在底层技术的基础上提供智能合约、信息安全、数据服务等产品化服务,提高开发者在平台层开发应用的便捷性和可拓展性。
应用及服务厂商负责区块链通用技术及技术扩展平台研发、数字货币教育与存储平台搭建等工作,为行业应用层提供技术支持。
(3)、应用层
应用层表现为核心应用组件,包括智能合约、可编程资产、激励机制、成员管理等。
是指区块链的终端使用者或服务供应商,现在区块链的主要应用场景有跨境支付、防伪溯源、供应链金融、贸易融资、电子票据、ABS等。
服务对象分为两大类:B端(起步阶段):区块链+(金融、供应链管理、版权保护、教育);C端(率先落地):区块链+(共享经济、泛 娱乐 )。
下游区块链应用领域为区块链技术与现有行业的结合运作,现在,多个行业已经开启了区块链3.0的应用时代。
(1)、区块链+供应链
区块链+供应链实现商品信息全流程追溯。传统供应链的溯源防伪系统存在信息不透明、数据容易篡改、安全性差和相对封闭等弊端,而利用区块链技术和物联网技术,可将商品的原材料采买过程,生产过程和流通过程的信息进行整合和追溯,真正实现跨越品牌商、渠道商、零售商、消费者,精细到一物一码的全流程正品追溯,显著提升用户信任体验。
(2)、区块链+物联网
搭建万物互联时代的信息交流网络。随着物联网中设备数量的增长,区块链的分布式特性为物联网自我治理提供了途径,可以帮助物联网中的设备理解彼此,并了解不同设备间的关联,从而实现对物联网的分布式控制。
(3)、区块链+医疗
保障医疗数据安全共享。运用区块链技术对医疗数据进行数学加密,可有效防止医疗数据被恶意修改等风险。应用区块链技术开发的医疗数据共享和交换系统,将加密后的医疗数据上传,可以实现数据在患者、各医疗机构之间快速、高效、安全地进行共享和流通,有效简化了医疗数据的调用流程,为精确诊断病情提供数据保障。
(4)、区块链+房地产
区块链在房地产行业的潜在应用场景非常多,常见的如房产交易。买卖产权的过程中的痛点在于:交易过程中和交易后缺乏透明,大量的文书工作,潜在的欺诈行为,公共记录中的错误等等,而这些还仅仅只是一部分。区块链提供了一个途径去实现无纸化和快速交易的需求。此外,房地地产区块链应用可以帮助记录、追溯和转移地契、房契、留置权等等,还给金融公司、产权公司和抵押公司提供了一个平台。区块链技术致力于安全保存文件,同时增强透明性,降低成本。此外,区块链还应用建筑工程领域,在当前大火的城市更新也有很多企业在应用这一技术。例如深圳的兰房链就基于区块链提出了区块链+城市更新/建筑工程/房地产开发等一揽子解决方案,全面服务于房地产行业诸多领域,目前其官网、移动应用均已上线。
此外,区块链在供应链金融、股票交易、银行业等已经有了很多的应用,此处不再一一赘述。
作为我国十四五规划的重要内容之一,官方早已提出要加快推动 区块链技术和产业创新发展 ,积极推进 区块链和经济 社会 融合发展 。
而要实现上述两个发展,其关键在于以下两点:
1、区块链技术核心技术突破。
区块链技术是目前我国和欧美差距最小的技术,官方特别强调在这个新兴领域我国要走在理论最前沿、占据创新制高点、取得产业新优势。要推动协同攻关,加快推进核心技术突破,为区块链应用发展提供安全可控的技术支撑。
目前区块链技术大多数依然停留在概念炒作阶段,很多业务场景单纯为了区块链而区块链。目前为止我国还没有人能在全球范围内解决三元悖论等核心技术困境,因此我们必须回归基础理论和核心技术,通过长期潜心研究,才能取得重大突破。
事实上,官方对区块链技术理论技术和后续的应用发展提出了非常高的要求,做好区块链基础理论研究,着力攻克一批关键核心技术,真正把技术研发的担子挑起来,是当前区块链发展的关键。
2、提升国际话语权和规则制定权。
不同于以往的信息技术,区块链技术具有很强的扩张性,或者叫侵略性,它的规则或者话语权决定了它的影响范围,因为每一个上链开展业务的个体或机构必须服从区块链所定的规则,无论中外均是如此。举个例子,大家使用windows系统时必须要服从windows的规则,但是windows只是为用户规定了信息交互的规则,这对我们来说是可以接受的,而区块链则规定了产业治理规则,区块链的治理规则凭借其分布式特征,其影响力可迅速超越国界和地域限制。
为了实现上述两点,我们要加强人才队伍建设,建立完善人才培养体系,打造多种形式的高层次人才培养平台,培育一批领军人物和高水平创新团队。
区块链作为架构性创新技术,对复合型人才需求巨大,要求从事者掌握涉及密码学、信息科学、基础数学等多种专业技术知识。发展区块链,必须加强学科深度交叉融合的人才队伍建设,从基础研究、应用研发、产业融合等方面前瞻和系统性地建立人才培育体系。
区块链技术是未来数字经济的重要组成部分,对于各行各业,它都有着丰富的优势。尽管已经进入3.0时代,但区块链在各行各业的垂直落地应用,才刚刚开始。
对于区块链的未来,你怎么看?
㈣ 区块链的三大系统框架到底是个什么鬼
其实框架很简单的,你可以认为它是一个工具,甚至一个插件。 框架的作用,就是将一个公用的,常用的技术,封装起来, 帮你处理一些基础的东西,可以让你不用再去写那些繁琐的东西。 就拿你要学的struts来说:他本质上也是用java写的,和我们自己写的类没有区别,他实现的东西我们自己也可以实现。 比如接收客户端的数据,我们是用request.getParameter()来的,但是如果有很多个参数,我们要写很多个,很麻烦。struts它就帮我们实现,不用我们写,直接写个属性,就可以得到。其实本质还是用request.getParameter()。。 所以你不要再在意框架是什么东西,等你接触了就知道了。你把它当做一个工具来用,这就是框架。
㈤ 开发区块链使用什么框架Substrate
区块链开发很复杂。它涉及复杂的技术(包括先进的密码学和分布式网络通信)你必须掌握这些技术,以便为应用程序的运行和用户的信任提供一个安全平台。还有一些围绕规模、治理、互操作性和可升级性的棘手问题需要解决。这种复杂性为开发者创造了一个需要克服的高门槛。考虑到这一点,要回答的第一个问题是:你想建立什么?
Substrate并不完全适合每一个用例、应用程序或项目。然而,如果你想建立一个区块链,那么Substrate可能是一个完美的选择。
Substrate是一个软件开发工具包(SDK),专门为您提供所有区块链的基本组件,使您能够专注于制作使您的链独特和创新的逻辑。与其他分布式账本平台不同,Substrate是。
大多数区块链平台都有非常紧密的耦合、意见一致的子系统,很难脱钩。在基于另一个区块链分叉的链上也有风险,这些非常明显的耦合会从根本上破坏区块链系统本身。
Substrate是一个完全模块化的区块链框架,让你通过选择适合你的项目的网络堆栈、共识模型或治理方法,或通过创建你自己的组件,组成一个有明确解耦组件的链。
通过Substrate,你可以部署一个为你的规格设计和建造的区块链,但也可以随着你不断变化的需求而发展。
所有的Substrate架构和工具都在开源许可下提供。Substrate框架的核心组件使用开放协议,如libp2p和jsonRPC,同时授权你决定你想定制多少区块链架构。Substrate还有一个庞大的、活跃的、有帮助的开发者社区,为生态系统做出贡献。来自社区的贡献增强了可用的能力,使您能够随着区块链的发展将其纳入自己的区块链中。
大多数区块链平台提供的与其他区块链网络互动的能力有限。所有基于Substrate的区块链都可以通过跨共识信息传递(XCM)与其他区块链进行互操作。Substrate可用于创建作为独立网络的链(单人链),或与中继链紧密耦合,以分享它的安全,作为一个准链。
Substrate是为可升级、可组合和可适应而建立的。状态转换逻辑--Substrate runtime--是一个独立的WebAssembly对象。节点可以被赋予在特定条件下完全改变运行时本身的能力,在整个网络范围内诱发运行时升级。因此,"forkless "升级是可能的,因为在大多数情况下,节点不需要采取任何行动就可以使用这个新的运行时。随着时间的推移,网络的运行时协议可以无缝地,也许是彻底地,随着用户的需求而发展。
㈥ baas是什么意思
Baas是BlockchainasaService的缩写,其意思为:“区块链即服务”,是目前十分火爆的话题,Baas是指将区块链框架嵌入云计算平台,利用云服务基础设施的部署和管理优势,为开发者提供便捷、高性能的区块链生态环境和生态配套服务,支持开发者的业务拓展及运营支持的区块链开放平台。通常情况下,一套完整的BaaS解决方案包括设备接入、访问控制、服务监控和区块链平台四个主要环节。
㈦ 区块链行业正迎来市场新风口,区块链行业的发展,存在哪些瓶颈问题
区块链技术是一种新的分布式基础架构和计算范式,可实现分布式账本的共享,复制和授权。它具有多点共识的特点,难以篡改。它解决了如何在商业网络中实现跨机构信任交易的问题,将涉及金融服务的所有各方联系在一起,并带来了打破数据孤岛和提高数据质量的挑战。它具有安全性,降低交易成本的潜在优势。增强风险控制能力,在金融领域具有广阔的应用前景。区块链行业正迎来市场新风口,区块链行业的发展,存在着一些瓶颈问题。只有突破这些瓶颈,才能迎来区块链的春天。带来更好的发展。
最后,区块链技术的发展会带来一定的网络的安全问题。要重视和解决信息安全和网络安全问题。区块链技术并不是天生的安全。任何软件系统都不可避免地存在缺陷和漏洞,并且将面临来自网络的攻击。设计不良和管理不善的区块链系统可能很容易受到攻击。在金融行业的应用中,数据是一种资产,因此我们应该对区块链的安全性有一个全面的了解,首先将安全性设计和自我控制放在首位,避免发生比特币被盗的事件。
㈧ Tendermint详解
摘要
您熟知并喜爱的区块链有一个相当严格的结构。作为一名开发人员,在这种情况下您有两种选择:在受限的环境中构建应用程序,或者进行代码分叉并创建自己的链。然而,创建自己的链并非易事——您还需要启动网络并决定所使用的共识机制。
Tendermint是用来启动区块链的开源软件,让您可以用任何语言编写应用程序。更厉害的是,它可以与其他区块链进行通信。
创建加密货币或区块链网络需要投入大量工作,远远不止于初始化数据库。它需要在安全性、去中心化和可扩展性之间为激励和权衡取得微妙的平衡。
有些团队已经 探索 了一系列不同的方法,来构建最强大的区块链生态系统,这也在情理之中了。在这篇文章中,我们将详细了解其中一种方法:Tendermint。
如果您对区块链有所了解,就会感觉Tendermint的大部分内容都似曾相识。在深入研究之前,我们首先回顾一些关键概念。
Tendermint是一种 区块链堆栈 。比特币和以太坊等同样也是区块链堆栈。请记住,这并非只关乎区块链数据库本身,还关乎节点的对等网络、它们如何相互作用,以及您通过交易和智能合约可以做到的事情。其目标是在即便不信任其他任何人的情况下,让所有人都统一一种 状态 (比如数据库的快照)。
在很大程度上,如今的主要区块链已经想出了达成这一点的“秘籍”。然而,它们通常依赖于 一体化架构 :这是一个软件工程概念,意味着组件相互连接且相互依赖。您不能从中取走一部分,然后插入到别的架构中。
如果您想保证灵活性,一体化架构并非理想的选择。在相反类型的模型(具有 模块化架构 )中,您可以在不必担心破坏任何架构的情况下调整单个组件。对于一体化架构,您在升级单个组件时必须确保每个组件保持兼容。
现在,我们理解了其中的差别,可以继续来了解Tendermint协议。
您可能已经知道,比特币最大的创新之处在于它解决了所谓的 拜占庭将军问题 。在这里我们不会详细讨论这个问题(如果您感兴趣,请参阅我们关于拜占庭容错的文章)。您只需要知道,它详细说明了参与者必须在分布式环境中进行通信的场景。
这些参与者不知道其他人是否在撒谎,也不知道他们之间发送的消息是否被篡改。即便存在这些问题,如果参与者可以针对一组事实达成一致,则系统会被认为存在 拜占庭容错 。
显然,在去中心化的环境中,正确把握这一点至关重要。不具有拜占庭容错的加密货币并不能真正发挥作用——您需要某种中心化组织进行协调,这就与目的背道而驰。如果很多数字货币一样,比特币通过使用工作量证明(PoW)共识算法来解决这个问题。
我们已经了解一体化/模块化架构之间的区别,也知道去中心化加密货币网络需要具有拜占庭容错能力。接下来我们谈谈我们通常在区块链中看到的三层架构: 应用 层、 共识 层和 网络 层。
共识层和网络层是让网络节点相互通信并尽量就一组事实达成一致的地方。应用层则可让您自行进行操作——好比以太坊的去中心化应用程序和智能合约或者比特币中的自定义交易。
然而,Tendermint是公司的名称(由最初撰写白皮书的开发人员Jae Kwon创立),而Tendermint Core是这家公司正在开发的实际软件。更具体地说,这款软件有两个主要组件:核心共识引擎(Tendermint core)和应用程序接口(ABCI)。
Tendermint Core是一个能够实现容错的系统。本质上,它是一台大型分布式计算机,可在同一时间向每个人显示相同的状态。只要至少三分之二的参与者是诚实的,一切就会顺利进行。但几乎每个区块链都是这样的,难道不是吗?它究竟有什么特别之处?
首先,Tendermint Core使用的共识机制是权益证明(PoS)。每个周期从一组验证者中选择一个随机节点。随后,该节点必须提出下一个区块(在所谓的 循环 系统上进行)。如果其他验证者对它满意,就会添加新的区块,并更新链。结果可以即时确定——与比特币或以太坊不同,它不需要等待确认来确保您的交易有效。
别着急,它还有其他特色!Tendermint Core采用模块化架构,应用层与共识层和网络层分离。简而言之,这意味着您可以将自己的应用程序层插入到堆栈中,而无需担心繁杂的激励机制或共识算法。
这对终端用户来说并不值得大惊小怪。但对于开发人员来说,能够利用现有框架就意味着他们可以直接构建应用程序,而无需建立整个网络。来自区块链的数据可以通过管道传输到集成层,让开发人员可以用任何语言编写软件。
神奇的事情发生在所谓的应用程序区块链界面(或简称ABCI)上。您可以把它想象成树莓派电脑上的GPIO引脚。您可将各种第三方组件连接到这些引脚,从LED到精心设计的植物洒水系统。ABCI以类似的方式定义了区块链以及在区块链上运行的应用程序之间的边界。
应用程序接口和共识机制的分离为分布式应用程序提供了更大的灵活性,可以将任何编程语言合并到它们的业务逻辑当中。
您只需要看看Ethermint这个具体示例就可以知道它的用处:Ethermint采用了以太坊代码库,删除了工作量证明机制,并将以太坊虚拟机建立在Tendermint之上。
这使得一些有趣的操作成为可能。首先,以太坊开发人员可轻松将他们的智能合约移植到新引擎上,或者使用Solidity语言编写新的合约。除了提供以太坊功能之外,Ethermint还可作为以太坊权益证明,让我们一睹Casper在以太坊2.0中实现的样子。
“区块链互联网”的承诺吸引了许多人使用Tendermint协议。互操作性是加密货币领域期待已久的一个补充,因为它意味着数百个单独的区块链将变得交叉兼容。
目前,Cosmos SDK已投入大量工作,Cosmos SDK是一个开源框架,让任何人都能创建特定于应用程序的公共或私有区块链。随后,这些区块链可以通过所谓的Cosmos Hub接入更广泛的Cosmos网络,并在那里与其他区块链进行交流。
很多热门的项目已经使用Cosmos SDK来构建,比如BSC、KAVA、Band Protocol、Terra和IRISnet。
作为一个区块链引擎,Tendermint已经引起了加密货币领域众多利益相关者的注意,包括开发人员和终端用户。
㈨ 区块链的共识机制
一、区块链共识机制的目标
区块链是什么?简单而言,区块链是一种去中心化的数据库,或可以叫作分布式账本(distributed ledger)。传统上所有的数据库都是中心化的,例如一间银行的账本就储存在银行的中心服务器里。中心化数据库的弊端是数据的安全及正确性全系于数据库运营方(即银行),因为任何能够访问中心化数据库的人(如银行职员或黑客)都可以破坏或修改其中的数据。
而区块链技术则容许数据库存放在全球成千上万的电脑上,每个人的账本通过点对点网络进行同步,网络中任何用户一旦增加一笔交易,交易信息将通过网络通知其他用户验证,记录到各自的账本中。区块链之所以得其名是因为它是由一个个包含交易信息的区块(block)从后向前有序链接起来的数据结构。
很多人对区块链的疑问是,如果每一个用户都拥有一个独立的账本,那么是否意味着可以在自己的账本上添加任意的交易信息,而成千上万个账本又如何保证记账的一致性? 解决记账一致性问题正是区块链共识机制的目标 。区块链共识机制旨在保证分布式系统里所有节点中的数据完全相同并且能够对某个提案(proposal)(例如是一项交易纪录)达成一致。然而分布式系统由于引入了多个节点,所以系统中会出现各种非常复杂的情况;随着节点数量的增加,节点失效或故障、节点之间的网络通信受到干扰甚至阻断等就变成了常见的问题,解决分布式系统中的各种边界条件和意外情况也增加了解决分布式一致性问题的难度。
区块链又可分为三种:
公有链:全世界任何人都可以随时进入系统中读取数据、发送可确认交易、竞争记账的区块链。公有链通常被认为是“完全去中心化“的,因为没有任何人或机构可以控制或篡改其中数据的读写。公有链一般会通过代币机制鼓励参与者竞争记账,来确保数据的安全性。
联盟链:联盟链是指有若干个机构共同参与管理的区块链。每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。这类区块链被认为是“部分去中心化”。
私有链:指其写入权限是由某个组织和机构控制的区块链。参与节点的资格会被严格的限制,由于参与的节点是有限和可控的,因此私有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不容易被恶意攻击、并且能够做到身份认证等金融行业必须的要求。相比中心化数据库,私有链能够防止机构内单节点故意隐瞒或篡改数据。即使发生错误,也能够迅速发现来源,因此许多大型金融机构在目前更加倾向于使用私有链技术。
二、区块链共识机制的分类
解决分布式一致性问题的难度催生了数种共识机制,它们各有其优缺点,亦适用于不同的环境及问题。被众人常识的共识机制有:
l PoW(Proof of Work)工作量证明机制
l PoS(Proof of Stake)股权/权益证明机制
l DPoS(Delegated Proof of Stake)股份授权证明机制
l PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法
l DBFT(Delegated Byzantine Fault Tolerance)授权拜占庭容错算法
l SCP (Stellar Consensus Protocol ) 恒星共识协议
l RPCA(Ripple Protocol Consensus Algorithm)Ripple共识算法
l Pool验证池共识机制
(一)PoW(Proof of Work)工作量证明机制
1. 基本介绍
在该机制中,网络上的每一个节点都在使用SHA256哈希函数(hash function) 运算一个不断变化的区块头的哈希值 (hash sum)。 共识要求算出的值必须等于或小于某个给定的值。 在分布式网络中,所有的参与者都需要使用不同的随机数来持续计算该哈希值,直至达到目标为止。当一个节点的算出确切的值,其他所有的节点必须相互确认该值的正确性。之后新区块中的交易将被验证以防欺诈。
在比特币中,以上运算哈希值的节点被称作“矿工”,而PoW的过程被称为“挖矿”。挖矿是一个耗时的过程,所以也提出了相应的激励机制(例如向矿工授予一小部分比特币)。PoW的优点是完全的去中心化,其缺点是消耗大量算力造成了的资源浪费,达成共识的周期也比较长,共识效率低下,因此其不是很适合商业使用。
2. 加密货币的应用实例
比特币(Bitcoin) 及莱特币(Litecoin)。以太坊(Ethereum) 的前三个阶段(Frontier前沿、Homestead家园、Metropolis大都会)皆采用PoW机制,其第四个阶段 (Serenity宁静) 将采用权益证明机制。PoW适用于公有链。
PoW机制虽然已经成功证明了其长期稳定和相对公平,但在现有框架下,采用PoW的“挖矿”形式,将消耗大量的能源。其消耗的能源只是不停的去做SHA256的运算来保证工作量公平,并没有其他的存在意义。而目前BTC所能达到的交易效率为约5TPS(5笔/秒),以太坊目前受到单区块GAS总额的上限,所能达到的交易频率大约是25TPS,与平均千次每秒、峰值能达到万次每秒处理效率的VISA和MASTERCARD相差甚远。
3. 简图理解模式
(ps:其中A、B、C、D计算哈希值的过程即为“挖矿”,为了犒劳时间成本的付出,机制会以一定数量的比特币作为激励。)
(Ps:PoS模式下,你的“挖矿”收益正比于你的币龄(币的数量*天数),而与电脑的计算性能无关。我们可以认为任何具有概率性事件的累计都是工作量证明,如淘金。假设矿石含金量为p% 质量, 当你得到一定量黄金时,我们可以认为你一定挖掘了1/p 质量的矿石。而且得到的黄金数量越多,这个证明越可靠。)
(二)PoS(Proof of Stake)股权/权益证明机制
1.基本介绍
PoS要求人们证明货币数量的所有权,其相信拥有货币数量多的人攻击网络的可能性低。基于账户余额的选择是非常不公平的,因为单一最富有的人势必在网络中占主导地位,所以提出了许多解决方案。
在股权证明机制中,每当创建一个区块时,矿工需要创建一个称为“币权”的交易,这个交易会按照一定比例预先将一些币发给矿工。然后股权证明机制根据每个节点持有代币的比例和时间(币龄), 依据算法等比例地降低节点的挖矿难度,以加快节点寻找随机数的速度,缩短达成共识所需的时间。
与PoW相比,PoS可以节省更多的能源,更有效率。但是由于挖矿成本接近于0,因此可能会遭受攻击。且PoS在本质上仍然需要网络中的节点进行挖矿运算,所以它同样难以应用于商业领域。
2.数字货币的应用实例
PoS机制下较为成熟的数字货币是点点币(Peercoin)和未来币(NXT),相比于PoW,PoS机制节省了能源,引入了" 币天 "这个概念来参与随机运算。PoS机制能够让更多的持币人参与到记账这个工作中去,而不需要额外购买设备(矿机、显卡等)。每个单位代币的运算能力与其持有的时间长成正相关,即持有人持有的代币数量越多、时间越长,其所能签署、生产下一个区块的概率越大。一旦其签署了下一个区块,持币人持有的币天即清零,重新进入新的循环。
PoS适用于公有链。
3.区块签署人的产生方式
在PoS机制下,因为区块的签署人由随机产生,则一些持币人会长期、大额持有代币以获得更大概率地产生区块,尽可能多的去清零他的"币天"。因此整个网络中的流通代币会减少,从而不利于代币在链上的流通,价格也更容易受到波动。由于可能会存在少量大户持有整个网络中大多数代币的情况,整个网络有可能会随着运行时间的增长而越来越趋向于中心化。相对于PoW而言,PoS机制下作恶的成本很低,因此对于分叉或是双重支付的攻击,需要更多的机制来保证共识。稳定情况下,每秒大约能产生12笔交易,但因为网络延迟及共识问题,需要约60秒才能完整广播共识区块。长期来看,生成区块(即清零"币天")的速度远低于网络传播和广播的速度,因此在PoS机制下需要对生成区块进行"限速",来保证主网的稳定运行。
4.简图理解模式
(PS:拥有越多“股份”权益的人越容易获取账权。是指获得多少货币,取决于你挖矿贡献的工作量,电脑性能越好,分给你的矿就会越多。)
(在纯POS体系中,如NXT,没有挖矿过程,初始的股权分配已经固定,之后只是股权在交易者之中流转,非常类似于现实世界的股票。)
(三)DPoS(Delegated Proof of Stake)股份授权证明机制
1.基本介绍
由于PoS的种种弊端,由此比特股首创的权益代表证明机制 DPoS(Delegated Proof of Stake)应运而生。DPoS 机制中的核心的要素是选举,每个系统原生代币的持有者在区块链里面都可以参与选举,所持有的代币余额即为投票权重。通过投票,股东可以选举出理事会成员,也可以就关系平台发展方向的议题表明态度,这一切构成了社区自治的基础。股东除了自己投票参与选举外,还可以通过将自己的选举票数授权给自己信任的其它账户来代表自己投票。
具体来说, DPoS由比特股(Bitshares)项目组发明。股权拥有着选举他们的代表来进行区块的生成和验证。DPoS类似于现代企业董事会制度,比特股系统将代币持有者称为股东,由股东投票选出101名代表, 然后由这些代表负责生成和验证区块。 持币者若想称为一名代表,需先用自己的公钥去区块链注册,获得一个长度为32位的特有身份标识符,股东可以对这个标识符以交易的形式进行投票,得票数前101位被选为代表。
代表们轮流产生区块,收益(交易手续费)平分。DPoS的优点在于大幅减少了参与区块验证和记账的节点数量,从而缩短了共识验证所需要的时间,大幅提高了交易效率。从某种角度来说,DPoS可以理解为多中心系统,兼具去中心化和中心化优势。优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。缺点:投票积极性不高,绝大部分代币持有者未参与投票;另整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。
DPoS机制要求在产生下一个区块之前,必须验证上一个区块已经被受信任节点所签署。相比于PoS的" 全民挖矿 ",DPoS则是利用类似" 代表大会 "的制度来直接选取可信任节点,由这些可信任节点(即见证人)来代替其他持币人行使权力,见证人节点要求长期在线,从而解决了因为PoS签署区块人不是经常在线而可能导致的产块延误等一系列问题。 DPoS机制通常能达到万次每秒的交易速度,在网络延迟低的情况下可以达到十万秒级别,非常适合企业级的应用。 因为公信宝数据交易所对于数据交易频率要求高,更要求长期稳定性,因此DPoS是非常不错的选择。
2. 股份授权证明机制下的机构与系统
理事会是区块链网络的权力机构,理事会的人选由系统股东(即持币人)选举产生,理事会成员有权发起议案和对议案进行投票表决。
理事会的重要职责之一是根据需要调整系统的可变参数,这些参数包括:
l 费用相关:各种交易类型的费率。
l 授权相关:对接入网络的第三方平台收费及补贴相关参数。
l 区块生产相关:区块生产间隔时间,区块奖励。
l 身份审核相关:审核验证异常机构账户的信息情况。
l 同时,关系到理事会利益的事项将不通过理事会设定。
在Finchain系统中,见证人负责收集网络运行时广播出来的各种交易并打包到区块中,其工作类似于比特币网络中的矿工,在采用 PoW(工作量证明)的比特币网络中,由一种获奖概率取决于哈希算力的抽彩票方式来决定哪个矿工节点产生下一个区块。而在采用 DPoS 机制的金融链网络中,通过理事会投票决定见证人的数量,由持币人投票来决定见证人人选。入选的活跃见证人按顺序打包交易并生产区块,在每一轮区块生产之后,见证人会在随机洗牌决定新的顺序后进入下一轮的区块生产。
3. DPoS的应用实例
比特股(bitshares) 采用DPoS。DPoS主要适用于联盟链。
4.简图理解模式
(四)PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法
1. 基本介绍
PBFT是一种基于严格数学证明的算法,需要经过三个阶段的信息交互和局部共识来达成最终的一致输出。三个阶段分别为预备 (pre-prepare)、准备 (prepare)、落实 (commit)。PBFT算法证明系统中只要有2/3比例以上的正常节点,就能保证最终一定可以输出一致的共识结果。换言之,在使用PBFT算法的系统中,至多可以容忍不超过系统全部节点数量1/3的失效节点 (包括有意误导、故意破坏系统、超时、重复发送消息、伪造签名等的节点,又称为”拜占庭”节点)。
2. PBFT的应用实例
著名联盟链Hyperledger Fabric v0.6采用的是PBFT,v1.0又推出PBFT的改进版本SBFT。PBFT主要适用于私有链和联盟链。
3. 简图理解模式
上图显示了一个简化的PBFT的协议通信模式,其中C为客户端,0 – 3表示服务节点,其中0为主节点,3为故障节点。整个协议的基本过程如下:
(1) 客户端发送请求,激活主节点的服务操作;
(2) 当主节点接收请求后,启动三阶段的协议以向各从节点广播请求;
(a) 序号分配阶段,主节点给请求赋值一个序号n,广播序号分配消息和客户端的请求消息m,并将构造pre-prepare消息给各从节点;
(b) 交互阶段,从节点接收pre-prepare消息,向其他服务节点广播prepare消息;
(c) 序号确认阶段,各节点对视图内的请求和次序进行验证后,广播commit消息,执行收到的客户端的请求并给客户端响应。
(3) 客户端等待来自不同节点的响应,若有m+1个响应相同,则该响应即为运算的结果;
(五)DBFT(Delegated Byzantine Fault Tolerance)授权拜占庭容错算法
1. 基本介绍
DBFT建基于PBFT的基础上,在这个机制当中,存在两种参与者,一种是专业记账的“超级节点”,一种是系统当中不参与记账的普通用户。普通用户基于持有权益的比例来投票选出超级节点,当需要通过一项共识(记账)时,在这些超级节点中随机推选出一名发言人拟定方案,然后由其他超级节点根据拜占庭容错算法(见上文),即少数服从多数的原则进行表态。如果超过2/3的超级节点表示同意发言人方案,则共识达成。这个提案就成为最终发布的区块,并且该区块是不可逆的,所有里面的交易都是百分之百确认的。如果在一定时间内还未达成一致的提案,或者发现有非法交易的话,可以由其他超级节点重新发起提案,重复投票过程,直至达成共识。
2. DBFT的应用实例
国内加密货币及区块链平台NEO是 DBFT算法的研发者及采用者。
3. 简图理解模式
假设系统中只有四个由普通用户投票选出的超级节点,当需要通过一项共识时,系统就会从代表中随机选出一名发言人拟定方案。发言人会将拟好的方案交给每位代表,每位代表先判断发言人的计算结果与它们自身纪录的是否一致,再与其它代表商讨验证计算结果是否正确。如果2/3的代表一致表示发言人方案的计算结果是正确的,那么方案就此通过。
如果只有不到2/3的代表达成共识,将随机选出一名新的发言人,再重复上述流程。这个体系旨在保护系统不受无法行使职能的领袖影响。
上图假设全体节点都是诚实的,达成100%共识,将对方案A(区块)进行验证。
鉴于发言人是随机选出的一名代表,因此他可能会不诚实或出现故障。上图假设发言人给3名代表中的2名发送了恶意信息(方案B),同时给1名代表发送了正确信息(方案A)。
在这种情况下该恶意信息(方案B)无法通过。中间与右边的代表自身的计算结果与发言人发送的不一致,因此就不能验证发言人拟定的方案,导致2人拒绝通过方案。左边的代表因接收了正确信息,与自身的计算结果相符,因此能确认方案,继而成功完成1次验证。但本方案仍无法通过,因为不足2/3的代表达成共识。接着将随机选出一名新发言人,重新开始共识流程。
上图假设发言人是诚实的,但其中1名代表出现了异常;右边的代表向其他代表发送了不正确的信息(B)。
在这种情况下发言人拟定的正确信息(A)依然可以获得验证,因为左边与中间诚实的代表都可以验证由诚实的发言人拟定的方案,达成2/3的共识。代表也可以判断到底是发言人向右边的节点说谎还是右边的节点不诚实。
(六)SCP (Stellar Consensus Protocol ) 恒星共识协议
1. 基本介绍
SCP 是 Stellar (一种基于互联网的去中心化全球支付协议) 研发及使用的共识算法,其建基于联邦拜占庭协议 (Federated Byzantine Agreement) 。传统的非联邦拜占庭协议(如上文的PBFT和DBFT)虽然确保可以通过分布式的方法达成共识,并达到拜占庭容错 (至多可以容忍不超过系统全部节点数量1/3的失效节点),它是一个中心化的系统 — 网络中节点的数量和身份必须提前知晓且验证过。而联邦拜占庭协议的不同之处在于它能够去中心化的同时,又可以做到拜占庭容错。
[…]
(七)RPCA(Ripple Protocol Consensus Algorithm)Ripple共识算法
1. 基本介绍
RPCA是Ripple(一种基于互联网的开源支付协议,可以实现去中心化的货币兑换、支付与清算功能)研发及使用的共识算法。在 Ripple 的网络中,交易由客户端(应用)发起,经过追踪节点(tracking node)或验证节点(validating node)把交易广播到整个网络中。追踪节点的主要功能是分发交易信息以及响应客户端的账本请求。验证节点除包含追踪节点的所有功能外,还能够通过共识协议,在账本中增加新的账本实例数据。
Ripple 的共识达成发生在验证节点之间,每个验证节点都预先配置了一份可信任节点名单,称为 UNL(Unique Node List)。在名单上的节点可对交易达成进行投票。共识过程如下:
(1) 每个验证节点会不断收到从网络发送过来的交易,通过与本地账本数据验证后,不合法的交易直接丢弃,合法的交易将汇总成交易候选集(candidate set)。交易候选集里面还包括之前共识过程无法确认而遗留下来的交易。
(2) 每个验证节点把自己的交易候选集作为提案发送给其他验证节点。
(3) 验证节点在收到其他节点发来的提案后,如果不是来自UNL上的节点,则忽略该提案;如果是来自UNL上的节点,就会对比提案中的交易和本地的交易候选集,如果有相同的交易,该交易就获得一票。在一定时间内,当交易获得超过50%的票数时,则该交易进入下一轮。没有超过50%的交易,将留待下一次共识过程去确认。
(4) 验证节点把超过50%票数的交易作为提案发给其他节点,同时提高所需票数的阈值到60%,重复步骤(3)、步骤(4),直到阈值达到80%。
(5) 验证节点把经过80%UNL节点确认的交易正式写入本地的账本数据中,称为最后关闭账本(last closed ledger),即账本最后(最新)的状态。
在Ripple的共识算法中,参与投票节点的身份是事先知道的,因此,算法的效率比PoW等匿名共识算法要高效,交易的确认时间只需几秒钟。这点也决定了该共识算法只适合于联盟链或私有链。Ripple共识算法的拜占庭容错(BFT)能力为(n-1)/5,即可以容忍整个网络中20%的节点出现拜占庭错误而不影响正确的共识。
2. 简图理解模式
共识过程节点交互示意图:
共识算法流程:
(八)POOL验证池共识机制
Pool验证池共识机制是基于传统的分布式一致性算法(Paxos和Raft)的基础上开发的机制。Paxos算法是1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现。Raft则是在2013年发布的一个比Paxos简单又能实现Paxos所解决问题的一致性算法。Paxos和Raft达成共识的过程皆如同选举一样,参选者需要说服大多数选民(服务器)投票给他,一旦选定后就跟随其操作。Paxos和Raft的区别在于选举的具体过程不同。而Pool验证池共识机制即是在这两种成熟的分布式一致性算法的基础上,辅之以数据验证的机制。