以太坊架构存在缺陷,分片会是救星吗?

转载
2141 天前
12821
巴比特资讯

文章来源:巴比特资讯     作者:Hugo Nguyen     编译:洒脱喜

以太坊在其3年多的历史当中,一直存在着争议。从 the DAO黑客事件,到期待已久的向权益证明(PoS)共识机制的过渡,到君士坦丁堡的升级(降低挖矿回报,并改变了通货膨胀时间表)。以太坊与比特币的文化形成了强烈的对比。比特币所回避的一切,以太坊似乎都喜欢拥抱。

如果我们忽略所有的噪音,在引擎盖下挖掘,我们会发现,以太坊的问题不是产品市场适应性的问题,而是工程稳定性的问题。以太坊架构基于一个有缺陷且不可升级的理念:它假设“智能合约”需在成千上万台机器上复制计算。


(图片来自:Thought Catalog

本文的其余部分解释了原因,它最初是一个推文风暴,作者Hugo Nguyen将其整理成了一篇博文。

比特币不是魔法,它牺牲了所有效率的方式,这违背了我们的直觉和“最佳实践”,目的是给我们一些特别的东西。

比特币的效率特别低,这是因为以下两个因素:

  1. 它要求生产区块的速度必须缓慢;
  2. 它使用广播通信;

为了强调这是多么反直觉,你可以试想一下:

  1. 有目的地放慢工作速度,即使你想出了一个让它变快的方法?
  2. 告诉所有你知道的人,关于你在每时每刻所做的每件事?

在网络环境中,这样做是更疯狂的。不仅你会变慢,其他人也必须慢。不仅你对每个人都要大喊大叫,每个人都对其他人要大喊大叫。

此外,该网络还拥有数十万成员。如果你有一个巨大的精神病院,你就有了正确的精神形象。

在大多数情况下,以比特币的方式做事,简直就是疯了。

事实证明,最大限度地降低效率有其优势。比特币故意让事情变得缓慢,这使得欺骗的代价变得很高。通过使用广播通信,它最大限度地减少了信任单个成员的需要(用计算机术语,就是最大限度地提高容错性)。

比特币通过减慢区块和使用广播通信的方式,解决了拜占庭将军问题。这是计算机科学的重大突破。

但比特币的方式,其代价很高。它在光辉和无用性之间走了一条细线。只要流过区块链的数据以可管理的速度增长,区块链系统就会工作得很好。

除了线性以外,任何数据的增长率都是不可持续的,而且会有一定的死刑。非线性数据增长将迅速逐个杀死各个节点,并不可避免地将系统恢复到一个更依赖信任的模型。

由于区块链系统是非常低效的,如果数据增长太快,几乎没有什么可依赖的。实际上,区块链系统正走在非常薄的冰面上。

因此,当涉及到区块链数据时,你需要非常高效。这是为了弥补上述效率极低的情况。

这就是为什么以太坊的“富状态”架构是如此糟糕的原因。以太坊状态纯粹是为计算而需要的,但是它们以不可管理的速度增长。

当核心层接受富状态的原因是模糊和可疑的时候,以太坊的设计决策更值得怀疑。

模拟图灵完备性?区块链上不可能有真正的图灵完备性,因为所有程序都必须以某种方式停止。所以“图灵完备”完全是一个噱头。Vitalik本人也承认了这一点。

使得智能合约更容易编写?在区块链工程方面,易用性是你最不要担心的问题。这不是一个优先选项。记住,有了区块链,你就踏上了薄冰,而不要添加富状态。

那为什么呢?使用比特币风格的脚本,就无法支持计算了吗?当然不是的,任何通过以太坊智能合约完成的计算,都可以在比特币上完成,只是需要在更高层。

这就是问题的症结所在。以太坊正在错误的层面上解决问题,通过这样做,使得其核心设计变得肿胀。

拖延时间,也不是解决办法。分片并不是解决方案,分片意味着降低广播通信的水平,而广播通信正是区块链环境的一个特性,而不是一个bug!

把所有的希望都寄托在分片这个神奇的治疗方案上,这一切都代表了以太坊对工程的态度:希望。

如果你考虑到比特币,以太坊的问题就更严重了,尽管比特币在数据类型和处理的数据增长方面极为保守,但它仍然有很大的失败机会。嗯,比特币仍然是一个实验。

如果你读过我最近关于比特币激励计划的文章,你会发现我留下了一些开放式的问题,我仍然不知道答案。我对比特币持乐观态度,但是谨慎乐观。

简单地说:比特币已经把事情扩展到了极限,以获得有用的东西。尽管如此,它的成功并没有保障。以太坊将事情延伸得更远,而没有充分的理由。由于这个原因,以太坊的架构从一开始就存在缺陷。

在工程方面再多说几句。以太坊的故事其实并不罕见。我们以前看过这部电影:

  1. 70年代的RISC与CISC
  2. 90年代的Linux与Windows

在这些片段中,我们了解到,硬件和软件作为模块化的简单层构建时,工作得最好,以RISC和Linux为例(另一个例子是TCP/IP)。原因是这些系统趋向于更灵活、更优雅,并且能够更容易地适应不断变化的环境/用例。

这种见解在Unix设计理念中得到了更好的应用:“灵活性、简单性和自由是首要考虑因素”。

Unix的设计理念也得到了来自大自然的赞同。即使蚂蚁个体是愚蠢和高度专业化的,它们的群体也会展现出突如其来的智慧。同样地,我们的大脑由简单的神经元组成,它们各自执行简单的任务。

以太坊核心层的厨房水槽方法类似于复杂指令集的概念。或者用大而复杂的组件来构建软件,而不是用小而专业的组件。为了复杂性而复杂,是有问题的。

总之,以太坊的设计决策存在问题,其没有强有力的理由支持。我们以前也见过类似于以太坊的工程错误。我的猜测是,以太坊最终将成为历史书中不该做事情的另一大例子。

注:

  1. 我所提到的“区块链系统”,指类似比特币这样基于工作量证明(PoW)的区块链;
  2. 附加阅读:Gregory Maxwell 在这里解释了“验证,而不是计算”。下面是其中的一个片段:


“当你意识到“图灵完备”是一个错误的工具,我们的系统所做的是验证,而不是计算时,所有这些在可扩展性、隐私性和灵活性方面的根本改进都会出现。

这种认知错误,不会对那些一开始就对智能合约有着模糊概念的人带来任何好处。

在比特币的世界里,更强大的智能合约,绝对是重要的,我毫不怀疑。但围绕以太坊的营销蠢话不是动力,而是船锚。共识不一致和权力下放的载体,破坏资源消耗和激励不匹配。幸运的是,我在这里描述的认知框架,在比特币专家社区中得到了很好的理解。”