Time:2023-05-07 Click:93
众所周知,以太坊的发展面临着新困境。以太坊每天支持大量的经济活动、结算数十亿美元的交易,在蓬勃发展的 DeFi 和 NFT 领域中运行成千上万的 DApp。但是,以太坊有限的空间资源已然无法承受过多的应用,也无法接受大体量用户的蜂拥而至。当网络拥塞时,交易变得更加昂贵且延迟更多,给用户带来更大的经济负担。
鉴于此,相关团队为了解决以太坊扩容难题,提出了诸多技术解决方案,其中包括分片(Sharding)。分片为网络划分多个轨道,以水平扩展的方式并行处理交易,在多个服务器之间分布计算和存储容量,从而使总体吞吐量更高。分片主打的“并非每个人都必须运行每个碎片”的技术理念,成为轻客户端诞生的关键。
轻客户端在以太坊分片中扮演重要角色,使验证者能够快速验证和同步不同的分片,成功化解了不少 DApp 运行过程中出现的阻滞难题。同样面临高速发展带来扩容有限、用户载量大等困境的波卡、NEO 等公链,也纷纷开启了轻客户端的实践,为更好地布局应用生态版图提供更为畅达自如的环境。
Marty McFly 曾言:“未来,轻客户端会遍布各地。” 这种轻量化、用户友好的应用程序目前已有诸多成功范例涌现。那么究竟什么是轻客户端?相较传统的应用端口有何技术上的优化与精进?面向未来,轻客户端的大规模铺开又需要克服怎样的挑战?本篇文章将聚焦上述问题,带你洞悉轻客户端的发展与未来。
在我们了解轻客户端之前,首先需要从客户端的概念开始说起。计算机科学中的客户端是连接到服务器的硬件或软件的一部分,如 Internet 浏览器是一个连接到网站以请求其内容的客户端。在区块链世界中,客户端是以点对点的方式连接到其他客户端的软件,所有客户端相互通信且形成了一个网络,每个客户端都是一个节点。
以以太坊为例,过去只有一种类型的节点(又称:全节点)负责验证和转播网络上的交易和区块。囿于互联网和区块链的运行特点,每个全节点需要下载并验证每个区块,对于每一笔交易也需要经过全流程的核验和把关。那么随着用户体量增大、服务型应用增多,这种全节点把控会带来上文提及的费用高昂、查验缓慢等难题,阻碍了以太坊的长远发展。
在此情景之下,轻客户端的理念逐渐兴起。轻客户端是区块链生态系统中的关键要素,帮助用户以安全和去中心化的方式访问区块链并与之交互,而无需读写区块链上的大量信息。轻客户端被允许以最小信任的方式与全节点实现交互,可以在事先不知情的情况下证明信息的真实性。轻客户端的基本功能是:每当有区块出现在网络便进行下载,向客户端发送特定状态的默克尔证明(Merkle proofs)请求。其使用分布式哈希表来追踪前缀节点,而不是使用本地存储,以一种“云存储、云验证”的方式直接获取用户个体的信息验证材料,促使交易、娱乐等各项活动更快开展。
整体而言,轻客户端解决了可用性和采用技术时的主要障碍。作为 Web3 基础设施组件,轻客户端允许以比运行完整节点更少的资源方式与区块链进行交互,并且可嵌入桌面、Web 和移动应用程序。最重要的是,它们保持不信任,直接从对等节点同步区块头。轻客户端通过向单个全节点发出请求、同步区块链的区块头来验证全节点提供的特定响应来工作,真正做到了“最多跑一次”。
Fluffy 是一种以太坊轻客户端,是为以太坊 2.0 客户端 Nimbus 开发的一种操作模式。一个轻客户端友好的网络,必须设计只需付出少量存储空间、少许工作量的节点来参与网络并作出贡献,而不是要求每个节点都必须承担很高额的负载。Fluffy 就是秉持这样运行理念的技术客户端,它将使 nimbus-eth 1 客户端可以作为网络中的一个轻客户端节点来运行,通过开发 Portal Wire 协议成功实现了与其它客户端的握手,以“桥节点”为门户网络输入状态数据,轻松实现云端数据的快捷传输。此外,Fluffy 将支持以太坊 JSON-PRC API 的一个子集,所以像钱包这类设施可以直接集成该类客户端。
Substrate Connect 是基于浏览器的 Substrate 链上轻客户端,已成为 Substrate 技术堆栈的最新成员。这个备受期待的基础设施组件为开发人员和最终用户提供了一种更为简单、快速的应用方式,以完全去中心化、无需信任的方式连接到 Substrate 链,赋予更多 DApp 服务以及 DApp 开发人员以良好的应用体验感。Substrate Connect 是一个 Javascript 库,它提供了一个功能齐全且附带扩展途经的轻客户端,取代了通过 RPC 节点连接到 Substrate 链的传统流程,DApp 开发人员不再需要经历运行本地完整节点的繁琐步骤,直接可以在他们的 DApp 中轻松访问轻客户端集成。
另外,轻客户端还缺乏一种更好的用户激励方式,众所周知激励是生态系统稳定的关键。如何允许用户以去中心化的和安全的方式访问区块链,鼓励用户和机构运行全节点、服务轻节点、惩罚服务坏数据的恶意全节点?或许可以采取类似“DAO”治理的理念体系进行轻客户端生态的运营管理,形成“开发者——轻客户端——用户”之间的良性循环体系。
事实上,诸如优化轻客户端运作环境、革新轻客户端使用功能的技术方案或许还有很多。未来还需各位开发者不断开拓创新,打造面向 Web3 的卓越轻客户端。
参考资料:
什么是轻客户端?以及为什么你需要了解它
引介 | 以太坊区块链的轻客户端入门
NEXT 社区小课堂 | 第二十六课:如何创建 NEO 轻客户端
引介 | Fluffy 客户端:以太坊的极轻客户端