一个说明:本文是一篇严肃的冗长的论文,文章表达的主要意思是:一个系统是否“去中心化”需要从架构层,政治/决策层,及逻辑层进行分析,“去中心化”的主要目标是容错,抗攻击,抗作弊。前两个偏技术,后一个偏人的行为,更难设计对策。区块链本身并不是一味的去中心化,其逻辑层是中心化的。区块链提供了建设更强大的协同网络的技术基础。协同网络只是手段,高效合作才是目的,整个网络最终产生的价值才是关键。(去)中心化的程度和机制是网络的结构特征,决定了协同网络将如何运行和演化,不同的决定带来不用的价值,并无标准答案。如果想详细了解,请移步下方。
———————————————————————————————————————–
“去中心化”是密码经济学领域使用最频繁的词语之一,甚至常常被视为区块链的全部 存在理由,而且和区块链技术一起成为了这段时间的大热之词,然而”去中心化“的意义是什么?估计大家还处于懵逼状态。最近拜读了V神的文章,我觉得应该就这个问题进行一次科普和总结,让大家对“去中心化”有更清晰的认识。下文内容主要来自于V神的讨论,文章会围绕“去中心化”的定义和形式,“去中心化”的理由及如何“去中心化”进行讨论。
一说起“去中心化”,很多人会抛出下面这张完全”无用”的图:

各大知识平台都对“去中心化”有所争论,Quora上的最佳回答是:“分布式指的是:不是交易的所有流程在同一个地方发生 (distributed means not all the processing of the transactions is done in the same place)”, 而 “去中心化指的是:没有一个个体控制所有流程(decentralized means that not one single entity has control over all the processing)”,这个论述就与上图不一致。 而第二佳的答案与上图一致。其他知识平台更是争议不断,因此亟需对“去中心化”进行一个整理和论述。
三种形式的“去中心化”
“去中心化”应该分为三个层面进行考虑,这三个层面既独立又关联。
1 架构层“(去)中心化” – 一个系统由多少台电脑组成?在任意时间这些电脑有多少台能够容错?
2 政治/决策层“(去)中心化” – 有多少个人或者组织控制组成该系统的电脑?
3 逻辑层“(去)中心化” – 系统的界面和数据结构更像一个单体还是非结构化群体?一个简单的类比是:系统分隔后的两个部分是否能继续作为独立单元完全运行?
如果用表格表示上三个维度,可得:

虽然可以说上图中放的代表案例有很多可争论的空间,但让我们先以这些例子更好的表述三个层面的“(去)中心化
”。
传统公司的架构层是中心化的(一个总部),其政治/决策层是中心化的(一个CEO),其逻辑层亦是中心化的(一个传统公司无法真正拆分)。大陆法系构建于一个中心化的立法机构,而普通法系则建立于很多个体法官的判例。大陆法系的法院也有较大的酌情判决权,因此也一定程度上在架构层是去中心化的,当然普通法系在架构层是更加去中心化。但两者在逻辑层上都是中心化的(“法律就是法律”)语言在逻辑层是去中心化的,A与B之间的英语对话和C与D之间的英语对话并不需要一致。语言的出现也不需要建立在中心化的架构上,英语的语法并不是由一个中心化的机构创造和维护的,新加坡的英语与英国的英语并不相同。虽然世界语是Ludwig Zamenhof发明,但是实际上并没有一个中心化的的机构控制其演变。BitTorrent在逻辑层是去中心化的(与英语类似)。区块链在政治/决策层是去中心化的(没有一个个体控制链),在结构层也是去中心化的(并不会因某个中心节点宕机而坏掉)。但是其逻辑层是中心化的(逻辑层面的中心化,指的是global ledger, 也就是统一数据库,统一记账)。
一般说区块链的优点时,主要指的是“一个中心数据库”的优势。这里的中心化指的是逻辑层的中心化。逻辑层的中心化在很多情况下会带来好处(基于去中心化逻辑层的系统在网络连接较差的地区运行顺畅,并能更好在网络分化时继续运行,也正是这个原因让IPFS的JB尽可能地尝试推动逻辑层的去中心化)。
架构层的中心化一般导致政治层/决策层的中心化 。当然也有例外,比如在一个民主系统内,政客们在一个实体管理机构中会面并对决策进行投票,而实体管理机构维护人(如议会主席)并不拥有干涉决策的权力。而在电脑系统中,如果一个线上社群为了方便而使用一个中心化的论坛,但在论坛拥有者有恶意行为的情况下则社群解散并转向下一个中心化论坛,就能在架构层的去中心化的情况下实现政治/决策层的中心化。
逻辑层的中心化使得架构层的去中心化更加困难,当然并不是完全不可能,比如现在已经被证明是可行的去中心化的共识网络(虽然这比维护BitTorrent更难)。逻辑层的中心化也使得政治/决策层的去中心化更加困难,在逻辑层中心化的系统中,如果仅仅是“互不干扰”便很难解决争端。
“去中心化”的三个理由
下一个问题是为什么去中心化是有意义的?一般来讲有以下的理由:
1 容错性 – 由于去中心化系统有很多不太关联的同时失效的组建构成,去中心化的系统更难因意外挂掉;
2 抗攻击性
– 由于去中心化系统无可以低成本攻击的敏感的中心点,因此对去中心化系统的攻击或者控制成本更高;
3 抗作弊性 – 去中心化系统的参与者很难同流合污。
以上三个理由都很重要,但是当我们分别就三个理由进行思考就会得出有趣且不同的结论。
容错性
容错性的核心论点比较简单,基础的概率知识。但是一般来说容错性不是简单的数学概率问题,要考虑到实践中的特别情况:比如V神说的四个飞机引擎全是同一个不合格的工人组装这样极端的情况。
当前的区块链能防止常见的系统失败吗?不一定。考虑以下场景:
区块链中的所有节点都运行同一个客户端软件,而这个客户端软件有一个bug。区块链中的所有节点都运行同一个客户端软件,而这个软件的开发团队意图不正。 研究小组提出的协议升级是邪恶的。在基于PoW的区块链中, 70%的矿工来自同一个国家,而这个国家的政府由于安全原因决定关闭矿池。 挖矿的硬件来自于同一个公司,而这个公司在硬件里面加了后门,可以随时关闭这个硬件。 在基于PoS的区块链中, 70%的代币在同一个交易所。
从整体角度来看, 去中心化的容错将着眼于所有以上方面, 并将风险降到最低:
有多个相互不依赖的实现方式至关重要对协议升级背后的技术考虑的知识必须是民主化的,这样更多的人才能舒适的参与研究讨论,批评不好的协议的变化核心开发者及研究员应该来自多个公司或者组织(或者有些可以是志愿者)挖矿算法要最小化中心化的风险理想化角度我们应该使用PoS来完全避免硬件中心化风险(当然我们也应该谨慎PoS带来的新风险)
应该注意的是容错性的需求本来主要关注架构层去中心化,但当我们考虑控制协议持续开发的容错性,政治/决策层的去中心化也是一个重要的方面。
抗攻击性
在一些单一的经济模式中, 我们可以认为去中心化并不重要。如果您创建了一个协议 – 当51% 攻击发生时, 就会损失5000万美元。 那么, 这个程序是由一家公司或100家公司控制的就无关紧要了。 事实上,中心化甚至可能最大化单一经济体的经济安全存在深刻的博弈论原因(现有区块链的交易选择模型反映了这种洞察力,因为通过矿工/区块提议者将交易纳入区块实际上是一个非常快速旋转的独裁政权)。
然而, 一旦你采取了更丰富的经济模式, 特别是承认可能的胁迫 (或更温和的事情, 如针对节点的DoS攻击),去中心化变得更加重要。如果威胁到一个人的生命,5000万美元在面对死亡的时候价值变得不那么大。但是如果5000万美元被分配给十个人,那么你就必须同时威胁到十个人才能达到目标。总的来说,在许多情况下, 现代世界中攻击/防御的不对称性更有利于攻击者。一栋耗资1000万美元的建筑可能耗资不到10万美元就能摧毁。但攻击者的杠杆往往是亚线性的: 如果一栋1000万美元的大楼需要耗资10万美元来摧毁, 那么耗资100万美元建造的大楼可能实际需要花费3万美元来摧毁。规模越小,比率越高。
这能得出什么结论?首先, 它有力的说明了PoS比PoW更好,因为计算机硬件更容易被发现,监控或攻击, 而代币更容易隐藏 (当然PoS还有其他抗攻击的特性)。其次,说明一个广泛分布(包括地域分布)的开发团队有很多好处。第三, 这意味着在设计协议时, 需要考虑到经济模型和容错模型。
抗作弊性
最后, 让我们过一下三个论点中最复杂的抗作弊性。同流合污很难界定,也许一个唯一有效的方式是简单定义同流合污为 “参与人不爽的合作”。在现实生活中,即使每个人之间有完美的协调,其中一个小组能够组织协调, 而其他小组不能参与组织协调也是危险的。
一个简单的例子就是反垄断法 – 故意设置监管壁垒使得市场上的参与者更难勾结起来像垄断者一样进行商业活动, 并以牺牲其他人的利益为代价获得超额的利润。另外的例子是一些国际象棋锦标赛中的反作弊规则,防止两个玩家互相打很多比赛来提高得分。无论在哪个领域,你会发现防止共同作弊的机制无处不在。
在区块链协议方面, 共识的安全性背后的数学和经济原理依赖于非协作选择模型(uncoordiated choice model),即假设游戏参与者都是小参者并各自做出独立决策。如果任何一个参与者在PoW中获得超过1/3 的采矿权, 他们可以通过自私采矿(selfish minning)获得超额利润。当90% 的比特币网络的矿工协作的话,我们真的可以认为这还是基于非协作选择模型吗?
区块链的拥趸也认为由于参与者不能随意改变规则而使得区块链更安全,然而如果参与者都来自同一个机构,同一个家族或者在同一个会议室中工作呢? 总体而言,这些系统不应该像是自利的垄断机构那样行事。因此我们也可以认为,如果区块链不被协同控制,它们将更安全。
然而这产生了一个根本的悖论。许多社区包括以太坊经常被称赞具有强大的社区精神 – 能够在六天内迅速协调实施,发布和激活硬分叉来解决协议中的拒绝服务问题。但是我们如何能够促进和提升这种“好协作”,同时避免51%攻击这样的“坏协作”?
有三种方式:
构建能够抵抗“坏协作”的协议而不是费力去缓和这样的协作寻找或一个能让协议进化而不是引诱攻击的媒介区分“好协作”和“坏协作”,并设计一个机制使得“好协作”容易而“坏协作”困难。
第一种方式是Casper设计原理的一个重要组成部分,但它本身并不充分, 因为依靠经济性本身不能处理其他两类关于去中心化的担忧。
第二种方式是很难明确设计的,特别对于长期而言。当然也有意外发生:例如比特币的核心开发者通常说英语,但矿工一般会说中文,这是一个幸福的意外,因为语言和距离的缘故形成了一种 “两院制” 的模式,使得协作更加困难。额外的好处则是因为这两种人一般不会犯同样的错而降低了共模故障(common mode failure)的风险。
第三种方式的实现是一个社会挑战。解决方案包括:
用社交干预提高整个或者局部参与者对区块链社区的忠诚度,并阻止市场某一方的参与人直接形成一个牢不可破的协作团体;在同一语境下促进不同“市场方”之间的沟通,以减少验证者或开发者或矿工开始将自己视为需要协作的“阶级”并对其他阶级进行斗争以维护他们的共同利益;设计一个可以减少验证者/矿工参与一对一“特殊关系”,中心化的中继网络,或其他类似的超级协议机制的协议;明确规范协议应具备的基本属性,并对不应该做什么类型的事情,或者至少应该在非常极端的情况下才能做的事情进行明确。
第三种去中心化的理由 – 抗作弊性 – 是最难达到的,无法避免对利弊的权衡。也许最好的解决方案是 – 使协议用户群体真正去的中心化 。
所以朋友们,不要老是拿着去中心化唬人,这不是区块链的全部意义。