1. 引言
以比特币和以太坊为代表的无许可区块链,虽然革新了去中心化系统,但也面临着严峻的可扩展性挑战。工作量证明共识机制的能耗问题已被广泛讨论,而同样关键的存储开销问题却相对较少受到关注。本文提出了一项开创性的实证研究,分析了区块链全节点如何利用账本数据进行验证。核心发现是,通过智能的客户端策略,可以在无需修改底层区块链协议的前提下,大幅缩减存储占用——对于比特币,可能降至约15 GB——从而降低运行全节点的门槛。
2. 问题陈述与背景
2.1 无许可区块链的存储负担
比特币等区块链的安全性和完整性依赖于一个完整、不可篡改的账本。随着采用率的增长,账本大小也在增加。在研究进行时,比特币的账本已超过370 GB。这一巨大的存储需求是希望运行全节点的用户的主要障碍,导致有能力维护完整历史的实体减少,从而带来中心化风险。
关键存储统计数据
比特币账本大小: >370 GB
目标缩减量(建议): ~15 GB
缩减潜力: ~96%
2.2 现有缓解策略及其局限性
以往的解决方案通常涉及协议层面的更改,例如设置检查点或分片,这需要硬分叉和社区共识。比特币核心提供了一个裁剪选项,但它缺乏智能指导——用户必须任意选择一个保留阈值(以GB或区块高度为单位),这可能导致删除验证未花费交易输出时仍需要的数据。
3. 方法论与实证分析
3.1 数据收集与测量框架
本研究采用了全面的实证测量方法,通过分析比特币区块链,精确了解在区块和交易验证等标准节点操作期间,具体访问了哪些数据元素(交易、区块、区块头)。
3.2 全节点数据使用模式分析
分析表明,历史账本中相当大一部分在特定时期后极少被访问。验证主要依赖于:
- 当前的UTXO集。
- 用于工作量证明验证的近期区块头。
- 被新交易引用的部分历史交易。
这一洞察构成了智能裁剪的基础。
4. 提出的客户端存储缩减方案
4.1 本地存储裁剪策略
所提出的策略是一种客户端优化。全节点可以安全地删除古老区块的原始数据,同时保留密码学承诺(如区块头和默克尔根)以及当前的UTXO集。如果后续需要已删除的交易(例如,为了验证链重组),节点可以从点对点网络中获取它。
4.2 优化的数据保留模型
该模型并非采用简单的基于时间或大小的截断,而是使用访问频率和依赖关系分析。它根据数据在未来验证中被需要的可能性来决定保留哪些数据,从而在保持节点完整验证链的能力的同时,大幅降低本地存储需求。
5. 结果与性能评估
5.1 存储占用缩减
实证评估表明,一个比特币全节点可以将其本地存储占用减少到大约15 GB,相比完整的370+ GB账本缩减了约96%。这包括压缩后的UTXO集和近期的区块头。
图:存储占用对比
描述: 柱状图对比“全节点存储(370 GB)”和“优化节点存储(15 GB)”。优化节点的柱状图显著更短,直观地强调了96%的缩减。优化存储被分段显示,以展示用于UTXO集、近期区块头以及一小部分频繁访问的历史数据缓存的比例。
5.2 计算与网络开销
减少存储的代价是,当需要历史数据时,可能会增加网络请求。然而,研究发现,在正常操作下,这种开销是微不足道的,因为所需的获取操作并不频繁,且数据很容易从网络中的其他对等节点获得。
6. 技术细节与数学框架
优化的核心在于理解交易依赖图。令 $G = (V, E)$ 为一个有向无环图,其中顶点 $V$ 代表交易,如果交易 $v$ 花费了由交易 $u$ 创建的输出,则存在边 $(u, v) \in E$。交易 $t_i$ 的“年龄”和“连通性”可以被建模。验证新区块时需要 $t_i$ 的概率 $P_{access}(t_i)$ 会随着时间的推移以及其与当前UTXO集的距离增加而降低。
一个简单的保留启发式规则可以是:如果 $age(t_i) < T_{age}$ 或者 $t_i$ 是最近 $N$ 个区块中任何交易的祖先(在 $k$ 跳之内),则保留该交易数据。其中 $T_{age}$、$k$ 和 $N$ 是根据实证访问模式推导出的参数。
7. 分析框架:案例研究
场景: 一家初创公司希望运行一个比特币全节点用于审计目的,但云存储预算有限。
框架应用:
- 数据画像: 节点软件首先在观察模式下运行,分析在一个月内访问了哪些区块和交易。
- 模型校准: 使用画像数据,校准保留启发式规则的参数(例如,将 $T_{age}$ 设为3个月,$k=5$,$N=1000$)。
- 裁剪执行: 节点随后裁剪所有不符合保留标准的区块数据,仅保留区块头、UTXO集以及符合条件的交易数据。
- 持续运行: 在正常操作期间,如果请求一个已被裁剪的交易,节点会从两个随机对等节点获取它,并在使用前根据存储的默克尔根进行验证。
结果: 该初创公司以 < 20 GB 的存储空间维护了一个完全验证节点,以极低的成本实现了其安全目标。
8. 未来应用与研究展望
- 轻客户端安全性增强: 本工作的技术可以通过允许简化支付验证客户端缓存和验证更相关的数据子集来增强其安全性。
- 跨区块链归档: 开发标准化的高效归档协议,由专门的“归档节点”存储完整历史,普通节点存储优化后的子集,并通过密码学证明按需获取数据。
- 与第二层集成: 为同时参与第二层网络(如闪电网络)的节点优化存储,其中特定的历史数据相关性更高。
- 用于预测性裁剪的机器学习: 采用机器学习模型来更好地预测哪些历史数据将被需要,进一步优化存储/性能权衡。
9. 参考文献
- Sforzin, A., 等. "On the Storage Overhead of Proof-of-Work Blockchains." (来源PDF).
- Nakamoto, S. "Bitcoin: A Peer-to-Peer Electronic Cash System." 2008.
- Bitcoin Core Documentation. "Pruning." https://bitcoin.org/en/bitcoin-core/features/pruning.
- Buterin, V. "Ethereum Whitepaper." 2014.
- Gervais, A., 等. "On the Security and Performance of Proof of Work Blockchains." ACM CCS 2016.
- International Energy Agency (IEA). "Data Centres and Data Transmission Networks." 2022. (用于计算开销的背景).
分析师视角:四步解构
核心洞察: 本文提出了一个关键但常被忽视的洞察:比特币全节点的功能性存储需求并非370 GB,而是可以低至15 GB。庞大的账本在很大程度上是一个冷存档,而非活跃的工作内存。这将可扩展性辩论从“如何缩小链?”重新定义为“如何智能地管理对它的访问?”。这类似于计算机体系结构中的认识:并非所有RAM中的数据都同样“热”;缓存是有效的。作者正确地指出,区块链的安全性主要取决于UTXO集和区块头链的完整性,而非每个古老交易的原始字节。这与以太坊研究论坛中关于无状态客户端和默克尔证明的基础工作相一致,但务实地将之应用于当今的比特币。
逻辑脉络: 论证过程有条理且令人信服。它从量化问题(370 GB)开始,批判了现有的权宜之计(盲目裁剪),然后基于实证证据——黄金标准——构建其论点。通过实际测量节点使用哪些数据,他们从推测转向事实。逻辑飞跃非常优雅:如果我们知道验证需要哪些数据(“工作集”),我们就可以在本地丢弃其余部分,仅在极少数需要时才获取它们。这是一个经典的时空权衡,针对网络带宽通常比存储更便宜、更充裕的现实进行了优化,尤其是在消费级硬件上。
优势与不足: 其优势在于实用性和即时性。无需分叉,无需共识更改——只需更智能的客户端软件。它直接降低了运行全节点的门槛,对抗中心化。然而,不足之处在于权衡的细则。所谓“微不足道”的网络开销假设了一个健康、诚实的对等网络。在网络分区或复杂的日蚀攻击期间,如果裁剪后的节点无法获取旧区块,其验证深度重组的能力可能会受到影响。同时,验证非常古老的交易也会略微增加延迟。此外,正如Gervais等研究人员在其PoW安全性分析中指出的那样,减少节点对历史的即时访问,在极端情况下,可能会影响其独立验证链总工作量的能力。本文可以更深入地探讨这些安全与效率的权衡。
可操作的见解: 对于区块链开发者而言,指令很明确:将这种数据驱动的智能裁剪集成到默认客户端软件中。比特币核心中当前的“prune=550”标志是一个钝器;它应该被本文提出的自适应模型所取代。对于企业和矿工来说,这是一种直接的成本节约措施——云存储账单可以减少90%以上。对于更广泛的生态系统而言,这项研究为“区块链天生臃肿”的论点提供了一个反叙事。它表明,通过客户端创新,无需触及神圣的共识层,就有可能实现显著的可扩展性改进。下一步是标准化按需数据获取协议,使其高效且保护隐私,将这项研究转化为可部署的标准。