为什么说以太坊架构存在缺陷

为什么以太坊架构存在缺陷?对比比特币我们来看看。

比特币不是魔幻的。它牺牲了所有高效率的方式,这与我们的直觉和实践最优化的思路相违背,它给我们展现了一个特别的情况。比特币在两个方面特别低效:

  • 它要求生产区块的费用应该是渐进的。
  • 它利用广播通信。

你看这是多么违反我们的直觉。你通常如何:

  • 有目的地让一个工作变慢,即使你发现了一种使它更快的技术?
  • 告诉你认识的每个人你刚刚做的每一个因素,每天的每一分钟?

在社区环境中这样做更疯狂。不仅仅是你可能是循序渐进的,其他人都应该是循序渐进的。不仅仅是你对每个人尖叫,每个人都对其他人尖叫。

此外,这个社区有成千上万的成员。哈哈,如果你不在思想上有一个巨大的精神问题,很难说有合适的心理图景。

在大多数情况下,处理比特币的方法实际上是疯狂的。

看来,最大限度地降低效率是有好处的。通过刻意强迫问题逐渐发展,比特币使得欺骗变得昂贵。通过使用广播通信,它最大限度地减少了相信特定人员成员的必要性(或在电脑科学术语中最大限度地提高容错性)。

比特币通过逐步阻断和广播通信,解决了拜占庭将军的缺点。电脑科学的巨大突破。

然而,比特币的做法却付出了沉重的代价。它走在光彩夺目和无用之间。只要流经区块链的信息以可管理的费用开发,区块链方法就可以正常工作。

区块链的开发需要费用,不管它是多么的线性,都是不可持续的,必然是一个肯定会死的节奏。非线性信息开发将很快逐一杀死每一个节点,并不可避免地将系统恢复到一个信任度低得多的最小化模型。

由于区块链方法已经非常低效,如果信息增长过快,就没有什么可依赖的了。区块链方法,就像它们一样,如履薄冰。

因此,在区块链信息的主题上,必须无情地保护整个开发环境。这是为了弥补在上述领域效率低下的问题。

这就是为什么以太坊的冗余状态结构是如此令人讨厌的概念。以太坊状态纯粹是为了计算功能,但是它们的开发费用是无法管理的。

以太坊的设计决策更值得怀疑,因为在核心层接受冗余状态的解释也不准确和令人怀疑。

模拟图灵完备?区块链上可能没有实际的图灵完备,因为所有应用程序都应该以某种方式停止。所以图灵完备是一个完全的花招。V神自己也承认了这一点。

使可编程智能合约更容易记下?易用性是你对区块链工程主题最不担心的问题,落后的优先级。记住,有了区块链,你就已经如履薄冰,包括冗余状态在内。

为什么在任何其他情况下都进行辅助计算,而不仅仅是比特币风格的脚本?可能不会那么做。使用以太坊智能合约执行的任何计算都可以在比特币上执行,也只需在下一层执行即可。

这就是问题的关键所在。以太坊正在解决的问题在不合适的层上,这样做还不必要地膨胀其核心设计。

这等于是把罐头踢到街上,希望棘手的问题自己解决,这两者都不是一个答案。分片不是答案,因为分片意味着减少广播通信的范围,这是区块链上下文中的一个函数,而不是一个bug!把所有的希望都寄托在分片上,因为这代表了以太坊在工程方向上的努力:Hopium。

如果考虑到比特币,以太坊的问题就更为关键了,尽管比特币在信息类型和信息发展方向上极为保守,但它仍然有非常现实的失败可能性。嗯,比特币虽然是一个实验,但还是做的非常多。

如果你已经了解了我关于比特币激励计划的最新文章,你会发现我留下了许多问题,尽管我不知道解决方法。我对比特币持乐观态度,但谨慎乐观。

而简单来说:比特币已经把问题延伸到了极限,让每一件事能有所帮助。但不管怎样,它的成功仍是不能保证的。以太坊扩展带来了很多额外的问题,而且没有很好的理由。以太坊的结构从一开始就存在缺陷。

关于问题的工程方面的一些额外短语。以太坊的故事并不罕见。我们看过这部电影的时间早于:

  • 70年代的RISC与CISC
  • 90年代的Linux与Windows

在这些场景中,我们已经认识到,当软件程序被构造为模块化的、简单的层时,它们的工作效果最好,以RISC和Linux为例(另一个实例是TCP/IP)。其基本原理是,这些方法通常具有额外的通用性、额外的扩展性,并且可能更容易适应改变环境和使用实例。

这种看法在Unix设计理念中是不朽的:“灵活性、简单性和自由是最重要的考虑因素”。

此外,Unix的设计理念还将获得来自大家的信任投票。ant群体表现出超强的智力,尽管个别而言,ant是哑的,但非常专业。同样地,我们的大脑由简单的神经元组成,它们各自执行简单的任务。

以太坊的核心层厨房水槽策略与豪华指令集的概念非常相似。或者用庞大复杂的元素来构建软件程序的概念,作为小型和额外专业元素的替代。复杂性是为了复杂性,而不是通过出现。

从理论上讲,以太坊的设计选择是有问题的,没有确凿的理由支持它们。此外,我们还发现了比以太坊更早的工程错误。我的猜测是以太坊最终将成为过去历史电子书中不 该做的另一个教训。

记录

  • 我利用区块链方法学习类似比特币的区块链,这些区块链主要基于工作量证明。
  • 额外学习:GregoryMaxwell定义了验证,而不是计算。

BobMcElrath在这里还描述了这个问题。

======================================================================

分享一些比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程实战教程:

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是为什么说以太坊架构存在缺陷