本文基于最近一个Twitter Spaces活动,参与者包括轻客户端的热心支持者Phil Ngo、Gajinder Singh(来自Lodestar)、Guillaume Ballet(来自Geth)以及Matt Garnett(来自以太坊基金会)。
在Lodestar,我们长期倡导轻客户端的使用——这类软件通过连接到全节点以实现与区块链的交互。作为一种既节约资源又不依赖信任的替代方案,轻客户端降低了对第三方的依赖性。尽管它们本身不负责确认区块,但在提供直接访问无需信任的区块链数据方面,它们发挥着重要作用。
然而,尽管理论上具有重大价值,将轻客户端作为与以太坊交互的标准方式还有待进一步的努力。接下来,我们将深入探讨目前存在的挑战(及其进展),同时强调在不影响用户体验的前提下,实现无需信任性的重要性。
什么是轻客户端?
与以太坊进行最去中心化且最不依赖信任的互动方式是运行一个全节点。但这并非易事——它需要维护区块链的独立副本,并直接访问以太坊的对等网络,这对内存、存储和CPU的要求很高,对许多用户而言并不现实。而且,在许多情况下,验证整个链是不必要的。
如无状态化等解决方案,距离实现还需数年时间。目前来看,牺牲运行全节点的部分好处,以较低的硬件要求实现轻客户端运行,是一个我们持乐观态度的可行方案。
事实上,我们去年发表了一篇关于轻客户端的文章,认为它们是解决我们面临问题的一个方案。
因此,轻客户端在区块链系统中扮演着举足轻重的角色,为那些不愿运行全节点的用户提供安全的以太坊访问方式,而无需同步整个网络。
轻客户端不直接存储区块链数据或自行验证更改,而是从提供者那里获取所需数据,这些提供者可能直接连接到全节点。然后由轻节点处理这些数据,确认其为规范链的一部分,并保持最新状态。
以太坊并非唯一积极发展轻客户端的生态系统。
表现力强的轻客户端是在保持去中心化的同时实现扩展的关键。以太坊、Solana和Celestia都已经意识到这一点,并且都已经开始或即将向这个方向发展。
我们很高兴看到这些领域的杰出人才齐心协力。
— rain&coffee (@0xRainandCoffee) 2023年11月5日
轻客户端面临的挑战
众所周知,运行全节点涉及资源密集型的任务,并对设备能力和计算需求有一定限制。虽然轻客户端看似是一个简便替代方案,但从历史上看,它们的实现颇具挑战性。
然而,以太坊的合并从根本上改变了轻客户端在以太坊上的定义,包括它们的工作方式和将提供的功能。Altair硬分叉引入了同步委员会,这是一种有效确定链头的轻共识方式。从根本上说,这是轻客户端更深入地融入协议的一种方式。
在转向权益证明机制之后,我们现在有了一种轻客户端协议,可以选择链的任何部分,构建证明,并进行深度分析。这在以前是做不到的,使得整个领域更加引人关注,并激励更多人围绕轻客户端进行开发。
Lodestar证明器
Lodestar团队正在研究的一个项目是证明器。即利用轻客户端同步来验证来自执行层的数据,确保你从提供商(如Infura)获得的信息是正确的。
我们希望这样的技术能为协议增加另一层安全性,并引入更多去中心化元素。这只是一个开始。我们需要更多实际案例来展示这种潜力可以被如何利用。
我们为何今天还未普及轻客户端的使用?
这个问题的答案与技术本身关系不大,更多与我们现有的PoCs(概念验证)和基础设施的采用有关(例如Prover Library)。
我们需要增加有关交易和收据的更多证明能力,这可能需要我们转向使用SSZ编码的交易,但除此之外,从协议层面来说,我们已经做好了准备。
我们现在实际上已经可以使用这项技术了!但就用户体验而言,我们需要达到轻客户端能够在后台默默运行,不干扰用户或无需他们采取额外步骤的程度。
当然,在去中心化的环境中强制推广某项技术总是充满挑战,但我们应该思考如何通过激励措施来促进这一过程,以及如何让MetaMask、Rainbow等应用考虑采用轻客户端。
从Merkle树到Verkle树的转变
为了提高效率而改变数据结构——从Merkle Patricia树结构转移到更先进的Verkle树,对于那些原本因庞大的证明大小而苦苦挣扎的轻客户端来说,是一次巨大的飞跃。
Verkle树的引入解决了这个问题,通过采用全新的数据结构。它利用创新的基于多项式的技术,大幅减小了验证所需的证明大小,使得轻客户端的处理过程更加高效和流畅。
“Verkle的优势在于它能提供小型的证明。因此,可以为轻客户端提供一种方式来验证所获得的全部数据,从而减少信任的必要。”
这一更新标志着轻客户端与以太坊数据互动方式的根本性转变,不仅提升了它们有效验证区块链状态的能力,而且在保证安全性和信任度的同时实现了高效性。
这不仅对当前的轻客户端有益,而且为未来的创新奠定了基础,创造了一个用户可以以更流畅、更安全、更高效的方式与以太坊互动的空间。
轻客户端是否应在L1和L2中实现标准化?
这是一个目前正在讨论的有争议性的话题。根据Guillaume的观点:“我认为我们暂时不应该对数据结构进行标准化,因为L2层正在进行实验,它们倾向于快速行动并尝试新事物,而L1层则更加谨慎和保守。”
事实上,我们可能需要更多时间来考虑标准化的问题。至于何时进行标准化,这还是一个未解之谜,但可能还需五到十年时间,社区才能开始考虑协调这一过程。
这种延迟可能是由于以太坊各层的复杂性,以及现有技术和设计框架下实施变更的挑战所致。总的来说,我们应该等待一个更合适的时机来进行任何可能的标准化努力,以便于一个更成熟和稳定的以太坊基础设施的建立。