建立共识网络抵御攻击减少合谋,V神的“去中心化”结构、政治与
原标题:建立共识网络抵御攻击减少合谋,V神的“去中心化”结构、政治与逻辑三重含义解析
雷锋网AI金融评论:日前V神在科技博客Medium发表文章,解释了在区块链领域备受关注的去中心化问题。V神认为,去中心化目前的定义是非常模糊而失败的。雷锋网AI金融评论为您做如下编译:
“去中心化”是加密经济学领域使用最频繁的词语之一,甚至常常被视为区块链存在的全部理由,但它也是被定义的最差的词语之一。人们花费数千小时的研究和价值数十亿美元的哈希功率,只为一个目的:实现去中心化并保护和改进它。并且当争论趋于白热化之时,总有协议(或协议扩展)的某一方支持者声称,另一方的提案是“中心化”的,以此作为最终的击倒性论点。
关于“去中心化”这个词的实际意义,经常会有很多混淆。例如,下面这个图实际上毫无帮助,但不幸的是却常常被引用:
现在,我们可以参考一下果壳网上 “ 分布式和分散式之间有什么区别 ” 的问题的两个答案。第一个基本上复述了上面的图,而第二个则提出了完全不同的主张,即“分布的意思是,所有的交易处理不都在同一个地方完成”,而“分散则意味着没有一个单一的实体可以控制所有的交易”。同时,以太坊堆栈交换的最佳答案给出了一个非常相似的图表,但“分散式”和“分布式”的标注却交换了地方!显然,这方面的澄清迫在眉睫。
当人们谈论软件分散化时,实际上他们可能会谈论的是三种不同的中心化/去中心化。虽然在某些情况下你很难相信如果没有一个何以拥有另一个,但一般来说它们是完全独立的。分类如下:
结构(去)中心化 -一个系统是由多少个实体计算机组成的?它单次可以容忍多少台电脑同时发生故障?
政治(去)中心化 - 一个人或组织同时控制组成系统的多少台计算机?
逻辑(去)中心化 - 系统呈现和维持的接口和数据结构是否更像一个单一对象会还是一个非晶群?一个简单的启发式提问:如果将系统减半,包括提供者和用户,那么这两个部分是否会继续作为独立单元完全运行?
我们可以尝试将这三个维度放入一个图表中:
请注意,这个位置放置非常粗糙且有很大的争议。不过,让我们尝试逐个看看:
传统公司在政治上中心化(一位CEO),在架构上中心化(一个总部),逻辑上中心化(不能将他们分成两半);
民法依赖于一个中心化的立法机构,而普通法则是由许多单个法官制定的先例。民法仍然有一些结构去中心化,因为虽然许多法院都有很大的自由裁量权,但普通法有更多的权力。两者都是逻辑上中心化的(“法律就是法律”);
语言在逻辑上是去中心化的; 爱丽丝和鲍勃之间的英语口语以及查理和戴维之间口语完全不一样。没有一种语言存在所需的中心化基础设施,而且英语语法规则不是由任何一个人创建或控制的(而世界语最初是由路德维希·扎门霍夫发明的,尽管现在它的功能更像是一种活跃的语言,逐渐演变没有权限);
BitTorrent在逻辑上是分散的,类似于英语。内容传送网络也类似,但由一家公司控制;
区块链在政治上是分散的(没有人控制它们),架构上也是分散的(没有中心化的故障点基础设施),但是它们在逻辑上是中心的(有一个共同认可的状态,整个系统像一台计算机一般运行)。
很多时候,当人们谈论区块链的优点时,他们描述的是拥有“一个中央数据库”的便利优势; 中心化是逻辑上的中心化,而且这种中心化在很多情况下都是很好的(虽然IPFS的Juan Benet也会尽可能推动逻辑分散化,因为逻辑上分散的系统往往能在网络分区的情况下生存,能够在世界上连接性最差的地区良好的运行等等;另请参阅Scuttlebot的这篇文章,其中明确提倡逻辑去中心化)。
架构中心化通常会导致政治中心化,但是并不一定——因为即便是在正式的民主中,政治家也需要在一些实体管理机构内会晤并持有选票,但是这种机构的维护者并不会获得大规模的决策权力。在计算机系统里,如果一个网上社区为了方便而使用中心化论坛,也是基于广泛统一的社会契约之下,如果论坛所有者有恶意行为,那么论坛上的用户就会转移到其他论坛上。
逻辑上的中心化使得结构去中心化变得更加困难,但也并非不可能——参见去中心化共识网络的运行。但是相比于维护比特流,它的难度可能会更大一些。逻辑中心化使得政治去中心化变得更加困难——在逻辑中心化的系统中,想要仅仅通过“求同存异”来解决争端也更困难。
去中心化的三个理由:接下来的一个问题是,为什么去中心化这么重要?答案通常会提出以下几个观点:
容错——去中心化系统很少会因为某个局部故障而导致整个系统崩溃,因为它依赖于很多独立工作的、不相似的组件。
抵抗攻击——想要攻击或操纵去中心系统的成本更高,因为他们基本上没有敏感薄弱的“中心弱点”,而中心化系统的攻击成本则要低得多。
抵制合谋——去中心化系统的参与者们很难合谋勾结在一起,而对于传统企业和政府领导者而言,他们通常会为了自己的利益互相勾结,最终损害的是相对难以协调一致的公民、客户、员工和广大人民的利益。
上述这三点原因都是非常重要且有道理的,如果你用这三个观点来思考协议决定,你会发现,这三个论点会导致一些有趣但不同的结论。下面,就让我们逐一展开,仔细研究一下。
1、提升容错
首先是容错,核心问题其实很简单。你认为哪一种状况更容易发生:某一台计算机出现故障,还是十台计算机中的五台同时出现故障?这个问题的答案是毫无争议的的,而且在许多情况下其实也适用于现实生活,包括喷气发动机,备用发电机,特别是在医院、军事基础设施、金融投资组合多样化以及计算机网络等领域。
然而,虽然这种去中心化系统所具备的容错能力不仅有效而且非常重要,但在某些情况下,它还不如一个简单的数学模型有用。这里的问题在于一个所谓“共模故障”原理。相比于一个喷气发动机发生故障,四个喷气发动机同时发生故障确实概率较小,但问题是,如果这四台喷气发动机都由同一家制造厂生产,或者是由同一个不负责任的员工加工,那么结果又会怎么样呢?
今天的区块链是否能够设法防止共模故障出现呢?不一定。让我们考虑以下几种情况:
区块链中所有节点都运行相同的客户端软件,且该客户端软件已经被证明存在bug;
区块链中所有节点都运行相同的客户端软件,且这个客户端软件的开发团队互相勾结合谋;
提议升级协议的研发团队互相勾结合谋,出现腐败;
在一个工作量证明区块链中,70%的矿工都来自于同一个国家,而这个国家政府以维护国家安全为理由把所有矿场都接管了;
大多数采矿硬件设备都是由同一家公司,而这家公司收到贿赂,或者被强制部署了后门软件,会导致所有挖矿硬件设备可以被人为随意关闭;
在一个权益证明区块链中,70%的加密代币都是由同一个交易所持有。
如果从容错去中心化的整体观点来考量的话,会需要考虑所有这些方面,这些问题需要尽可能地被减到最小。很容易得出一些自然而然的结论:
拥有多种竞争是至关重要的;
协议升级背后的技术考量和认识必须要民主化,以便让更多人能够共同参与研究、讨论和批评一些有明显问题的协议变化;
核心开发人员和研究人员必须要来自多个不同公司或组织(或者,其中大多数都是志愿者);
挖矿算法必须要按照将中心化程度降到最低的思路去设计;
理想情况下,我们使用POS(股权证明)能完全摆脱硬件中心化风险(尽管我们也应该谨慎对待由于PoS而出现的新风险)。
值得注意的是,当我们处理初级阶段的容错要求时,往往会侧重于架构去中心化。不过,一旦你开始考虑更长远的系统升级和发展时的容错性,那么政治去中心化也是非常重要的。
2、阻止攻击