1. 引言

以比特币和以太坊为代表的无需许可区块链,虽然彻底改变了去中心化系统,但也面临着严峻的可扩展性挑战。尽管工作量证明共识机制的能耗问题已被广泛讨论,但全节点所需的大量且不断增长的存储开销,仍然是阻碍更广泛参与和网络健康发展的一个关键但未得到充分解决的问题。本文首次通过全面的实证研究,分析了全节点如何利用区块链数据进行验证,并由此提出了无需修改底层协议即可大幅降低本地存储需求的实用策略。

2. 背景与问题陈述

区块链的完整性依赖于一套完整、可验证的交易历史记录。对于比特币而言,该账本已超过 370 GB,这对运行全节点以独立验证交易的参与者提出了巨大的资源要求。

2.1 无需许可区块链的存储负担

存储需求与采用率和交易量成正比。存储整个账本对于安全性(防止双花)至关重要,但这造成了高昂的准入门槛,导致中心化风险,因为能够负担得起运行全节点的用户越来越少。

关键数据

比特币全节点存储: >370 GB(截至研究时间)。这带来了显著的硬件成本,并抑制了节点的广泛运行。

2.2 现有解决方案及其局限性

以往的方法包括:

  • 检查点/快照: 需要修改协议或进行硬分叉,带来了协调上的挑战。
  • 比特币的裁剪功能: 允许用户设置任意的存储阈值(GB 或区块高度)。这种方法并不理想,因为它缺乏指导,可能删除仍相关的数据或保留不必要的数据,迫使节点从网络重新获取数据,从而增加延迟。

3. 方法论与实证分析

本项工作的核心贡献在于,通过对真实节点行为进行数据驱动分析,为优化提供依据。

3.1 数据收集与节点行为分析

作者对比特币全节点进行了工具化改造,以监控和记录标准操作期间(特别是在验证新交易和区块时)从本地存储进行的每一次数据访问(读取)。这创建了一份关于区块链的哪些部分对于持续验证是实际必需的剖析报告。

3.2 数据访问模式分析

分析揭示了一个关键见解:在特定时期之后,历史区块链数据中有相当大一部分很少或从未被访问。验证当前状态(未花费交易输出 - UTXO)和近期历史所需的数据集,远小于完整的账本。

核心见解

全节点并不需要完整的数百 GB 历史数据来实时验证新区块和交易。实际活跃所需的数据集要小几个数量级。

4. 提出的存储削减策略

基于实证发现,本文提出了客户端策略。

4.1 无需协议变更的本地存储裁剪

主要策略是一种智能的、数据感知的裁剪算法。节点不是简单地根据时间或大小进行裁剪,而是可以安全地删除那些分析表明对未来验证不必要的区块链数据(例如旧的已花费交易输出)。这完全在客户端实现。

4.2 客户端优化技术

其他优化包括对很少访问但必要的历史数据进行压缩,以及优先将“工作集”(频繁访问的 UTXO 和近期区块)保留在更快存储中的缓存策略。

5. 结果与评估

5.1 可实现的存储占用削减

本研究最引人注目的结果是:通过应用其智能裁剪策略,一个比特币全节点可以将其本地存储占用减少到大约 15 GB,同时保持完整的验证能力。这相对于完整的 370+ GB 账本,减少了超过 95%。

图表:存储占用对比

(图表示意描述) 一个条形图,对比“完整账本 (370 GB)”和“裁剪后工作集 (15 GB)”。裁剪后的集合是原始数据的一小部分,直观地强调了所实现的巨大削减。

5.2 性能与开销权衡

据报告,分析和智能裁剪的计算开销可以忽略不计。其权衡在于,如果节点需要验证引用非常古老且已被裁剪数据的交易,则必须从点对点网络获取加密证明(如默克尔证明),从而产生少量通信延迟。然而,分析表明这种情况很少发生。

6. 技术细节与数学框架

裁剪逻辑依赖于对交易生命周期的理解。一个已被花费的交易输出对于验证未来的花费不再需要。其核心逻辑可以建模。设 $L$ 为完整账本。设 $A(t)$ 为节点在截至时间 $t$ 的时间窗口内从 $L$ 进行的所有数据访问(读取)的集合。核心工作集 $W$ 定义为:

$W = \{ d \in L \mid P(\text{未来验证中访问 } d ) > \tau \}$

其中 $\tau$ 是根据经验得出的小概率阈值。不在 $W$ 中的数据可以被裁剪。其安全性依赖于能够为已裁剪数据获取默克尔证明,其中证明大小与区块链大小呈对数关系:$O(\log n)$。

7. 分析框架:案例研究

场景: 一家新公司希望运行一个比特币全节点以实现可靠、独立的交易验证,但其存储基础设施预算有限。

框架应用:

  1. 分析: 部署一个启用了分析功能的标准全节点,运行 2 周以了解其特定的访问模式。
  2. 计算: 基于分析结果,通过算法确定最优数据集 $W$。研究表明,对于比特币,该数据集将稳定在 15 GB 左右。
  3. 裁剪: 删除所有不在 $W$ 中的区块链数据。
  4. 运行: 运行裁剪后的节点。在极少数需要已裁剪数据的情况下,向点对点网络请求默克尔证明。

结果: 该公司以约 15 GB 的存储(而非 370+ GB)实现了完整的验证安全性,大幅降低了成本和复杂性。

8. 未来应用与研究展望

  • 适配其他区块链: 将此实证方法应用于以太坊(尤其是合并后)及其他 PoW/PoS 链,以得出特定于链的裁剪参数。
  • 标准化: 提议一项比特币改进提案,以标准化分析数据格式和证明请求,使裁剪节点更高效。
  • 轻客户端增强: 弥合全节点与 SPV(简化支付验证)客户端之间的差距。拥有 15 GB 存储的“近乎全节点”比 SPV 客户端提供更强的安全性,同时比传统全节点更易于部署。
  • 去中心化推动: 该技术可以成为全球范围内增加全节点数量运动的关键推动力,从而提高网络的弹性和抗审查能力。

9. 参考文献

  1. Sforzin, A., Maso, M., Soriente, C., & Karame, G. (年份). On the Storage Overhead of Proof-of-Work Blockchains. 会议/期刊名称.
  2. Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System.
  3. Bitcoin Core Documentation. (n.d.). Blockchain Pruning. 取自 https://bitcoincore.org/en/doc/
  4. Buterin, V. (2014). Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform.
  5. Bonneau, J., et al. (2015). SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies. IEEE S&P.
  6. Gervais, A., et al. (2016). On the Security and Performance of Proof of Work Blockchains. ACM CCS.

分析师视角:传统链的可扩展性生命线

核心见解: 本文精准地打击了区块链最隐蔽的可扩展性瓶颈:状态膨胀。当全世界都在关注 TPS(每秒交易数)和能耗时,Sforzin 等人正确地指出,永无止境、不受限制的存储增长是去中心化的无声杀手。他们的工作证明,要求全节点存储完整历史记录的教条是一种自我强加的约束,而非密码学上的必然要求。真正的需求是存储当前验证所必需的携带证明的数据子集——这一区别具有重大的实际意义。

逻辑脉络: 其论证过程优雅且基于实证。他们没有提出自上而下的协议大修,而是首先对节点进行工具化改造,以观察实际使用了哪些数据。这种以数据为中心的方法反映了系统性能优化的最佳实践,类似于在优化前对应用程序进行分析。发现“工作集”约为 15 GB 是关键所在。它将问题从“我们如何改变比特币?”转变为“我们如何安全地丢弃那未使用的 95%?”。其解决方案——智能裁剪 + 回退到网络获取的默克尔证明——是实用工程学的典范,让人联想到计算机体系结构中缓存淘汰策略的原理,或现代操作系统管理内存页的方式。

优势与不足: 其优势在于可部署性。作为客户端变更,它不需要有争议的硬分叉,使得近期内采用成为可能。它直接降低了运行全节点的门槛,可能扭转节点中心化的趋势。然而,该分析也存在不足。首先,它引入了一种新的、微妙的依赖关系:裁剪节点必须依赖网络(特别是未裁剪的“存档”节点)来提供旧数据的证明。这创造了一个双层节点系统,如果存档节点变得稀缺或恶意,理论上可能被利用。其次,正如 Bonneau 等人在关于比特币安全的“SoK”中指出的那样,轻客户端(此方法与之类似)的安全模型严格弱于完整的存档节点,因为它引入了关于数据可用性的信任假设。本文在一定程度上淡化了这种转变带来的长尾安全影响。

可操作的启示: 对于区块链项目,尤其是已建立的 PoW 链,这项研究是“传统链可扩展性”方案的一个蓝图。当务之急是将这种分析和智能裁剪集成到像 Bitcoin Core 这样的主流客户端中,作为默认的优化选项。对于监管机构和企业而言,这项技术使得运行合规的、自我验证的节点变得可行得多,减少了对第三方 API 提供商的依赖。展望未来,该方法应应用于以太坊的状态树,后者带来了不同但同样关键的存储挑战。最终的启示是,区块链的可扩展性不仅仅是更快地处理更多交易;它还关乎更智能地利用我们已有的资源。这项工作是朝着这个方向迈出的关键一步,为在不牺牲区块链价值所在的安全保证的前提下维持去中心化提供了一条路径。