专栏首页AI研习社想挖矿?不如先学习一下以太坊

想挖矿?不如先学习一下以太坊

本文为AI研习社编译的技术博客,原标题 A Primer on Ethereum Blockchain Light Clients,作者为 zk Capital 。 翻译 | 高敏 校对 | 余杭 整理 | MY

许多使用点对点协议且基于区块链的项目在性能和吞吐量上夸大其辞。在研发阶段,这些项目已经出现了一些创新,但是一旦这些协议运行时,它们大多对经常遇到的挑战难以作出解释。

网络拓扑结构

假设大多数人在延迟和计算量之间的某个置信区间上网是很容易的,但是他们忽略了必须借助于区块链上的节点进行交互。对大多数用户而言,不幸的是,运行一个全节点不仅速度慢,而且价格昂贵让人望而却步,因此大多数用户选择轻节点,因为它们不仅背负着全节点所拥有的安全性使命,对资源没有额外的需求。

以太坊轻客户端模式允许像树莓派一样的轻量型设备加入网络,当区块头显示时可以将它们下载,并且如用户所要求的那样按需验证某几种状态。在以太坊中,这些档案性的全节点拥有的客户端很容易使得网络饱和。与所谓的 Merkle Tree 相比,树莓派可以更快地锁定这些节点。

你可以在树莓派上安装一个轻型客户端! 

密码经济作为运行全节点的动机已远远不够,这是因为资源成本效益在平衡分布式网络过程中遇到了瓶颈。对于轻型节点,网络将拥有怎样的完全平衡是难以预测的。关于怎样平衡这些动机以及如何使得用户更容易证明运行全节点是正确的这些话题,早已被讨论过多次。

对轻客户端的介绍:以太坊中的关键角色

轻型客户端背后的核心思想是它能够获取用户所关切的状态部分。它假设有一个诚信模型,在这个模型中,矿工们都正确遵循以太坊的规则,并且系统中至少有一个完全节点是完全诚实的。

将同步模式标志设置为轻型模式

他们的基本功能是当块标题显示在网络中时可以将它们下载,而且对于正在被客户端使用的状态部分的 Merkle 证明而言,按需变化的问题需求也可以被下载。以太坊上的轻客户端采用分布哈希表而不是本地存储来记录字典树的节点。

考虑到 Ethereum 状态通过大些的 Merkle 树来显示,从 Merkle 的树根出发,沿着树中一个分支的一条节点路径,可以很轻易地将验证信息的完整性作为轻量级的证明。这最终依赖于对所提供的 Merkle 树根正确性的信任。

轻客户端信息包括但不局限于查询账户余额、验证确认事务、检查部署在网络上的某份合同的事件日志等其他信息。

通过 Merkle 树的证明和验证,所有的这些可以被归结为次线性复杂度。当无法获取来自区块链的数据时,或无法检查出何时验证状态交易指数时,客户端可以在点对点网络中向其他参与者发出警告。

当处于轻客户端模式下时,以太坊客户端会将基本上不同的配置和协议经理具体化。当以太坊启动一个轻客户端时究竟发生了什么,对此感兴趣的用户可以参考我下面的问题。

潜在的共识机制

目前的轻客户端协议假定通过全节点在主链上开展工作共识证明。在工作量证明过程中,我们可以借助于一个数学函数来验证区块头部的有效性。也就是说,这个算法很难计算区块头部并输出,但是却很容易对其进行验证。

当轻客户端启动时,他们会寻找区块头部最长的链,而且对于攻击者而言,通过制造有错误的头部来伪装成这条链的费用几乎是无法想象的。

以电力为基础的物理工作到通过工作证明而致力于链的安全性的转变是一个潜在的过程,尽管对制造出的区块头部的验证尤为有效。

在工作量证明环境中,轻客户端十分常用的,因为区块头部可以立刻得到验证,但是我们却无法保证在证明环境中也可以做到这样。

权益证明中的轻客户端:工作证明是不可或缺的吗?

在工作量证明中,轻客户端被简化的问题相当于区块头部并未与一定量的真正的工作实现绑定,而参与者需要投入这些工作中并制造他们。这种共识机制所带来的强度实质上是对拜占庭参与者的威慑性惩罚而不是对耗电计算 NP 难题的奖赏。在权益证明中,如果参与者想尝试发展错误链,那么他们将会受到惩罚,然而,在工作量证明机制中,在错误链上挖矿的参与者将会建立分支,而且不会得到在一条规范链上挖矿的奖励。

权益证明提供协议内的机制来最终确定区块头部。一旦这些头部被信任,获得它们所包含的数据复杂度为对数级别,即从 Merkle 树上获取一个节点。尽管如此,区块头部并不包含我们可以用来验证工作证明方法的标量值,这使得验证最起码为对数级别的而不是具有时效性的常量级的直接实现。然而,我们最起码可以在轻客户端的同步率上做得更好。

正如 Vitalik 在工作岗位上的对该问题的建议所言,凭借 checkpoint 系统可以建造一个更为轻量的客户端友好型权益机制。一个 checkpoint 可以被定义为一组固定数字的区块。

在这些区块内,三分之二的参与者必须同意通过密码签名,而且 checkpoint 必须包含其以前 checkpoint 的哈希值。在这种新的轻客户端同步机制中,只能下载 checkpoint,而且客户可以验证参与者的签名。如此,在目前的工作证明轻客户端模式下,下载每个单一区块头部所需的开支就降了下来。

然而这种方法并不能解决验证区块头部这一问题,因此权益证明还是很有可能将一小部分作用在块标题上的为了创造轻客户端的工作证明包含在内。

工作证明和股权证明的混合有助于轻客户端吗?

为了在权益证明系统中验证轻客户端,在区块头部的形成过程中无疑会有一个使用计算能力的角色存在,只要能够按要求验证这些区块头部充分小即可。

如果你想对有关内容有更多了解,检查以太坊社区正在分片上进行的工作,包括我的团队:Prysmatic 实验室!在分片模型中,轻客户端是极为有用的,因为分片的目的之一是降低节点对计算的要求。大多数分片的最新进展都公布在以太坊搜索,你可以从这里开始。

如果你喜欢这篇文章或者你有任何疑问,请在推特上联系我们。

原文链接:

https://hackernoon.com/a-primer-on-ethereum-blockchain-light-clients-20d715255ff0

本文分享自微信公众号 - AI研习社(okweiwu)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 和比特币关系最紧密的技术:区块链原来是这么玩的

    雷锋网消息。5 月 13 日,由 ThoughtWorks 主办的 2017 技术雷达峰会在北京召开。ThoughtWorks 中国区区块链能力负责人刘尚奇,在...

    AI研习社
  • 200 行 Javascript 代码构造一个区块链

    区块链的基础概念是非常简单的:一个有序递增记录列表的分布式数据库。然而,当我们在谈论区块链时很容易和用区块链来解决问题的过程混淆。这在如今较流行的以区块链为底层...

    AI研习社
  • Web 3.0 大串讲:原来你是这样的区块链!

    我们可以这样说,在如今的时代,想实现你的创业梦,web3.0 是你与巨头对抗的最佳武器,也是你实现创业梦的唯一方式。

    AI研习社
  • “一切都是消息”--MSF(消息服务框架)之【发布-订阅】模式

    在上一篇,“一切都是消息”--MSF(消息服务框架)之【请求-响应】模式 ,我们演示了MSF实现简单的请求-响应模式的示例,今天来看看如何实现【发布-订阅】模式...

    用户1177503
  • 成员网研会:大规模的容器安全|从前线得到的教训(视频+PDF)

    讲者:Wiebe de Roos,CI/CD顾问 @ABN AMRO;Keith Mokris,技术营销工程师 @Palo Alto Networks

    CNCF
  • 5、使用Java Low Level REST Client操作elasticsearch

    Java低级别REST客户端(Java Low LevelREST Client):Elasticsearch的官方low-level客户端。它允许通过http...

    java乐园
  • python rsync 数据同步脚本

    https://www.cnblogs.com/MikeZhang/p/rsyncExample_20160818.html http://blog.csdn...

    py3study
  • 使用Hyperledger Fabric和Composer实现区块链应用程序

    目前无法绕过技术领域的是区块链话题。但除了加密货币之外,还有更多有趣的应用程序可以带来许多激动人心的软件生态系统。这也适用于Hyperledger项目,该项目提...

    笔阁
  • 什么是域名停放?如何选择域名停放服务商?

    利用闲置域名解析到一个广告页面,当有人访问此域名点击广告,域名所有人就能得到收入的一种方式。一般是提供域名停放服务商,预先做了一程序页面,让你把需要停放的域名解...

    雪梦科技
  • 【Research】Explore ChestX-ray Dataset

    肺部疾病是威胁现代人健康的重要疾病之一,如何使用快速且廉价的方法对肺病进行诊断是医学界的重要课题。 随着深度学习方法的兴起,世界各地越来越多的研究员在尝试用深...

    keloli

扫码关注云+社区

领取腾讯云代金券