
如何优化Layer 1区块链以实
区块链的模块化问题已经讨论了很长时间。在分层架构中,Layer 1 区块链的理想品质是什么?
近期在加密货币领域流行的一种观点认为,要解决区块链 “不可能三角”,即同时实现高安全性、去中心化和可扩展性,最有效的方法是采用分层架构或者说模块化架构。
这种设计将交易执行、共识和数据可用性分离到不同的层中,从而在不牺牲去中心化和安全性的前提下实现更高的吞吐量。这种分层架构不仅很有发展前景,而且从目前的情况来看,它似乎是解决区块链 “不可能三角” 的唯一可行方法。
许多智能合约平台最初是单片区块链,不支持分层架构。然而,最近这些平台开始转向了模块化扩展之路。那么,问题来了:在日益模块化的行业中,Layer 1 区块链应该扮演什么样的角色?要解决区块链 “不可能三角”,在模块化区块链中,理想的 Layer 1 应该专注于什么?
分层架构要求根据功能和责任的不同,将区块链分解成专门的组件。如果说单片区块链试图成为各行各业的 "万金油",但最终却一无所长,那么在分层网络中,每一层都应该具备独特的专长。对于 Layer 1 来说,这个专长应该是什么呢?
首先,我们需要搞清楚区块链有什么用。
以太坊的成功推广了智能合约的概念,即 "在区块链上进行的通用计算"。然而,这个概念并非一直流行,要了解它是如何产生的,我们必须从比特币说起。
比特币区块链最初的设计目标很简单:将比特币从一个持有者转移给另一个持有者。然而,随着网络的运行,人们开始在其基础上构建其他应用,包括在交易中添加元数据以创造新的资产和协议。很快,瑞波(Ripple)和恒星(Stellar)等其他项目开始涌现,它们试图解决比特币可编程性差和可扩展性受限的问题,从而使比特币能够支持更多的操作,例如创建用户自定义的资产、搭建去中心化交易所以及在银行之间进行转账等。
然而,这些区块链项目只针对特定应用而设计,功能相当有限。在比特币基础上开发 Mastercoin 协议失去耐心之后,以太坊的创始人 Vitalik Buterin 开始着手创建一个单一的、公共的、“图灵完备” 的区块链,让它可以执行通用的可编程计算。2015 年底,以太坊应运而生,它允许任何人在以太坊区块链上创建智能合约。智能合约是一种与小型数据库相关联的通用程序,只能由拥有该数据库的程序进行修改。

在以太坊(或其他基于账户模型的智能合约平台)上创建智能合约时,需要设置数据库的初始状态,然后通过向合约发送交易来调用合约。根据合约的内部代码,它可以执行各种操作,包括触发其他合约、修改数据库或向调用者发送响应。这里需要注意的是,所有这些步骤都在网络中的每个节点上独立执行或计算,并且结果完全相同。
从表面上看,在区块链上通过智能合约进行各种计算似乎是一个非常好的主意。然而,当人们开始思考区块链究竟是什么以及要做什时,这个看法很快就变味了。
事实证明,计算本质上是不可预测的,这意味着不可能通过简单地查看程序来预知程序的执行结果,也无法确保程序部署后就能够完成执行。这种不确定性在区块链环境中是无法容忍的,因为每个节点都需要就每个区块达成一致。
为了解决这个问题,智能合约平台引入了交易费用或者说 “gas” 的概念。每笔区块链交易在执行之前都会事先说明发送者的 "gas"(通常以区块链的原生货币支付)有多少可以用于处理这笔交易。随着合约逐步在智能合约平台的虚拟机中执行,这些费用会逐渐耗尽。如果在执行完成之前就耗尽了 gas,数据库中的任何更改都会被撤销,这意味着区块链的状态不会发生永久性改变,而 gas 却被消耗掉了。通过这种机制,用户只能在愿意付费的范围内给网络带来负担。
以太坊等智能合约平台还面临另一个基本问题:并发性。并发性指的是系统在不影响结果的情况下,不按顺序或部分顺序处理不同任务的能力。就区块链而言,具有良好并发性的网络可以并行处理多笔交易,从而在可扩展性方面带来巨大优势。

然而,智能合约在并发性方面面临挑战,因为它们需要访问全局状态(存储在区块链上的其他合约信息)才能正常运行。这意味着,如果两个智能合约同时执行,并且它们都试图修改同一段数据,就会发生冲突。为了解决这个问题,智能合约平台必须按照特定的顺序逐个执行交易。这种串行执行(与并发执行相反)可确保所有节点以相同的方式和顺序正确处理所有交易,但同时也会大幅降低区块链的运行速度,因为网络无法同时处理多个交易(这也会延长新用户同步节点所需的时间)。
免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

和全球数字资产投资者交流讨论
扫码加入OKEx社群
industry-frontier