独家解析比特币二层(Layer2)建设的基础知识体系

WEEX 唯客博客, 原文作者:付少庆,SatoshiLab,万物岛 BTC 工作室   比特币铭文的兴起,给比特币生态带来了新的生机,让更多的人开始重新关注比特币,也有人说是打开了比特币生态的潘多拉魔盒。在比特币生态众多技术发展中,比特币二层建设是重中之重。针对这个方向,我借鉴一些网络上的知名文章,和多位朋友的交流,以及我们团队在Web3产品设计与开发中所探索的经历,总结了一篇比特币二层的基础知识文章。这种方式便于总结和学习,也因为个体认知的局限性,希望能抛砖引玉,吸引更多人完善相关思路,让这个领域得到更好的发展。 区块链的世界是以比特币为开局,以比特币生态为终局。(水滴资本大山老师的一个总结,我个人很认同。)以太坊也是比特币的一种侧链技术探索。 在本文中我们会混合使用“二层建设”或“二层网络建设”,通常“二层网络建设”的词语相对狭义,二层建设是一个更广泛的概念。但为了适应业内通常讨论的一层网络,二层网络等常用说明,我们也会使用“二层网络建设”的概念,这两个词语在本文中是一个概念。 1.  常见二层 Layer 2 要完成的使命 为了理解比特币二层建设需要解决哪些基本问题。我们先从了解区块链系统的基础特性开始。 1.1  区块链的基础特性和基础需求 本文使用 Vitalik 提出的一个概念:区块链是一台“世界计算机”。我们从这个角度来理解区块链的多种特性会更清晰。在后面章节,我们还会依据计算机中的冯诺依曼结构来分析这个“世界计算机”发展的可能性。 我们先总结一些基础特性: 注释: 为了维护区块链这台“世界计算机”的正常运转而产生的需求称为内部需求; 为了满足使用这台“世界计算机”的用户的需求称为外部需求。 公开透明:这是区块链这台“世界计算机”的数据存储和执行指令特点,同时也是需要全球众多分布式节点共同参与计算的内部需求特性。这个特点正好满足了使用者对于数据的知情权,是这台“世界计算机”本身的内部协作要求和使用者的外部需求的共同结果。后面提到的隐私特性是满足使用者的外部需求,同时又不破坏这台“世界计算机”本身的协作要求。 去中心化:这个特性是这台“世界计算机”的架构特性,去中心化的程度和容错性,在理论上都是由拜占庭将军理论(协作者中有可能不诚实的情形,即不遵守协议的情形)在支持。非拜占庭将军系统从理论上都不是区块链系统,我们稍后会看到二层建设中的非区块链系统的两种情况。去中心化的程度是区块链安全性的一个重要指标,也是某些特性的基础。 安全性:安全性是由这台“世界计算机”的架构特性产生的内部需求和使用者需要的外部需求的共同组成。从微观层面安全性由密码学相关的技术来保证,从宏观层面上由架构的去中心化来保证,从而使得不会因为微观数据的伪造,或宏观架构的破坏而影响这台“世界计算机”的安全性。 计算能力:区块链这台世界计算机的一个主要功能是计算能力。衡量这个指标,我们一般用是否图灵完备来考察。一些链为了保持自己的主要特性,是故意设计成图灵不完备的。例如,比特币网络,中本聪不仅让其代码指令不图灵完备,而且在发展中还故意删减了一些指令集,从而保持其稳定性和安全性。所有的图灵完备技术都是为了扩展区块链的计算能力。从分层设计的思想看,简单的系统更适合做底层。 性能:在计算能力相同的情况下,性能是考察区块链这个世界计算机的另一项主要能力。一般都用 TPS,即每秒处理的事务数量来衡量的。 存储:区块链被描述为“世界计算机”,那么它一定有一个存储功能,就是将数据记录下来的能力。目前基本都在区块内存储,更专业的区块外的链上存储还在发展中。 隐私:隐私是“世界计算机”中的一个细分需求,即要求在计算和存储的过程中保持数据生产者和使用者的权限范围(我们把抗审查性也放在隐私部分)。这基本上是由使用者的外部需求驱动的。 还有个综合指标可扩展性,一般是指整个架构的可扩展性,这个特性影响多数的基础特性,在架构层面,系统的可扩展性是一个很重要的指标。其他还会有一些连接能力,或其他一些特定场景的能力,在这里不过多的讨论,遇到这些特殊的场景时,再详细分析。 在这些区块链的基础特性中,大都由不可能三角形在制约相互的发展关系。例如,DSS 猜想即去中心化(Decentralization,D)、安全性(Security,S)和可扩展性(Scalability,S)。如下图所示: 在分布式系统中,类似的不可能三角形是 CAP 原理,CAP 指的是在一个分布式系统中 Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性)三者不可兼得。区块链系统是带有拜占庭将军问题的分布式系统,所以也适用于 CAP 原理。 CAP 原理如下图所示: 1.2 二层建设的作用 二层建设要完成哪些角色?提供哪些功能呢?二层建设一定是扩展一层系统的不足,将不适合在一层系统上完成的事情,在二层建设上完成。 我们从上面总结的区块链特性可以有个初步的结论,一定是扩展这些基础能力:公开透明、去中心化、安全性、计算能力、性能(吞吐量)、存储、隐私等。除了这些技术角度的基础能力,还有一个很重要的经济学问题需要解决,就是降低成本,通常一层网络的执行事务的综合成本都比较高,需要使用二层网络降低这些成本。 总结成一句话就是为了增加容量、降低成本、定制特性三个维度的方案都是二层建设。对于定制特性,目前还不够明显,或者经常掩藏在前两个特性中,有一些费解。我们可以这样理解,一层网络的特性对于很多应用,需要的程度不同,可以在二层上面针对某些应用重新调整各种特性的实现度。 在二层建设中,区块链的基础能力会各有取舍,会降低一些特性,甚至丢弃一些特性,而换取某些特性的显著提高。例如:一些二层为了提高性能,会降低去中心化的程度,会降低安全性;一些二层为了增加吞吐量,如闪电网络,会改变系统的结构和结算的方式。还有一些会不降低基础特性的前提下,增强了某种特性,例如 RGB 的处理方式,明显增加了隐私性和抗审查性,但增加了技术实现难度。在后面的案例中,我们会看到同时降低或改变几种特性的二层建设。 其中降低成本应该是所有的二层建设的一个基本需求。(是否有不降低成本的二层?我还没有见到过。) 1.3 为什么要做分层设计? 分层设计是一种人类处理复杂系统的手段和方法论,通过将系统划分为多个层次结构并定义各层之间的关系和功能,以实现系统的模块化、可维护性和可扩展性,从而提高系统的设计效率和可靠性。 对于一项广泛和庞大的协议体系,使用分层会有明显的好处。这样做使人们容易理解,容易分工实现与容易分模块改进等优点。如计算机网络中的 ISO/OSI 的七层模型设计,但在具体的实现中,可以合并一些分层,例如,具体的网络协议 TCP/IP 是四层协议。如下图所示: 图 3-2 ISO 七层模型与 TCP/IP 的四层模型 具体说协议分层的优点: 1.各层次之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口所提供的服务。这样,整个问题的复杂程度就下降了。也就是说上一层的工作如何进行并不影响下一层的工作,这样我们在进行每一层的工作设计时只要保证接口不变,可以随意调整层内的工作方式。 2.灵活性好。当任何一层发生变化时,只要层间接口关系保持不变,则在这层以上或以下层均不受影响。当某一层出现技术革新或者某一层在工作中出现问题时不会连累到其它层的工作,排除问题时也只需要考虑这一层单独的问题即可。 3.结构上可分割开。各层都可以采用最合适的技术来实现。技术的发展往往不对称的,层次化的划分有效避免了木桶效应,不会因为某一方面技术的不完善而影响整体的工作效率。 4.易于实现和维护。这种结构使得实现和调试一个庞大又复杂的系统变得易于处理,因为整个的系统已经被分解为若干个相对独立的子系统。进行调试和维护时,可以对每一层进行单独的调试,避免了出现找不到、解决错问题的情况。 5.能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。标准化的好处就是可以随意替换其中的某一层,对于使用和研究来说十分方便。 分层模块化设计思想是技术领域对待一项功能庞大,需要多人协作,并不断改进工程项目的常见处理方法,并且是经过实践检验,行之有效的方法。 2.  比特币 Layer 2 的几种建设思路 我们以比特币的二层建设为案例,进行相关的分析。比特币的二层有三种显著的二层建设路线: (1)一种是基于链的扩展路线,和 EVM 的二层很类似,是区块链结构; (2)一种是基于分布式的路线,以闪电网络为代表,是分布式结构。 (3)还有一种是基于中心化系统的路线,以中心化索引为代表,是中心化的结构。 前两种方式都很有特点,已经有一些在使用的产品和探索中的产品。对于第一种方式,因为有了以太坊的蓬勃发展和其他比特币模仿链的探索,基于链的二层扩展相对更容易,可参考案例更多。第二种基于分布式的方式通常更有难度,发展也缓慢一些,以闪电网络为代表。第三种方式很有争议,因为看起来不像一个二层建设,但似乎又完成了二层建设的功能。 哪一种二层建设方案更好呢?我们用一个市场检验结果来作为衡量标注,哪个二层网络的总锁仓价值 TVL(Total Value Locked)高,那种方案就是最优方案。随着时间和技术的发展,这种最优方案会是一个变化的过程。 对于比特币的二层网络定义,只要依托于比特币网络,和比特币网络建立技术关联,一些特性又优于比特币的一层网络,都算比特币的二层网络建设。换句大山的话:只要消耗 BTC 作为 gas,以 BTC 为底层资产,扩展了比特币性能的系统都算二层建设。依据这个判断,我们应该会认可第三种二层网络建设,即中心化结构的二层建设。 比特币本身技术的发展,如修改 OP_RETURN、Taproot、Schnnor 签名、MAST、Tapscript 都应该为连接一层和二层的目的而设计,不应该使用这些技术过多的开发功能,因为一层网络再怎么扩展也不会有质的突破,必须要进行二层建设。但在没有更好用的比特币二层产品情况下,这些连接一层和二层的技术能力,在一段时间内会被过度的使用。 2.1 基于链的二层建设 早期的比特币模仿链做了多种探索,像“Colorcoin”(彩色币)、“CovertCoins”和“MasterCoin”;各种扩容的比特币模仿链,像 BCH(Bitcoin Cash),BSV(Bitcoin SV),BTG(Bitcoin Gold);各种侧链技术都是基于链的扩展建设案例,可以说是一种广义上的二层。 包括以太坊,也是一种基于比特币的改进探索。Vitalik 在说服其他项目团队无果的情况下,针对比特币的不完美:UTXO 的无账号系统,执行语言的非图灵完备,可扩展性差等问题,自己组建团队发布白皮书,开发新一代的区块链系统。以太坊的这种探索虽然不是比特币上直接的二层建设,但从广义上是一种基于链的建设探索。 以太坊对于比特币不完善的改进探索,以及以太坊上二层的发展与验证,给了比特币上基于链的二层网络发展的参考案例。各种的 Rollup 方案,跨链方案,消息通道技术,以及以太坊本身的分片技术(从处理复杂系统的分层思想来看,也许这种想在一个层次解决多个问题的思路是错误的),使得以太坊技术的生态蓬勃,使不少人一度认为公链的发展方向和未来已经确定,以太坊为代表的生态已经胜出,其实这也是基于链的二层建设相对成熟的一种表现。但基于链的二层建设只是二层建设的一种方式,它有自身的优缺点,还需要其他的二层技术来完善整个二层生态。 比特币中基于链的二层建设,大致包含两种典型的链类型,一种是兼容 EVM 的账号模型,一种是类比特币的 UTXO 模型。已有的案例(我们用广义二层定义)包括:像以太坊、Polygon、Bsc、Arbitrum 等都是 EVM 的账号模型,像 CKB(Nervos),Chia 都是 UTXO 模型。 在后面的章节,介绍已经运行的比特币二层项目中,会比较详细地介绍某些案例。 此外,已经在以太坊上成功的二层项目,也会加入到基于链的比特币二层建设中。对于这些以太坊上的二层项目方,改造成比特币上二层的工作量和挑战会更少一些。在以太坊的 rollup 成熟与模块化的发展和理论成果上,这种方式的二层建设会成为扩容讨论的主流,也是见效最快的方案。 这种改造会有多大的成功?还有待发展的检验。可以从这种基于链的二层建设的优缺点做一些初步的判断。 基于链的二层建设的优缺点有哪些? 这种方案的缺点是基于链的二层一般还会受限于区块链的限制,对于性能的提高有限,不是将系统变得更加中心化,就是降低区块产生间隔,增大区块容量,安全性上一般都会降低。于是就产生了二层上面的二层建设,也就是所谓的 Layer 3 或 Layer 4 。 优点是:这种方案保持了区块链的大多数基础特性,并且一般都解决了图灵完备的问题,交易费用也显著降低,在一定程度上扩展了一层网络的能力。而且这种方案的建设案例丰富,技术实现相对容易,已经有了不少的探索案例,上层应用的迁移也非常便捷,是一种更快的实现方式,相信这种方式会产生较多的二层网络。 大致判断,因为这种方式的扩展局限性,基于链结构的二层应该会存在众多项目,在每个垂直领域都可能存在一个或多个二层,每个项目要完成自己特色的二层建设,满足某些应用的需求。其价值也会由其上应用的数量和总价值来决定。 2.2 基于分布式系统的二层建设 在二层建设中,还有一些是基于分布式系统的建设。这种方案中,二层的结构和框架已经不是区块链的结构,而是一种基于 Channel 的分布式系统。闪电网络是一个典型的代表。 分布式系统由一组有限的进程和一组有限的通道 Channel 组成。分布式系统中为了传递消息,需要控制的数据、事件、通道,已经是一组比较复杂的问题。我们在这里所指的 Channel 是这上层的通道概念,如闪电网络中的支付通道,Nostr 中的消息通道,而不是分布式网络中的具体技术 Channel 的底层概念。 在分布式系统的二层建设中分为两类: (1)只完成价值传递,类似闪电网络; (2)既完成价值传递,又完成图灵完备的技术,如 RGB; 在基于分布式的二层建设方案中,因为是价值传递,有很多超越原有消息传递的难点,例如通道内的总价值容量,对事务的严谨性,不能二次消费等问题都超越消息传递的难度。所以基于分布式的二层建设发展没有基于链的二层建设发展快,成熟的案例不是很多。 如果要在这样的二层上完成图灵完备的计算,也就是在 Channel 上建立一个图灵完备的虚拟机系统,会更加有难度。像 RGB 协议,就是通过客户端验证,一次性密封,来实现在一个分布式系统上的图灵完备的计算。 比特币中基于分布式的分布式系统的二层建设,已有的案例包括:闪电网络,RGB,是否还有更著名的案例?如果按照广义二层建设的标准看,Nostr 是不是也属于 Channel 机制的分布式系统的二层建设?在整理以太坊资料时候,看到以太坊中文档中有使用 Channel 的案例:Connext,Raiden,Perun,可以作为深度研究者的探索方向。 在后面的章节,介绍已经运行的比特币二层项目中,会比较详细的介绍闪电网络和 RGB。 基于分布式的分布式系统的优缺点有哪些? 这种方案的优点一般是系统更加去中心化,二层网络中能够容纳无数的节点,隐私性和抗审查能力也更好,有无限的扩展性,从而在理论上性能变得极大。 这种方案的缺点是技术实现复杂,在庞大的分布式系统中的路由算法,价值拆分与封装算法都比较复杂。相对于信息传递,在价值传递方面还缺少很多工程实现经验和基础设施。这也是闪电网络一直被认为是发展缓慢的一个原因。 此外在这种系统中实现图灵完备的系统是一个非常大的挑战,也就是 Channel+计算,理论上肯定可以实现,但实践中还处在早期的实验阶段。RGB 是这种情况额一个典型代表。 基于分布式方式的二层建设一旦获得突破,将会极大的推动上层应用的发展。其庞大的分布式节点形成的去中心化能力,与图灵完备的代码执行能力都将会更好的支持下一代互联网应用,也就是大家都在说的“Mass Adoption”场景。 大致判断,基于 Channel 的分布式结构的二层一般只会存在几个较少的并行项目,有两个主要原因,一个是这种系统的其无限扩展能力,另一个是实现的技术难度大,所以这样的系统要求在设计和理念上更开放,能容纳更多的人和团队参与。并且基于这种二层基础设施应用开发团队还会推动这种二层的发展,例如,基于 RGB 的 BiHelix 项目。  2.3 基于中心化系统的二层建设 要不要这个分类?应该会有争议。 像 Ordinals 这样的中心化索引结构,或某些功能节点的索引器都是中心化结构的,它们也是一种二层建设思路。但这种建设思路会比较少的被认可,因为二层过于中心化,对一层网络的扩展非常有限。这种中心化结构的二层建设,其各种区块链的基础特性都要依赖于一层网络,二层只作为一些简单的计算和统计功能,二层有时像是一种可有可无的临时存在,随时可以被另一个二层替代,重要性好像没有那么高。但从 On-Chain 和 Off-Chain 的角度看,和凡是能够提高一层网络能力的角度看,这种中心化的结构也是一种二层扩展。 这种系统的案例除了 Ordinals,应该还有那些中心化的交易所。后面的案例中不介绍这种情况的项目。 基于中心化系统的二层建设的优缺点: 优点是中心化系统非常成熟,有无数的可用案例和优化方案,完全的图灵完备和卓越的性能。 缺点就是二层极度中心化,所有的区块链基础特性都要依赖于一层网络。 大致判断,基于中心化结构的二层应该会存在较少的项目,甚至是阶段性的存在。在基于链式结构和 Channel 的分布式结构成熟完善后,大多数中心化结构的二层建设会消亡,或者只会留下较少的特点场景的中心化二层。当前阶段,因为中心化系统很成熟,在能够写入基础链上数据的情况下,能够很好的满足 On-Chain 数据和 Off-Chain 计算的场景,是当前比特币生态初级应用的最容易实现模式,被大量使用。 2.4 更广义的二层概念以及更上层应用 从上面的二层建设的结构上来分析,有区块链式结构,分布式系统结构,中心化系统结构。这就是我们对系统结构的一种常见分类:Centralised,Decentralised,Distributed,从这个角度我们更容易理解每种类型的特点以及适用场景。三种二层类型都有其优缺点,在未来完整的比特币生态中根据不同的场景,三种类型应该都有分布。 此外区块链人群中经常讨论二层建设上面的 Layer 3 ,甚至是 Layer 4 ,是一种广义的二层建设。与 Gavin Wood 提出的Web3技术栈的 5 层结构中的 Layer 3 ,Layer 4 是完全不同的概念。Web3技术栈中的 Layer 3 ,Layer 4 是应用协议的分类方式。 Gavin Wood 的Web3技术栈的 5 层与链的广义二层建设的示意图 这些二层建设会对上层应用产生哪些影响?在拥有了区块链系统提供的基础特性:公开透明、去中心化、安全性、计算能力、吞吐量、存储、隐私等,上层应用会构建在这些二层的扩展上,并且会在这些二层上穿插交互。在基于区块链式结构的二层扩展,和分布式结构的二层扩展,中心化结构的二层扩展,以及部分的中心化应用,会产生真正的、大规模使用的Web3.0 应…

Previous:

Next: