免责声明: 金色财经作为开放的资讯分享平台,所提供的所有资讯仅代表作者个人观点,与金色财经平台立场无关,且不构成任何投资理财建议。
APP
中国版App下载 Android & iPhone
金色专栏
  • 发布文章
  • 发布活动

以太坊技术及应用大会 | ETH2.0技术攻略

金色财经6月29日讯 2019以太坊技术及应用大会于6月29日在北京长城饭店举办,本次大会由CSDN和灵钛科技联合主办。V神及以太坊基金会多位核心成员、海内外顶级以太坊开发者、技术专家等参与大会,围绕以太坊的生态全景、未来发展和开发实战进行主题分享,精彩观点总结如下。

L6mK9Lrsd38ZROEAar29Rd7O956hRrMUeAWZuIAU.png

以太坊创始人Vitalik Buterin:以太坊2.0之跨分片交易

在热烈的掌声中,Vitalik发表了本次大会的第一个演讲,向开发者介绍以太坊2.0的理念及进展,着重解释跨分片交易的原理。

以太坊2.0的设计理念

现在的链,所有节点下载和验证所有交易,这样虽然很安全,但严重限制扩展性,我们想改善这个情况,提高其扩展性。未来区块链是分片的,这意味着每个节点只下载和验证一部分的交易。

在以太坊2.0的设计中,有1024个分片,每个分片都相当于一个短链,有自己的共识算法。信标链管理共识算法和跨分片的沟通,每6分钟不同分片间进行交流,了解其它分片的哈希值。

提高分片交流效率的策略

异步交易是我之前设计的。比如我有5个币,想把它转给Bob,Bob的账户在底端的分片,我的账户在顶端的分片。首先我要在顶端分片做一个交易请求,此交易会在顶端分片处理并产生哈希值,但它并不会立即完成,之后把它放到底部的分片中,当它在底部分片进行验证后,交易就能够处理了。

另外一个是“火车票和酒店”的问题,在订火车票和酒店时,你当然希望他们订在一起,如果只有一个而没有另外一个就没有意义。问题是:如果订火车和订酒店在不同的分片怎么办?

想象两个智能合约,一个合约用来订火车票,另外一个用来订酒店。其中任何一项失败,我们都可以把交易撤回。但由于这两个合约在不同的分链中,确保一致性更难。

其中的一个解决方案是“猛拉”,每张火车票有一个合约,每个房间有一个合约,这样每个合约都能代表我们订座位或订房间的能力。在“猛拉”中发起一个合约,它的功能就是一次用一个合约。从酒店分片拉一个合约,从火车票再拉一个合约,两个分片同时预定。而如果你放弃订票,而别人还想订,就可以通过“猛拉”拉到他们的合约里。它是一个自动的过程,要么2个都订,要么都不订。

用一个更短的区块链,但需5分钟让一个分片知道另一个分片的数据或者哈希值,我们希望这个过程变得更加快捷。

比如,最开始Alice有10个,Bob有20,charlie有52个,把这些压缩之后进行存储。有两种情况,一种情况是Bob有20个coin,还有一种情况是Bob之后有25个coin。如果我们的钱包上面看到上面的根是R,下面的分片就可以做个推测,就是Bob有25个coin,就可以取25个coin给其他人。

在这个过程中,虽然看起来交易已经完成,但我们的计算并没有最终化。那么你可能会问,似乎Bob有了这些coins,但是他还没有花这些coins。我们假设Bob要把25个coins发给Charlie,他会做什么?

我们不用去思考到底R是真实的还是假的,因为Charlie现在有52个coins,所以知道R一定是真实的。这个逻辑是在后台进行的,逻辑效应是通过Bob、Charlie的钱包分析,我们至少先知道发生了这样的交易。你可以用通信的方式在跨区块链中进行交易,还可以让它创造应用程序,让不同的区块链进行跨链的交易。

我们还可以实现其他目标,比如通过Plasma方法做同步交易,在任何分片都可以发起交易,资产会存在合约里,但我们不会马上去数状态的总数是多少,取出需要等一周。此时,如果任何人能证明那个状态不是有效的,他们就能取消取款。

通过这个方法可以保证如果我们收到了coin,没有进行非法支付的话,我们的交易就会同步到整个区块链上进行广播。我们有两个资产,X和Y,我们的分片有自己的轻重缓急,可能先进行某一次交易再进行下一次交易。

如果在参加交易过程中,自己有了资产,而且希望发送交易信息,就可以把它公布到任何分片上。如果你是某个资产的所有者,你可以仅仅分析这些分片,评估这些交易的历史记录。

这种设计被称为“积极虚拟机(OVM)”,你所有权的资产并没有立即转移,我们开始一个流程,不需要把钱取出来,可能一整周时间才可以真正到帐,但如果你是用户,你可以知道为什么不能马上取出某个资产,而且你有一种感觉,就是这个交易是可以真正到账的。

这样做的好处是,我们会获得公开交易的能力,而且还可以得到及时确认,可能0.5秒的时间就可以立即确认,用户体验非常好,类似中心化服务器提供的这种体验。

如果我们从不同的分片进行数据的公布,逻辑会非常复杂,智能合约也会变得很复杂,用户钱包会进行大量的计算,需要更长时间进行计算。

ETH2.0的总结

如果想做出一个通用型的区块链,首先要有一个通用的基础设施,能够把数据放在此链上,还可以在其上做更快的计算。我们利用工具进行应用的过程比较复杂,不同的用户有不同的实施方式。区块链要求我们有一个全节点共识。也就是,怎样进行储存?怎样对用户coin的数量进行准确,这些都需要通过更进一步的应用来实现。而且,我们还需要保证整个流程的简便性,需要对共识机制进行不断的提升,创造出不同应用的底层协议。

我们正在研究如何设计这些机制,让我们创造出扩展区块链的不同应用,它拥有很强的性能,可以进行非常快速的交易,甚至是异步的、同步的交易都可以实现,而且还可以实现跨分片的交易。

在2.0设计中,提高交易的确认速度不需要提高区块的速度,分片是分配数据和计算的工具,在这个底层上有很多方法实现可扩展的应用环境,通过这些方法可以在分片的区块链上保持速度和有用性。以太坊Layer1作为简单和安全的不用应用的底层协议,然后在Layer2继续研究和改进。

02RaqGDZRBczsiLZ7TMCcxDJsnsWxLMwYldBIqhE.png

以太坊核心研究员Hsiao-Wei Wang:以太坊 2.0 和信标链验证者

Hsiao-Wei Wang首先解释为什么以太坊 2.0需要信标链Beacon Chain。

信标链的主要功能:第一,取代原本早期的设计,信标链现在是整个系统分片互动的核心。

第二,作为Whistleblower去举报恶意验证者。举报者不一定是proposer本人,但是如果它纳入更多Slashing Operation,就能够获得更高奖励。

其次,她介绍了如何如何成为信标链的验证者。

首先在ETH1主链部署一个特殊合约保管合同,合约接受使用者付出的抵押金,抵押金至少是要30个以太币,这个合约每收到一笔有效的押金,放出event log,但并不是马上加入到 validator 之中就算是有效的active validator,还有一部分需要在链上做验证。

之后,Hsiao-Wei Wang提到了以太坊的惩罚和退出机制及其对应的处理方法。

最后,Hsiao-Wei Wang分享了今年和明年初可以期待的事情。第一,希望有稳定版本的stable testnet;第二,目前开发端都是各自研究,希望接下来可以形成交互;第三,正在形成新签章机制的标准化和审计。另外如果一切顺利,Hsiao-Wei Wang 团队会部署抵押合约并开放staking。

NVQEhlbWBgLiGw6shPmX3G3ggoXa0hlOFuXcuYFw.png

Go-Ethereum核心开发者Gary Rong:深入以太坊轻节点协议

Gary首先说明了轻节点协议的基本概念。

以太坊轻节点协议就是为以太坊设计的,有两个目标,一是对资源要求足够低,二是有能力验证从网络中收集到的证据。目前有两类协议,一类是Les端实现的,另一类是PIP客户端实现,今天主要为大家介绍第一类协议。目前以太坊中的节点根据类别主要分为三类,第一类是Archive node,第二类是Full node(全节点),最后是 Light client(轻节点)。

之后,Gary解释了Merkle Trie的含义及checkpoint的相关情况。

Merkle Trie是以太坊网络中非常常用的一种数据结构,第一个特点是它通过路径来编码与这个节点对应的数据项的key值。第二个特点是每个副节点都会存储所有hash节点的hash。副节点本身的hash又是通过所有节点的hash内容再进行一轮hash计算得到的,所以最终Merkle Trie 节点root节点的hash值包含整棵树中所有节点的hash信息。

轻节点可以从checkpoint同步,它必须满足两个条件,首先,它一定是可信的,或者checkpoint一定是最长链上的点,其次,轻节点必须能够利用checkpoint信息做历史数据的校验,这样它才能够真正不去同步所有历史的block headers。

轻节点刚进入网络时没有任何数据,所以它很难验证checkpoint是否正确。有两个解决方法:一是开发者通过编码方式在代码中确认最新的checkpoint,它是较为中心化的解决方案;二是在区块链部署一个智能合约 ,通过这个智能合约完成checkpoint的更新操作。

对于用户可以在轻节点中做哪些事情,Gary提到了五点:交易转积、查询账本服务、本地调用智能合约、智能合约事件订阅和基于历史智能合约事件的搜索。

Gary 还分享了协议中流量控制与容量管理的解决办法。

流控问题采取比较传统的技术,但在去中心化架构下,client需要往一个单点发送请求,server为其进行复杂均衡、流量控制。通过这种方式 client 能够借助本地令牌信息更好地管理和分发它的请求,避免很低的处理优先级或者很高的响应延时。server 端的容量管理通过提供 4 个参数让 server 运维限制 server资源使用:lightserv、两个网络带宽的参数、以及 lightpeers。server 处理请求有一个较为精确的计算公式,需要同时考虑两方面内容:时间开销与网络带宽。


jinse.com
好文章,需要你的鼓励
jinse.com
好文章,需要你的鼓励
了解更多区块链一线报道,与作者、读者更深入探讨、交流,欢迎添加小助手微信:jinsecaijing666, 进入[金色财经读者交流群]。
发表评论
0/140
发布评论
评论
文章作者: / 责任编辑: 我要纠错

声明:本文系金色财经原创稿件,版权属金色财经所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:金色财经",违者将依法追究责任。

提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

金色财经 > 区块链 > 以太坊技术及应用大会 | ETH2.0技术攻略