宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > Gateio > 正文

人人都能读懂的「以太坊2.0分片设计」

作者:

时间:1900/1/1 0:00:00

撰文:李画

来源:碳链价值

当我们在7-11买早餐的时候,如果只有一个收银员,就要排很长的队等待结帐;如果有两个收银员,立刻就会快一倍;假如有四个收银员,也许就不用排队了。这就是分片的基本逻辑,把一个人的工作分给多个人来完成以提升效率。

从以太坊分布式账本的角度来看就是:分片前只有主链这一个账本,每秒大约能处理12~45笔交易,当交易量大于这个数据时就需要排队,也就是网络会拥堵;分片就是把一个账本变成64个账本,让它们同时来处理交易,相当于7-11开了64个收银台来收银。

分片的逻辑很简单,但为什么如此难以实现?因为把一个账本分成64个账本记账,会面临很多新的问题,分片技术要做的正是解决掉它们。本文将从这些问题出发,来弄清以太坊2.0的分片到底是怎么一回事。

01如何分片

1.把交易分配给分片

一个分片中包含交易和把交易打包进区块的验证者,完成分片的第一步就是要确定如何给某个分片分配交易和验证者。先来看分配交易。

让我们用三个村庄的故事来理解:有一个渔村、一个猎户村、一个农夫村,村庄内和村庄间常常有交易,但没有货币,大家记账。以前是用一个账本记三个村子的账,速度有点慢,现在改成三个账本记,那么由哪个账本来记哪些帐了?

有一个方法是,三个账本放在那儿,来了一笔交易后,看哪个账本前没人排队就记在哪个账本上;但这会带来一个问题就是,每个账本都必须有所有人的账户信息,不然我来你这里排队,而你没有我的账户。

正因为如此,该分片方式的一个主要问题就是不能减少单一账本上存储的数据量,而这种存储需求对于想参与记账的节点是很高的门槛;该方式还需要解决双花问题,因为一个人可以同时在不同的分片中花费同一笔钱。

另一个方法是,渔村有一本账,猎户村有一本账,农夫村有一本账,账本中都只有自己村庄的账户信息,也只记录自己村庄内的交易。如此一来三个账本就可以同时记账,记账效率高,存储需求少。这正是以太坊采用的分片方法:状态分片,每个分片存储且只存储属于自己分片的账户状态。在实现上,以太坊是由用户自己选择加入哪一个分片,而不是按自然村庄分片。

Uniswap回应集体诉讼:我们设想一个人人都能进入公平、开放和透明市场的世界:金色财经报道,针对去中心化交易所 Uniswap 的开发商和风险投资支持者的集体诉讼称,因为该协议允许用户自由上架和交易代币,其创建者应对“交易所猖獗的欺诈行为”负责,并且需要注册为经纪人金融业监管局 (FINRA) 的经销商。?Uniswap在博客文章中称:我们设想一个人人都能进入公平、开放和透明市场的世界。Swap Widget 通过允许开发人员轻松嵌入 Uniswap 交换功能,使这一愿景更接近现实。(blockworks)[2022/4/20 14:34:51]

状态分片最大的问题是,如果渔村的人要和猎户村的人交易怎么办?渔村的账本里没有猎户村人的账户,猎户村的账本里也没有渔村人的账户。实际上,这正是分片技术面临的最大考验,跨分片通信。彻底解决这一问题的时候,就是以太坊2.0可以被使用的时候。本文将在第二部分讨论该问题的一些解决方法。

2.把验证者分配给分片

在把交易安排到不同的分片后,下一个要解决的问题是如何为某个分片分配记账的人,也就是分配验证者。

以太坊有64个分片,每个分片有128位验证者,如果分片的验证者是固定的或者可预知的,那攻击者控制分片,也就是收买128中的2/3是一件容易的事情,怎么办?以太坊的解决办法是随机从所有验证者中选出某个分片的验证者,并且每6.4分钟更换一次验证者。如此一来,攻击者就只有万亿分之一不到的几率能控制一个分片中2/3的人。

信标链的主要工作之一就是为分片链分配验证者,该工作最需要关注的是随机性的实现。首先在于随机性的重要程度,如果不能随机分配验证者,就无法保证账本的安全;其次在于随机性的难度,在区块链上实现随机是一件异常困难的事,可以认为到目前为此还没有真正称得上是工程实现了的经受了验证的随机算法。

以太坊的方案是使用RANDAO+VDF提供随机数,以实现随机性。把RANDAO拆解成RAN和DAO就很易理解,它是指一群人中的每个人都独自提出一个随机数,再把所有人的随机数合在一起生成最后被使用的那个随机数。因为任何人都难以知道其他人提供的数字,也就难以预知合起来的最终数字。

CWV主链宣布战略投资人人影视CVN 打造去中心化内容网络体系:CWV主链于今日20:00举办线上发布会,宣布千万美金战略投资人人影视CVN,并公布了基于CWV主网2.0技术与人人影视内容体系联手打造的人人云快播平台,采用VRF可验证随机函数主链+PoST时空证明去中心化存储+内容储存分享和保护协议,实现去中心化内容的存储、分享、发布、播放等功能。并宣布在预计2个月后,将原人人影视CVNT网络切换为CWV2.0全新主网ConsciousValueNetwork(意识共识网络),并将在火币网上线的原CVNT通证切换为意识共识网络全新CVNT通证,并将开启CVNT主网去中心化存储挖矿,让用户可直接通过提供去中心化存储空间的方式进行为内容网络提供实际服务的挖矿模式。[2020/10/18]

不过RANDAO模型有个缺陷,就是提供最后一个数字的人是有机会作弊的:他知晓前边所有人提供的随机数之和,也就能通过调整自己提供的数字使得最终结果对自已有利。

为解决这一问题,以太坊引入了VDF,它的作用很简单,就是让最后一个提供随机数的人无法在自己提供数字之前算出之前所有人的随机数之和,因而也就无法操纵随机数。

3.由中继者存储分片

不知道你有没有发现,轮换账本的验证者将带来一个新问题:验证者一会儿被分配去渔村记账,一会儿被分配去猎户村记账,如果他手上没有全部的账户信息,如何记账?如果他有全部的账户信息,就又是拿着一个全账本,没有做到状态分片。

为解决这个问题,以太坊提出了一个重要的新设计:无状态客户端。简化理解就是,渔村的账本就放在渔村,猎户村的账本就放在猎户村,验证者手中不拿账本,只负责在不同村庄间跑来跑去记账。

比特人人交易所利用区块链非法集资,相关犯罪嫌疑人获刑3年6个月:湖南省岳阳市云溪区人民法院近日公开审理一起非法吸收公众存款案,被告人何某平被判处有期徒刑三年六个月,并处罚金人民币十万元。被告人田某楠被判处有期徒刑三年六个月,并处罚金人民币十万元。

2018年9月下旬,比特人人交易所在未经有关部门批准的情况下即上线试运行,陈某苗不管理交易所事务,具体由被告人何某平、田某楠负责软件管理、宣传、掌握软件钱包以及虚拟币变现和银行转账等,利用BRT(人人币)进行交易赚钱方式向社会公开宣传吸引投资者。

自2018年9月至11月底,共有120余名投资人以转账、USDT币等方式,在交易所购买BRT币,何某平、田某楠非法吸收公众存款2047万余元。法院审理认为,被告人何某平、田某楠变相吸收公众存款,扰乱金融秩序,均属数额巨大,其行为已构成非法吸收公众存款罪。遂作出上述判决。(中国法院网)[2020/10/13]

那么谁来保管不同村庄的账本?以太坊引入了中继者这个角色,由他们负责存储不同分片的账户状态,且可以只为某一分片服务。中继者的工作易于理解,但怎么为他们的服务付费、如何保证他们的诚实……这些相关机制的设计是需要解决的全新问题,也是社区成员应该参与讨论的治理问题。

无状态客户端的实际情况比上文描述的复杂很多。「交易」本身的构成与未分片时不同,它要附带见证数据以证明自己是有效的。可以认为在1.0中,验证者需要自己存储旧账,以验证新交易;在2.0中,交易需要自己把旧账带上,交给验证者作验证。

但我们无法要求每个用户都存储全部的旧账,以便在发起交易后能够证明该交易,这时候就需要「中继者」,它存储了该分片的全部账户状态,只要用户提起需求,它就能够帮助用户向验证者提供交易的见证数据。

VitalikButerin在3月11日发表文章提出用多项式承诺代替状态根,该技术就是被用于此处,它是改用零知识证明的方法为交易提供证明,可以理解为是把数据的计算结果提供给验证者做验证,而不是直接把所有相关数据提供给验证者做验证,这种方法能大幅减少见证数据的大小,也就能有效降低各种开销。

动态 | 网传人人比特关闭系乌龙,梓岑表示此“人人比特”是个李鬼:今日,微博账号“Beep币扑”发微博称,人人比特下线所有交易对,关停提币和充币业务,大家有币的抓紧时间提出来哇。HelloEOS创始人梓岑随后回应,这个“人人比特”网站是everyonebit.com,不是RenrenBit,是个李鬼。人人比特中文商标我们注册了,正准备发律师函,然后他们选择自爆了。[2019/11/30]

到这一步,就完成了把一个账本分为多个账本,也就是划分分片的工作。

02跨分片的交易

如果渔村的人只和渔村的人交易,猎户村的人只和猎户村的人交易,那各个村庄把自己的账记好就行,这并不需要什么新技术。可如果渔村的人要和猎户村的人交易怎么办,不同的账本如何互通?这正是状态分片面临的最棘手的问题。

解决这一问题有两种思路,一是同步,二是异步。

假设渔村有个人叫甲,猎户村有个人叫乙,甲要给乙100块,同步是指:当甲发起转账后,渔村和猎户村的记账人都知道这笔交易及交易进展,渔村记账人在账本上给甲减了100,猎户村记账人在账本上给乙加了100,交易完成,两个村庄同步生成新区块。

异步是指:当甲发起转账后,渔村的账本给甲减了100,生成新区块;猎户村记账的人在之后以某种方式收到了这个消息,确认甲的钱确实被减少后,就在自己的账本上给乙加100,交易完成,但两个村庄是异步生成新区块的。

同步方式看上去友好,其交易执行过程的观感如未分片一样,但它隐藏着一大问题,就是难以应对「连续状态改变」。这是什么意思?

如果甲只转给乙100块,渔村和猎户村在听到这笔交易后,很容易确认大家都是这么记账的,渔村的账本就给甲减了100,猎户村给乙加了100,完成记账。但如果甲转给乙100,紧接着又转给乙50,发生连续状态改变,不过甲一共只有120块,这时候两个村庄就难以确认对方是怎么记账的:

赵东:数字货币的意义在于人人都可以发币:赵东刚刚在微博表示:政府垄断铸币权导致劣币驱逐良币,而自由竞争的货币市场则良币驱逐劣币。数字货币的革命性意义正在于:人人都可以自由发行货币。[2018/6/19]

要是每个验证者都自己去找对方的验证者交流,通讯开销会激增,达成某一结果也极其困难;要是通过双方的村长交流,每个村庄内部就需要预先进行一轮共识,再由村长把一个确定的结果告诉对方,这除了增加开销,还难以实现,因为以太坊的共识机制本身就是无法达成确定结果的。

异步方式不会被连续状态改变这种情况困扰,因为它的做法就是「等」,等你的状态确定了,我再进行下一步;等渔村给甲把账记完了,猎户村看到甲是减了100还是减了50后,再决定给B加上100或50。

异步方式自己的问题是原子性故障。交易本该具有原子性,要么执行,要么不执行,但在异步方式下,有可能出现交易的一部分确定了,但另一部分被抛弃了。

比如渔村给甲减了100的那个区块最后在渔村主链上,被确定了,但猎户村给乙加上100的那个区块最后在猎户村侧链上,被抛弃了。原子性故障是一个问题,但可以通过设计解决,关于这一部分的详细介绍可见文末参考资料5。

异步方式的另一个问题是时间开销和通讯、存储开销,也就是完成一笔跨分片交易所需要等待的时间以及占用的资源。在不同分片间传递信息的方式决定了这些开销的多少,不同类开销有着相互关联难以两全的关系,设计时要追求的是平衡。以太坊2.0在未来的性能正是由信息传递方式主导的。

以太坊讨论过一些异步架构模型,最新一种是由Vitalik在2019年10月的DevCon5大会上提出来的,其基本思路就是用信标链传递信息:在每一个slot,分片链产生区块并与信标链区块交叉链接,其连接方式如下图,这样一来,任何分片在打包自己的新交易时都能通过信标链知道之前所有其他分片的信息。不同分片间异步一个slot。

这种方法减少了跨分片交易的等待时间,但提高了对信标链的要求,信标链需要为所有分片存储证明数据;这种方法还增加了交联的链接数量,这必然增加各种相关开销,也因为如此,以太坊的分片数量从1024片改为了64片,从另一个设计方向上减少总的链接数量。

从目前的一些分片设计方案看,同步模型更倾向于分片与分片自己沟通,异步模型更倾向于分片与分片互不往来,通过某个第三者沟通;前者面临通讯量的问题,后者面临多种开销的平衡问题。跨分片交易的设计与实现尚在进行之中,暂不能确定以太坊2.0最终采用哪种架构。

03跨分片的智能合约

在介绍完分片和跨分片的交易后,以太坊2.0开发之路上的终极大BOSS来了,它就是跨分片的智能合约。跨分片交易和跨分片智能合约的区别在于交易只有全局变量,而智能合约有局部变量。局部变量会带来什么麻烦?

以太坊在分片之后,从物理角度来看有64个账本,但从抽象角度来看只有一个账本:可以把账本想象成一棵大树,树的每一片叶子存储着一个账户状态数据,64个账本就是64棵树,再把这些树的树根给到信标链,就会形成一棵新的大树,64个账本也就合成了一个账本。

在跨分片的交易中,当一个分片需要知道另一个分片的账户状态时,不管以何种方式,它总能顺着这棵树找到那片存储状态的叶子,然后改变自己分片的账户状态,完成交易。可以认为通过这棵树,不同分片完成了信息的互通。

但对于跨分片的智能合约,问题来了,这棵树叶子上保存的数据都是全局变量,没有局部变量,如果一个分片的智能合约调用另一个分片的智能合约时,两者如何传递局部变量的信息?这棵树无法为它们提供服务。

也可以这么理解,交易跨分片只需要看全局变量,就是看一级状态,智能合约跨分片需要看局部变量,就是还需要看二级状态。交易跨分片和智能合约跨分片的设计难度不在一个数量级上。

目前还没有看到成体系的智能合约跨分片的设计方案,但有看到两种提议,一种是提议把相关联的智能合约放入同一个分片执行,也就是消灭智能合约跨分片的需求;一种是提议采用SIMD技术,让智能合约本身能够并行执行。

以太坊2.0会在Phase2引入智能合约,这代表着要到Phase2才实现智能合约的跨分片,而只有迈过这一步,才可以真正宣告以太坊进入到2.0时代。

以上即是对以太坊分片设计及设计中难点的介绍。当前还处在以太坊2.0实现的初级时期,如下几个关键词是现阶段值得重点关注的:状态分片、无状态客户端、随机数。

参考资料:

1.《MinimumCommitteeSizeExplained》;作者,Chih-ChengLiang;https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20

2.《以太坊2.0:随机性》;作者,Bruno?kvorc;翻译,Jhonny、阿剑;https://ethfans.org/posts/two-point-oh-randomness

3.《Usingpolynomialcommitmentstoreplacestateroots》;作者,VitalikButerin;https://ethresear.ch/t/using-polynomial-commitments-to-replace-state-roots/7095

4.《Eth2.0的中继者网络与手续费机制》;作者,JohnAdler;翻译,IANLIU、阿剑;https://ethfans.org/posts/relay-networks-and-fee-markets-in-eth-2

5.《区块链分片的理念与挑战》;作者,AlexanderSkidanov;翻译,Jhonny、Echo、阿剑;https://ethfans.org/posts/the-authoritative-guide-to-blockchain-sharding-part-1

6.《Eth2shardchainsimplificationproposal》;作者,VitalikButerin;https://notes.ethereum.org/@vbuterin/HkiULaluS

7.《给工程师的ETH2.0指南》;作者,JamesPrestwich;翻译,Aisling、奇奇、stormpang、阿剑;https://ethfans.org/posts/what-to-expect-when-eths-expecting

8.《Mergeblocksandsynchronouscross-shardstateexecution》;作者,VitalikButerin;https://ethresear.ch/t/merge-blocks-and-synchronous-cross-shard-state-execution/1240

标签:以太坊ETHANDTPS以太坊官网地址pSTAKE Staked ETHblockchainresearchandapplicationtps币行情

Gateio热门资讯
熊猫矿机杨笑、化石级女矿工薄荷谈BTC价格和产量携手减半,矿工该何去何从?| 链节点AMA

3月12日,BTC带领一众加密货币上演了一波“暴跌”行情,跌幅一度超过了40%。这种强度的瀑布,历史上也实属罕见。极速跳水的币价再加上即将到来的“减半”,矿工的处境显得格外艰难.

1900/1/1 0:00:00
行情分析:数字货币市场危机边缘,阴云未散小心应对

热点解析 全球央行目前都采取宽松政策应对,降息和释放流动性。美联储承诺向市场注入1.5万亿美元的流动性,此次再次拾起那本“已封尘的危机处理剧本”,意味着超低息及央行扩表的日子将会持续较长的时间.

1900/1/1 0:00:00
分析:比特币持续反弹,背后的原因可能是这三个

比特币价格从昨日开始逐渐反弹,一度逼近7000美元关口,最高涨幅达到16%。对于这次市场反弹,可能有以下三个主要原因: 来源:Pixabay 美联储讨论通过数字美元抗击疫情分析:昨日以太坊上涨或因巨鲸间大规模交易,而非新资金流入:据区.

1900/1/1 0:00:00
比特币周报 | 震荡趋缓,数据下降,币安连续10日当天流入比特币超万枚

编者注:本文作了不改变作者原意的删减。从过去一周数据来看,在3.12暴跌引发的链上数据激增后,链上各项数据与前一周相比均出现明显回落,但是并未出现大幅下降,特别是币安等头部交易所的比特币流量依然处于高位.

1900/1/1 0:00:00
33%央企已用上区块链,中国区块链“链网”现雏形

文丨互链脉搏·金走车 3月18日消息,央企国家电网的子公司国网电子商务有限公司,在疫情期间,依托可信区块链公共服务平台,全面推进了区块链技术在物资采购、金融服务和项目管理等场景的应用,助力企业复工复产.

1900/1/1 0:00:00
观点丨基于区块链的内容溯源平台

3月21号20:00,BlockManiaAMA直播第55期继续进行,本期主题为「基于区块链的内容溯源平台」,本期活动由著名技术社区Comunion主办,BlockMania协办,分享嘉宾为上海卓链信息技术创始人高海逵.

1900/1/1 0:00:00