{"content":{"title":"区块链性能问题及限制","body":"作者：MixBytes 团队\r\n\r\n![](https://img.learnblockchain.cn/2025/03/09/12.jpg)\r\n\r\n## 介绍\r\n\r\n你有没有注意到，在谈论区块链性能时，我们通常给出的都是大约的数字？1000、100,000 tx 每秒和其他整数量产生的原因是什么？为什么区块链开发者在每次区块链代码更新后不会自豪地在他们的网站上声明3456 tx/sec？\r\n\r\n实际上，很难对由数十或数百台计算机构成的系统提供准确的数值性能估计，尤其是当这些计算机分散在全球并通过网络连接时。tx/sec 的数量无法反映大型去中心化网络的多种状态。\r\n\r\n谈论任何系统（包括区块链或具有大量服务器的数据库）的性能时，我们通常并不是指实际性能，而是在受控条件下处理 N 个事务的能力（在少量测试计算机上运行，执行预定义的事务集）。实际上，这些数字是完全不同的，主要取决于用户的行为。\r\n\r\n区块链性能测量比传统服务（例如分布式数据库）的测量还要复杂。我们来找出原因。\r\n\r\n## 什么是交易处理时间？\r\n\r\n对于用户来说，区块链性能是他们获得所请求服务的速度。例如，加密货币转账交易或调用智能合约函数的交易。在所有这些情况下，我们准备一个交易，将其发送到网络并期待响应。这个参数显示客户在何时能够收到成功支付、确认预订或交易的可靠确认。\r\n\r\n以下是客户软件花费时间的大致步骤：\r\n\r\n1. 用户准备并签署交易\r\n2. 用户将交易发送到网络并等待接受确认\r\n3. 网络在网络参与者之间复制信息\r\n4. 一些参与者生成包含用户交易的新块，并在网络参与者之间复制新块\r\n5. 用户从网络接收到包含其交易的新块信息\r\n\r\n这一方案类似于访问分布式数据库。用户发送一笔修改数据的交易，并等待许多计算机对数据库进行更改。然后用户收到的响应大致意味着以下内容：“看起来最大的集群部分已经对数据库进行了更改”。\r\n\r\n区块链交易也应该“被大多数接受”，但每台计算机更仔细地检查更改。计算机彼此之间不信任，因此检查大大增加，尤其是加密检查。除此之外，参与者还需要就块的顺序和内容达成一致。\r\n\r\n## 区块链性能问题\r\n\r\n是什么问题导致区块链运行缓慢，无法达到中心化系统的性能？\r\n\r\n想象我们设计了一个超级区块链。我们如何识别其性能问题，以及这些问题在何时可能出现？\r\n\r\n## 客户端交易准备\r\n\r\n任何区块链交易都是数字签名的。任何数据更改请求都总是涉及小额非零费用。因此，区块链中的交易成本高于标准数据库：签名检查必须由处理器工作时间付费，增加的交易大小 - 由网络带宽支付，区块链中的任何更改 - 由存储大小支付。\r\n\r\n实际上，区块链是去中心化系统，其中客户端执行大部分工作。因此，客户端的计算量逐渐增加，而区块链本身变得更加轻便和快速。在一些加密技术先进的区块链中，客户端可以执行持续数十秒甚至几分钟的计算。\r\n\r\n因此，浏览器、钱包或区块链游戏的交易可能需要显著的时间。这个重要因素从用户的角度影响整体区块链性能。我们使用现代加密技术来确认参与者行为的正确性，越会影响总区块链性能的这个因素。\r\n\r\n## 点对点网络\r\n\r\n当交易准备好后，用户将其发送到 p2p 网络，通过该网络所有区块链节点进行通信。换句话说，用户将其发送到所谓的 peers 列表中的任何可用计算机 —— 这些计算机之间不相互信任。接收到交易后，peer 立即开始在 peers 列表中的随机 peer 邻居间分发该交易。在经过几次传输后，许多 peers 拥有交易的副本。然后生成块的计算机（也称为矿工、块生产者或简写为 BPs）将交易包含在下一个区块中并在网络中分发它。\r\n\r\n结果，信息在网络中被分发了两遍。首先，交易从用户传输到块生产者，然后又回到等待区块链“新闻”的节点。每次信息通过不同的 peers 以新的方式传递。这使得区块链不同于大型中心化系统，在这些系统中，请求路径是固定的，以确保最大速度。不幸的是，一个块或块部分可能有时会在几个当前不可用的节点上找到。在这种情况下，peer 将等待所需数据出现在网络中。同样，重要数据可能非常受欢迎，以至于它可以在短时间内并以更优的效率到达随机节点，而不是在预定义的系统中传递。\r\n\r\n点对点网络不能像大型中心化系统中的优化数据传递方案那样确保快速和稳定的数据传输。另一方面，点对点网络对于整个网络段的切断和参与者的恶意行为更具抵抗力。由于在 peers 之间分发流行数据部分，它们可能展示出惊人的带宽。准确预测这种网络请求处理的确切时间是非常困难的，因为它变化很大。\r\n\r\n这一阶段相当耗时，尤其是当网络节点分散在全球各地时。通过模拟大量 p2p 网络状态来测量网络性能非常困难。因此，区块链没有确切的 tx/sec 值。\r\n\r\n## 共识算法\r\n\r\n共识算法是影响交易接受速度的另一个因素。负责区块和链生成的网络节点（矿工、块生产者、验证者）就正确的块和应丢弃的块达成一致。谈判节点通过数字签名交换有关块的信息，从而“投票”支持一个或多个块。\r\n\r\n节点之间的消息数量在不同的区块链中各不相同。例如，在大多数权益证明（Proof-of-Stake）算法中，至少需要从 1/3 的块生产者处接收到消息（“投票”），才能接受给定块及其所依据的链。如果网络出现问题，这些网络没有时间在合理的时间内将消息传递给所有参与者。有时算法要求额外的消息 - 添加或移除块生产者、在块生产暂停后恢复工作等。\r\n\r\n在评估区块链的每秒交易量时，了解网络共识花费了多少时间、其有效性如何以及是否可以进一步优化是很重要的。一个每秒 100 tx 的区块链可能比高速度的每秒 1000 tx 的区块链提供更稳定的服务质量，因为后者在网络重新配置或复杂交易期间出现定期暂停。目前，每秒数千 tx 的最大值。但仅仅是目前...\r\n\r\n## 结论\r\n\r\n如今，区块链是具备抵抗恶意交易的可靠网络。它们比中心化方案更慢——我们不能谈论每秒数百万的交易。如果你看到每秒百万 tx 的消息，请询问其架构。超快速“区块链”的创建者往往会隐瞒一些信息，因为每秒数百万的 tx 通常意味着中间件连接。实际上，这种软件与普通中心化服务无异，满足这种速度要求。在大多数情况下，这是一种 L2 解决方案（Lightning、Plasma）或承诺组装多个并行链的解决方案。\r\n\r\n在阅读或评估区块链性能时要小心，因为这是一个极其困难和具有争议的问题。具有较为标准的方案和共识的现代区块链在实际项目中承载的区块链性能可以达到每秒 1,000 - 10,000 tx，而不是数百万。当前的 p2p 网络，拥有数十个验证者，可以以最大的速度分发和处理数千到数万个交易，即使在相当快速的网络中。对于参与者数量更多的情况，处理速度会更慢。要对承诺解决性能问题的说法保持怀疑，这个问题至今尚未成功解决，尽管有很多团队在努力。然而，许多好的方法正在研究，我们期待在这个软件研究领域看到有效的解决方案。\r\n\r\n在接下来的文章中，我们将讨论区块链性能评估和一些重要的指标，帮助回答“tps/sec”的问题。\r\n\r\n原文发表于 [https://hackernoon.com](https://hackernoon.com/blockchain-performance-issues-and-limitations-78qss3co5) 于2019年7月22日\r\n\r\n- MixBytes 是谁？\r\n\r\n[MixBytes](https://mixbytes.io/) 是一支专家级区块链审计和安全研究团队，专注于为 EVM 兼容和 Substrate 基础的项目提供全面的智能合约审计和技术咨询服务。请关注我们在 [X](https://twitter.com/MixBytes) 上的动态，以获取最新的行业趋势和见解。\r\n\r\n>- 原文链接： [mixbytes.io/blog/blockch...](https://mixbytes.io/blog/blockchain-performance-issues-limitations)\r\n>- 登链社区 AI 助手，为大家转译优秀英文文章，如有翻译不通的地方，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/24680","address":null},"history":null,"timestamp":1741489700,"version":1}