jjzjj

Layer3 是什么?一文揭晓 Layer1 到 Layer3 进化史

初晓链研究员 2024-03-13 原文

 什么是 Layer3?

 从 Layer1 开始的进化史 

当我们谈到区块链时,脑海中大多会浮现出:去中心化、高度分散、自由运作等关键词。而在技术开发者享受链上世界红利,用户尽情体验链上功能与服务时,或许没有思考过支撑这一切运作的幕后功臣—— Layer,所扮演的角色发挥的作用。

Layer,Web 弹层组件,作为实现区块链丰富便捷操作体验的设施,支持链上运作的性能和表现。

广为认知的公链如以太坊是构建在 Layer1 网络上,发展出的 Layer2 在近年也是热门叙述,而最近悄然兴起的 Layer3 又有何优势呢?本文将聚焦 Layer3,解析一部从 Layer1 到 Layer2 再到 Layer3 的进化史如何让我们参透 Layer3 诞生的必要性与实际意义。

 Layer1 的先导者是以以太坊为代表的一众区块链智能合约平台,它们以较高的去中心化程度、更高的交易吞吐量与以太坊竞争,构成了 Layer1 阵营的“排头兵”。但是如果没有以太坊的基础设施架构,这些公链的发展是困难的,因此许多 Layer1 采取了“ EVM 兼容”的策略,以实现对以太坊缺陷的补足与自我优势的发展。

然而,Layer1 如雨后春笋般地崛起带来了平台运作的挑战与压力。以太坊公链功能受限使其无法承载生态快速发展所带来的越来越多的执行和计算量,为在公链拥堵的环境下完成交易就不得不支付高昂的交易成本。

于是,打着降费和扩容旗号的 Layer2 横空出世,Layer2 的基本优化逻辑是进行公链功能的剥离和分层,把提供安全保障的共识机制留在 Layer1,将计算和执行下放至 Layer2,促使公链成为 Layer2 的结算层,相比跨链和分片等机制更容易实现和操作。Layer2 的应用普及,交易成本显著降低,可以说是一场非常成功的行业变革。

在保有去中心化模型的前提下,Layer2 最大限度地提高了运作效率,但在高度定制化的应用场景中仍显不足,既然区块链可以分层,那为什么不可以提供一个独立层进行服务呢?这样不就更加个性化和更易操作吗?——这就是 Layer3 的初始灵感。

 Layer3 如同 Layer2 嵌套在 Layer1上,它和 Layer2 之间也有着嵌套、递归的关系。通过递归证明的乘法效应,实现强大的可扩展性,同时这种扩容是呈几何级增长的,应用程序的设计者也能够更好地控制相关技术堆栈。通过自定义数据模型,加快区块链的技术周转率和功能运作效率。

 什么是 Layer3?

 从 Layer1 开始的进化史 

Layer3 存在的必要性在于实际可能碰触到的应用场景选择,我们可以探讨这样的一种情形:

开发一个 DApp,能够承继以太坊的用户和安全性,但又不想只做一个合约,怎么办?
如果排除了选择 Cosmos、Polkadot 或者 Alt-L1,那就只能选择 Rollups。但是开发一个 L2 Rollup 成本又异常高昂,这该如何解决呢?
—— 利用 L3 SDK 开发一个应用专用的 Rollup,即 Layer 3。简言之,正如上文所分析的 Layer2 适合解决降本扩容的问题,而 Layer 3 适合特定场景需求的应用。

 近期,以太坊创始人 Vitalik 谈到 Layer3 的现实应用时也归纳道:“L2 用于扩容,L3 用于可定制化扩容,这种定制化精准对接用户使用的特殊场景和开发者偏好的应用方向。同时 L3 具备弱信任扩展特性,将数据可用性留给受信任的第三方或委员会,进一步保障用户隐私与使用安全”。

进一步讲,如果 Layer3 能够实现大规模落地应用,那么隐私计算可以随时随地应用于任何交易。

我们都知道,区块链中数据是在加密状态下通过零知识证明、智能合约等方式实现数据之间的隐私计算,但这一需求是目前 Layer2 的基础设施所无法支持的。如果将隐私计算功能成功放置到 Layer3上,凭借其强大的扩展性或许能够使 Layer2 上的隐私保护交易成为可能。

再者,Layer2 被诟病的互操作性与可组合性的倒退可以由 Layer3 进行性能弥补。目前在 Layer1 和 Layer2、Layer2 之间使用的跨链通道运行效率低下且成本高昂。如果将层级间与同层间的组合操作平移至 Layer3 将会是一个不错的选择,并且更易于操控和实施.

 展望 Layer3:

 Web3 时代大有可为的角色 

可以看到从 Layer1 到 Layer2 再到 Layer3 的进化史上,对技术不断精进性能和增强体验需求促使 Layer 不断迭代和升级成进阶版本。并且这些升级的过程如电光火石般革新了我们对区块链的认知和看法,那么 Layer3 到底会不会只是昙花一现呢?

目前,支持 Layer3 生存发展的最大立足点在于其能够提供特定场景定制化的应用服务,Layer 3 可能会为以太坊或者说是区块链开辟一个新的空间,就像 Rollup 那样。

 Layer3 在应用场景服务的独到优势,极大改善了区块链行业长久以来难以突破的应用层面困境。高计算量、大容量承载、个性定制化等特点是 Layer3 成熟方案所带来的显性技术红利,也催促着一批又一批面向 Web3 时代的区块链应用加快研发进度。如链上游戏或成为第一批部署 Layer 3的项目。

不过,看到 Layer3 发展稳中向好态势的同时,也需要警惕当下诸多 Layer3 服务的内容与用户需求相悖的风险,如果这些偏离用户需求和特定场景目标的项目没有被优化或改善,那么 Layer3 也会成为浪费市场资源和发展空间的隐形杀手。

对区块链行业来说,分层模式是一个解决扩容的优秀方案,Layer3 只是一个崭新的起点。伴随技术的的精进和成熟,未来可能还有 Layer4、Layer5 等更多附加层与我们相遇,它们也有望成为 Web3 时代技术发展底层逻辑的重要一环。

有关Layer3 是什么?一文揭晓 Layer1 到 Layer3 进化史的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  6. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  7. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  8. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  9. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  10. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

随机推荐