区块链做为系统去中心化的一种工具,所追求的并不必定是系统的“绝对”去中心化,而是相对于中心化来讲,去中心化的程度。
在上一期的内容中,咱们提到了区块链公链“三元悖论”专题之可扩展性(Scalability)。本期咱们将会接着讨论一下区块链系统中“最核心”的_去中心化(Decentrailzation)特性_。数据库
在开始前,咱们先把这个话题分为如下四个方面:编程
1、什么是“去中心化”安全
2、为何说“去中心化”是区块链系统最核心的特性网络
3、咱们在什么状况下须要“去中心化”架构
4、区块链系统“去中心化”技术的发展路径。socket
在一个区块链系统中,“去中心化”能够简单定义为:经过共识机制的形式,实现系统中全部节点各为中心,在不受任何组织制约的状况下,可以对相链接的其它节点产生影响的一种状态。分布式
因此,在一个彻底去中心化的区块链系统中,节点间能够自由链接,造成新的链接单元。任何节点均可成为阶段性的中心,但不具有强制性的控制功能。节点之间的影响,会经过网络造成非线性因果的关系。工具
所以,使系统造成扁平化、开放化、平等化的形态,以达到各节点在系统中能够平等且自由交换数据的目的,就是“去中心化”赋予区块链系统的最大优点。布局
去中心化与分布式架构的区别性能
这里要特别强调一下去中心化与分布式架构的区别:分布式架构是一种保证系统中各节点之间互联互通的架构,其主要特色是,当任何一个节点出现故障时其它节点仍然可以继续工做,核心目的是提高系统的容错性;分布式架构重点在于任务分配和结果的汇总,强调的更可能是系统中各节点的布局,而去中心化更多强调的是一种状态。
在大部分状况下,去中心化是分布式架构的子集;因此,若是咱们说BTC是分布式帐本或者去中心化帐本,都是没有问题的。
当前,咱们平常使用的系统基本上都是中心化的,而中心化的最大问题就是,若是系统的“中心”出了问题,那么整个系统就会崩溃,因此为了不这种状况的发生,传统的中心化系统都会花很大力气去加固本身的系统,以让系统能力足够强大。
而区块链这个概念从诞生之日起,就是以免中心化问题做为出发点的,虽然从逻辑上看,区块链是全网统一的中心化帐本,但不管是系统架构仍是治理方式上,区块链系统都是去中心化的,相比于中心化系统而言,架构和治理上的去中心化,为区块链带来的最大好处就是:容错性、抗攻击力和防合谋能力。
区块链做为系统去中心化的一种工具,所追求的并不必定是系统的“绝对”去中心化,而是相对于中心化来讲,去中心化的程度;而正是因为“去中心化”所带来的平等,才赋予区块链透明、公开的特性;若是剔除区块链的去中心化因素,由一个或几个中心节点来控制整个系统,则区块链系统就会与传统的分布式系统无异,区块链技术也就变的没有太大意义。
因此能够说,去中心化是区块链最核心的特性。
在实际场景中,一般有如下两种典型场景,是能够用区块链做为工具来进行“去中心化”的,一是该场景已有中心,咱们想要去掉中心(或是下降中心化程度);二是该场景没有中心(或是没有合适的中心),咱们想经过一套工具去实现该场景下的统筹管理。
第一种状况下的去中心化的过程,更像是从“相信权威”转向“达成共识”的一个过程,当咱们须要在保护隐私的状况下进行信息或物品的交换(好比匿名交易,匿名聊天)时,中心化的系统势必会让咱们有一种“被监控”的感受,这时最好的选择就是采用去中心化的工具,在没有第三方的状况下,交易双方经过某种协议达成共识,并完成交换;事实上,因为任何中心化系统都不可能给用户提供绝对的隐私性和匿名性,因此区块链技术甚至是“惟一有可能”实现绝对隐私或匿名的技术。
第二种状况下,一般是由于该场景下的各参与方之间由于利益冲突等缘由,没有足够的信任关系,或是该场景下总体的既得利益过小,以致于不足以创建起一个中心化的权威机构;在这种状况下,去中心化工具解决的核心问题,是经过打造一套共识机制,使场景下的各参与方彼此信任,从而搭建起该场景下本来不存在的生产关系。
(这种状况在现实中比较常见,好比跨国的一些大型金融机构之间进行合做时,就不太容易找到合适的第三方进行信用委托;或者是一些小范围内的游戏、活动过程当中,若是想要找到一个绝对中立的第三方进行仲裁,一般会由于价格谈不拢而做罢;然而区块链为上述状况提供了可能,而且在现实场景中已经存在一些案例,例如ripple和r3,都是这类组织,ripple解决的就是各银行在跨国交易场景中的结算问题,各银行在处理跨国交易的结算业务中,通常很难找到一个信得过的中介机构进行担保,这就致使了业务总体效率的低下,而ripple经过区块链技术解决了这一问题,这其中很重要的一部分,就是利用了“去中心化”这个特性。)
所以,只有从去中心化的角度来考虑,才能找到真正适用区块链系统的应用场景,如跨组织间的积分通兑场景、以及对自然分散的能源行业进行统筹管理的场景等;反之,若是一个场景不存在去中心化的可能,那么传统的中心化系统必定会是更好的选择。
去中心化技术是伴随着互联网应用一块儿发展的,从最先的Napster到BitTorrent,再到咱们今天的区块链系统,去中心化技术经历了一代又一代的更新和变化,其中首先要提到的技术就是p2p网络。
P2P网络:P2P(Peer to Peer)网络也称对等网络,是一种在对等者(Peer)之间分配任务和工做负载的分布式应用架构,通常使用socket进行网络编程;在P2P网络中的节点既能够是服务端,也能够是客户端,这就致使P2P网络中的每一个节点间都是相互平等的,这与区块链系统“去中心化”的概念高度重合;因此,在区块链系统中,P2P技术是实现去中心化特性中至关重要的一部分。
在区块链系统的设计中,“去中心化”特性的最初目的是为了提高系统的生存能力,好比“去中心化“能够增长系统的弹性、容错性,抵抗外部攻击等;但当系统发展到了必定的程度,好比在解决了系统生存问题以后,区块链系统就会进化出更多的东西,进入求发展的阶段。
而在发展过程当中,“去中心化“技术主要遇到的设计挑战有如下几个方面:
目前应对上述问题的具体方法主要分为两类:一是经过修改共识机制的方式,使系统各节点间能够更高效的进行验证(上一篇文章了咱们介绍了经过改变共识机制提升TPS的方法),同时有助于提高系统的容错性;二是经过零知识证实、同态加密、安全多方计算(MPC)等密码学相关技术,使得节点间进行验证的时候,没必要验证区块的完整信息,而只需验证区块头(PreHash、Hash、TimeStamp)及所使用的密码学相关信息便可,大大下降了节点所需带宽,同时有利于共识的达成。
以上两类比较有表明性是混合共识机制(经过改变共识机制的方式),以及零知识证实技术(经过密码学技术的方式)。
混合共识机制:顾名思义,混合共识(Hybrid Consensus)机制就是对不一样的共识机制各取所长;使用混合共识机制解决去中心化的方法简单来讲,就是利用PFBT(Practical Byzantine Fault Tolerance,实用拜占庭容错机制)的高效性来更新帐本;用PoW (Proof of Work,工做量证实机制)的严谨性来验证交易,并辅助监督PBFT节点动做。
在此机制下,系统将交易分红两层处理:一层是写入层,使用PBFT共识进行帐本的写入,故帐本更新速度快;另外一层是监督层,使用PoW验证交易,节点能够自由加入或退出系统,经过贡献算力来争夺交易验证权,同时监督写入层中PBFT节点动做是否有误;这种状况下,即便当PBFT自身的协议失效(例如必定数量的节点被攻击者操纵),也能够经过PoW 链对写入层进行重启与问题追溯。PBFT保证了帐本快速更新的同时促进了节点间的高效验证,而PoW在保证了系统容错性的同时促进了节点间共识的达成。
固然,PBFT+POW的混合共识机制也会存在一些须要优化的地方,好比在系统运行一段时间后,极可能会发生PBFT帐本领先PoW过多的状况,致使PoW的监督验证出现延缓;但混合共识机制做为解决区块链系统去中心化的一种创新方式,其思路必须值得确定。
混合共识(Hybrid Consensus)
零知识证实技术:零知识证实(Zero-Knowledge Proof)技术是一种基于几率的验证方法,目的是让证实者既能充分证实本身是某种权益的合法拥有者,又不须要泄露任何有用的额外信息(好比隐私信息等),最终实如今“给验证者的知识为零“的状况下证实本身。
比较典型的一个例子是:假设A有两个不一样颜色的球,A的一个色盲朋友B不相信A的两个球颜色不一样,A如何才能让B相信这是真的呢?利用零知识证实的办法以下:
A把两个球给B,B每只手拿一个球
⬇️
A转过身背对B
⬇️
B在A转身后,进行一次“是否交换手中两个球位置“的动做决定,动做决定以后B让A转过身
⬇️
A转过身,B问A是否交换过球
⬇️
若是A回答错误,则B不相信;不然,重复100次实验,若是A都回答正确,则B相信这两个球是不一样颜色的
为何?若是两个球颜色不同,那么A每次都应该能分辨;若是两个球颜色同样,则无论B有没有交换过,A都没法分辨,只能乱猜。这样每次猜对的几率只有1/2,重复100次,都猜对的几率将小到能够忽略,因此A将必然会在过程当中猜错一次。
以上就是交互式零知识证实的一个例子,上述证实有三个特色:
1)交互过程,整个证实须要A和B进行交互才能完成;
2)具备随机性,即B每次随机决定是否交换球;
3)零知识,虽然B最终相信了这两个球是不一样颜色的,但B仍是不知道这两个球是什么颜色的。
零知识证实的好处在于,基于密码学技术的完备性、合理性,以及该技术所特有的“零知识“性,能够更好的促进节点间共识的达成,同时有效下降节点参与系统所需带宽。
目前,零知识证实技术的最大问题,在于使用场景受限比较多,通用性比较差,实际落地的过程当中大都须要针对具体场景,对系统进行大量的定制化开发。
零知识证实(Zero-Knowledge Proof)
在纵观整个区块链“去中心化”的技术发展过程当中,能够发现,去中心化即不是一个起点,也不是一个终极状态,而只是一条路径;这条路径须要务实和灵活,并与现实世界的法律、规则体系相结合。将来,相信去中心化的区块链系统与中心化互联网系统必定是能够相得益彰的,区块链系统可使中心化系统下的部分业务更加公开、透明;中心化机构也能够做为参与方接入到区块链系统中,为区块链网络上的其余参与者提供更加专业化的服务。
最后,去中心化不是目的,而是人们在特定场景下,实现目标的一种选择。
来~插播一条小广告
关于BDS
京东智联云区块链数据服务【BDS】:京东智联云将区块链的链式、非结构化数据经过技术手段进行结构化存储,实时同步到高性能数据库中,并据此推出了一款可视化的区块链数据查询服务(BDS),帮助用户完成简单的条件查询和复杂的SQL原生查询。
产品特色:
产品示例:
点击【阅读】,便可获取区块链主流公链最新数据