0
本文作者: AI研习社-译站 | 2018-08-13 14:04 |
雷锋网按:本文为AI研习社编译的技术博客,原标题 A Primer on Ethereum Blockchain Light Clients,作者为 zk Capital 。
翻译 | 高敏 校对 | 余杭 整理 | MY
许多使用点对点协议且基于区块链的项目在性能和吞吐量上夸大其辞。在研发阶段,这些项目已经出现了一些创新,但是一旦这些协议运行时,它们大多对经常遇到的挑战难以作出解释。
网络拓扑结构
假设大多数人在延迟和计算量之间的某个置信区间上网是很容易的,但是他们忽略了必须借助于区块链上的节点进行交互。对大多数用户而言,不幸的是,运行一个全节点不仅速度慢,而且价格昂贵让人望而却步,因此大多数用户选择轻节点,因为它们不仅背负着全节点所拥有的安全性使命,对资源没有额外的需求。
以太坊轻客户端模式允许像树莓派一样的轻量型设备加入网络,当区块头显示时可以将它们下载,并且如用户所要求的那样按需验证某几种状态。在以太坊中,这些档案性的全节点拥有的客户端很容易使得网络饱和。与所谓的 Merkle Tree 相比,树莓派可以更快地锁定这些节点。
你可以在树莓派上安装一个轻型客户端!
密码经济作为运行全节点的动机已远远不够,这是因为资源成本效益在平衡分布式网络过程中遇到了瓶颈。对于轻型节点,网络将拥有怎样的完全平衡是难以预测的。关于怎样平衡这些动机以及如何使得用户更容易证明运行全节点是正确的这些话题,早已被讨论过多次。
对轻客户端的介绍:以太坊中的关键角色
轻型客户端背后的核心思想是它能够获取用户所关切的状态部分。它假设有一个诚信模型,在这个模型中,矿工们都正确遵循以太坊的规则,并且系统中至少有一个完全节点是完全诚实的。
将同步模式标志设置为轻型模式
他们的基本功能是当块标题显示在网络中时可以将它们下载,而且对于正在被客户端使用的状态部分的 Merkle 证明而言,按需变化的问题需求也可以被下载。以太坊上的轻客户端采用分布哈希表而不是本地存储来记录字典树的节点。
考虑到 Ethereum 状态通过大些的 Merkle 树来显示,从 Merkle 的树根出发,沿着树中一个分支的一条节点路径,可以很轻易地将验证信息的完整性作为轻量级的证明。这最终依赖于对所提供的 Merkle 树根正确性的信任。
轻客户端信息包括但不局限于查询账户余额、验证确认事务、检查部署在网络上的某份合同的事件日志等其他信息。
通过 Merkle 树的证明和验证,所有的这些可以被归结为次线性复杂度。当无法获取来自区块链的数据时,或无法检查出何时验证状态交易指数时,客户端可以在点对点网络中向其他参与者发出警告。
当处于轻客户端模式下时,以太坊客户端会将基本上不同的配置和协议经理具体化。当以太坊启动一个轻客户端时究竟发生了什么,对此感兴趣的用户可以参考我下面的问题。
潜在的共识机制
目前的轻客户端协议假定通过全节点在主链上开展工作共识证明。在工作量证明过程中,我们可以借助于一个数学函数来验证区块头部的有效性。也就是说,这个算法很难计算区块头部并输出,但是却很容易对其进行验证。
......
想要继续阅读,请移步至我们的AI研习社社区:https://club.leiphone.com/page/TextTranslation/706
更多精彩内容尽在 AI 研习社。雷锋网雷锋网
不同领域包括计算机视觉,语音语义,区块链,自动驾驶,数据挖掘,智能控制,编程语言等每日更新。
雷锋网雷锋
雷峰网原创文章,未经授权禁止转载。详情见转载须知。