区块链特性之一就是去中心化,那么什么是去中心化呢?百科对去中心化下的定义如下:
去中心化是一种现象或结构,必须在拥有众多节点的系统中或在拥有众多个体的群中才能出现或存在。节点与节点之间的影响,会通过网络而形成非线性因果关系。这种开放式、扁平化、平等性的系统现象或结构,我们称之为去中心化
简单来讲一个系统中的任意结点不线性因果的影响系统或者其它结点就算去中心化的。
但是去中心化也是相对的,作为一名程序员天生是讨厌中心化的,所以在设计开发部署过程中会有相当多去中心化的尝试,分库分表、多线程、F5、Nginx 集群以及 keepalived 双机热备都算是这个方向上的努力,尽量做到全系统不依赖唯一结点。
目标就是任意结点的剔除不会对其它结点或者整个系统造成任意影响。
例如假设有一个商城,鞋子老张、袜子老王入驻系统了,他们在这卖了东西成了单挣了钱,后台里有了订单列表也有了账户余额。
作为开发为了系统稳定为了安全,这些数据肯定已经做好了容灾、备份,做好了集群,但是他们还是不信任,为什么?因为做的再多也只是商城一家做的,终究还是一言堂,他们为了放心肯定还在自己的账本上记了哪天哪天发了啥快递,成了啥订单,月底结算的时候进行核对。
所以这就能看出来,对于商城来讲,这个系统是去中心化的了,任何结点都有备份,前端、服务、数据库哪个结点挂一部分实例都不影响系统运行,都不影响数据安全。但这些去中心化还是局限在了商城内部,对外部公司来讲还是中心化的。
如果按区块链的解决方案,这种时候就是一个联盟链,商城作为一个结点,卖鞋的、卖袜子的、卖裤子的等等商家也都各作为一个结点,每个结点记录了所有交易,不能伪造不能篡改,两方出现纠纷的时候任意其它方都可以作为证人,安全可靠。
在这种情况下的去中心化明显更宏观了,不仅某台机器剔除不影响系统了,极端来讲就算商城整个剔除也不影响系统了,所有的订单、余额等数据在其它商家的结点中仍然存在。
所以中心化这个概念是相对的,即使在上面的情景中,最后的去中心化仍然还是局限在加入联盟链的几方中,对链外的个体来讲仍然是中心化的。