比特币节点现在更接近即时同步
比特币节点即时同步
比特币轻客户端现在可以几乎即时地同步到区块链的最新高度,这要归功于比特币初创公司ZeroSync在零知识证明(ZK)领域的工作。ZeroSync最终的目标是使完整节点也能实现同样的功能。
ZK证明允许证明者生成一个简短的数学陈述,向验证者证明某个计算的正确性,而不泄露任何关于该计算的详细信息。构建这个证明可能在计算上是昂贵的,但它提供的陈述总是非常紧凑的,无论输入到证明计算中的数据有多大,都能以数学确定性地快速验证数据的正确性。在比特币中,这种数学技巧对节点和客户端非常有用。
众所周知,比特币完整节点需要下载并验证构成区块链的每一条数据,从2009年1月至今。由于这种全面设置的扩展困难,中本聪在比特币白皮书中设想了一种不需要运行完整节点就能验证收款的不同类型的客户端。
比特币轻客户端利用了简化支付验证(SPV)机制。在收到付款后,客户端查询网络节点以获取最长链的区块头。然后,它能够找到包含该收款交易的区块,从而显示网络节点已经接受该交易为有效。随着更多的区块添加到该区块之后,轻客户端对该付款的有效性和被网络接受并记录在区块中的确认也越来越多。
在不需要对比特币进行共识更改的情况下,ZK证明通过将区块头压缩成一个单一的证明来改进这种设置。类似于每个比特币区块将其交易数据压缩成Merkle树并将该树的根包含在其区块头中,ZeroSync的工作将每个比特币区块头批量处理成另一个Merkle树。这个过程使得区块头链能够合成为一个短小而轻量级的数据——证明。
区块头链证明能够快速证明给定的区块头是否包含在链中。然后可以利用区块头证明来证明特定交易是否包含在该区块中。这个过程与上述SPV方法非常相似,但更高效。与SPV需要为每个区块头保留完整副本不同,使用ZK证明的轻客户端只需存储那个小的区块头链证明,能够在几秒钟内同步到链的最新状态。
最终,区块头链证明能够证明的是链中的每个区块在其被挖掘时都满足了难度要求。换句话说,验证区块头链证明允许用户或客户端确信每个比特币区块在给定高度之前都被正确挖掘并满足了挖矿难度标准。
发布第一个完整的区块头链ZK证明是ZeroSync的第一个里程碑。为了实现他们更大的愿景——为完整节点提供对历史区块链的完全验证,而无需用户下载和处理它——该团队还需要完成两个任务。第二个任务将进一步提升区块头链证明的性能,使节点能够类似于比特币核心的“假定有效”(Assume Valid)功能进行同步。第三个任务将提供完整的比特币区块链同步。
“假定有效”是比特币核心中的一个选项,默认情况下启用,它假定在给定的区块高度之前的所有脚本都是有效的。这意味着使用初始区块下载(IBD)同步区块链的新完整节点可以跳过从创世区块到比特币核心客户端在给定发布中建立的区块高度之间的脚本验证。这些脚本是交易的见证数据部分,主要是解决锁定脚本和解锁要花费的资金的签名,以及时间锁和其他编程的花费条件。用户可以选择设置`assumevalid=0`,强制客户端对所有脚本进行完全验证,除了验证其他区块内容。然而,启用假定有效的通用且相当安全的假设是,已经展示了足够的工作量以使得在给定的区块高度之前的脚本是有效的。
ZeroSync的中间方案,一旦完成,将使比特币用户能够以默认的比特币核心IBD方式同步其节点。节点会下载自比特币的创世时期到现在的所有数据,但只在假定有效高度之后验证见证数据。UTXO集也是等式中必不可少的一部分。为了解决这个问题,ZeroSync利用了Utreexo,这个项目也旨在提高比特币节点的同步效率。Utreexo提供了给定区块的最新UTXO集,ZeroSync能够将其添加到基于ZK证明的设置中。结果是一个更短的区块头链证明和一个更紧凑高效的UTXO集,客户端可以利用它们满足其支付验证需求。
团队的顶级产品将进一步发展,允许节点在不假定任何脚本有效的情况下与比特币的最新状态同步。使用零知识证明,全节点将能够通过比特币核心默认设置的假定有效性,实现更快速的初始同步,甚至可能获得更高的安全保证。
需要注意的是,即使比特币核心用户禁用假定有效性,验证所有脚本并实现与ZeroSync的顶级产品类似的安全假设,后者的更大价值在于验证所有这些信息的效率和速度显著提高。尽管比特币区块链当前保存着510GB的数据,但ZeroSync的方法将在完成时通过生成略超过1MB的简短轻量级证明,实现更快的处理过程,性能提升几个数量级,并确保遵循完全相同的共识规则。
随着比特币区块链不断增长,效率的提升将变得越来越重要。最终,在带宽和存储方面,下载和验证整个链可能变得不可行,尤其是在访问高速互联网和更大硬盘受限或昂贵的地区。
We will continue to update 算娘; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles





