大家鲜少提到如何正确地测量一个(区块链)系统,但它却是系统设计和评估过程中最重要的步骤。系统中有许多共识协议、各种性能的变量和对可扩展性的权衡。

然而,直到目前都没有一种所有人都认同的可靠方法,能够让人进行苹果对比苹果这种同一范畴内的合理比较。在本文,我们将概述受到数据中心化系统测量机制启发的一种方法,并探讨在评估一个区块链系统时可以避免的一些常见错误。

关键指标及其相互作用

在开发区块链系统时,我们应该将两个重要指标考量在内:延迟和吞吐量。

用户关心的第一件事就是交易延迟,即发起交易或支付和收到确认交易有效性信息(比如,确认交易发起方有足够的钱)之间的时间。

在传统的 BFT 系统中(如 PBFT、Terdermint、Tusk 和 Narwhal 等),一旦交易被确认就会被敲定,而最长链共识机制(如 Nakamoto Consensus、Solana/Ethereum PoS)中,一笔交易可能会被打包进区块,然后再重组。结果就是,我们需要一直等到交易达到“k 个区块深”了才能进行敲定,这就导致了延迟的时间大大超过了单次确认的时间。

其次,系统的吞吐量一般对于系统设计者来说十分重要。这就是系统每单位时间所处理的总负载,一般表达为每秒交易量 (TPS)。

乍一看,这两个关键指标看起来是完全相反的东西。但因为吞吐量由每秒的交易量得出,而延迟则是以秒为单位进行测量。自然而然地,我们会认为吞吐量 = 负载/延迟。

但事实并非如此。因为许多系统倾向于生成在 y 轴上展示吞吐量或延迟,而在 x 轴上展示节点数量的图表,所以这种计算方式的实现是不可能的。相反&