码迷,mamicode.com
首页 > 其他好文 > 详细

区块链公链“三元悖论”专题系列之去中心化(Decentralization)

时间:2020-05-24 00:49:48      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:拖拽   快速   互联网应用   term   行业   委托   证明   scene   聊天   

技术图片

区块链作为系统去中心化的一种工具,所追求的并不一定是系统的“绝对”去中心化,而是相对于中心化来说,去中心化的程度。

在上一期的内容中,我们提到了区块链公链“三元悖论”专题之可扩展性(Scalability)。本期我们将会接着讨论一下区块链系统中“最核心”的_去中心化(Decentrailzation)特性_。

在开始前,我们先把这个话题分为以下四个方面:

一、什么是“去中心化”

二、为什么说“去中心化”是区块链系统最核心的特性

三、我们在什么情况下需要“去中心化”

四、区块链系统“去中心化”技术的发展路径。

什么是去中心化(Decentrailzation)

在一个区块链系统中,“去中心化”可以简单定义为:通过共识机制的形式,实现系统中所有节点各为中心,在不受任何组织制约的情况下,能够对相连接的其它节点产生影响的一种状态。

所以,在一个完全去中心化的区块链系统中,节点间可以自由连接,形成新的连接单元。任何节点都可成为阶段性的中心,但不具备强制性的控制功能。节点之间的影响,会通过网络形成非线性因果的关系。

因此,使系统形成扁平化、开放化、平等化的形态,以达到各节点在系统中可以平等且自由交换数据的目的,就是“去中心化”赋予区块链系统的最大优势。

技术图片

去中心化与分布式架构的区别

这里要特别强调一下去中心化与分布式架构的区别:分布式架构是一种保证系统中各节点之间互联互通的架构,其主要特点是,当任何一个节点出现故障时其它节点仍然能够继续工作,核心目的是提升系统的容错性;分布式架构重点在于任务分配和结果的汇总,强调的更多是系统中各节点的布局,而去中心化更多强调的是一种状态。

在大部分情况下,去中心化是分布式架构的子集;所以,如果我们说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原生查询。

产品特点:

  • 涵盖了 BTC、ETH、EOS、LTC、XRP、BCH 等几十个知名区块链项目,自定义了涉及用户、交易、区块等 100+ 独家数据指标,联网即可查询链上实时数据,即开即用,方便快捷。
  • 支持标准SQL查询语句,可轻松实现复杂的查询逻辑;依托京东智联云的软硬件及架构支持,同时具备查询速度快、查询效率高的特点。
  • 支持图形化、可视化界面,通过点击和拖拽的交互方式进行数据查询,可实时生成各类BI图表,定制专属与您的区块链数据仪表盘。

产品示例:

技术图片

技术图片


点击【阅读】,即可获取区块链主流公链最新数据

技术图片

技术图片

区块链公链“三元悖论”专题系列之去中心化(Decentralization)

标签:拖拽   快速   互联网应用   term   行业   委托   证明   scene   聊天   

原文地址:https://www.cnblogs.com/jdclouddeveloper/p/12945213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!