
一文系统地理解比特币地址相关的知识体系
作者:付少庆,SatoshiLab,万物岛BTC工作室 1. 准备知识 1.1. 非对称加密知识与公私钥 1.2. 比特币中常用的哈希算法 1.3. 常见编码知识Base64、Base58、Bench32 1.4. 数字货币地址产生的基础原理 2. 比特币地址的相关协议 2.1. 三个核心协议(BIP-32、39、44)与相关协议 2.2. 地址格式协议与演进协议 3. 比特币的地址类型与锁定脚本类型 3.1. 支付到公钥哈希P2PK 3.2. 支付到公钥哈希P2PKH 3.3. 支付到多签P2MS 3.4. 支付到脚本哈希P2SH 3.5. 支付到包裹的见证公钥哈希P2SH-P2WPKH 3.6. 支付到包裹的见证脚本哈希P2SH-P2WSH 3.7. 支付到见证公钥哈希P2WPKH 3.8. 支付到见证脚本哈希P2WSH 3.9. 支付到Taproot地址 P2TR 4. 比特币交易中的派生路径地址与隐私保护 4.1. 比特币的交易变化历史 4.2. 常见的已知派生路径定义 4.3. 隐私保护与多地址使用 参考文献1.准备知识在完全理解各种数字货币钱包地址之前,我们需要一些基...

Summarizes the basic knowledge system of Bitcoin Layer2 construction(V2.0)
Author: Fu Shaoqing, SatoshiLab, ThreeDAO BTC Studio 1. Common missions of Layer 21.1. Basic characteristics and basic requirements of blockchain1.2. The role of layer2 construction1.3. Why do we need layered design?2. Several constructions for Bitcoin Layer22.1. Second-layer construction based on chains2.2. Second-layer construction based on distributed systems2.3. Second-layer construction based on centralized systems2.4. The second layer in a broader sense and the applications on the upper...

第三次隔离见证TAP的发展是否将比特币带入了2.0阶段
MiYou is a next-generation email Ecosystem built on blockchain and AI. The products include four major sectors: blockchain mailbox; marketin

一文系统地理解比特币地址相关的知识体系
作者:付少庆,SatoshiLab,万物岛BTC工作室 1. 准备知识 1.1. 非对称加密知识与公私钥 1.2. 比特币中常用的哈希算法 1.3. 常见编码知识Base64、Base58、Bench32 1.4. 数字货币地址产生的基础原理 2. 比特币地址的相关协议 2.1. 三个核心协议(BIP-32、39、44)与相关协议 2.2. 地址格式协议与演进协议 3. 比特币的地址类型与锁定脚本类型 3.1. 支付到公钥哈希P2PK 3.2. 支付到公钥哈希P2PKH 3.3. 支付到多签P2MS 3.4. 支付到脚本哈希P2SH 3.5. 支付到包裹的见证公钥哈希P2SH-P2WPKH 3.6. 支付到包裹的见证脚本哈希P2SH-P2WSH 3.7. 支付到见证公钥哈希P2WPKH 3.8. 支付到见证脚本哈希P2WSH 3.9. 支付到Taproot地址 P2TR 4. 比特币交易中的派生路径地址与隐私保护 4.1. 比特币的交易变化历史 4.2. 常见的已知派生路径定义 4.3. 隐私保护与多地址使用 参考文献1.准备知识在完全理解各种数字货币钱包地址之前,我们需要一些基...

Summarizes the basic knowledge system of Bitcoin Layer2 construction(V2.0)
Author: Fu Shaoqing, SatoshiLab, ThreeDAO BTC Studio 1. Common missions of Layer 21.1. Basic characteristics and basic requirements of blockchain1.2. The role of layer2 construction1.3. Why do we need layered design?2. Several constructions for Bitcoin Layer22.1. Second-layer construction based on chains2.2. Second-layer construction based on distributed systems2.3. Second-layer construction based on centralized systems2.4. The second layer in a broader sense and the applications on the upper...

第三次隔离见证TAP的发展是否将比特币带入了2.0阶段
MiYou is a next-generation email Ecosystem built on blockchain and AI. The products include four major sectors: blockchain mailbox; marketin

Subscribe to MiYou

Subscribe to MiYou
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers


作者:MiYou,SatoshiLab,万物岛BTC工作室
目录
前言
基础知识
1.1. 现实世界中的众多不可能三角形
1.2. 区块链的扩容与扩能
1.3. 当前的一些常见错误方式
比特币生态的二层结构与Web3.0的应用架构
2.1. 现实世界常见的三种系统结构与特点
2.2. Web3.0应用架构
2.3. 在应用架构中可见的三条建设路径
区块链的扩容(扩充性能—TPS)
3.1. 区块链本身结构上的探索—两个方向
3.2. 区块链的分片与同构分层设计
3.3. 分层设计中异构的二层建设
区块链的扩能(扩充功能-图灵完备)
4.1. 从非图灵完备到图灵完备
4.2. 非图灵完备系统上的扩能
4.3. 最艰难的路径—扩容之上的扩能(类RGB)
总结
参考文献说明
内容精要

正文
我看到一些朋友反馈,过长的文章或研报看起来很累。写完整篇文章后,我把这篇文章的精简结论给总结一下。喜欢读短文章的读者,直接阅读最后的内容精要。需要看完整分析过程的读者,可以从正文开始阅读。
区块链技术已经产生超过15年,各种区块链项目与应用案例逐渐丰富。随着比特币新技术的发展,尤其是比特币二层技术的逐渐清晰,使得很多问题的解决方案已经从单个系统中寻找答案,发展到了从架构层面来寻找答案。
在我逐渐学习和深入理解比特币知识的过程中,写了一些相关的文章,其中有3篇让我越来越触及一个话题,区块链的扩展性到底该怎么做?解决这个问题是本质思想是什么?开始的时候,我朦胧的感觉到在单个区块链上做性能与功能的扩展是错误的方向,但又找不到正确的答案。后来通过阅读相关的文章和自己写作的几篇文章,终于整理出一篇可以系统阐述这个主题的文章。
建议阅读的前三篇文章是: 《一文梳理比特币二层(Layer2)建设的基础知识体系》、
《从状态机的角度观察比特币二层,可以看到未来Web3.0应用的架构和建设路径》、
我个人认为,如果想深入理解这个话题,还需要了解区块链发展进化的整体过程。在整个进化过程中的一个重要主题是扩展性问题,即扩容与扩能。如,阅读以太坊的白皮书,能了解为了解决比特币的不完美,产生了以太坊的设计。以太坊的产生,实际上是所有区块链发展与探索技术的一个阶段产品,这个阶段性产品累积了彩色币,侧链技术,图灵完备区块链系统等探索成果。
阅读以太坊2.0的升级知识,对以太坊提出的分片设计会有进一步的理解。阅读以太坊(或类以太坊)的二层扩展,可以看到Rollup汇总技术的探索成果。到这个阶段,区块链的扩展基本上都局限在区块链技术本身的组合上。直到产生区块链与异构系统的组合才找到了完整的解决方案,也就是区块链系统+分布式系统,如比特币+闪电网络。区块链+中心化系统也能解决扩展性问题,但这种组合产生了很多的缺点,不被认为是终极方案。
为了避免产生太多争议,理解区块链的扩展性问题还需要有架构设计的思想与经验,需要有对大型分层协议设计的理解。我个人在互联网行业工作多年,从开始的单个应用程序,C/S结构程序,B/S结构程序,以及B/S的超大规模设计架构有一些的理解与经验。加上前几年对区块链技术的广泛和深入学习,从宏观与微观层面对区块链知识有了一定的理解,部分思想的逐渐变化过程在参考文献说明中阐述。如果从这个角度阅读本文内容,还存在争议和不正确内容,欢迎联系作者进行深度交流。
我想大部分的科学技术问题的解决,最终都体现某种哲学思想。在区块链的性能扩展方面(扩容与扩能),也体现了一个哲学思想:一个问题的解决方法不能在产生问题的层次上得到答案,但可以在更高的层次上解决这个问题。也许理解清楚这句话不是特别容易,我想到《禅与摩托车维修艺术》有一个比喻特别好:我们不能揪着自己的头发把自己提起来。这是告诉我们不能依靠系统本身解决自身的问题,一定需要借助外部系统来解决。
现实世界中存在众多的不可能三角形,这些都是在一个系统中或一个维度表现出来的问题,跨越这个系统或这个维度,都可以找到解决方法。使用异构系统的组合是我们解决区块链系统扩容与扩能的理论基础,可以在异构系统中找到符合要求的最佳路径。我们可以先介绍一些典型不可能三角形的案例。 注释:描述不可能现象为什么用三角形?可不可以是其他图形?我个人感觉其他多条件组成的图形肯定是有的,但只要三角形是处在临界值的一种典型情况,是一种可以被分析和解决的典型现象。(这方面谁要是有更好的理论案例,或分析过这种现象欢迎给出更好答案。)
在这里,我们只介绍三种和区块链系统有关系的三个不可能三角形。
(1)分布式系统中的不可能三角形CAP
在分布式系统中,类似的不可能三角形是CAP原理,CAP指的是在一个分布式系统中Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性)三者不可兼得。区块链系统是带有拜占庭将军问题的分布式系统,所以也适用于CAP原理。
CAP原理如下图所示:

(2)区块链系统中的不可能三角形DSS
在区块链的基础特性中,大都由不可能三角形在制约相互的发展关系。如,DSS猜想,即去中心化(Decentralization,D)、安全性(Security,S)和可扩展性(Scalability,S)。如下图所示:

后面的分析我们会看到就是通过异构系统,解决了DSS的不可能问题。
(3)经济学中不可能三角形——蒙代尔三角形
蒙代尔三角形也称国际金融三难困境或三元悖论,其理论基础正是蒙代尔—弗莱明模型。1999年,克鲁格曼明确提出这一原则。指一国不可能同时实现资本自由流动、汇率稳定与货币政策的独立性,最多只能实现两个目标,而放弃另外一个目标。
如图所示,一国必须选择三角形的一边,而放弃对角的制度特征。

以现实中的国家为例:
第一个选项是允许资本自由流动和实行独立的货币政策,就像美国。在这种情况下,不可能拥有固定汇率制度。相反,汇率必须浮动以平衡外汇市场。
第二个选项是允许资本自由流动和固定汇率,就像中国香港。在这种情况下,国家或地区就失去了实行独立的货币政策的能力。货币供给必须调整以把汇率保持在其前定的水平上。在某种意义上,当一国(或地区)将其通货钉住另一国(或地区)的通货时,它就是在采用他国(或地区)的货币政策。
第三个选项是限制国际资本流入和流出该国,就像中国内地。在这种情况下,利率不再由世界利率水平固定,而是由国内力量决定,与封闭经济的情况相似。这样,就可能既固定汇率又实行独立的货币政策。
这个蒙代尔三角形在区块链的世界是不是已经不存在?但如果一些项目寻求某种Token治理,会不会同样要思考相关问题?
区块链的扩容与扩能,是从比特币的诞生到今天都在一直发展和探索的事情。到今天都没有停止,只是从初级阶段发展到了中高级阶段。在这里我们先明确一下区块链的扩容与区块链的扩能的定义。
区块链的扩容是指增加区块链的交易容量,一般用TPS指标表示,即每秒的交易数量。
区块链的扩能是指增加区块链的计算能力,一般用非图灵完备和图灵完备来区分。在非图灵完备中,主要靠指令集的数量与能力来衡量。
在《导致比特币再次爆发的新技术总结》我们已经初步探讨了区块链的扩容与扩能。比特币的多种分叉案例,实际都是在单一区块链中扩容的案例,在比特币的二层设计与Web3.0应用架构中开始有了使用分层设计进行扩容的思想。在第3节会详细讲解常见的几种扩容方式。
在扩能的方面,看起来似乎比较简单,只有早期的区块链系统是非图灵完备的,如,比特币,莱特币等系统。这些早期的区块链系统也在不断通过使用OP_RETURN,Segwit,Taproot等技术在探索非图灵完备系统的内部扩能。从非图灵完备到图灵完备有很多的案例,以太坊为代表的区块链系统完全解决了单一区块链系统内的图灵完备问题。当前大部分区块链系统都是图灵完备的,这也是DAPP得到大规模发展的一个原因。在单一区块链系统内部,或跨区块链的同构系统,图灵完备已经不是问题,只是在解决成熟度与丰富应用。
但在Web3.0的应用架构中,解决异构系统中的图灵完备问题还是一个非常有挑战的事情,也就是正在发展中的类RGB系统。在第4节会详细分析常见的几种扩能方式。
在区块链的扩容与扩能方面,存在一些常见的错误方式。尤其是在扩容方面,错误更加明显一些。这些错误方式体现在几个方面:
(1)过度中心化:为了提高性能,有些区块链项目可能会牺牲去中心化的原则,采用更加中心化的处理方式,如更中心化的共识协议,中心化的硬件要求(极高的硬件配置和网络环境要求,使得事实上只有少数机构才能满足)。这样做虽然可以提高性能TPS,但也会降低区块链的其他特性,如,安全性,抗审查能力,透明度,隐私性等。
(2)增加区块大小:一些项目可能会试图增加区块的大小,以容纳更多的交易,从而提高性能TPS。在区块链的早期这种方式非常流行,这样做可能会导致区块链的数据存储和传输变得更加困难和昂贵,同时也会增加节点同步的时间和资源消耗,事实上也是一种渐进中心化的方式。
(3)忽视分层结构:很多项目可能会忽视区块链的分层结构,将所有的交易和计算都放在一个链上。这样做可能会导致链的过度拥挤和拥堵,降低整体性能。对于分片设计,我个人也不太认可,与分层相比,分片会有更多的技术难度和性能天花板。
这些常见的错误方式大一方面是因为技术发展不够成熟,产生的阶段性探索错误。还有一些是因为缺少大型应用的结构设计场景,而忽视从架构设计层面来解决问题。
为了在架构层面完整地理解区块链的扩容与扩能的应用场景,我们需要了解常见的三种系统结构和应用架构中的分层设计思想,从这个更宏观的层面我们才可以看到几种典型的建设路径。
关于分层协议设计,在本文中不再重复,读者可以参考《一文梳理比特币二层(Layer2)建设的基础知识体系》中为什么要做分层设计的介绍。但三种系统结构对于本文很重要,我们还需要做适当的引用和有针对性的介绍。
从参考文献中的文章中,我们可以看到几种典型的比特币二层建设的结构,有区块链式结构,分布式系统结构,中心化系统结构。这是我们对系统结构的一种常见分类:Centralised,Decentralised,Distributed,从这个角度我们更容易理解每种类型的特点以及适用场景。在Web3.0的应用架构中也可以看到这三种结构的组合应用。

为了更好的理解三种结构的特点,使用参考文献6.2中对区块链的基础特性与三种Layer2建设的特点总结。对比比特币一层和二层建设的一些基础特性,可以清楚的看到他们之间的差异,会容易理解进行扩容与扩能几种不同路径的特点。

通过上表,我们能够大致总结出区块链结构、分布式系统结构、中心化结构的特点。
(1)区块链结构 区块链结构的最大好处是解决信任相关问题(账本的作用),可以记录数据的变化过程(状态转换),于是数据和计算规则都变成了可信数据与可信计算。在肖风博士的演讲中有一句总结,区块链的第一性原理:新记账方法。这个特点在三种结构中有不可替代性。
区块链结构最大的问题是性能差,这有两个原因,一是区块链结构在于不能去除部分计算的场景,都是以全量计算的方式处理所有请求。二是区块链结构有明显的性能上限。为了扩大包含区块链结构的性能,需要多层建设,并且需要与异构的系统结合使用。
通过上表和区块链的第一性原理,只有区块链结构才能实现去信任账本功能,所以一个系统中要想实现去信任账本功能,必须要包含区块链系统。但大规模应用对性能的要求,使得区块链系统一定需要结合其他系统才能满足需求。
(2)分布式系统 在上表中,我们可以看到分布式系统的明显优点:去中心化、性能、可扩展性都是极好,只有在功能实现上有比较复杂的特点。此外,分布式系统不具有去信任账本的能力。
于是如果能够基于比特币的一层账本功能,在二层建设中使用分布式系统,理论上可以在保持区块链基础特性的同时,还能实现无限的性能扩展。这方面的案例以比特币+闪电网络为代表,这样组合的性能就是比特币的7TPS * ∞。
在分布式系统中实现图灵完备的原因是:在区块链系统中记录和运行智能合约的代价是很高的,因为是全局数据与全局代码。所以智能合约也适合分层理论,将智能合约的代码存储与执行局限在参与者之间。
(3)中心化系统 在上表中,我们可以看到中心化系统的好处是工程实现相对简单,这是由于内部的逻辑控制简单,计算简单。同样,中心化系统也不具有去信任账本的能力。中心化系统的优势不突出,如果是处理规模不大的数据,或者处理临时数据与临时计算会相对比较适合。
中心化系统的二层建设可以作为其他两种方式的补充或过渡性方案,或者是某些特定应用的场景。
(4)综合分析 在Web3.0的价值时代,通过上面的内容,我们可以看到单靠一个系统很难到达满足需求的效果。这也是比特币生态发展二层的一个实际需求。但这个三种系统怎样组合需要很多的探索,我们先从理论上分析,面对不同的需求,会有不同的组合结构。
首先,从协议分层的设计思想看,比特币网络确实不需要图灵完备,它是一个全球的信任机器,只需要保存这些需要全局信任的数据和数据变化的轨迹。根据这个最基本要求,比特币的指令集可以减少到最低。其他功能,则交给上层的扩展来完成。
一般的小型应用,只需要在单一的区块链上就可以完成。稍大一些的系统适合在区块链+区块链的二层建设上完成。但对于大规模的应用,优选的方案是使用区块链系统+分布式系统。
通过多种系统结构的组合,可以突破单一系统基础理论的限制。例如,区块链系统受限于 DSS不可能三角形的限制,但如果使用区块链系统+分布式系统,就可以解决去中心化D、安全性S、可扩展性S的不可能三角形。其他组合,区块链+中心化系统,也可以一定程度上解决扩展性的问题。分布式系统+中心化系统,可以解决分布式系统中CAP三角形的限制。
有了区块链系统后,使得我们可以处理价值应用,于是我们进入Web3.0时代。这个时期的应用是建立在区块链系统、分布式系统、中心化系统之上的一个复杂架构。其中区块链系统与其二层扩展完成价值的传递与处理,分布式系统和中心化系统完成信息的传递与处理,Web3.0的上层应用构建在信息与价值的处理系统之上。
如下图所示,

区块链被比喻为“世界计算机”,也导致了Web3.0的整体结构已经完全不同于Web2.0时代的系统结构,Web3.0的应用更多的是构架在这些全球范围内的共享基础设施之上,而不是像Web2.0那样,局限在某个公司或组织内部。相对于Web2.0的大规模应用,Web3.0的应用分类和功能差异不会太大,只是实现的机制产生了很大的变化。关于Web2.0的大规模应用的内容,可以参考《从状态机的角度观察比特币二层,可以看到未来Web3.0应用的架构和建设路径》文章中常见应用的介绍,或者阅读一些专业机构的互联网发展报告。
Web3.0的应用架构图具体内容描述如下:
(1)比特币主网与二层建设是所有价值的中心,大部分的价值都建立在这个网络之上。 比特币二层建设中,基于链的二层建设完成区块链的扩能与扩容,处理的都是全量账本数据。 比特币二层建设中,基于分布式系统的二层建设完成扩容处理,处理的都是局部相关数据,使用相关者共识,但最终计算结果需要落地到区块链系统。 比特币二层建设中,基于中心化系统的二层建设,直接为上层应用提供服务。 (2)类RGB系统和Web3.0的上层应用还会需要一些临时链或中间链,完成账本的结 算功能。还没有大规模出现是因为类RGB系统建设复杂,还没有到成熟期。 (3)除了比特币生态,还有其他区块链系统的生态,完成不同业务场景的需求。如 我们在二层基础架构的文章中所描述,基于链的二层会存在众多项目,对于非比特币生 态的链也同样适用。其他区块链系统和二层同样可以进入闪电网络与RGB,随着技术成 熟度上升这种情况就会逐渐出现。 (4)在Web3.0生态中,中心化系统也会有一席之地,只是不再像Web2.0中的比例那 样大。中心化系统有不少的优势。 在实际应用中,上图内部的连线会加复杂,有些不需要使用二层,而直接对一层网络操作,如RGB在使用BP协议时。其他区块链也可能会使用分布式系统,如以太坊上的雷电网络,雷电网络虽然不成熟,如果有需求场景,通过改造一些基础特性也会有使用场景。上图是对Web3.0应用架构的一个简化描述。
在这里我们先直接给出结果,后面再分析每种路径的特点。如下图所示,在应用架构中包含三种典型的建设路径。

(1)路径一:基于链的二层建设(主要完成扩能,部分实现扩容) 这条路径实现在理论上相对最容易,并且以太坊的二层建设已经提供了很多运行案例。因此在最终的Web3.0应用架构中,基于比特币一层网络+链二层的建设就是这种实现路径。如图中的路径1所示。
(2)路径二:区块链的强扩容(主要是依赖分布式系统的扩容) 这条路径是实现区块链系统扩容的最佳方式,即区块链+分布式系统,可以把交易容量TPS扩展到无限大。目前的比特币+闪电网络就是这条路径的代表。如图中的路径2所示。
(3)路径三:区块链的强扩能(在扩容的基础上扩能) 这条路径是最难的扩能方式,也就是在最强扩容方案的基础上,实现扩能。当前的RGB系统就是这种实现方式的案例,如图中的路径3所示。
区块链的扩容探索主要分为三种方式:第一种是在区块链本身结构上做的探索,第二种是采用了分片与分层的思想开始的同构扩容(都是区块链结构);第三种是分层设计中的异构扩容(区块链+分布式系统,区块链+中心化系统)
(1)直接扩大比特币的区块大小。 这是前期主要的探索方法(也有一些探索是微调出块时间,但出块时间的差异不大,保持在一个量级)。如下图的比特币分叉历史图所示。

(2)使用更加中心化的共识算法,降低出块时间是另一种典型扩容方式。 这种方式以DPOS,POSA,POA等改进的共识算法为主,通过降低去中心化的程度,使得区块链系统内部容易在短时间内达成共识,将出块的时间降到足够低,一般都在秒的级别。如,以太坊的出块时间大约为15秒左右,EOS的出块时间为0.5秒,BSC(Binance Smart Chain)的出块时间为3秒左右。
分片与分层设计是两种典型的性能扩展思路。
(1)分片是保持一个区块链系统,但在内部进行分片,使得总体的交易容量扩大。区块链分片技术的思想来源于传统数据库的分片。分片技术,有几大类:网络分片、交易分片、状态分片。它们的基本原理,都是“化整为零,分而治之”,用多个分片同时处理不同的交易,最后汇总到主链上。
区块链分片的典型案例有以太坊2.0,Zilliqa,Polkadot。区块链中的分片技术,是在2015年初次提出的。当时新加坡国立大学的一对师生,在国际顶尖安全会议CCS上发表了一篇论文《A Secure Sharding Protocol For Open Blockchains》,首次提出了区块链领域中的分片概念。后来,这对师生发展出了第一个分片技术的落地项目Zilliqa,它结合PBFT和PoW共识机制,有6个分片,3600个节点的测试网络,已经能够达到每秒处理2800次交易的速度,是当时公链中处理速度最快的。
分片设计存在的问题
分片中安全性和性能的平衡是一个值得重视的问题,Zilliqa经过多次实验,决定用600个节点构建一个分片,这是因为600个节点能够到达性能和安全的最佳平衡。而如果为了提高TPS一味减少节点,对于分片的去中心化和安全性都是很不利的。
分片技术依然存在着很多难题需要解决,尤其是状态分片,计算机技术人员尚未研究出好的解决方案。同时,分片的原理不仅仅在于如何分片,更在于如何对每个分片进行安全有效的治理,很多项目一味追求其中的一个方面,忽视了区块链的基本治理问题,这就破坏了区块链系统整体的性能指标。
(2)分层设计(基于链的分层) 分层设计包含广义分层与狭义的分层建设,那些侧链技术,其他替代链技术都可以认为是广义上的二层建设。在主链上进行直接的二层网络建设是最典型的分层设计方式。以太坊的二层网络建设是已经在运行的分层建设典型代表,比特币的二层网络建设将会完成整个区块链世界的分层建设。
基于链的二层分层建设同时完成扩容与扩能的作用,在扩容的层面不够显著,一般只提升一两个数量级,但在扩能方面一般都完成了非图灵完备到图灵完备的转变。如果主链已经是图灵完备,二层建设则更多的完成扩容,或者定向功能的扩能。
分层思想中异构的二层建设包含区块链+分布式系统,区块链+中心化系统。其中区块链+分布式系统对区块链的扩容有非常明显的性能提升。我们以比特币+闪电网络为例,理论上可以在保持区块链基础特性的同时,还能实现无限的性能扩展,这样组合的性能就是比特币的7TPS * ∞。
以太坊中的的分层设计也有类似的案例,以太坊的主网+雷电网络也是这种异构设计的思想,只是目前以太坊的雷电网络发展还不够顺利。
如果要实现大规模应用Mass adoption,只有采用这种结构的二层才能支持。以Visa支付为例,高峰期的性能需求为:65000TPS,这样的性能指标只有中心化系统和分布式系统才能支持,当前闪电网络每秒4000万笔的性能,而且闪电网络的性能在理论上没有上限。
这是一种最优的扩容方式,这种扩容方式可以做到无限的性能扩展,也就是我们在2.3中标识的路径2。
区块链的扩能探索主要分为三种方式:第一种是从非图灵完备到图灵完备的扩能,第二种是在非图灵完备系统内的扩能;第三种是应用架构设计中的异构扩能(先完成区块链+分布式系统的扩容,然后在这个扩容的系统上扩能。)
区块链时代的开端是以比特币的诞生为标志,在区块链发展初期,比特币和相关模仿链的计算能力都是非图灵完备的,这有技术发展不同阶段的原因,也有后期协议分层设计考虑的原因。但从非图灵完备到图灵完备是区块链计算能力发展的一个必经之路。
这种区块链计算能力的扩展,以太坊是典型代表。很多团队在以太坊之前就开始了相关的探索,但距离一个相对满意的解决方案产生还有距离和发展路径争议。Vitalik在说服其他项目团队无果的情况下,针对比特币的不完美:UTXO的无账号系统,执行语言的非图灵完备,可扩展性差等问题,自己组建团队发布白皮书,开发新一代的区块链系统。从白皮书的名称《A Next-Generation Smart Contract and Decentralized Application Platform》,就可以看出以太坊主要解决计算能力的问题,不然不可能产生一个DAPP的平台。
在一个区块链系统内部和基于链的二层建设上,从非图灵完备到图灵完备是相对容易的事情(与后面区块链+分布式系统上的图灵完备相比),这个阶段的建设已经基本完成,正在逐渐走向成熟。
这种扩能方式就是在2.3应用架构中标识的路径1,主要完成扩能作用,同时也完成了部分扩容的功能。这里说部分扩容,是指这种方式只能将TPS提升有限的程度,例如,以太坊上面的二层为例,基本就是提升到几百到数千笔交易。与区块链+分布式系统的扩容方案相比,这种链的二层方式扩容效果比较小。
图灵完备之上的计算能力的划分不再本文中讨论,像传统领域很多专用计算设备一样,也会发展出具有不同特点的专用计算区块链系统。
在《导致比特币再次爆发的新技术总结》中,因为协议分层设计的原因,我们可以看到一些区块链系统并不是一定要从一个非图灵完备的系统扩充到一个图灵完备的系统。那是不是像比特币这样的系统就不需要扩能呢?答案是否定的,这样的系统也需要扩能,而且导致比特币再次爆发的新技术几乎都是这种扩能展现出来的成果。
这种扩能首先表现在使用基础指令进行的探索,如OP_RETURN上进行的初步探索,这导致了为了扩能而需要推动扩容技术的产生,如Segwit、Taproot的产生。随着空间的增加,扩能技术进一步发展,于是产生了Schnorr、MAST、Taproot Scripts这些技术元素。进而产生了基于这些技术产生的产品,如,Ordinals、Inscriptions、BRC20以及其他协议。随着这些产品的发展和二层建设对于主网能力的要求,非图灵完备系统上的扩能会进一步地发展。
在4.1节中我们讨论了基于链的二层建设既完成了扩能,又完成了部分的扩容。在3.3节中区块链+分布式系统的结构提供了最佳的扩容方案,如果在这种最佳扩容方案的基础上再完成扩能,是不是一种最佳的扩能方案?目前的RGB就是在探索这种终极的扩能方式,因为这种方式的复杂性和难度,导致RGB系统当前还不够成熟,发展也比较缓慢。
RGB基于LNP(闪电网络协议)和BP(比特币协议),如果是基于BP直接进行RGB的扩能,还不是最强的扩能方案,是直接扩展了比特币的图灵完备功能,属于第二层,这种方式对性能的扩展有限。如果是基于LNP进行RGB运算,这种方式既能扩展性能又能扩展图灵完备的计算能力,是最强的扩能方案。所以这种实现方式中一些概念看起来与区块链系统有很大的不同,如客户端验证(client-side validation)和一次性密封(single-use-seals),是因为区块链+分布式这种特殊的结构所造成的。
RGB 的设计目的是在区块链上运行可扩展、稳健和私密的智能合约,以实现一切可能性。通过RGB开发者可以执行如代币发行、NFT铸造、DeFi、DAO等传统区块链领域的应用,以及未来更多更复杂的多类别智能合约。我猜测这种方式也会是Web3.0大规模应用中的主要技术支撑。
通过以上内容,我们将几种建设路径总结到一个表格中,便于对比与分析。

我们在2.2节中已经介绍了Web3.0的应用具有构架在这些全球范围内的共享基础设施之上的特点,这是一种大型系统的架构设计参考。对于小的系统,或相对封闭的应用,完全可以采取一些折中方案。而且在很多案例中区块链+中心化系统组合是一种不错的方式,既能达到所要求的效果,又能降低实现的复杂度,甚至还可以尽可能的保持区块链的一些基础特性。
写做完本文我内心还是有不少忐忑,以我多年学习区块链知识的经验,在这种非常有创新性的领域,很多分析和结论都还具有片面性,需要这个创新领域成熟后再总结才有可能更准确更完善。鉴于这个原因,这篇关于扩容与扩能的分析与结论,应该还是不够完善,或者有缺失的知识体系,欢迎感兴趣的朋友一起完善。
参考文献说明
1.《区块链知识-技术普及版》,写作这本书的时候,让我理解了区块链的微观知识组成,知道了区块链系统内部的主要结构和特点。
2.《图灵区块链》,写作这本图书的时候,让我能够从冯诺依曼架构的层面看待整个区块链系统,以及每个组成部分的发展史,同时开始感受到和分布式系统的关系。
3.《精通以太坊-系统篇》,2021年写作完成了这本图书初稿,未出版。让我了解了以太坊产生的前因后果,以及很多区块链技术发展与应用案例。
4.《Web3.0:构建元宇宙的数字未来》,2022年写作完这本图书的时候,让我理解了Gavin Wood的Web3技术栈设计思想,以及对Web3.0应用的初步思考,参考了业内专家Preethi Kasireddy的初步架构设计图,但还没有形成Web3.0的应用架构应该是什么的结论,直到写作了《从状态机的角度观察比特币二层,可以看到未来Web3.0应用的架构和建设路径》。
5.《肖风香港演讲全文:Web3的1995 时刻、区块链的第一性原理与颠覆性创新》,这篇文章让我从几次革命发展史的角度来理解区块链,也帮我印证了我写作的前几篇文章的一些概念,其中最重要的是区块链的第一性原理:新记账方法。
6.其他具体技术的参考文献,在我写作的其他文章中列出。
(1)《一文梳理比特币二层(Layer2)建设的基础知识体系V1.5版本》
(2)《从状态机的角度观察比特币二层,可以看到未来Web3.0应用的架构和建设路径》
(3)《比特币价格过高会促生一个新的替代链产生》
(4)《导致比特币再次爆发的新技术总结》
(5)《从中本聪的消失与比特币生态的分层建设再看去中心化》
写作本文是我前几篇文章写作的思路延续,基本上把这一阶段我对比特币生态技术的主要思考都整理了。稍后需要把扩容与扩能的知识整理到二层建设的基础知识体系中。
在区块链的生态发展中,需要扩容与扩能两项重要任务。作者从比特币Layer2的系统架构分析与Web3.0的应用架构中总结出三条建设路径:
(1)路径一:基于链的二层建设(主要完成扩能,部分实现扩容)
这条路径实现在理论上相对最容易,并且以太坊的二层建设已经提供了很多运行案例。因此在最终的Web3.0应用架构中,基于比特币一层网络+链二层的建设就是这种实现路径。如图中的路径1所示。
(2)路径二:区块链的强扩容(主要是依赖分布式系统的扩容)
这条路径是实现区块链系统扩容的最佳方式,即区块链+分布式系统,可以把交易容量TPS扩展到无限大。目前的比特币+闪电网络就是这条路径的代表。如图中的路径2所示。
(3)路径三:区块链的强扩能(在扩容的基础上扩能)
这条路径是最难的扩能方式,也就是在最强扩容方案的基础上,实现扩能。当前的RGB系统就是这种实现方式的案例,如图中的路径3所示。

作者:MiYou,SatoshiLab,万物岛BTC工作室
目录
前言
基础知识
1.1. 现实世界中的众多不可能三角形
1.2. 区块链的扩容与扩能
1.3. 当前的一些常见错误方式
比特币生态的二层结构与Web3.0的应用架构
2.1. 现实世界常见的三种系统结构与特点
2.2. Web3.0应用架构
2.3. 在应用架构中可见的三条建设路径
区块链的扩容(扩充性能—TPS)
3.1. 区块链本身结构上的探索—两个方向
3.2. 区块链的分片与同构分层设计
3.3. 分层设计中异构的二层建设
区块链的扩能(扩充功能-图灵完备)
4.1. 从非图灵完备到图灵完备
4.2. 非图灵完备系统上的扩能
4.3. 最艰难的路径—扩容之上的扩能(类RGB)
总结
参考文献说明
内容精要

正文
我看到一些朋友反馈,过长的文章或研报看起来很累。写完整篇文章后,我把这篇文章的精简结论给总结一下。喜欢读短文章的读者,直接阅读最后的内容精要。需要看完整分析过程的读者,可以从正文开始阅读。
区块链技术已经产生超过15年,各种区块链项目与应用案例逐渐丰富。随着比特币新技术的发展,尤其是比特币二层技术的逐渐清晰,使得很多问题的解决方案已经从单个系统中寻找答案,发展到了从架构层面来寻找答案。
在我逐渐学习和深入理解比特币知识的过程中,写了一些相关的文章,其中有3篇让我越来越触及一个话题,区块链的扩展性到底该怎么做?解决这个问题是本质思想是什么?开始的时候,我朦胧的感觉到在单个区块链上做性能与功能的扩展是错误的方向,但又找不到正确的答案。后来通过阅读相关的文章和自己写作的几篇文章,终于整理出一篇可以系统阐述这个主题的文章。
建议阅读的前三篇文章是: 《一文梳理比特币二层(Layer2)建设的基础知识体系》、
《从状态机的角度观察比特币二层,可以看到未来Web3.0应用的架构和建设路径》、
我个人认为,如果想深入理解这个话题,还需要了解区块链发展进化的整体过程。在整个进化过程中的一个重要主题是扩展性问题,即扩容与扩能。如,阅读以太坊的白皮书,能了解为了解决比特币的不完美,产生了以太坊的设计。以太坊的产生,实际上是所有区块链发展与探索技术的一个阶段产品,这个阶段性产品累积了彩色币,侧链技术,图灵完备区块链系统等探索成果。
阅读以太坊2.0的升级知识,对以太坊提出的分片设计会有进一步的理解。阅读以太坊(或类以太坊)的二层扩展,可以看到Rollup汇总技术的探索成果。到这个阶段,区块链的扩展基本上都局限在区块链技术本身的组合上。直到产生区块链与异构系统的组合才找到了完整的解决方案,也就是区块链系统+分布式系统,如比特币+闪电网络。区块链+中心化系统也能解决扩展性问题,但这种组合产生了很多的缺点,不被认为是终极方案。
为了避免产生太多争议,理解区块链的扩展性问题还需要有架构设计的思想与经验,需要有对大型分层协议设计的理解。我个人在互联网行业工作多年,从开始的单个应用程序,C/S结构程序,B/S结构程序,以及B/S的超大规模设计架构有一些的理解与经验。加上前几年对区块链技术的广泛和深入学习,从宏观与微观层面对区块链知识有了一定的理解,部分思想的逐渐变化过程在参考文献说明中阐述。如果从这个角度阅读本文内容,还存在争议和不正确内容,欢迎联系作者进行深度交流。
我想大部分的科学技术问题的解决,最终都体现某种哲学思想。在区块链的性能扩展方面(扩容与扩能),也体现了一个哲学思想:一个问题的解决方法不能在产生问题的层次上得到答案,但可以在更高的层次上解决这个问题。也许理解清楚这句话不是特别容易,我想到《禅与摩托车维修艺术》有一个比喻特别好:我们不能揪着自己的头发把自己提起来。这是告诉我们不能依靠系统本身解决自身的问题,一定需要借助外部系统来解决。
现实世界中存在众多的不可能三角形,这些都是在一个系统中或一个维度表现出来的问题,跨越这个系统或这个维度,都可以找到解决方法。使用异构系统的组合是我们解决区块链系统扩容与扩能的理论基础,可以在异构系统中找到符合要求的最佳路径。我们可以先介绍一些典型不可能三角形的案例。 注释:描述不可能现象为什么用三角形?可不可以是其他图形?我个人感觉其他多条件组成的图形肯定是有的,但只要三角形是处在临界值的一种典型情况,是一种可以被分析和解决的典型现象。(这方面谁要是有更好的理论案例,或分析过这种现象欢迎给出更好答案。)
在这里,我们只介绍三种和区块链系统有关系的三个不可能三角形。
(1)分布式系统中的不可能三角形CAP
在分布式系统中,类似的不可能三角形是CAP原理,CAP指的是在一个分布式系统中Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性)三者不可兼得。区块链系统是带有拜占庭将军问题的分布式系统,所以也适用于CAP原理。
CAP原理如下图所示:

(2)区块链系统中的不可能三角形DSS
在区块链的基础特性中,大都由不可能三角形在制约相互的发展关系。如,DSS猜想,即去中心化(Decentralization,D)、安全性(Security,S)和可扩展性(Scalability,S)。如下图所示:

后面的分析我们会看到就是通过异构系统,解决了DSS的不可能问题。
(3)经济学中不可能三角形——蒙代尔三角形
蒙代尔三角形也称国际金融三难困境或三元悖论,其理论基础正是蒙代尔—弗莱明模型。1999年,克鲁格曼明确提出这一原则。指一国不可能同时实现资本自由流动、汇率稳定与货币政策的独立性,最多只能实现两个目标,而放弃另外一个目标。
如图所示,一国必须选择三角形的一边,而放弃对角的制度特征。

以现实中的国家为例:
第一个选项是允许资本自由流动和实行独立的货币政策,就像美国。在这种情况下,不可能拥有固定汇率制度。相反,汇率必须浮动以平衡外汇市场。
第二个选项是允许资本自由流动和固定汇率,就像中国香港。在这种情况下,国家或地区就失去了实行独立的货币政策的能力。货币供给必须调整以把汇率保持在其前定的水平上。在某种意义上,当一国(或地区)将其通货钉住另一国(或地区)的通货时,它就是在采用他国(或地区)的货币政策。
第三个选项是限制国际资本流入和流出该国,就像中国内地。在这种情况下,利率不再由世界利率水平固定,而是由国内力量决定,与封闭经济的情况相似。这样,就可能既固定汇率又实行独立的货币政策。
这个蒙代尔三角形在区块链的世界是不是已经不存在?但如果一些项目寻求某种Token治理,会不会同样要思考相关问题?
区块链的扩容与扩能,是从比特币的诞生到今天都在一直发展和探索的事情。到今天都没有停止,只是从初级阶段发展到了中高级阶段。在这里我们先明确一下区块链的扩容与区块链的扩能的定义。
区块链的扩容是指增加区块链的交易容量,一般用TPS指标表示,即每秒的交易数量。
区块链的扩能是指增加区块链的计算能力,一般用非图灵完备和图灵完备来区分。在非图灵完备中,主要靠指令集的数量与能力来衡量。
在《导致比特币再次爆发的新技术总结》我们已经初步探讨了区块链的扩容与扩能。比特币的多种分叉案例,实际都是在单一区块链中扩容的案例,在比特币的二层设计与Web3.0应用架构中开始有了使用分层设计进行扩容的思想。在第3节会详细讲解常见的几种扩容方式。
在扩能的方面,看起来似乎比较简单,只有早期的区块链系统是非图灵完备的,如,比特币,莱特币等系统。这些早期的区块链系统也在不断通过使用OP_RETURN,Segwit,Taproot等技术在探索非图灵完备系统的内部扩能。从非图灵完备到图灵完备有很多的案例,以太坊为代表的区块链系统完全解决了单一区块链系统内的图灵完备问题。当前大部分区块链系统都是图灵完备的,这也是DAPP得到大规模发展的一个原因。在单一区块链系统内部,或跨区块链的同构系统,图灵完备已经不是问题,只是在解决成熟度与丰富应用。
但在Web3.0的应用架构中,解决异构系统中的图灵完备问题还是一个非常有挑战的事情,也就是正在发展中的类RGB系统。在第4节会详细分析常见的几种扩能方式。
在区块链的扩容与扩能方面,存在一些常见的错误方式。尤其是在扩容方面,错误更加明显一些。这些错误方式体现在几个方面:
(1)过度中心化:为了提高性能,有些区块链项目可能会牺牲去中心化的原则,采用更加中心化的处理方式,如更中心化的共识协议,中心化的硬件要求(极高的硬件配置和网络环境要求,使得事实上只有少数机构才能满足)。这样做虽然可以提高性能TPS,但也会降低区块链的其他特性,如,安全性,抗审查能力,透明度,隐私性等。
(2)增加区块大小:一些项目可能会试图增加区块的大小,以容纳更多的交易,从而提高性能TPS。在区块链的早期这种方式非常流行,这样做可能会导致区块链的数据存储和传输变得更加困难和昂贵,同时也会增加节点同步的时间和资源消耗,事实上也是一种渐进中心化的方式。
(3)忽视分层结构:很多项目可能会忽视区块链的分层结构,将所有的交易和计算都放在一个链上。这样做可能会导致链的过度拥挤和拥堵,降低整体性能。对于分片设计,我个人也不太认可,与分层相比,分片会有更多的技术难度和性能天花板。
这些常见的错误方式大一方面是因为技术发展不够成熟,产生的阶段性探索错误。还有一些是因为缺少大型应用的结构设计场景,而忽视从架构设计层面来解决问题。
为了在架构层面完整地理解区块链的扩容与扩能的应用场景,我们需要了解常见的三种系统结构和应用架构中的分层设计思想,从这个更宏观的层面我们才可以看到几种典型的建设路径。
关于分层协议设计,在本文中不再重复,读者可以参考《一文梳理比特币二层(Layer2)建设的基础知识体系》中为什么要做分层设计的介绍。但三种系统结构对于本文很重要,我们还需要做适当的引用和有针对性的介绍。
从参考文献中的文章中,我们可以看到几种典型的比特币二层建设的结构,有区块链式结构,分布式系统结构,中心化系统结构。这是我们对系统结构的一种常见分类:Centralised,Decentralised,Distributed,从这个角度我们更容易理解每种类型的特点以及适用场景。在Web3.0的应用架构中也可以看到这三种结构的组合应用。

为了更好的理解三种结构的特点,使用参考文献6.2中对区块链的基础特性与三种Layer2建设的特点总结。对比比特币一层和二层建设的一些基础特性,可以清楚的看到他们之间的差异,会容易理解进行扩容与扩能几种不同路径的特点。

通过上表,我们能够大致总结出区块链结构、分布式系统结构、中心化结构的特点。
(1)区块链结构 区块链结构的最大好处是解决信任相关问题(账本的作用),可以记录数据的变化过程(状态转换),于是数据和计算规则都变成了可信数据与可信计算。在肖风博士的演讲中有一句总结,区块链的第一性原理:新记账方法。这个特点在三种结构中有不可替代性。
区块链结构最大的问题是性能差,这有两个原因,一是区块链结构在于不能去除部分计算的场景,都是以全量计算的方式处理所有请求。二是区块链结构有明显的性能上限。为了扩大包含区块链结构的性能,需要多层建设,并且需要与异构的系统结合使用。
通过上表和区块链的第一性原理,只有区块链结构才能实现去信任账本功能,所以一个系统中要想实现去信任账本功能,必须要包含区块链系统。但大规模应用对性能的要求,使得区块链系统一定需要结合其他系统才能满足需求。
(2)分布式系统 在上表中,我们可以看到分布式系统的明显优点:去中心化、性能、可扩展性都是极好,只有在功能实现上有比较复杂的特点。此外,分布式系统不具有去信任账本的能力。
于是如果能够基于比特币的一层账本功能,在二层建设中使用分布式系统,理论上可以在保持区块链基础特性的同时,还能实现无限的性能扩展。这方面的案例以比特币+闪电网络为代表,这样组合的性能就是比特币的7TPS * ∞。
在分布式系统中实现图灵完备的原因是:在区块链系统中记录和运行智能合约的代价是很高的,因为是全局数据与全局代码。所以智能合约也适合分层理论,将智能合约的代码存储与执行局限在参与者之间。
(3)中心化系统 在上表中,我们可以看到中心化系统的好处是工程实现相对简单,这是由于内部的逻辑控制简单,计算简单。同样,中心化系统也不具有去信任账本的能力。中心化系统的优势不突出,如果是处理规模不大的数据,或者处理临时数据与临时计算会相对比较适合。
中心化系统的二层建设可以作为其他两种方式的补充或过渡性方案,或者是某些特定应用的场景。
(4)综合分析 在Web3.0的价值时代,通过上面的内容,我们可以看到单靠一个系统很难到达满足需求的效果。这也是比特币生态发展二层的一个实际需求。但这个三种系统怎样组合需要很多的探索,我们先从理论上分析,面对不同的需求,会有不同的组合结构。
首先,从协议分层的设计思想看,比特币网络确实不需要图灵完备,它是一个全球的信任机器,只需要保存这些需要全局信任的数据和数据变化的轨迹。根据这个最基本要求,比特币的指令集可以减少到最低。其他功能,则交给上层的扩展来完成。
一般的小型应用,只需要在单一的区块链上就可以完成。稍大一些的系统适合在区块链+区块链的二层建设上完成。但对于大规模的应用,优选的方案是使用区块链系统+分布式系统。
通过多种系统结构的组合,可以突破单一系统基础理论的限制。例如,区块链系统受限于 DSS不可能三角形的限制,但如果使用区块链系统+分布式系统,就可以解决去中心化D、安全性S、可扩展性S的不可能三角形。其他组合,区块链+中心化系统,也可以一定程度上解决扩展性的问题。分布式系统+中心化系统,可以解决分布式系统中CAP三角形的限制。
有了区块链系统后,使得我们可以处理价值应用,于是我们进入Web3.0时代。这个时期的应用是建立在区块链系统、分布式系统、中心化系统之上的一个复杂架构。其中区块链系统与其二层扩展完成价值的传递与处理,分布式系统和中心化系统完成信息的传递与处理,Web3.0的上层应用构建在信息与价值的处理系统之上。
如下图所示,

区块链被比喻为“世界计算机”,也导致了Web3.0的整体结构已经完全不同于Web2.0时代的系统结构,Web3.0的应用更多的是构架在这些全球范围内的共享基础设施之上,而不是像Web2.0那样,局限在某个公司或组织内部。相对于Web2.0的大规模应用,Web3.0的应用分类和功能差异不会太大,只是实现的机制产生了很大的变化。关于Web2.0的大规模应用的内容,可以参考《从状态机的角度观察比特币二层,可以看到未来Web3.0应用的架构和建设路径》文章中常见应用的介绍,或者阅读一些专业机构的互联网发展报告。
Web3.0的应用架构图具体内容描述如下:
(1)比特币主网与二层建设是所有价值的中心,大部分的价值都建立在这个网络之上。 比特币二层建设中,基于链的二层建设完成区块链的扩能与扩容,处理的都是全量账本数据。 比特币二层建设中,基于分布式系统的二层建设完成扩容处理,处理的都是局部相关数据,使用相关者共识,但最终计算结果需要落地到区块链系统。 比特币二层建设中,基于中心化系统的二层建设,直接为上层应用提供服务。 (2)类RGB系统和Web3.0的上层应用还会需要一些临时链或中间链,完成账本的结 算功能。还没有大规模出现是因为类RGB系统建设复杂,还没有到成熟期。 (3)除了比特币生态,还有其他区块链系统的生态,完成不同业务场景的需求。如 我们在二层基础架构的文章中所描述,基于链的二层会存在众多项目,对于非比特币生 态的链也同样适用。其他区块链系统和二层同样可以进入闪电网络与RGB,随着技术成 熟度上升这种情况就会逐渐出现。 (4)在Web3.0生态中,中心化系统也会有一席之地,只是不再像Web2.0中的比例那 样大。中心化系统有不少的优势。 在实际应用中,上图内部的连线会加复杂,有些不需要使用二层,而直接对一层网络操作,如RGB在使用BP协议时。其他区块链也可能会使用分布式系统,如以太坊上的雷电网络,雷电网络虽然不成熟,如果有需求场景,通过改造一些基础特性也会有使用场景。上图是对Web3.0应用架构的一个简化描述。
在这里我们先直接给出结果,后面再分析每种路径的特点。如下图所示,在应用架构中包含三种典型的建设路径。

(1)路径一:基于链的二层建设(主要完成扩能,部分实现扩容) 这条路径实现在理论上相对最容易,并且以太坊的二层建设已经提供了很多运行案例。因此在最终的Web3.0应用架构中,基于比特币一层网络+链二层的建设就是这种实现路径。如图中的路径1所示。
(2)路径二:区块链的强扩容(主要是依赖分布式系统的扩容) 这条路径是实现区块链系统扩容的最佳方式,即区块链+分布式系统,可以把交易容量TPS扩展到无限大。目前的比特币+闪电网络就是这条路径的代表。如图中的路径2所示。
(3)路径三:区块链的强扩能(在扩容的基础上扩能) 这条路径是最难的扩能方式,也就是在最强扩容方案的基础上,实现扩能。当前的RGB系统就是这种实现方式的案例,如图中的路径3所示。
区块链的扩容探索主要分为三种方式:第一种是在区块链本身结构上做的探索,第二种是采用了分片与分层的思想开始的同构扩容(都是区块链结构);第三种是分层设计中的异构扩容(区块链+分布式系统,区块链+中心化系统)
(1)直接扩大比特币的区块大小。 这是前期主要的探索方法(也有一些探索是微调出块时间,但出块时间的差异不大,保持在一个量级)。如下图的比特币分叉历史图所示。

(2)使用更加中心化的共识算法,降低出块时间是另一种典型扩容方式。 这种方式以DPOS,POSA,POA等改进的共识算法为主,通过降低去中心化的程度,使得区块链系统内部容易在短时间内达成共识,将出块的时间降到足够低,一般都在秒的级别。如,以太坊的出块时间大约为15秒左右,EOS的出块时间为0.5秒,BSC(Binance Smart Chain)的出块时间为3秒左右。
分片与分层设计是两种典型的性能扩展思路。
(1)分片是保持一个区块链系统,但在内部进行分片,使得总体的交易容量扩大。区块链分片技术的思想来源于传统数据库的分片。分片技术,有几大类:网络分片、交易分片、状态分片。它们的基本原理,都是“化整为零,分而治之”,用多个分片同时处理不同的交易,最后汇总到主链上。
区块链分片的典型案例有以太坊2.0,Zilliqa,Polkadot。区块链中的分片技术,是在2015年初次提出的。当时新加坡国立大学的一对师生,在国际顶尖安全会议CCS上发表了一篇论文《A Secure Sharding Protocol For Open Blockchains》,首次提出了区块链领域中的分片概念。后来,这对师生发展出了第一个分片技术的落地项目Zilliqa,它结合PBFT和PoW共识机制,有6个分片,3600个节点的测试网络,已经能够达到每秒处理2800次交易的速度,是当时公链中处理速度最快的。
分片设计存在的问题
分片中安全性和性能的平衡是一个值得重视的问题,Zilliqa经过多次实验,决定用600个节点构建一个分片,这是因为600个节点能够到达性能和安全的最佳平衡。而如果为了提高TPS一味减少节点,对于分片的去中心化和安全性都是很不利的。
分片技术依然存在着很多难题需要解决,尤其是状态分片,计算机技术人员尚未研究出好的解决方案。同时,分片的原理不仅仅在于如何分片,更在于如何对每个分片进行安全有效的治理,很多项目一味追求其中的一个方面,忽视了区块链的基本治理问题,这就破坏了区块链系统整体的性能指标。
(2)分层设计(基于链的分层) 分层设计包含广义分层与狭义的分层建设,那些侧链技术,其他替代链技术都可以认为是广义上的二层建设。在主链上进行直接的二层网络建设是最典型的分层设计方式。以太坊的二层网络建设是已经在运行的分层建设典型代表,比特币的二层网络建设将会完成整个区块链世界的分层建设。
基于链的二层分层建设同时完成扩容与扩能的作用,在扩容的层面不够显著,一般只提升一两个数量级,但在扩能方面一般都完成了非图灵完备到图灵完备的转变。如果主链已经是图灵完备,二层建设则更多的完成扩容,或者定向功能的扩能。
分层思想中异构的二层建设包含区块链+分布式系统,区块链+中心化系统。其中区块链+分布式系统对区块链的扩容有非常明显的性能提升。我们以比特币+闪电网络为例,理论上可以在保持区块链基础特性的同时,还能实现无限的性能扩展,这样组合的性能就是比特币的7TPS * ∞。
以太坊中的的分层设计也有类似的案例,以太坊的主网+雷电网络也是这种异构设计的思想,只是目前以太坊的雷电网络发展还不够顺利。
如果要实现大规模应用Mass adoption,只有采用这种结构的二层才能支持。以Visa支付为例,高峰期的性能需求为:65000TPS,这样的性能指标只有中心化系统和分布式系统才能支持,当前闪电网络每秒4000万笔的性能,而且闪电网络的性能在理论上没有上限。
这是一种最优的扩容方式,这种扩容方式可以做到无限的性能扩展,也就是我们在2.3中标识的路径2。
区块链的扩能探索主要分为三种方式:第一种是从非图灵完备到图灵完备的扩能,第二种是在非图灵完备系统内的扩能;第三种是应用架构设计中的异构扩能(先完成区块链+分布式系统的扩容,然后在这个扩容的系统上扩能。)
区块链时代的开端是以比特币的诞生为标志,在区块链发展初期,比特币和相关模仿链的计算能力都是非图灵完备的,这有技术发展不同阶段的原因,也有后期协议分层设计考虑的原因。但从非图灵完备到图灵完备是区块链计算能力发展的一个必经之路。
这种区块链计算能力的扩展,以太坊是典型代表。很多团队在以太坊之前就开始了相关的探索,但距离一个相对满意的解决方案产生还有距离和发展路径争议。Vitalik在说服其他项目团队无果的情况下,针对比特币的不完美:UTXO的无账号系统,执行语言的非图灵完备,可扩展性差等问题,自己组建团队发布白皮书,开发新一代的区块链系统。从白皮书的名称《A Next-Generation Smart Contract and Decentralized Application Platform》,就可以看出以太坊主要解决计算能力的问题,不然不可能产生一个DAPP的平台。
在一个区块链系统内部和基于链的二层建设上,从非图灵完备到图灵完备是相对容易的事情(与后面区块链+分布式系统上的图灵完备相比),这个阶段的建设已经基本完成,正在逐渐走向成熟。
这种扩能方式就是在2.3应用架构中标识的路径1,主要完成扩能作用,同时也完成了部分扩容的功能。这里说部分扩容,是指这种方式只能将TPS提升有限的程度,例如,以太坊上面的二层为例,基本就是提升到几百到数千笔交易。与区块链+分布式系统的扩容方案相比,这种链的二层方式扩容效果比较小。
图灵完备之上的计算能力的划分不再本文中讨论,像传统领域很多专用计算设备一样,也会发展出具有不同特点的专用计算区块链系统。
在《导致比特币再次爆发的新技术总结》中,因为协议分层设计的原因,我们可以看到一些区块链系统并不是一定要从一个非图灵完备的系统扩充到一个图灵完备的系统。那是不是像比特币这样的系统就不需要扩能呢?答案是否定的,这样的系统也需要扩能,而且导致比特币再次爆发的新技术几乎都是这种扩能展现出来的成果。
这种扩能首先表现在使用基础指令进行的探索,如OP_RETURN上进行的初步探索,这导致了为了扩能而需要推动扩容技术的产生,如Segwit、Taproot的产生。随着空间的增加,扩能技术进一步发展,于是产生了Schnorr、MAST、Taproot Scripts这些技术元素。进而产生了基于这些技术产生的产品,如,Ordinals、Inscriptions、BRC20以及其他协议。随着这些产品的发展和二层建设对于主网能力的要求,非图灵完备系统上的扩能会进一步地发展。
在4.1节中我们讨论了基于链的二层建设既完成了扩能,又完成了部分的扩容。在3.3节中区块链+分布式系统的结构提供了最佳的扩容方案,如果在这种最佳扩容方案的基础上再完成扩能,是不是一种最佳的扩能方案?目前的RGB就是在探索这种终极的扩能方式,因为这种方式的复杂性和难度,导致RGB系统当前还不够成熟,发展也比较缓慢。
RGB基于LNP(闪电网络协议)和BP(比特币协议),如果是基于BP直接进行RGB的扩能,还不是最强的扩能方案,是直接扩展了比特币的图灵完备功能,属于第二层,这种方式对性能的扩展有限。如果是基于LNP进行RGB运算,这种方式既能扩展性能又能扩展图灵完备的计算能力,是最强的扩能方案。所以这种实现方式中一些概念看起来与区块链系统有很大的不同,如客户端验证(client-side validation)和一次性密封(single-use-seals),是因为区块链+分布式这种特殊的结构所造成的。
RGB 的设计目的是在区块链上运行可扩展、稳健和私密的智能合约,以实现一切可能性。通过RGB开发者可以执行如代币发行、NFT铸造、DeFi、DAO等传统区块链领域的应用,以及未来更多更复杂的多类别智能合约。我猜测这种方式也会是Web3.0大规模应用中的主要技术支撑。
通过以上内容,我们将几种建设路径总结到一个表格中,便于对比与分析。

我们在2.2节中已经介绍了Web3.0的应用具有构架在这些全球范围内的共享基础设施之上的特点,这是一种大型系统的架构设计参考。对于小的系统,或相对封闭的应用,完全可以采取一些折中方案。而且在很多案例中区块链+中心化系统组合是一种不错的方式,既能达到所要求的效果,又能降低实现的复杂度,甚至还可以尽可能的保持区块链的一些基础特性。
写做完本文我内心还是有不少忐忑,以我多年学习区块链知识的经验,在这种非常有创新性的领域,很多分析和结论都还具有片面性,需要这个创新领域成熟后再总结才有可能更准确更完善。鉴于这个原因,这篇关于扩容与扩能的分析与结论,应该还是不够完善,或者有缺失的知识体系,欢迎感兴趣的朋友一起完善。
参考文献说明
1.《区块链知识-技术普及版》,写作这本书的时候,让我理解了区块链的微观知识组成,知道了区块链系统内部的主要结构和特点。
2.《图灵区块链》,写作这本图书的时候,让我能够从冯诺依曼架构的层面看待整个区块链系统,以及每个组成部分的发展史,同时开始感受到和分布式系统的关系。
3.《精通以太坊-系统篇》,2021年写作完成了这本图书初稿,未出版。让我了解了以太坊产生的前因后果,以及很多区块链技术发展与应用案例。
4.《Web3.0:构建元宇宙的数字未来》,2022年写作完这本图书的时候,让我理解了Gavin Wood的Web3技术栈设计思想,以及对Web3.0应用的初步思考,参考了业内专家Preethi Kasireddy的初步架构设计图,但还没有形成Web3.0的应用架构应该是什么的结论,直到写作了《从状态机的角度观察比特币二层,可以看到未来Web3.0应用的架构和建设路径》。
5.《肖风香港演讲全文:Web3的1995 时刻、区块链的第一性原理与颠覆性创新》,这篇文章让我从几次革命发展史的角度来理解区块链,也帮我印证了我写作的前几篇文章的一些概念,其中最重要的是区块链的第一性原理:新记账方法。
6.其他具体技术的参考文献,在我写作的其他文章中列出。
(1)《一文梳理比特币二层(Layer2)建设的基础知识体系V1.5版本》
(2)《从状态机的角度观察比特币二层,可以看到未来Web3.0应用的架构和建设路径》
(3)《比特币价格过高会促生一个新的替代链产生》
(4)《导致比特币再次爆发的新技术总结》
(5)《从中本聪的消失与比特币生态的分层建设再看去中心化》
写作本文是我前几篇文章写作的思路延续,基本上把这一阶段我对比特币生态技术的主要思考都整理了。稍后需要把扩容与扩能的知识整理到二层建设的基础知识体系中。
在区块链的生态发展中,需要扩容与扩能两项重要任务。作者从比特币Layer2的系统架构分析与Web3.0的应用架构中总结出三条建设路径:
(1)路径一:基于链的二层建设(主要完成扩能,部分实现扩容)
这条路径实现在理论上相对最容易,并且以太坊的二层建设已经提供了很多运行案例。因此在最终的Web3.0应用架构中,基于比特币一层网络+链二层的建设就是这种实现路径。如图中的路径1所示。
(2)路径二:区块链的强扩容(主要是依赖分布式系统的扩容)
这条路径是实现区块链系统扩容的最佳方式,即区块链+分布式系统,可以把交易容量TPS扩展到无限大。目前的比特币+闪电网络就是这条路径的代表。如图中的路径2所示。
(3)路径三:区块链的强扩能(在扩容的基础上扩能)
这条路径是最难的扩能方式,也就是在最强扩容方案的基础上,实现扩能。当前的RGB系统就是这种实现方式的案例,如图中的路径3所示。

No activity yet