区块链研习社

去中心化的思考

2017-12-12  本文已影响0人  AirSwing

去中心化这个概念在区块链构架中起这绝对重要的作用,而正是由于类似比特币这样的电子货币的流行,去中心化这个词被大家所接受。他很好理解,但是很难定义。很多团队、企业花大价钱来改造自身系统去适应去中心化构架,带来的确实事半功倍的效果。那么,去中心化到底能带来什么?笔者认为,去中心化并不是一个构架或者技术上的概念。其实,他更体现在组织结构、社会层面的内容上。本文就为你揭开去中心化的面纱。

去中心是分布式吗

去中心化和分布式是很容易混淆的概念。分布式指的是所有交易并不是在一台中心服务器上完成的,但这并不是说这些服务器不是在一个控制中心下工作的。一加油站为例,在高速公路旁可以看到很多个中石化加油站,他们是分布式分布在各个不同的地点,但是他们都由一个总公司控制。而去中心化指的是,在分布式的节点中,没有一个中心控制节点。

中心化的类型

当我们谈起中心化的时候,通常值的是下面三种类型,他们之间可以交互也可以独立存在。

如何理解上面的三种中心化类型呢,当然上面提到的中心化类型对应了三种去中心化类型,只是一个反义词的概念,下面我给出几个实例为大家分析一下他们的区别:

为什么要去中心化

下面的问题就是为什么我们要进行去中心化,一下列出的几点给出了去中心化的原因。

上面的三个因素是去中心化里很重要的三个要点,他们各自又有自身的缺陷,接下来我们逐一的分析他们的特点。

容错性

容错性的概念是显而易见的,他已经被应用在很多的场景中。一台或者多台服务器宕机,容错性可以保证在这样的环境下系统仍然可以正常工作。在现实生活中也充斥了这样的例子,比如飞机一般都配有两个以上的发动机,当一个出现故障另一个可以承担整个机身引擎的作用;医院中的急救室的电源;银行等金融机构的账本存储等等都囊括了容错性的构架设计。但是在这样的去中心化的实现中,我们真的可以保证容错性吗?如果一架飞机配备了四台引擎,但是这四台引擎都是来自一家厂商,如果这家厂商的引擎都具有某种缺陷从而导致引擎失效,那么飞机的容错性只能是纸上谈兵。
回到区块链中,区块的构架也能保证系统容错性吗?并不见得,看下面的几个场景:

在设计一个去中心环境的系统构架时,这些因素都是应当考虑进去的,针对上面的问题笔者给出了下面一些设计上的思考:

经过上面的思考,我认为容错性虽然是一种通过技术解决问题的方法,但是在去中心化的构架中我们仍要考虑政治上的去中心化。

免疫攻击

在一些简单的金融模型中,去中心化可能不是那么的重要。例如,你创建了一个协议,其他交易都在这个协议下操作,如果你确定当有超过51%的网络节点受到攻击则用户交易将失效,那么用户并不关心在这个网络协议是中心化的还是去中心化的,因为他们终将损失交易所得。然而,在一个更为复杂的经济模型中,特别是网络攻击不可避免的情况下,去中心化就显得特别重要了。如果你以性命威胁受害人交出一百万,那么一百万对他来说显得微不足道。但是,如果这一百万分布在十个人手中,那你要威胁十个人才能拿到这一百万。我们的世界其实充满了各种不均衡,有一种不平衡体现在攻击和防御的博弈中,例如,一个造价一百万的房子可能要花掉一万元来摧毁它,有趣的是建造和防御并不成线性关系,同样一个造价十万元的房子,可能要花掉三千元来毁掉它,一百万对一万和十万对三千这两种非线性关系造就了去中心化在免疫攻击中的优势。

抵御合谋

最后我们看看抵御合谋。合谋这个词通常指的是贬义的意思。简单来说,合谋就是我们不愿意看到的合作方式。在一个团队里大家都在一起工作,一起开会,一起协商,但是不论多大或者多小的机构都会出现小的团体,小团体的出现必然会产生不一样的想法和有奇异的观点。当这个小团体的声音逐渐强大,大到一定规模,例如51%,的时候,他的影响必然会左右整个团体最终的利益。在区块链构架中,比特币一直强调他可以安全的保护用户交易不受干扰,防止重复交易的产生,但是不可避免的,当超过三分之一的挖掘机节点达成一致时,他们就可以左右比特币的交易。如果我们要消除这种不合适的“合谋”,是不是说要取消所有节点之间的合作,或者说加大节点之间交流的力度呢?我觉得有三个方法可以降低这种“合谋”的可能性。

小结

在去中心化的道路上也许会走很多弯路,在没有弄清楚其真正含义的情况下不建议大家轻易尝试其构架方案。大家常犯的错误是去中心化的概念不仅仅局限于技术层面,对于政治、企业组织结构同样适用,一个去中心化的企业结构应该是一种分散形式存在的实体,这对于企业转型来说无疑创造了很大的麻烦。
从技术上说,在传统中心化、单体构架中,所消耗的开发成本较低,要求开发人员掌握的知识与去中心化相比好小很多。对于初创型公司或者技术实例不强的开发团队来说,个人不建议做这样的尝试。区域块无疑是一个炙手可热的技术构架,很多痴迷技术的开发者往往希望尝试新鲜的技术方案,但前提一定要先了解其负面影响,以及应用场景,切记不要为了区域块而区域块。只有有了相应的业务支撑的情况下,再去实践对于研发成本来说是一个比较合理的分配方式。

作者简介

赵翼,毕业于北京理工大学,目前就职于SouthbankSoftware,从事大数据,Blockchain方面的开发工作。曾在GE,ThoughtWorks,Jump!,TheBigCrunch,元气兔担任项目开发,技术总监等职位,接触过的项目种类繁多,有Web,Mobile,医疗器械,社交网络,大数据存储等。

上一篇 下一篇

猜你喜欢

热点阅读