Eth1.x:如何通向无状态以太坊

来源 | Ethereum Blog

作者 | Griffin Ichiba Hotchkiss

__Eth1.x:如何通向无状态以太坊Eth1.x:如何通向无状态以太坊

当我开始着手撰写一篇文章,意图详细介绍以太坊 1.x 研究的“路线图”,以及如何通向无状态以太坊,却意识到严格来说,这完全不能被定义为传统意义上的路线图。虽然 1.x 团队有着共同的目标,但却是一个兼收并蓄的集体,开发者和研究者独立地进行着错综复杂的工作。因此,也不存在“官方”路线图一说,但这并不意味着混乱无序。团队工作遵循一种默认的“次序”,例如某些工作必须要优先进行,某些解决方案是互斥的,还有一些工作可能有所裨益但却不是必要的。

如果不用“路线图”来描述通向无状态以太坊的过程,那么是否有更好的比喻呢?要找到一个合适的比喻确实不容易,但我觉得无状态以太坊就像是科技树(tech tree)[1] 中的“全属性”。

有些读者可能会立即明白这个类比,那么接下来的几段可以跳过。有些读者可能不是游戏爱好者,我会稍作解释:科技树(tech tree)是游戏中的一种常见机制,玩家能够解锁和升级新的符咒、技术或技能,通常以松散的层次或树状结构展现分类。

Eth1.x:如何通向无状态以太坊

通常来说,可以通过“耗费”某种 XP (经验点)来获取树中的元素(属性),进而解锁更多高级元素。有时需要获取两个不相关的基本元素才能解锁第三个更高级的元素,有时解锁一个基本技能会为下次升级开放更多新的选择。对于玩家来说,游戏的乐趣有一半是来自于在科技树中选择了与自身角色能力、目标和偏好相匹配的正确路径。

这准确地诠释了 1.x 团队的状态:不同的技术主题按照松散的层次结构安排,将有限的资源投入研究、实现和测试。就如同在一个好的 RPG (角色扮演类游戏)中,经验点是有限的,只有少数有能力的、有干劲的人才能在一两年内点满解锁所有技能。每个人都朝着同样的终点进发,但是到达终点的路径将取决于哪种解决方案得到了完全的研究和采用。

以下是我自制的粗略科技树图。针对排列方式、每个升级及其与整体的关联性,我会稍作阐释。科技树中最终的“全属性”升级就是“无状态以太坊”。也即是指,一个功能齐备的以太坊主网将支持全状态、部分状态和零状态节点,将高效可靠地传递见证(witnesses)和状态信息,并且从原则上来说,对于后续的扩展性也要准备就绪,直到 eth2 的桥接建设完成且能够登陆 eth1 链。

Eth1.x:如何通向无状态以太坊

注意:就像之前提到的,这不是“官方”的工作路线。这是我所整理和组织的 1.x 团队必须解决的关键难题、里程碑和决策,目标是最终实现无状态以太坊。欢迎提供反馈,随着研究的推进,该计划也会随之更新和修订。

阅读顺序是从左至右,左侧的紫色信息是“基本”要素,必须首先进行开发和确定,才能继续推进右侧的要素。绿色部分表明这些元素在某种意义上算是“增益”项目,尽管在过渡过程中不是必需,并且在研究方面还不够具体,但还是有可取之处。较大的粉色形状代表无状态以太坊的重要里程碑。要完全过渡到无状态以太坊,必须“解锁”图中所有四个主要里程碑。

见证范式

在无状态以太坊的语境下,关于见证(witness)的讨论有很多。因此,我提出的第一个主要里程碑是最终的见证范式。这意味着一定要确定状态树和相关见证的结构。可以将规范创建或参考实现视作 eth 1.x 研究“升级”的地方;围绕状态的新形式展开工作将有助于厘清和集中完成其他亟待解决的问题。

Eth1.x:如何通向无状态以太坊

二叉树

将以太坊的状态切换为二叉树结构非常关键,这可以使得见证足够小,在进行网络通讯时避免带宽 / 延迟问题。在上次的研究者会议中 [2],转换为二叉树结构将需要保证以下两种互斥策略之一: