雷锋网AI金融评论:日前V神在科技博客Medium发表文章,解释了在区块链领域备受关注的去中心化问题。V神认为,去中心化目前的定义是非常模糊而失败的。雷锋网AI金融评论为您做如下编译:
“去中心化”是加密经济学领域使用最频繁的词语之一,甚至常常被视为区块链存在的全部理由,但它也是被定义的最差的词语之一。人们花费数千小时的研究和价值数十亿美元的哈希功率,只为一个目的:实现去中心化并保护和改进它。并且当争论趋于白热化之时,总有协议(或协议扩展)的某一方支持者声称,另一方的提案是“中心化”的,以此作为最终的击倒性论点。
关于“去中心化”这个词的实际意义,经常会有很多混淆。例如,下面这个图实际上毫无帮助,但不幸的是却常常被引用:
现在,我们可以参考一下果壳网上 “ 分布式和分散式之间有什么区别 ” 的问题的两个答案。第一个基本上复述了上面的图,而第二个则提出了完全不同的主张,即“分布的意思是,所有的交易处理不都在同一个地方完成”,而“分散则意味着没有一个单一的实体可以控制所有的交易”。同时,以太坊堆栈交换的最佳答案给出了一个非常相似的图表,但“分散式”和“分布式”的标注却交换了地方!显然,这方面的澄清迫在眉睫。
当人们谈论软件分散化时,实际上他们可能会谈论的是三种不同的中心化/去中心化。虽然在某些情况下你很难相信如果没有一个何以拥有另一个,但一般来说它们是完全独立的。分类如下:
结构(去)中心化 -一个系统是由多少个实体计算机组成的?它单次可以容忍多少台电脑同时发生故障?
政治(去)中心化 - 一个人或组织同时控制组成系统的多少台计算机?
逻辑(去)中心化 - 系统呈现和维持的接口和数据结构是否更像一个单一对象会还是一个非晶群?一个简单的启发式提问:如果将系统减半,包括提供者和用户,那么这两个部分是否会继续作为独立单元完全运行?
我们可以尝试将这三个维度放入一个图表中:
请注意,这个位置放置非常粗糙且有很大的争议。不过,让我们尝试逐个看看:
传统公司在政治上中心化(一位CEO),在架构上中心化(一个总部),逻辑上中心化(不能将他们分成两半);
民法依赖于一个中心化的立法机构,而普通法则是由许多单个法官制定的先例。民法仍然有一些结构去中心化,因为虽然许多法院都有很大的自由裁量权,但普通法有更多的权力。两者都是逻辑上中心化的(“法律就是法律”);
语言在逻辑上是去中心化的; 爱丽丝和鲍勃之间的英语口语以及查理和戴维之间口语完全不一样。没有一种语言存在所需的中心化基础设施,而且英语语法规则不是由任何一个人创建或控制的(而世界语最初是由路德维希·扎门霍夫发明的,尽管现在它的功能更像是一种活跃的语言,逐渐演变没有权限);
BitTorrent在逻辑上是分散的,类似于英语。内容传送网络也类似,但由一家公司控制;
区块链在政治上是分散的(没有人控制它们),架构上也是分散的(没有中心化的故障点基础设施),但是它们在逻辑上是中心的(有一个共同认可的状态,整个系统像一台计算机一般运行)。
很多时候,当人们谈论区块链的优点时,他们描述的是拥有“一个中央数据库”的便利优势; 中心化是逻辑上的中心化,而且这种中心化在很多情况下都是很好的(虽然IPFS的Juan Benet也会尽可能推动逻辑分散化,因为逻辑上分散的系统往往能在网络分区的情况下生存,能够在世界上连接性最差的地区良好的运行等等;另请参阅Scuttlebot的这篇文章,其中明确提倡逻辑去中心化)。
架构中心化通常会导致政治中心化,但是并不一定——因为即便是在正式的民主中,政治家也需要在一些实体管理机构内会晤并持有选票,但是这种机构的维护者并不会获得大规模的决策权力。在计算机系统里,如果一个网上社区为了方便而使用中心化论坛,也是基于广泛统一的社会契约之下,如果论坛所有者有恶意行为,那么论坛上的用户就会转移到其他论坛上。
逻辑上的中心化使得结构去中心化变得更加困难,但也并非不可能——参见去中心化共识网络的运行。但是相比于维护比特流,它的难度可能会更大一些。逻辑中心化使得政治去中心化变得更加困难——在逻辑中心化的系统中,想要仅仅通过“求同存异”来解决争端也更困难。
接下来的一个问题是,为什么去中心化这么重要?答案通常会提出以下几个观点:
容错——去中心化系统很少会因为某个局部故障而导致整个系统崩溃,因为它依赖于很多独立工作的、不相似的组件。
抵抗攻击——想要攻击或操纵去中心系统的成本更高,因为他们基本上没有敏感薄弱的“中心弱点”,而中心化系统的攻击成本则要低得多。
抵制合谋——去中心化系统的参与者们很难合谋勾结在一起,而对于传统企业和政府领导者而言,他们通常会为了自己的利益互相勾结,最终损害的是相对难以协调一致的公民、客户、员工和广大人民的利益。
上述这三点原因都是非常重要且有道理的,如果你用这三个观点来思考协议决定,你会发现,这三个论点会导致一些有趣但不同的结论。下面,就让我们逐一展开,仔细研究一下。
1、提升容错
首先是容错,核心问题其实很简单。你认为哪一种状况更容易发生:某一台计算机出现故障,还是十台计算机中的五台同时出现故障?这个问题的答案是毫无争议的的,而且在许多情况下其实也适用于现实生活,包括喷气发动机,备用发电机,特别是在医院、军事基础设施、金融投资组合多样化以及计算机网络等领域。
然而,虽然这种去中心化系统所具备的容错能力不仅有效而且非常重要,但在某些情况下,它还不如一个简单的数学模型有用。这里的问题在于一个所谓“共模故障”原理。相比于一个喷气发动机发生故障,四个喷气发动机同时发生故障确实概率较小,但问题是,如果这四台喷气发动机都由同一家制造厂生产,或者是由同一个不负责任的员工加工,那么结果又会怎么样呢?
今天的区块链是否能够设法防止共模故障出现呢?不一定。让我们考虑以下几种情况:
区块链中所有节点都运行相同的客户端软件,且该客户端软件已经被证明存在bug;
区块链中所有节点都运行相同的客户端软件,且这个客户端软件的开发团队互相勾结合谋;
提议升级协议的研发团队互相勾结合谋,出现腐败;
在一个工作量证明区块链中,70%的矿工都来自于同一个国家,而这个国家政府以维护国家安全为理由把所有矿场都接管了;
大多数采矿硬件设备都是由同一家公司,而这家公司收到贿赂,或者被强制部署了后门软件,会导致所有挖矿硬件设备可以被人为随意关闭;
在一个权益证明区块链中,70%的加密代币都是由同一个交易所持有。
如果从容错去中心化的整体观点来考量的话,会需要考虑所有这些方面,这些问题需要尽可能地被减到最小。很容易得出一些自然而然的结论:
拥有多种竞争是至关重要的;
协议升级背后的技术考量和认识必须要民主化,以便让更多人能够共同参与研究、讨论和批评一些有明显问题的协议变化;
核心开发人员和研究人员必须要来自多个不同公司或组织(或者,其中大多数都是志愿者);
挖矿算法必须要按照将中心化程度降到最低的思路去设计;
理想情况下,我们使用POS(股权证明)能完全摆脱硬件中心化风险(尽管我们也应该谨慎对待由于PoS而出现的新风险)。
值得注意的是,当我们处理初级阶段的容错要求时,往往会侧重于架构去中心化。不过,一旦你开始考虑更长远的系统升级和发展时的容错性,那么政治去中心化也是非常重要的。
2、阻止攻击
现在,让我们来看看去中心化阻止攻击的能力。在一些纯粹的经济模型之中,有时候你会发现去中心化其实并不那么重要。如果你创建了一个协议,这个协议中只要发生51%的攻击,验证者就肯定会损失5000万美元,那么这个验证者是被一家公司还是一百家公司控制,其实已经不那么重要了。此时,5000万美元其实就是确保这个协议安全稳定运行的边际成本。事实上,根据博弈论的观点,中心化系统甚至可以最大化这种安全边际成本的概念(现有区块链的交易选择模型其实也反映出了这一观点,因为矿工和区块提议者将交易打包到区块链中,实际上也算是一种非常快速运转的独裁)。
但是,一旦你采用了更丰富的经济模型,特别是如果这个经济模型里存在胁迫的可能(或者稍微温和一点的:比如针对节点的DoS攻击),去中心化就会变得更加重要。如果你用生命来威胁一个人,那么5000万美元其实根本无关紧要。但是如果把5000万美元分散到十个人中,坏人如果要威胁勒索的话,就需要勒索威胁十个人,并且还要同时完成勒索这项“工作”。一般来说,现代社会里有一个特点就是攻击防御的不对称性,在这方面攻击者通常更有优势。举个例子,一栋价值1000万美元的高层建筑,摧毁它的成本可能还不到10万美元。不过,这种防御攻击的杠杆常常是次线性的,也就是说,如果花费1000万美元的建筑能够用10万美元的成本被摧毁,而100万美元的建筑可能需要3万美元的成本被摧毁,最终,建筑成本更低的建筑可能需要更高的成本才能被摧毁。
这个推理能推出什么结论?首先,它强烈支持了权益证明机制,因为计算机硬件容易被监测、调节和攻击,同时数字代币相比于硬件设备更容易隐藏;其次,开发区块链技术的团队分布在世界各地是有道理的,分布的范围越广就越有利,包括地理位置分布;第三,这也意味着在设计共识协议的时候,需要同时考虑经济模型和容错模型。
3、抵制合谋
最后,我们也许可以谈谈可能是三个原因中最复杂的一个:抵制合谋。合谋本身其实很难界定,或许唯一真正有效的是一个简单的解释:合谋就是我们不喜欢的那种“协作”。在现实生活中,很多时候尽管每个人之间的完美协调是理想的状况,但是当某一组人可以协调,而别的组的人无法协调时,就会造成危险。
一个简单的例子就是反托拉斯法——反垄断法的目的,就是要在市场运行中设置监管障碍。为了让市场某一方的参与者难以走到一起,并形成垄断者的形式,以损害市场另一方和整体社会福利的代价来获得超额利润。
另一个例子是反积极协调规定,主要用在美国总统候选人和超级政治行动委员会上,防止在总统候选的时候互相勾结合谋。但是这些规则在实践证明中其实是很难执行的。
还有一些更小的例子,就是在某些国际象棋比赛的时候,会有一个规则用来防止两名特定棋手和对方进行多次比赛来帮助其中一名棋手获得更多积分。
所以你会发现,无论从何种角度去看,已经有很多试图防止复杂系统内出现勾结合谋问题的尝试了。
在区块链协议的案例中,共识安全背后的数学和经济原理通常非常依赖于非协调选择模型,或者基于“游戏是由许多独立作出决策的小型参与者组成的”这种假设。如果任何一个“玩家”在PoW系统中获得超过三分之一的采矿权,他们就可以通过私自采矿获得巨大利润。然而,当90%的比特币网络的挖矿力量已经协调到能够坐在一起开会的地步,我们还能说这种不协调的选择模式有存在的必要吗?
区块链的倡议者还指出,区块链的结构更安全,因为它的规则不能因为某人一时兴起就被更改。但这其实很难说,如果软件和协议的开发者都服务于同一家公司、同属于同一个家族、都在同一个办公大楼上班的话。总而言之,这些制度不应该像自私自利的单一垄断者那样行事。因此,你可以得出这样一个结论:如果区块链整体的协调更少的话,它是更安全的。
但是,这其中还存在着一个根本性矛盾。很多社区(包括以太坊)之所以存在,是因为它们拥有一个强大的社区精神,在执行、发布和激活硬分叉上拥有快速协调的优势,基本上能在六天内快速协调实施、发布和激活硬分叉以修复协议中拒绝服务的问题。但是,我们需要思考的问题是,应该如何去培育和改善这种良好的协调关系,同时,又要防范那些糟糕的协调关系,防止它们不小心演变成“互相勾结合谋”,比如,当矿工们试图通过互相合谋,反复进行51%的攻击,这时候该怎么办?
有三种方法回答上面这个问题:
不要尝试去减少勾结合谋,而是要去构建一个能够抵抗它的协议;
尝试找到一个令人满意的媒介,使协议有足够的协调关系,可以得到更好地发展前景,同时不会被轻易攻击;
尝试区分有益的协调和有害的协调,让前者更容易执行,让后者更难执行。
第一种方法是以太坊Casper设计理念的核心构成部分,仅它本身在很多方面是不够的,因为仅仅依靠经济学的方式是不能解决其他两种类型的去中心化问题的;
第二种方法难以明确设计,特别是从长远来看,确实也会经常发生意外。比如,比特币的核心开发人员一般说英语,而矿工一般说中文,这样导致在无意中创造出了一种类似“两院制”的治理机制,一方面它让彼此之间的勾结变得很困难,另一方面则减少了共模故障的风险因为英语和华人社区由于距离和交流困难而至少会有所分开,因此不太可能犯同样的错误。
第三种方法是一个社会挑战,这方面的解决方案可能包括:
社会干预措施,提升参与者对整个区块链社区的忠诚度,以取代或遏制市场某一方的参与者直接忠诚于彼此的可能性;
在同一背景下,促进不同市场参与者进行沟通,以减少验证者、开发人员或矿工自认为属于某一“阶层”,并为了保护自己 “阶层”的利益,而对抗其他“阶层”;
在设计协议的时候,可以减少验证者和矿工形成“一对一特殊关系”的动机,同样也要避免出现中心化中继网络和其他类似的超级协议机制;
明确规范协议应具备的基本属性,以及不应该做什么类型的事情,或者,哪些事情只有应该在非常极端的情况下才能做。
这第三种去中心化,也就是避免不受欢迎的协作的去中心化,可能是最难实现的,因此一些权衡也是不可避免的。也许最好的解决方案是依赖于去中心化程度最高的一个群体:协议用户。
雷锋网AI金融评论