大家好,我是CoinW的CEO?Sebastian Zhao。本着以用户为中心的服务原则,特开启ETH2.0云上课堂,该学习系统主要围绕着ETH2.0展开深入探索,由ETH2.0内容、运行、价值和如何把握风口四大部分构成,本期开启“ETH2.0的运行”的第3部分:
C:就ETH2.0的分片设计做简单阐述。
可点击http://8rr.co/9ep6,查看ETH2.0云上课程。
(为方便学员理解,将通过问答的形式进行)
1、哼仔:众所周知,对于依赖高性能传统交易处理系统的网络来说,区块链缓慢的交易速度是一个无法回避的严峻问题。本次ETH2.0的分片就是针对此情况升级的,请问可否简单介绍一下什么是分片?
Sebastian:这是一种在集中式数据库中使用的热门技术,在集中式数据库中,整个数据集被分割成更小的分片。在区块链网络中,分片技术用于将交易分解为分片并将其分布到整个网络中,这样一来,每个网络节点都不必下载和保存整个区块链状态。通过并行化,分片技术可以显著提高交易处理速度。
举个例子你去罗森结账,只有一位操作员,那么效率是很低的,现在同时有三位,是不是效率提高了很多呢?
2、哼仔:那这些分片有什么类型的呢?
Sebastian:分片的类型还是比较多样化的,目前有Beanstalk、二次方分片、状态分片、跨分片交易等,现在就简单介绍一下最简单的分片:Beanstalk。
Beanstalk,全称是“scaling by a thousand altcoins(通过上千种山寨币来进行扩展)”,在 Beanstalk 这种分片方式中,我们不会只运行一条区块链,而是运行很多条链,并将一条链称为一个“shard(片区)”。每个片区都会拥有独立的一组验证者(Validator),即通过 PoW 机制挖矿或者投票机制来验证交易和生成区块的网络参与者。我们暂时假设各个片区从不相互交流。
Beanstalk 的设计虽然很简单,但已足以推理出分片技术面临的一些主要挑战。
3、哼仔:那么应用于分片后,会带来现有的带来什么变化呢?
Sebastian:首先,分片内的交易跟之前一样。分片之间的交易仍然可以发生,且会很快,但它们会是异步的,使用收据的方法。
其次,处理交易的速度加快了,分片前只有主链这一个账本,每秒大约能处理12~45笔交易,当交易量大于这个数据时就需要排队,也就是网络会拥堵;分片就是把一个账本变成64个账本,让它们同时来处理交易,相当于罗森开了64个收银台来收银。
4、哼仔:据我所知,ETH2.0有64个分片,每个分片有128位验证者,如果分片的验证者是固定的或者可预知的,那攻击者控制分片,也就是收买128中的2/3是一件容易的事情,怎么办?
Sebastian:目前ETH2.0的解决办法是随机从所有验证者中选出某个分片的验证者,并且每6.4 分钟(一个epoch的长度)更换一次验证者。如此一来,攻击者就只有万亿分之一不到的几率能控制一个分片中 2/3 的人。
信标链的主要工作之一就是为分片链分配验证者,该工作最需要关注的是随机性的实现。首先在于随机性的重要程度,如果不能随机分配验证者,就无法保证账本的安全;其次在于随机性的难度,在区块链上实现随机是一件异常困难的事,可以认为到目前为此还没有真正称得上是工程实现了的经受了验证的随机算法。
以太坊的方案是使用RANDAO+VDF提供随机数,以实现随机性。把RANDAO拆解成RAN(random)和DAO就很易理解,它是指一群人中的每个人都独自提出一个随机数,再把所有人的随机数合在一起生成最后被使用的那个随机数。因为任何人都难以知道其他人提供的数字,也就难以预知合起来的最终数字。
5、哼仔:那目前看来这种验证方式可以能会出现什么问题呢?
Sebastian:RANDAO模型有个缺陷,就是提供最后一个数字的人是有机会作弊的:他知晓前边所有人提供的随机数之和,也就能通过调整自己提供的数字使得最终结果对自已有利。
为解决这一问题,以太坊引入了VDF(可验证延迟函数),它的作用很简单,就是让最后一个提供随机数的人无法在自己提供数字之前算出之前所有人的随机数之和,因而也就无法操纵随机数。
6、哼仔:那在进行ETH1.0过渡到2.0的期间,跨分片如何进行交易呢?
Sebastian:这正是状态分片面临的最棘手的问题。
解决这一问题有两种思路,一是同步(紧耦合),二是异步(松耦合)。
首先同步是比较通俗易懂的,A发起转账,记账人都知道这笔交易及交易进展,交易完成,同步生成新区块。同步方式看上去友好,其交易执行过程的观感如未分片一样,但它隐藏着一大问题,就是难以应对「连续状态改变」。
相比之下,异步尽量避免了连续状态改变,其基本思路就是用信标链传递信息:在每一个slot(12 秒),分片链产生区块并与信标链区块交叉链接,这样一来,任何分片在打包自己的新交易时都能通过信标链知道之前所有其他分片的信息,不同分片间异步一个slot。
目前,技术还在开发中,最终事实会是怎样,还没有定数。
本期的访谈到此结束,谢谢各位学员的观看,下一期云上课堂将讲解“ETH2.0的运行”的第4部分:ETH2.0目前进展,什么时间才是最好的时刻,一切都是迷!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。