36

引介 | 愿景·世界计算机的系统注册表

 4 years ago
source link: https://www.tuicool.com/articles/YVRZnuV
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

n2yYb2N.png!web

以太坊的目标是 全球计算机 ,这是我们 2016 年第一次访问 https://www.ethereum.org/ 的结论。但其从 2013 年概念成型到今天,我们还是仅仅把它作为一个裸机数据库、搭载着为数不多的能用的 “表格”:地址(账户和合约),区块,交易和事件。而若要将其作为操作系统使用,则会需要成千上万种数据类型。

目前,以太坊的杀手应用是支付,但它可以做得更多。

标准数据类型数量较少之问题

以经典的万维网(web)为例,它只有少量的数据类型:web 页面,超链接,关键词。除了把一些关键词当作字符串来处理,web 页面对文本内容一无所知。

以下是每个页面创建者所见的接口含义。

6naae2M.jpg!web

在人类用户看来,web 网络是怎么一回事呢?连篇累牍的浏览,搜索并试图理解每个接口所指向的资源。当前的 “解决方案” 是使用少量公司提供的 “最顶级” 的网站,它们有足够的资金来构建易用的接口。而这会进一步减少竞争,使得新的网站难以被发现和使用。

当你需要使用政府、教育部门的接口或法律资源时又当如何?它会使你为寻找和使用相关服务而筋疲力尽。

那对机器用户而言呢?它会导致自动化系统在浏览网页时错误百出。所以你只能做出网页爬虫,但没法智能且准确地浏览网页。

语义万维网(Semantic Web)很适合成为经典万维网(Classical Web)的系统注册表(System Registry)。但它会给内容生产者一方带来额外的工作,所以不被接受。它提供了大量的新类型以及表示类型关系的类型。由于万维网创建于 90 年代,因此基于万维网的全球计算机只能使用少量的数据类型。

新的开始

Bv6Freb.jpg!web

以太坊许诺成为全球计算机,并在一开始就提供图灵完备的环境,这是一个非常棒的起点(至少在系统的表达能力上)。然而创建多年之后,以太坊仍然不支持类型注册,甚至也没有系统注册表。我们希望能在以太坊中看到数据类型注册表,继而萌发出系统注册表的雏形。

正因此,我们提交了一个 EIP, 即实现 EVM 上的分布式类型系统(dType): http://eips.ethereum.org/EIPS/eip-190

更新:同时参见 dType 存储扩展,dType 别名, 语言扩展, 函数扩展

类型注册表的好处在于类型复用。相较于每个项目单独创建基于自己需求的(不同版本的)相同类型(使得链上的字节码臃肿不堪),它们可以复用已经部署到类型注册表的类型。

当准确理解接口类型时,我们可以用更丰富的形式来展现数据。想象下,当一个区块链浏览器理解链上的一个数值数组为坐标类型时,就能够将其渲染为地图上的点。或者当它理解数据类型时,能够渲染出一幅出色的时间序列图:

type Event {
    uint256 timestamp;
    uint256 value;
    string event_name;
}
type EventSeries {
    Event[] events;
    string series_name;
}

相同的时间序列可以显示为普通的表或电子表格,这是默认的二维数组的 UI 展现方式。

备注:我们得有办法知道 solc 编译后的 ABI 中的结构体名称。它会让 ABI 能够确定并容易找到输入输出中的类型。我们现在有了针对不同数据的 HTML 小组件 ,展现方式也是可编程的。 用户甚至可以基于已有选项选择展现格式 ,不再处处受限。

这将使得人人能使用 协调良好的 UI/UX 组件 。组件能节省用户的时间,因为他会 明确知道期望的结果是什么, 而不是被强迫去了解一个新的接口如何工作或者为无法分辨是 bug 还是功能而痛苦。

统一的类型系统也能 为机器学习和 AI 工具做准备 ,以更好地理解数据。

我们可以更进一步,构建 web2 工具来使用注册表中的类型,并逐步统一 中心化和去中心化 服务。

对类型注册表的要求

类型注册表中的数据应该是那些所有人都可以使用的共性的数据格式。注册表很重要的一点是维持其公共品属性,因此必须是非托管的和抗审查的。

创建类型的一般方式是需要取得大家一致同意并以模版形式提供,同时还应出台 类型命名的建议和规则 (避免命名冲突或名称与实际数据不符)。

任何人都可以创建和提交类型。给注册表添加新类型需是社区 共识 的结果,类似当前以太坊 EIP 的流程。由此,我们会越来越迫切地需要去中心化的管理工具及其对应的版本管理系统。希望不久就能看到这些工具被 dType 使用。类似 DAOstackAragon 这些开源项目在构建管理工具方面取得了很好的进展。

每种数据类型都应在注册表中存储足够多的数据,以保证:

  • 任何人都能将类型应用到他们自己的合约中(比如:类型名称,库/合约地址,子类型和标签)
  • 任何人都能获取类型库和合约的源码
  • 任何人都能在链下缓存完整的注册表数据并基于它开发工具(当前的区块链已经给了我们这一属性)

CRUD(增删改查)操作:

  • 当共识达成时允许添加新类型
  • 更新类型有些棘手并可能破坏向后兼容性,我们建议只增加更完善的新类型
  • 可以移除类型,前提是它们不再使用而且已经达成共识

辩证视角

我们已经见识了一些好处:减少链上类型定义的冗余,统一接口,更智能的 UI/UX 组织,自动激励,益于数据分析 ,更好的交互性(包括 web2 —— web3)。

那么,又有哪些缺点呢?会否比优点更甚?

与任何需要达成共识和标准化的事一样,这些都伴随着协作和争论的开销。但就以太坊而言,我们必须要协作和争论以打造一个公平和美好的系统。

不管开发什么,你都必须看看是否存在可以复用的类型,或者提交一个新的。如此将会需要一些调研的成本,可以构建适当的开发工具以便用搜索来降低调研成本。

人们会抱怨的最大开销是 注册表本身的存储成本 。但以上述的类型库复用为例,实际的类型注册交易开销,会小于部署合约时不断重复加入字节码的开销。

旁注:如果是 状态费用state fees ),则我们希望可以区分通用数据( 系统数据 )和 个人数据 (可以由每个人添加到区块链中,并使很小部分的人收益)。

如果还有其它本文未指出的不足,欢迎添加评论。 这篇文章即是抛砖引玉的。

其它

当我们抱怨不同项目中差劲的 UI 和 UX 体验时,需要明白万维网本身的 UI 和 UX 就是不够好的。不仅如此,它还缺乏自动化所需的标准化。

只要人类用户有足够的智慧、耐心和时间,还是能够正常上网。但是算法无法做到。与努力建立标准化的共识相悖,开发者们正尝试基于人类使用万维网的方式来教会算法具有人类的创造性。这种做法收效甚微,因为它的方法论基础就不正确。

这就是为什么 成功的 AI 应用都来自那些内部拥有数据表示标准的公司 ,比如 Google,Amazon,Facebook。这些公司努力使得用户的生活更加便利,但会以牺牲用户的自由为代价。因为公司的工具均为黑匣子,它们可以在任何时刻修改游戏规则而不为用户所知。

新的 web3 即将被实现。我们的唯一选择是: 任由那些乐于控制用户的行为的黑匣子公司控制,或者协作并创建一个公平和透明的系统标准? 无论哪种选择,都会是一场持久战。

(完)

原文链接: https://medium.com/@loredana.cirstea/a-vision-of-a-system-registry-for-the-world-computer-be1dc2da7cae

作者:Loredana Cirstea

翻译&校对:Wuwei & 阿剑

本文由原作者授权 EthFans 翻译及再出版。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK