区块链:如何真正解决区块链的扩容问题_ChartEx

以太坊和大多数区块链都在面临一个问题,那就是扩容危机。扩容以太坊对于提高网络的实用性和采用率至关重要,而当前的交易费用使得目前的这些讨论没有任何建设性可言:除了最简单的DApp之外,想要制作其他任何东西都是不可能的。?

事实证明,这个众所周知的问题很难在不影响安全性和去中心化的情况下解决。PietHein说一个被所有人讨论和攻击的问题反而通过于此证明了它的严重性,而区块链可扩展性无疑是一个典型。

?然而,区块链的处理限制并不是使复杂的DApp无法实现的唯一限制,当前关于可扩展性的讨论通常缺少一个关键内容,这与增加交易吞吐量和降低费用一样重要。只关注计算可扩展性是错误的;要创建这些不可能的DApp,我们必须做的还不止这些。?

为了真正解决可扩展性问题,以太坊中存在第二个约束条件:内容可扩展性1。为了解释内容可扩展性的含义,我们将引用弗里德里希·哈耶克(FriedrichHayek)的开创性文章“TheUseofKnowledgeinSociety”:?

“我们不断使用我们不理解的公式、符号和规则,通过使用它们,我们可以利用我们个人不具备的知识的帮助。”?

这个想法虽然是关于文化与文明的,但对于程序员来说应该非常熟悉。作为软件开发人员,我们是抽象的大师2。我们在抽象的层级上来建立他们,这些抽象已经在他们自己的层面上被证明是成功的,而不必考虑它们是如何实现的。我们自下而上构建的分层抽象生态系统包含整个计算机科学领域的集体知识,这是软件开发的基础。从这个意义上说,计算机科学中的抽象可以被认为是对内容的抽象:它们是一个信息隐藏的过程,其中底层架构对用户隐藏,用户可以直接通过访问接口对想要的内容进行访问。通过这个信息隐藏过程,计算机科学中的抽象在于对内容的扩大。

阿尔弗雷德·怀特黑德(AlfredWhitehead)曾说过“文明的进步是通过增加我们可以不假思索地执行的重要行动的数量”,对于各种技术也是如此。例如,拿开车这样简单的事情做事例,我们可以不用思索地去做。现在试着想象一下在制造所述汽车时所采用的技术数量。想象一下设计汽车发动机所花费的集体人力时间以及它所包含的数十年积累的知识。我们可以将这个思维过程递归地应用于引擎的子组件和用于构建它们的工具;它们各自隐藏有关底层子系统的信息,并使下一层能够执行更多操作而无需考虑它们,而不是在每次开车的时候都将汽车的整个制造过程再从新思考一遍。

这是人造复杂系统的一个重要特征。它们以组合方式构建在其他子系统之上,以一种方式构建,其中每一层都隐藏有关下面内容的信息。这些层构成了我们所说的内容。通过这种分层抽象的过程,可以扩大内容。?

在软件中,可以观察到现有生态系统中的这种分层抽象结构。这个堆栈由库、工具、操作系统、编译器、解释器和许多其他组件组成,每个组件都抽象了底层系统并扩展了人们可以不假思索地做的事情。现代软件非常复杂;要写它,引用哈耶克的话,我们必须利用我们个人不具备的知识的帮助。为此,我们利用在过去几十年中反复迭代的久经考验的内容,而无需自己编写或了解它们的内部运作,将它作为工具去开发出新的软件。

?在Cartesi,我们正在构建我们自己的可扩展性解决方案。其核心是扩展那些不用重复思考底层逻辑的操作的可能性和数量;要编写复杂的DApp,必须有内容可扩展性。当前的区块链技术不具备这种特性。执行智能合约的计算机在所有方面都是新颖的。过去40年开发的软件都不能在区块链上实际运行。没有生态系统可言,也没有任何抽象层内容;要在以太坊中创建复杂的系统,人们必须从头开始构建所有逻辑和抽象层,这需要任何个人都无法掌握的大量的重复性知识和内容。

假设一个去电脑商店购买新电脑的场景。商店为您提供了一台刚刚发布的超快计算机,但它无法运行当今存在的任何东西:应用程序、库、工具、操作系统、编译器、解释器,应有尽有。但它只能运行自己风格的机器代码。供应商可能会试图说服您说“啊,但是可以为这台特定的计算机从头开始开发新软件”。您会购买这台在使用前,需要从新开发所有软件的电脑吗?在许多方面,这就是在高级编译器和操作系统出现之前开发软件的方式。尽管有性能,但这样的计算机将毫无用处。我们已经超越了旧的软件是有原因的。如果没有过去几十年辛勤构建和迭代的任何抽象,头脑正常的人甚至不会考虑购买这样的计算机。这台计算机在任何层级都没有内容。

以太坊智能合约很像这台计算机,除了它们也超级慢。可扩展性解决方案有望打破这些智能合约中存在的处理限制。然而,在没有解决内容可扩展性的情况下,它们的用处相当有限;仅仅强调计算可扩展性是错误的。?

想象一下运行压缩和解压缩算法。在我们每天使用的计算机上,这是一项微不足道的任务。我们只是导入相关的、成熟的、经过无数次试验的内容库,并对其进行单一的函数调用,这得益于数十年的积累,不是单独一个人就能实现的任务。然而,在区块链上,这样的任务是不可能的。不仅没有计算能力可以做到这一点,也没有实现。仅仅解决第一个问题是不够的;我们有一台快速的电脑,但没有内容。我们如何解决这两个限制?

目前,以太坊最重要的可扩展性解决方案是Rollup,有许多相互竞争的设计和架构。VitalikButerin写了一篇关于它的很棒的指南,可以点击链接查看。Rollup的基本思想是将大部分计算从区块链转移到第2层协议,使用区块链来验证链下执行的内容是否遵循规则的证据。这种从第1层到第2层的转变大大降低了计算成本,因为在链上运行的东西非常昂贵。但要真正解决可扩展性问题,我们还必须解决内容可扩展性问题。要创建不可能的DApp,必须能够利用现代开发生态系统中积累的知识和工具。?

在Cartesi,我们正在开发我们自己的Rollup解决方案,这是我们对可扩展性问题的回答。与其他解决方案不同,我们为表格带来了内容可扩展性以及计算可扩展性。扩展内容的关键洞察是将我们每天使用的同一台计算机拖入以太坊,将其用作以前不可能的DApp的基础设施。这台电脑上镌刻着数十年丰富、成熟、久经考验的内容;有了它,我们可以在区块链中运行整个现代开发堆栈。?

最重要的是,我们已将Linux及其所有工具链放在以太坊中。人们不再受限于Solidity,被一台极其昂贵的计算机所束缚;现在我们可以使用在快速计算机上运行的现代开发生态系统。我们在区块链中积累有数十年的内容。可以只导入一个压缩库并在我们最喜欢的编程语言中启动并使用它。您可能想知道,我们是如何做到这一点的?

最重要的是,我们已将Linux及其所有工具链放在以太坊中,我们甚至不限于Linux。截止目前我们还可以利用其他操作系统,例如seL4,这是一种以开源安全为中心的内核,具有端到端的验证证明。我们可以使用Python、Rust、OCaml、JavaScript、C++、Java或所有这些相似的开发语言和开发软件,以及它们的生态系统和现有资源库来开发智能合约。我们甚至可以使用实际的数据库。这样做的好处怎么强调都不为过:我们正在利用我们个人不具备的知识,铭刻在值得信赖的编译器和解释器中,以及预先存在的成熟内容库,以及经过实战考验的操作系统。

展示Cartesi威力的一个具体例子是我们的?TexasHODL’em,这是一款去中心化的德州扑克游戏。它利用LibTMCG库来实现心理纸牌的游戏逻辑。在第1层上运行这种密集型算法是不可能的:计算机太慢了。此外,仅仅将其移动到更快的第2层是不够的。理解心理扑克密码学的复杂性,然后在Solidity中编写一个强大的LibTMCG重新实现,这使得它成为一个相当复杂的DApp。另一方面,使用Cartesirollups,我们可以从我们首选的编程语言中导入这个已经存在的库并正常使用它,在快速的计算机上运行所有内容。?

这就是Cartesi的力量。开发人员可以利用这个丰富、成熟且经过数十年考验的生态系统,其中包含了个人难以掌握的相关知识。不是说没有合适的内容就很难构建出色的DApp,而是在实际操作上这将是不可能的。开发人员甚至在编写一行代码之前就已经筋疲力尽,而区块链的巨大潜力在任何将复杂的想法具体化的尝试中都受到抑制。所以打破可扩展内容的束缚也是在打破我们的束缚,释放区块链的全方位可能性和能量;否则无法兑现区块链的承诺。?

关于Cartesi?

Cartesi是一个多链第2层基础设施,它允许任何软件开发人员使用他们习惯的主流软件工具和语言创建智能合约,同时实现大规模的可扩展性和低成本。Cartesi结合了开创性的Virtualmachine、optimisticrollups和侧链(side-chains),彻底改变了开发人员创建区块链应用程序的方式。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-4:999ms