区块链的可伸缩性以及面临的挑战

news2024/11/23 21:15:40

1. 可伸缩性

        在过去的几年中,可伸缩性(Scalability,也称为可扩展性) 问题一直是激烈辩论、严格研究和媒体关注的焦点。

        这是一个至关重要的问题,因为它可能意味着区块链不适于广泛应用,而仅限于联盟许可的私有网络。在经过对该领域的大量研究之后,人们提出了许多解决方案,下面将详细介绍这些解决方案。

        从理论上讲,解决可伸缩性问题的一般方法通常围绕协议级别的强化。例如,通常提到的比特比可伸缩性解决方案是增加其区块大小。其他建议包括链下解决方案,这些解决方案将某些处理任务转移到链下网络,例如链下状态网络。

        一般来说,基于上述解决方案,建议可以分为两类:改变区块链运行的基本协议这一思路的链上解决方案(On-Chain Solution) 和利用网络和处理资源以增强区块链的链下解决方案(Off-Chain Solution)。

        Miller 等人在其论文 On Scaling Decentralized Blockchains (<<去中心化区块链的规模化思考>>)中提出了另一种解决区块链局限性的方法。该论文的详细网址如下:

https://doi.org/10.1007/978-3-662-533357-4_8

        该论文提出,区块链可以划分为被称为平面(Plane) 的许多抽象层。每个平面负责执行特定功能。这些包括网络平面、共识平面、存储平面、视图平面和侧平面。这种抽象允许在每个平面上以结构化的方式分别解决瓶颈和限制。下文将简要介绍每一个平面层,并相应地引用比特币系统。

1.1 网络平面

        第一层称为网络平面(Network Plane)。网络平面的关键功能是交易传播。在上述论文中已经确定,在比特币网络中,节点在传播和复制交易之前,首先要进入交易广播阶段,然后是开采区块(挖矿),最后由节点执行交易验证,这种方式导致网络平面未能充分利用网络带宽。

        应当指出的是,BIP 152 已经解决了该问题,有关详细信息,可访问以下网址:

https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki

1.2 共识平面

        第二层面称为共识平面(Consensus Plane)。该层负责挖矿并达成共识。该层的瓶颈围绕着 PoW 算法的局限性,因为该算法在共识速度和带宽上的增加会损害网络的安全性。

1.3 存储平面

        第三层是存储平面(Storage Plane),用于存储帐本。该层围绕每个节点需要保留整个帐本副本的问题,这导致某些效率低下的情况,例如带宽和存储需求的增加。

        比特币有一种称为修剪(Pruning) 的方法,该方法允许节点运行而无须将整个区块链保留在其存储中。修剪意味着当比特比节点下载了区块链并对其进行验证后,将删除已经验证的旧数据,这样可以节省存储空间。从存储角度来看,此功能已有重大改进。

1.4 视图平面

        第四层是视图平面(View Plane)。由于比特币矿工不需要完整的区块链即可进行操作,因此,研究人员基于这一事实提出了一种优化,并且可以从完整的帐本中构造视图来表示该系统的整个状态,这足以使比特币矿工正常工作。也就是说,视图的实现将消除挖矿节点存储完整区块链的需求。

        最后,上述研究论文的作者还提出了侧平面(Side Plane) 的概念。该平面代表脱链交易的概念,其中将使用支付或交易渠道的概念来减轻参与者之间的交易处理,但仍得到主要的比特币区块链的支持。

        上述模型可用于以结构化方式描述当前区块链设计中的限制和改进。另外,最近几年研究人员还提出了若干种通用策略,可以解决当前以太坊和比特币等区块链设计的局限性。

1.5 区块大小增加

        这是关于提高区块链性能(扩大交易处理吞吐量)的一项争议最大的提议。就目前而言,比特币每秒只能处理 3~7 笔交易,这是使比特币区块链适应处理微交易的主要抑制因素。比特币中的数据块大小被硬编码为 1 MB,如果增加数据区块大小,那么它可以容纳更多的交易,并且可以缩短确认时间。

        有若干个比特币改进提案(Bitcoin Improvement Proposal,BIP) 都支持增加区块大小,例如 BIP 100、BIP 101、 BIP 102、BIP 103 和 BIP 109。

        在以太坊中,区块大小不受硬编码的限制,而是由燃料限制来控制。从理论上讲,以太坊中的区块大小没有限制,因为它仅取决于燃料量,燃料量会随着时间的推移而增加。这是可能的,如果在上一个区块中已达到限制,则允许矿工提高后续区块的燃料限制。

        比特币 SegWit 通过将见证人数据与交易数据分开来解决这个问题,从而为交易提供更多空间。

        比特币的其他改进提案还包括 Bitcoin Unlimited、Bitcoin XT 和比特币现金(Bitcoin Cash)。

注意:

以下网址提供了有关上述改进提案的详细信息:

https://www.bitcoinunlimited.info

https://bitcoinxt.software

https://www.bitcoincash.org

1.6 减少区块间隔

        另一个建议是减少每个区块生成之间的时间。减少区块之间的时间间隔可以更快地生成区块,但由于分叉数的增加,也可能导致安全性降低。

        以太坊实现了大约 14 秒的区块生成时间,这是对比特币区块链的重大改进,因为比特币需要每 10 分钟才能生成一个新区块。

        在以太坊中,通过使用贪婪最重观察子树(Greedy Heaviest Observed Subtree,GHOST)协议,缓解了由于区块生成之间的时间较短而导致的高孤立区块的问题,从而在确定有效链时还包括了孤立区块(叔区块)。一旦以太坊转移到权益证明,这将变得无关紧要,因为将不需要挖矿并且几乎可以立即完成交易。

1.7 可逆布隆查找表

        这是已提出的另一种方法,用于减少在比特币节点之间传输所需的数据量。可逆布隆查找表(Invertible Bloom Lookup Table,IBLT) 最初是由 Gavin Andresen 提出的,这种方法的主要吸引力在于,它不会导致比特币的硬分叉。

        可逆布隆查找表的关键思想是基于一个事实:无须在节点之间转移所有交易。相反,该方法仅传输在同步节点的交易池中尚不可用的资源。这允许节点之间更快的交易池同步,从而提高比特币网络的整体可伸缩性和运行速度。

1.8 分片

        分片 (Sharding) 不是一项新技术,它已在分布式数据库中使用,以实现可伸缩性,如 MongoDB 和 MySQL。

        分片的关键思想是将任务分成多个区块,然后由多个节点处理,这样可以提高吞吐量并减少存储需求。

        在区块链中,采用类似的方案,可以将网络状态划分为多个分片。状态通常包括余额、代码、随机数和存储。

        分片是在同一网络上运行的区块链的松散耦合分区。因此,需要解决分片间的通信问题,以及对每个分片的历史达成共识的问题。目前这仍是一个开放的研究领域。

1.9 状态通道

         这是为加快区块链网络上的交易速度而提出的另一种方法。其基本思想是使用侧通道(Side Channel) 脱离主链进行状态更新和处理交易。一旦状态最终确定,它将被写回到主链,从而使得主区块链不必执行耗时的操作。

        状态通道将执行以下 3 个步骤:

(1)区块链状态的一部分被智能合约锁定,确保参与者之间的一致性和业务逻辑的执行。

(2)参与者之间开始链外交易处理和交互,而参与者之间暂时仅更新他们之间的状态。在此步骤中,几乎不需要区块链就可以执行任何数量的交易,这使得交易流程变快,并且是解决区块链可伸缩性问题的最佳方案。当然,也有人对此持有异议,他们认为这不像分片那样是真正的区块链解决方案,但无论如何,其最终结果是产生了一个更快、更轻型化且更健壮的网络,在小额支付网络、IoT 网络和许多其他应用方面都很实用。

(3)一旦达到最终状态,就关闭状态通道,并将最终状态写回到主区块链。在这阶段,区块链的锁定部分也被解锁。

        下图显示了此过程:

1.10 私有区块链

        私有区块链本身会更快,因为它不需要真正的去中心化,并且网络的参与者也不需要挖矿,相反,他们只能验证交易。这可以被认为是解决公共区块链中可伸缩性问题的一种方法。但是,坚持“去中心化” 理念的人士并不认可它是可伸缩性问题的解决方案。此外,应注意的是,私有区块链仅适用于特定区域和设置,例如所有参与者都相互了解的企业环境。

1.11 权益证明

        与使用工作量证明相比,基于权益证明算法的区块链速度更快。 

2. 侧链

        侧链(Sidechain) 是遵守侧链协议的所有区块链的统称。侧链旨在实现双向锚定,让某种代币可以在链和链之间交换信息和实现价值的互相 “转移” 。一般来说,侧链泛指跨链技术,它一方面可以帮助主链扩展新功能,另一方面也可以围绕主链搭建起一个涵盖各种业务需求的生态。

        侧链允许多个侧链与主区块链一起运行。侧链虽然安全性相对较低,但是速度更快。侧链执行交易,但仍在与主区块链锚定,从而间接改善可伸缩性。

        侧链的核心思想被称为双向锚定(Two-Way Peg),它允许将代币从主链转移到侧链,反之亦然。 

2.1 子链

        子链(Subchain) 是 Peter R. Rizun 最近提出的一种相对较新的技术,它主要基于弱区块(Weak Block) 的思想,弱区块在层中创建,直至找到强区块(Strong Block)  为止。

        弱区块可以定义为无法通过满足标准网络难度条件来进行开采的区块,但是其已经完成的工作量完全满足另一个较弱的难度目标。除非发现满足标准难度目标的区块,否则矿工可以通过将弱区块彼此叠加来构建子链。

        在发现满足标准难度目标的区块之后,子链关闭并成为强区块。这种方法的优点是减少了首次验证交易的等待时间。此技术还可以减少孤立区块的产生机会,并加快交易处理的速度,这也是解决可伸缩性问题的间接方法。

        子链不需要任何软分叉或硬分叉来实现,但需要得到社区的认可。

注意:

子链研究论文网址如下:

https://www.ledgerjournal.org/index.php/ledger/article/view/40

 2.2 树链

        还有其他提高比特币网络可伸缩性的提议,例如将区块链布局从线性顺序模型更改为树链(Tree Chain) 。这棵树基本上是一棵二叉树(Binary Tree),从比特币主链中衍生出来。这种方法类似于侧链实现,无须进行重大协议更改或增加区块大小,它可以提高交易吞吐量。在这种方案中,区块链本身是去中心化的,并分布在网络中,以实向可伸缩性。

        此外,不需要挖矿就可以验证树链上的区块。用户可以独立验证区块标头。但是,这种想法还没有进入生产阶段,因此需要进一步研究才能使其真正实用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++设计模式——Mediator中介者模式

一&#xff0c;中介者模式的定义 中介者模式是一种行为型设计模式。它通过一个中介者对象将多个对象之间的交互关系进行封装&#xff0c;使得对象之间的交互需要通过中介者对象来完成。该设计模式的结构很容易理解&#xff0c;以中介者为中心。 中介者模式的设计思想侧重于在…

遗传算法与深度学习实战(12)——粒子群优化详解与实现

遗传算法与深度学习实战&#xff08;12&#xff09;——粒子群优化详解与实现 0. 前言1. 粒子群优化1.1 粒子群优化原理1.2 算法流程 2. 实现 PSO 解决方程2.1 问题描述2.2 代码实现 小结系列链接 0. 前言 粒子群优化 (Particle Swarm Optimization, PSO) 是一种借鉴适者生存和…

医疗行业怎么节约和管理能源

医院建筑能耗平台 医院智能照明平台 医院能源综合管理平台 目前&#xff0c;能源短缺已成为一个全球性问题。在建筑业的发展中&#xff0c;建筑电气照明系统的节能水平与中国的能源利用率有关。照明系统中的低功率因数和高电压波动将导致较大的功率损失。因此&#xff0c;要认…

计算机网络——ARP篇(二)

上一次学习了ARP的基本概念&#xff0c;ARP缓存&#xff0c;ARP类型&#xff0c;以及ARP协议在网络中是如何工作的。这一次&#xff0c;我又深入的了解了ARP协议的工作原理&#xff0c;下面是我的学习笔记&#xff1a; 在学习之前&#xff0c;首先提出三个问题&#xff1a;ARP协…

BizDevOps落地实践

我理解BizDevOps就是端到端&#xff0c;从战略业务机会到开发上线 参考资料 十六年所思所感&#xff0c;聊聊这些年我所经历的 DevOps 系统 必致&#xff08;BizDevOps&#xff09;白皮书2022免费下载_在线阅读_藏经阁-阿里云开发者社区 具体落地实践 战略规划 战略&…

C#使用TCP-S7协议读写西门子PLC(一)

之前本人发布西门子S7协议的报文 西门子PLC的S7协议报文解析说明_西门子报文详解-CSDN博客 西门子PLC的S7协议是西门子公司在ModbusTcp协议的基础上自定义的一种协议,仅支持西门子PLC,S7协议本质仍然属于TCP协议的一种自定义具体实现 第一步,准备工作。VS2022中新建窗体应…

动态规划及其MATLAB实现

目录 引言 动态规划的基本原理 动态规划的常见应用 动态规划的求解步骤 动态规划的复杂度分析 表格总结&#xff1a;动态规划常见问题及其复杂度 结论 引言 动态规划&#xff08;Dynamic Programming, DP&#xff09;是一种求解最优化问题的有效方法&#xff0c;特别适合…

华为 HCIP-Datacom H12-821 题库 (16)

1.需要题库的小伙伴至博客最下方添加微信公众号关注后回复题库 2.有兴趣交流IT问题的小伙伴微信公众号回复交流群&#xff0c;加入微信IT交流群 1. OSPF 邻居关系建立出现故障&#xff0c;通过 display ospf error 命令来检查&#xff0c;输出结果如图所示&#xff0c;根据图中…

从零开始配置 TypeScript 项目

ESLint 配置 从背景的介绍中可以理解&#xff0c;对于全新的 TypeScript 项目&#xff08;直接抛弃 TSLint&#xff09;需要包含解析 AST 的解析器 typescript-eslint/parser 和使用校验规则的插件 typescript-eslint/eslint-plugin&#xff0c;这里需要在项目中进行安装&…

CentOS 安装Squid代理

环境&#xff1a; 华为云服务器一台&#xff1a;123.60.53.69&#xff0c;放行3128端口 Windows 11 电脑&#xff1a;动态IP 需求&#xff1a; 客户端电脑通过华为云服务器实现代理上网 一、服务器设置 1、安装 yum install squid httpd-tools -y 2、创建用户&#x…

word文档转换为PPT文档最佳方案

目前&#xff0c;笔者发现word文档转换为ppt最好的解决方案。 注&#xff1a;目前AI生成PPT&#xff0c;一般是给定一个标题&#xff0c;直接生成PPT文档内容&#xff0c;属于AI原创&#xff1b;另外&#xff0c;还有一些在线编辑、生成PPT工具&#xff0c;需要付费&#xff0c…

MySQL数据库SQL语句和常用函数大全

前言 MySQL 8数据库提供了丰富的SQL语句操作功能以及一系列高级特性&#xff0c;这些功能使得数据库的管理、查询、更新和维护变得更加高效和灵活。以下是对MySQL 8数据库SQL语句操作大全及高级特性的详细概述&#xff1a; 一、SQL语句操作大全 1. 数据定义语言&#xff08…

【雅特力AT32】 MCU CAN入门指南(超详细)

通信协议与接口知识参考文章&#xff1a; 【通信理论知识】数据传送的方式&#xff1a;串/并行&#xff1b;传输方向&#xff1a;单工、半/全双工&#xff1b;传输方式&#xff1a;同步/异步 【串口通信详解】USART/UART、RS232、RS485标准接口与协议特点解析 【同步串行通信接…

重拾精髓:go doc -http让离线包文档浏览更便捷

Go语言团队近期接受了Go团队成员、Go圣经《The Go Programming Language[1]》合著者Alan Donovan[2]的新提案[3]&#xff0c;旨在进一步提升开发者体验。这个提案为go doc命令[4]的离线文档展示形式&#xff0c;同时增强了查看本地文档的交叉引用功能。看到这个提案功能&#x…

重装电脑系统时硬盘被重新分区:数据恢复实战指南与深度解析

在数字化时代的浪潮中&#xff0c;电脑作为我们日常生活和工作的核心工具&#xff0c;其系统的稳定性与数据的完整性至关重要。然而&#xff0c;在追求系统性能优化或解决系统故障的过程中&#xff0c;重装电脑系统成为了一个常见的操作。不幸的是&#xff0c;这一过程中若不慎…

PB9一个运行时错误:Non-array expected in ANY Variable

反编译修改一个项目。遇到这个问题。 仿佛一看&#xff0c;这是一个莫名其妙的问题&#xff0c;在百度也只搜到一个类似问题。 但是定睛一看&#xff0c;是一个很奇怪的错误&#xff0c;就是说代码自己写错了 for i 1 to uo_1.is_arr ls_arrstr uo_1.is_arr[i] ... next …

掌握 JavaScript ES6+:现代编程技巧与模块化实践

掌握 JavaScript ES6&#xff1a;现代编程技巧与模块化实践 一 . 变量声明 let二 . 声明常量 const三 . 模板字符串四 . 函数的参数默认值五 . 箭头函数六 . 对象初始化七 . 解构7.1 接收 JSON 对象7.2 接收数组 八 . 延展操作符九 . 导入和导出9.1 方式一9.2 方式二 这篇文章我…

校篮球联赛系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;公告管理&#xff0c;基础数据管理&#xff0c;球队管理&#xff0c;球员管理&#xff0c;赛事信息管理&#xff0c;用户管理&#xff0c;轮播图信息 微信端账号功能包括&#…

文章解读与仿真程序复现思路——电网技术 EI\CSCD\北大核心《面向日前市场邀约的电动自行车换电站运行规划》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

聚观早报 | 2025款比亚迪汉上市;iPhone 16天猫全球同步首发

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 9月11日消息 2025款比亚迪汉上市 iPhone 16天猫全球同步首发 菜鸟L4级无人车正式发售 OPPO Find X8配置细节曝光…