权力下放。我想相信
Adam Ierymenko] | 2014年8月1日 英文原文
我目前的项目是一个名为ZeroTier One的网络虚拟化引擎。它有一个新的网络协议,是我从头开始设计的,在这个过程中,我花了很多心思,研究了我能让它变得多么分散的问题。
我关心的原因有两个。一个是技术政治的原因:我想帮助钟摆回到 “个人 “计算的方向。事实上,我最早展示ZeroTier并得到反馈的社区之一,叫做redecentralize.org。第二个原因是更实际的:我可以使基本协议越是点对点,越是不集中,它的运行成本就越低。
我所确定的设计最终是相当无聊的。我建立了一个点对点的协议,其中央枢纽结构由位于全球互联网上不同地理位置的多个冗余的无共享锚节点组成。
我设计的协议能够在未来向更分散的设计发展,而不影响现有的用户,但这就是它今天的状况。
为什么我没有走得更远?为什么我不去做一些更性感、更激进的事情,就像MaidSafe和TeleHash以及其他公司正在努力实现的那样?这当然会让我获得更多的关注。就目前的情况来看,有一批用户在得知ZeroTier有中心点时,就把它否定了。
我停下来是因为我感到灰心。我不相信这是有可能的,至少在没有牺牲的情况下,这对大多数用户来说是不可接受的。
界定问题
我在开始ZeroTier的技术设计时,对承载以太网虚拟化层的底层对等网络提出了一系列的限制和目标。它们过去和现在都在我的脑子里,所以现在让我试着把它们表达出来。这些是按重要性排序的,从最多到最少。
-
任何设备都必须能够通过一个持久的地址,在任何时候与世界上任何其他连接的设备联系。连接的初始化应该平均不超过一秒钟,最好是尽可能地接近基础网络延迟。(最开始IP层就是这么工作的,可惜移动数据网络破坏了 “静态 “部分以及NAT和其他种类的拙劣构思搞砸了)
-
它必须开箱可用。它必须是 “零配置”。底层设计必须使用户体验不至于让史蒂夫-乔布斯的鬼魂出现在我的梦中并责骂我。
-
如果一个对等体的基础网络位置发生变化,例如离开酒店WiFi并加入4G接入点,世界上任何任意设备所看到的连接性和可及性都不应该超过10秒的时间。这只是目标二的一个方面,但值得单独说明,因为它将在后面的讨论中产生影响)。
-
它必须适用于通过各种现实世界的网络获得互联网服务的用户,包括配置错误的网络、双重NAT和其他恐怖的网络、防火墙(其无知的管理员认为除了http和https之外,阻断一切都会给他们的用户带来不便,而不是攻击者)等等。
-
通信应该是私密的、加密的、经过认证的,并且普遍是安全的。安全应该是端到端的,秘密密钥不需要中央代管。网络必须是强大的,以防止 “分裂的大脑 “和其他地址空间的分裂(无论是否有意引起)和Sybil攻击。
-
整个网络应该是尽可能的分散化。点对点的连接应该始终是首选,集中的控制点应该被最小化或消除。
还有其他技术限制,但它们与本讨论无关。
重要的是排序。去中心化排在最后。甚至安全也排在倒数第二位。
为什么?
因为如果前两项不能实现,就没有人会使用这个东西,我开发它就是在浪费我的时间。
经过大量的阅读以及对我自己的代码和其他人的工作进行一些实验,我得出结论,前五项几乎完全可以在牺牲分散性的情况下实现。
我想出了一个三角关系:效率、安全、分权,选两个。
安全性与可靠性是等同的,因为可靠性只是安全与不源于人类机构的 “攻击 “的对比。
为什么?
这不是政府的阴谋,也不是市场力量……至少不是直接的。这绝对是一个技术问题。如果它看起来像其他两个中的任何一个,那是技术困难的副作用。
人们希望去中心化。任何时候,只要有人认真尝试,它就会在Reddit和Hacker News等网站上被推到最顶端。甚至顶级风险投资家也在谈论它,并在该领域的可投资机会出现时投资于去中心化系统。政府甚至想要它,至少是在某些领域。多年来,军事研发实验室一直试图建立高度稳健的去中心化网状网络。他们想要它们的原因与黑客活动家和网络自由主义者一样:抵制审查制度。在他们的案例中,他们想要避免的审查制度是对战场通信网络的对抗性干扰。
从市场的角度来看,去中心化替代品的匮乏是一个供应问题,而不是一个需求问题。人们想要的是速度、安全和整体积极的用户体验。大多数人根本不关心这些东西是如何实现的,但有足够多的高影响力的用户偏向于去中心化,在一场平等的竞争中,他们的影响力可能会引导整个市场向这个方向发展。目前还没有任何替代Facebook、Google或Twitter的去中心化产品,因为没有人能够推出这样的产品。
这篇论文是我在深入研究分布式系统时发现的,它或多或少地得出了与我在第一节所做的相同的结论,并以数学的方式进行了阐述。它从排队和相变的角度谈起,但不难从这一点跃升到更具体的因素,如速度、稳定性和可扩展性。
我认为主要的罪魁祸首可能是CAP定理。一个分布式数据库不能同时提供一致性、可用性和分区容忍度。你必须选择两个,这听起来很熟悉。我还没有尝试过严格地做到这一点,但我的直觉是,我对分布式网络的三分法可能是CAP的一个特定领域的重述。
我们可能想要建立的每个主要的去中心化系统都涉及到某种分布式数据库。
比方说,我们想让ZeroTier点对点网络完全去中心化,消除中心固定的锚节点。现在我们需要一个快速、轻量级的分布式数据库,网络拓扑结构的变化可以快速更新并同时提供给每个人。我们还需要一种方法,让对等体在需要做诸如穿越NAT或中继的事情时,能够可靠地找到并宣传帮助。
如果我们选择一致性和可用性,网络就不能容忍互联网天气或边缘节点的突然出现和关闭。这对于一个由不可靠的消费者设备和云服务器构建的分散系统来说是不可能的,这些设备和服务器的创建和销毁都是随心所欲的。如果我们选择可用性和分区容忍度,我们的系统很容易受到Sybil攻击,更不用说不能实现第2和第3个目标了。如果我们选择一致性和分区容忍度,那么网络就会一直瘫痪,而且慢得可怕。
但是比特币呢
不是的。
比特币在 “效率、安全、去中心化,选两个 “的限制下运作。比特币以牺牲效率为代价选择了安全和去中心化。
比特币的集中式替代方案是一个简单的SQL数据库,其模式代表标准的复式记账法和一些元数据域。比特币网络的整个交易量可以由鞋盒里的树莓派处理。
相反,我们有一个每天几十万个数据库条目的交易量,由一个计算集群处理,这个集群可以用来用物理上真实的体素模型模拟原子弹爆炸,或者用概率描述人类蛋白质组的完整关系图。
比特币通过利用投机的狂热,以及通过挖矿来补偿人们的计算能力来摆脱这种情况。如果每笔比特币交易都包括一笔费用,相当于完成、验证和记录交易所需的能源和摊销的硬件成本,我不相信比特币会比传统银行业务及其所有的政治、监管和人事开销更便宜。
我不是在抨击比特币。它可以说是密码学和分布式系统历史上最令人印象深刻和最具创造性的黑客之一。这是一个真正的创新。它很有用,但它不是圣杯。
我对比特币的更多想法可以在这里找到。结论: 我也认为比特币,如果作为一个有多个社会、经济和技术组件的系统来考虑,有许多隐藏的非正式的中央协调和控制点。它不是真正的 “无头”。)
圣杯将是一个至少足够轻巧(在带宽和CPU方面)的移动电话,加密安全,与基础网络一样可靠,并且完全没有中心的东西。
我想相信,但我已经成为一个怀疑论者。世界上的黑客们:请证明我错了。
盲目的白痴神
也许我们应该停止让完美成为美好的敌人。
脸书、推特、谷歌、移动生态系统的封建 “应用商店 “模式,以及无数其他封闭的筒仓,显然比我们许多人想要的更加集中化。所有这些集中化都是有代价的:垄断租金、大规模监控、功能把关、我们内容的无偿货币化,以及新创业和创新机会的减少。
我上面链接的Tsitsiklis/Xu的论文的标题是 “论分布式处理中(甚至一点)集中化的力量”。
我们应该问的问题是:我们可以摆脱多小的集中化?我们是否必须把所有的东西都扔到 “云 “的大嘴里,以实现安全、速度和良好的用户体验,或者我们可以把网络中的大部分智能转移到边缘?
这就是指导ZeroTier网络设计的推理过程。在得出完全的去中心化不可能在不牺牲用户关心的其他东西的情况下实现的结论后,我问自己如何能将中心化降到最低。我想出的设计将中心的 “超级节点 “的任务降到了简单的对等位置查询和哑巴数据包中继。我还能够构建协议,因此没有太多的设计不对称性,允许超级节点运行与普通对等体完全相同的软件。我想出了一个点对点(超级)点对点的设计,而不是客户端服务器。
我们可以更进一步吗?如果我们从客户-服务器筒仓开始,去中心化,直到伤害,还能剩下什么?
除非我错过了,否则我不认为Tsitsiklis/Xu的论文为究竟需要什么样的中心化建立了一个精确的定义。它确实提供了一个数学模型,可以告诉我们一些阈值,但我没有看到责任和特性的精确划分。
一旦我们知道这一点,也许我们可以为互联网创造一个盲目的白痴上帝。
我借用了H.P.洛夫克拉夫特的说法,他写了一个 “宇宙中心的瞎子上帝”,他的 “管道 “决定了所有人的运动。我想象中的东西是一个中央数据库,它利用密码学来实现零知识集中,足以让最大限度的去中心化系统实现Tsitsiklis/Xu论文中描述的阶段性转变。围绕这个系统可以建立各种东西。它可以协调,但它没有洞察力。它将是盲目的。
能否建立这样一个可证明的最小枢纽?它能像维基百科那样,通过捐赠来支持,价格足够便宜吗?它的规模是否足以让我们建立去中心化的替代方案来取代整个封闭的筒仓生态系统?
这是我想在未来花点时间的事情之一。目前,我正集中精力改进ZeroTier,并在其下获得一些类似 “真正的业务”。也许那时我可以在这个领域进行研发,并为此获得报酬。毕竟,这些问题中的一些是 “我怎样才能将ZeroTier扩展到>100,000,000个用户,而不在带宽成本和性能下降上吃亏 “的同义词。
同时,请做你自己的黑客工作,提出你自己的问题。如果你想出了不同的答案,请告诉我。封建模式正在逼近。我们需要替代方案。