重新将网络去中心化:Ambients 协议

Haja Networks
14 min readSep 12, 2019

--

This post was originally published in English here.

目前的网络世界存在问题。大多数用户及其数据掌握在少数企业手中,而这些 企业所拥有的力量打破了市场均衡。他们将用户、数据和应用程序或服务捆绑 到一个单一的大平台上。这样做会在多方面造成严重且深远的影响,如:数据 锁定和数据泄露、无处不在的用户操纵和审查、企业入市门槛高及创新遭到扼 制。这种局面是不可持续的。

为了重新获得网络自由,重新发挥创新能力,我们需要重新实现网络去中心 化。 虽然过去几年里,已经建立了很多去中心化解决方案和网络(尤其是在加密货 币领域),但是,它们中的绝大部分仍在使用单一平台模型。我们还没有建立 允许应用程序和服务独立于底层网络并可跨网络运行的协议。这就意味着每个 应用程序和单一网络一起部署,如同一座座孤岛,让用户、数据、乃至开发人 员被囚其中。而且,许多网络使用“单一事实来源”数据库,这在逻辑上仍然是 中心化的,因此造成吞吐量瓶颈。我们缺少构建可扩展、去中心化应用程序、 数据库和服务的协议和工具。

这使得我们所有人都无法实现去中心化网络这一愿景。因此我们成立了 Haja Networks,致力于解决这个问题。

为了创建可改善现状的去中心化网络应用程序和系统,我们这个行业需要:

处理当前解决方案中逻辑层面的中心化问题

我们认为所有的这一切都是有可能实现的。

如今,为了实现去中心化网络这一愿景,我们提出了 Ambients 协议。

Ambients 是一种新型的分布式计算协议,允许开发人员构建去中心化应用程 序、数据库和服务,并在对等网络中运行。它将数据从底层平台和网路中分离 出来,并在不同网络和系统之间创建互操作性层。去中心化应用程序可以使用

从平台中分离数据和用户

在吞吐量和延迟方面解决可扩展性问题

创建中心化和去中心化网络间的互操作性

该协议,以组合性、可验证安全且可扩展的方式构建、部署、执行和共享程序 和数据。

我们将在这篇文章中详细讨论:当前网络所面临的问题、构建 Ambients 协议的 原因,并做出总结。我们将向您展示完整的 Ambients 协议白皮书,并邀请您加 入构建该协议的开源社区。

目前区块链网络存在问题

“我认为网络是一个开放平台,允许任何地方的任何人跨越地理和文化边界,共 享信息、获取机会并进行合作。” — — 伯纳斯-李(Tim Berners-Lee)

网络最初是各独立实体之间共享研究和交流的方式。但随着时间的推移,在创 造和解锁价值的同时,落实该网络为构建中心化提供方向,这样有利于提高效 率而非弹性,也有利于创造利润和市场控制,而非注重数字自由。“围墙花园” 已建立,大量用户被绑定其中;数字边界难以跨越;机会有限;“我们可以分享 什么信息以及我们最初如何得到的信息”受到一定的控制;网络上的某个个人很 容易被追踪。所以说,目前区块链网络是存在问题的。

“Catalini 和 Gans 认为“网络成本”是一个与 FANG 集团不断增强的市场力量有 关的问题。降低网络成本将使网络效益与市场力量的不利影响脱钩。” — — 《区 块链效应》,Catalini 和 Gans

网络上的市场力量集中在少数企业及其平台上,这是通过创建平台和数据护城 河实现的,用户及其数据汇总在一个单一且庞大的数据库中。用户和开发人员 只能通过专有应用程序 UI 访问这些数据。这些数据由平台所有,并由平台控 制。捕获个人用户、吸引用户进行交流,并限制外部竞争对手的开发人员访 问。通过这些方式,用户便无法在系统外进行交易,从而产生大量的网络效应 — — 这对于中心化来说,是强有力的动力。

市场力量集中导致了新型企业很难与现有平台竞争。这些新型企业无法访问主 要平台外的用户或数据,很少有企业能够与他们拥有的资源相抗衡。同时,新 型企业只能通过现有企业访问用户和数据,这进一步确立了平台所掌控的是: a)用户 b)哪些人可以访问这些用户 c)访问的规则是什么。

其实,这对创业型企业来说是个巨大的风险,因为规则可以随时改变。反过 来,这其实也减少了新进入者的数量、降低了创新成本、减少了竞争。大型平 台没有定价或服务质量方面的压力,因为低质量服务会收取更高价格。提交到 这些平台上的任何新型业务都可以在没有通知的情况下关闭。最终,对于终端 用户来说,选择很少,而且他们已被锁定。网络的中心化导致数据和市场垄 断,并给市场带来消极后果。

而且,大量数据对平台来说已经成为一种负担,因为数据频繁遭到窃取或损 害。监管机构对主要平台的需求正在增加,要求它们保护好用户的隐私。但 是,在其他时候,监管机构希望能够访问平台及用户数据。这使得中心化平台 成为进行大规模监视的有利环境,也成为审查的简单目标。

这种情况是不可持续的,最终会阻碍创新,并会限制网络的潜力。为了保护用 户,建立公平的市场,为了鼓励创新、刺激增长,需要从中心化模式转向去中 心化模式。

通过挑战权威来实现这种模式转变。

不是平台照看用户及其数据、用户和其他服务,而是用户自己拥有数据,并自 己掌控谁可以访问或哪个应用程序可以访问。虽然在目前的模式中,数据是集 中在平台上的;但,在去中心化模式中,这些数据是“集中”在用户手中的。

“在自治系统(AS)网络中,代理只关注其自身政策的主张;未经其同意,任 何外部代理都无法告诉它该做什么。这就是自治和中心化管理的主要区别。” Burgess

不是用户询问应用程序他们是否可以访问和使用数据,而是应用程序向用户请 求获得访问数据的许可。不是所有用户共同使用一个大型的数据库,而是有无 数个小型数据库,每个用户和应用程序都有很多数据库。不是一个单独的账号 拥有数千种服务,而是自我身份认证和用户配置文件适用于所有应用程序。博 客帖子、活动供稿、好友列表均归用户所有,用户自行决定使用哪些服务和用 户界面进行访问和操作。用户可允许多个应用程序同时使用他们的数据,在应 用程序和网络之间重复使用这些数据,进行数据互操作性。保持小型数据库的 本地副本,并进行本地操作,是非常有效的;而且用户可立即感受到。默认情 况下,应用程序在断开与服务器的连接后依然可正常运行。

企业不需要平台许可来访问用户,他们可以直接与用户沟通,请求访问用户数 据。他们也可以使用统一的通用语言谈谈其他服务,编写其他服务和数据创建 新服务,从而创造新的价值和商机。在此环境下,企业不需要构建和运营昂贵 的基础设施,高成本获得用户,也不需要构建平台和数据护城河,而是关注自 己的核心产品。

数据、用户和应用程序都是分离的,而且所有事情都是经过加密验证的,所以 开发人员可以快速无畏地构建和编写应用程序和服务,并在用户体验、算法、 数据洞察、服务质量、价格、道德价值(如:尊重隐私等)等方面展开竞争。 规则和用户访问权限不受平台支配,所以企业可以更加快地进入市场。小型企 业甚至也可以进入市场抓住机会、参与竞争。

这种竞争掀起了创新和去中心化应用程序、服务及商业模式的新浪潮。最终, 终端用户将受益于多样化服务和应用程序产品,获得更好的用户体验、更好的 隐私保护以及更加低廉的价格。去中心化网络将是开放的,而且很多技术都是 免费使用的,既具有创造性又充满乐趣。

窥见一丝希望 加密网络的兴起掀起了一股新浪潮,人们开始对能够实现去中心化的技术感兴 趣。比特币和以太坊一路领先。整体而言,过去几年里,我们已创建了许多技 术。我们开发了可在去中心化系统里创建区块的技术,如:IPFS、libp2p。大 多数的新技术、协议和系统都是开源的。我们也创建了许多基于加密货币的新 商业模式和数字化治理模式。在未构思、实施和部署的情况下,无法在短期内 构建系统。

许多加密网络的核心是全球分类账本。全球分类账本作为“全球单一事实”,意 味着网络参与者之间的所有交易都记录在同一个全球分类账本中。这造成了瓶 颈:要求每个人都与其他人同步,降低了整个网络的最大吞吐量。虽然许多项 目提高了网络整体吞吐量,但是,单点之间的同步只能是这个速度。

大多基于分类账本的网络都有一个编程接又,可通过“智能合约”对网络进行编 程。智能合约是网络参与者在网络中运行的程序。我们可以创造去中心化应用 程序(dApp)、付款、运行业务逻辑、实施新协议等。但是,大多数智能合约 语言和运行环境(即它们运行的分类账本)彼此都不兼容。这意味着开发人员 需要用特定于平台的语言编写程序,需要有效地预先决定出将采用何种网络运 行程序或服务。这就造成了许多网络碎片,也给网络之间的互操作性造成了障

碍。在这一方面,大多数区块链系统为开发人员创造了一个技术孤岛:在构建 应用程序前,您必须要选择投注平台,因为切换平台意味着重写应用程序。

此外,由于智能合约程序与底层加密网络和分类账本相关联,他们排除了在开 放的、基于非加密货币的构建区块上自由开发的可能性。也就是说,如果某个 程序是搭建在特定的区块链平台上,那么它需要有代币或支付场景,这样开发 人员和用户就必须要注册网络并获取该网络的代币。

这就让我们想起在中心化平台上遇到的问题,在更广泛的层面上,这个问题似 乎与创建整个领域的原始动机不一致。

同时,我们已经看到了中心化平台的现状,并开始通过监管采取对策,如:欧 盟的 GDPR,甚至呼吁击垮平台所有者。

这些反对中心化的力量 — — 尤其那些不断质疑这些平台的隐私性和安全性的个 人和社区,正是我们创建去中心化网络的希望。虽然从根本上说,问题依然存 在。 创建去中心化网络的架构要求

为了构建和部署可充分发挥去中心化网络潜力的基础设施,为了挑战权威并从 网络效应中分离数据,我们认为需要解决以下的问题:

在断开网络连接或断网环境下的可用性

当前区块链网络最大的问题是对全球单一事实来源和分类账本的需求,要求每 个参与者不断同步并保持全局状态进行交易。虽然这么做的目的是可以理解的 (强一致性保证、加密经济激励等),但是会使网络效率变低。

为了在去中心化网络上构建多样化和离线优先的应用程序,底层协议不能构建 在单一代币或单一网络上,也不能依赖它们。相反,核心协议应非常灵活,以 便在顶部位置构建此类网络,无需付款即可使用。我们不需要创建链,而是要

异步消息传递

最终一致性

具有像搭建小型网络一样的构建大型网络的能力

平台上的计算分离

创建区块。我们仍需要全球单一分类账本的网络和协议,也需要核心协议的补 充协议。但是,基线应尽可能灵活、可用和高效,以便数据能从底层平台中分 离出来。

现实世界是一个异步的世界,同一时间点上,一件事情的发生和另一件事情的 发生其实是没有联系的,但是我们很少同时观察他们。事实上,所有形式的一 致性和共识最终都是一致的。信息根据预定义的一系列规则(协议)在参与者 之间传递,而只有在信息完成了交换且执行了协议后才能达成共识。虽然最终 结果是:共识是一种强一致性形式,需要同步,但底层机制是异步的。消息发 送出去后,在某个时间点将会被接收者接收和确认。从这个角度看,我们需要 将最终一致性视为所有数据和应用程序的基线一致性。在异步消息传递和最终 一致性的基础上,我们可以根据需要构建更强的一致性保证。

“你必须要放弃利用单一数据库访问所有数据、规范化数据和跨服务连接这一想 法。这是个异步的世界,需要有不同的思维方式,也需要使用不同的设计和工 具。” Jonas Bonér

通过异步消息传递和最终一致性,我们能够编写应用程序和网络,并确保在网 络断开和服务中断的情况下依然可以运行。这些程序首先在本地运行,且一直 可用,即:这些程序在未联网的情况下依然可以运行,并在联网情况下能够与 其他程序同步。不再需要程序一直处于联网状态。总的来说,相比我们现在拥 有的 Web App,这会给我们带来更好的用户体验。

每个参与者通过全球单一协议进行互动(如:区块链)面临了一定的瓶颈,这 种互动的速度有其上限。不需要验证整个网络是否断开连接,也不需要验证不 相关的互动(例如:Alice 从 Bob 那里购买咖啡并将图片分享给 Charlie),而 是应该由个别程序构成子网络。在每个应用程序或互动中,将这些子网络视为 “微网络”。例如:Alice 将图片分享给 Charlie,这就在两者之间构成了网络。或 者,一个聊天软件程序,其中有50人使用某一渠道,那这50个参与者之间便构 成了网络。在每个应用程序中,将大型网络分割为子网络,称为“内置分片”。 网络中的每个参与者只能利用部分网络(几乎不可能是全部网路)存储信息、 进行互动。

每个加密网络具有各自的运行环境,也具有编程网络所需的自定义编程语言, 这都会导致碎片化。这种碎片化使工作效率变低,无法在程序和数据上形成网 络效应。将应计值锁定在每个单独网络中。为了解决这一问题,为了解锁价

值,我们需要将程序运行层与平台(分类账本)进行分离,实现高效的分布式 计算模式,从而在多个网络(或,断开且不兼容的网络)中运行同一种程序。

为此,我们提出 Ambients 协议。该协议旨在在对等网络中构建和运行数据库和 程序。它将数据从底层平台和网路中分离出来,在不同网络和系统之间创建互 操作性层。

去中心化应用程序可以使用该协议,以组合性、可验证安全且可扩展的方式构 建、部署、执行和共享代码和数据。

重新获得数据库 为了了解对 Ambients 协议的需求,我们需要考虑目前开发人员在模式转变过程 中,面对主流编程模式时所遇到的问题。

从中心化平台模式向去中心化转变,要求去中心化应用程序要和平台提供的一 样好,甚至比平台提供的还要好。向权威挑战只是其中一个步骤。为了获得更 好的用户体验,相应地,我们需要构建自己的应用程序和服务。但不幸的是, 目前去中心化应用程序和服务的编程模式与平台所提供的非常类似:他们使用 有效的中心化数据库,通常是区块链。

除了考虑这一点,我们还要考虑:数据库是存储(数据库状态)和用于访问、 更新及查询存储(数据库服务)程序的结合。关系数据库通常会提供 SQL 作为 更新和查询数据库的接又,对想访问和操作数据库状态的程序来说,SQL 是一 个互操作性层。智能合约平台也是以这种方式运行的:区块链是中心化数据库 状态,而智能合约提供数据库服务和接又。在某种程度上,所有的中心化平台 都会构成一个中心化数据库,大量数据涌入其中。事实上,此类数据库模式就 是将去中心化网络转向中心化平台模式。

如果对数据所有者来说,数据库状态是本地的、去中心化的,将会发生什么 呢?数据库这一概念将发生颠覆性地变化:数据库状态不再集中在某一个地 方,而是分散在网络中的多个位置。所以,要想拥有真正的去中心化程序模式 (相当于传统的中心化数据库模式),数据库服务(或任何程序)都需要转移 到数据所在的位置。这样一来,就需要分布式计算(程序)。

事实证明,解决这一问题不仅仅意味着获得去中心化数据库。

Ambients 协议:点对点计算 今天,我们发布了完整版 Ambients 协议白皮书。

Ambients 是一种新型的分布式计算协议,允许开发人员构建去中心化应用程 序、数据库和服务,并在对等网络中部署和运行。同时允许开发人员构建组合 性、安全、可扩展且去中心化的程序。

为了创建这些性能,Ambients 协议定义:

一种执行模式,使用最终一致性和基于日志事件的 MerkleDAG 将 Ambients 程序评估为具有汇合性质的重写系统

使用 Ambients 协议构建的程序,将被转换为可在 Ambients 网络上安全运行的 分布式可执行文件。这就将程序转移到数据所在的位置。对去中心化应用程序 的互操作性和可扩展性而言,共享分布式程序至关重要。例如:构建上述本地 化所有者的去中心化数据库,程序可在此数据库中构成分布式数据库服务。

Ambients 编程模式具有足够的限制性,可以验证其安全性。同时,它足以让开 发人员构建数据结构、功能、算法、业务逻辑、数据库,甚至是成熟的系统和 服务。如今,大多数编程语言都具有 Ambients 功能,这就意味着开发人员可 在 Ambients 协议上使用相似的编程语言构建去中心化应用程序和服务

Ambients 协议独立于平台而存在。Ambients 网络可覆盖和连接各种 Ambients 兼容模式运行时环境,从可信任、有权限的中心化系统(如传统 Web 服务)到 无信任、无权限的去中心化系统(如区块链平台)。

我们将在白皮书中进一步讨论:如何获得可组合性、安全性和可扩展性保证; 开发人员如何从构建去中心化数据结构、数据库、协议、应用程序、数字服务 等中受益。

基于不可变值和纯函数的 Ambients 程序的编程模式

基于 Ambient Calculus 过程代数的编程模式正式基础

一组使用常见计算抽象(如:monoids、functors)的协议原语,将程序编写 为代数 Ambients 程序

一种编译模式,将程序从几乎任一源语言编译为 Ambients 可执行文件

Ambients 协议是开源的,免费供大家使用。如果您想参与构建 Ambients 协议 或想要成为社区的一份子,请前往 Github 并加入我们!

我们邀请感兴趣的读者深入了解白皮书,了解 Ambients 协议如何解锁更多服 务,最终帮助我们重新实现网络去中心化。

--

--