从单体到模块化,现代区块链设计的权衡|重构精选知识
老雅痞
2023-01-19 15:33
订阅此专栏
收藏此文章

本文由尘埃科技整理编辑发布,请拖动至文章底部查看更多精彩内容


在过去的 10 年里,对区块链可扩展性的追求带来了几个雄心勃勃的提议,而问题的核心是一个基本的权衡:


  • 可承受性。有能力在网络上进行交易的用户群体。

  • 可验证性。具有实时检查交易完整性的硬件和带宽需求的用户群体。

许多现代区块链系统优先考虑的是可承受性和最大用户数,前提是网络运营商愿意投入所有的努力工作来帮助实现这一目标。这假设了运营商应该努力工作,将区块链系统推向中心化,因为它减少了作为运营商参与的人数。特别是对于需要运营商从经批准的制造商处购买硬件的网络来说。


这并不是说现代区块链的设计是错误的,但到目前为止,它们都未能获得与比特币或以太坊相同的吸引力。在我们看来,其中一个突出的原因是这种根本的权衡。这是比特币区块大小战争的核心,社区最终决定优先考虑谁能验证网络的完整性,而不是长期的可承受性。


与以太坊一样,人们希望通过闪电网络、侧链或 rollup 将可承受性推到另一层。以太坊社区、路线图和精神都源于相同的背景。唯一的区别是,以太坊有一个根深蒂固的社会契约,它使其社区能够在克服这一困境的过程中实际改变底层平台。



如果有一个与权益证明无关的要点,请记住,TPS 指标在去中心化网络的背景下是没有意义的。可扩展性不只是不惜一切代价提高吞吐量,相反,它应该被定义为以下几点:


在增加交易吞吐量的同时,仍然遵循相同的计算、带宽和存储要求来运行完全验证的节点。


我相信作为一个读者,这种讨论可能显得很奇怪。为什么我们要讨论区块链的可扩展性?而这与权益证明有什么关系?更重要的是,升级不会立即以有意义的方式增加交易吞吐量。这是因为升级在为支持未来的可扩展性解决方案奠定基础方面的成就未得到充分的重视。


从单体到模块化

让我们从区块大小之争快进几年。我们现在有更好的术语来说明这种困境如何影响我们称之为单体区块链或模块化设计的区块链系统设计。


单体区块链。它是试图找到一种适合所有硬件瓶颈的解决方案的区块链协议和实现,如如何执行交易,如何传播数据,以及如何存储数据库。网络运营商被迫执行所有艰难的工作,并运行整个单体实现 -- 最终限制谁可以参与共识协议。



模块化设计将资源重新定义为层。以太坊权益证明及其长期路线图设计背后的一个巨大力量是将每个资源定义为一个新的层。作为一个层,问题可以被分离并自成一体,以允许团队构建一个新的软件客户端来解决每个特定的问题。这被称为模块化区块链设计。


可以说,对模块化方法最重要的见解是它如何改变了共识参与者的看法。它不再让他们承担最大的工作量。相反,它专注于:


区块提议者能做的最小工作是什么?有没有可能把所有不必要的艰难工作推到其他地方?


答案是肯定的。


验证者作为轻客户端。设计区块链协议不再是为了最大化网络运营商的工作。事实上,恰恰相反,网络运营商 ( 验证者 ) 应该是轻客户端,他们只需检查在其他地方执行的艰难工作。



这就是我个人喜欢 Validator 这个名字的原因。他们唯一的工作是验证,达成协议 ( 共识 ),并最终保护以太坊数据库中记录的所有用户资产。从长远来看,它应该只需要商用硬件和良好的互联网连接就能参与进来。


此外,通过使验证者成为轻客户端,它最终可能为运行节点软件的利他性提供了一种解决方案。用户最终可以通过验证区块链并实时检查其完整性来获得报酬。此外,我们还可以检查他们是否真的在做这项工作。


两种区块链

合并代表了将以太坊规范推向模块化设计的第一个里程碑。


它将交易排序的全球共识和交易的最终执行分离开来。除此之外,它还引入了两条新的区块链:


  • 执行区块链。处理用户生成交易和智能合约执行的最初的以太坊区块链。它有时被称为 ETH1 区块链。

  • 共识区块链。专用于共识层的区块链。它负责决定执行区块链的规范链,并记录权益证明报告。它有时被称为信标区块链。


两种软件客户端。工作证明模块以及通常处理决定什么是规范链的任何代码都可以从原始以太坊节点软件中移除。整个执行环境保持不变,且现在被称为执行客户端。为了检索规范执行链,它会对处理共识层的软件客户端 (“共识客户端”) 进行投票,以获取新的区块。


由于执行区块链和客户端基本保持不变,我们的文章将重点介绍实现权益证明协议的共识层。


多客户端生态系统。已经出现了几个试图独立解决共识或执行问题的团队。当然,在这两种情况下,它们都必须遵循通用规范,但可以自由地试验执行细节。多客户端生态系统正在蓬勃发展 ( 而且资金惊人地充足 )。例如,共识客户端包括 Teku 和 Prysm,执行客户端包括 Geth、Erigon 和 Nethermind。


验证者被鼓励运行共识和执行客户端的不同组合。这是抵御共识层面错误,希望相同的错误不会在多个独立实现中复制的第一道防线。这种软件工程实践被称为 N-version 编程。


如果绝大多数验证者不遵循这个建议,那么它可能会导致世界末日的发生。


总结


敏锐的读者可能已经注意到了 “数据可用性、执行和结算”层的用例,但权益证明以太坊只是为共识层和执行层奠定了基础。


长期路线图将致力于:


  • 共识→数据可用性。所有验证者正在就数据的排序达成一致,而 proto-danksharding 有助于巩固这一角色。

  • rollup→执行层。rollup 承担了执行层的角色,

  • ETH1→结算层。原始以太坊区块链是保护所有用户自定义资产的信任基础。


这些命名可能会令人困惑,且依赖于以太坊协议的未来迭代。由于其实施和部署,我们现在只需遵循共识和执行层。

信息来源自decrypt,略有修改,作者Patrick McCorry

尘埃科技

看墙外更多信息,推特账号指路「Allrecode」


为 Web3 从业者建立内部链接,了解「重构研究院」

“商务合作”、“内容转载”请直接在后台回复关键字


更多 DAO、Web3、NFT、Metaverse

专业研究请关注尘埃科技旗下「fastdaily」


Web3 知识点、干货类内容

请关注尘埃科技旗下「Allrecode 重构」

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

相关Wiki
老雅痞
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开