喵懂区块链22期|分片(Sharding):以太坊太慢,“盘”他!
发布日期:2021-05-10 07:05:01 浏览次数:13 分类:技术文章

本文共 3406 字,大约阅读时间需要 11 分钟。

640?wx_fmt=gif

写在文前:视频版本和文字版本略有不同,想要看我深情并茂演绎请看视频版本,思维逻辑怪请看文案加长版。我是,不靠颜值靠才华的胖小喵~

最近以太坊由于君士坦丁堡升级(Constantinople)而出现了压倒性的积极走势,而以太坊的升级之路则犹如升级打怪一般,落入了rabbit hole,谁也不知道这洞有多深。既然是“路漫漫其修远兮”,则把脚下的每一步走好走准,则成了至关重要的点。攻破这一难点之后,以太坊的下一技术难点---Sharding分片,则又被摆到了台面上。本期《喵懂区块链》会带大家走进让以太坊快起来的法宝--- Sharding分片。

什么是sharding分片?

分片技术其实并不是什么新概念,起初是针对大型中心数据库提出的优化方案,具体来说就是将大型数据库中的数据划按照某种规则分成很多数据分片(shard),再将这些数据分片分别存放在不同的服务器中,以减小每个服务器的数据访问压力,从而提高整个数据库系统的性能。

我们举一个通俗的小例子:

比如我们平时经常使用的美团,滴滴打车等软件,就可以按照“城市”来进行分片,由于不同城市的数据不需要互通,就可以将不同城市的数据存放在不同数据库中,这样既可以把数据库服务器部署到离对应城市最近的节点上,还可以提高访问速度,何乐而不为呢?!

从上面的例子中,我大家应该对分片的概念有了初步了解,那么对应到区块链场景中来说,分片又是怎么样的呢?

以以太坊分片为例,在原有的单链系统中,公链整体的性能取决于单个节点的性能,进行分片之后,每个节点只需要承当全网部分工作,各个分片并行工作,按照Vitalik的话来说,each shard is like a separate galaxy每个分片都像是独立的小宇宙,这样效率自然噌噌噌提升!原本以太坊链全网TPS约为20,现在若增加到100个分片,那么全网TPS可以提升至2000,同理,全网容量也将提升至原来的100倍。

“每个节点只需要承担全网部分工作”,这就会引出几大问题,1.怎么确定这个节点是负责哪个分片的工作?2.哪些交易应该归类到哪些分片当中去?3.每个节点是否只需要储存自己所在分片的交易信息(账本)?

根据以上问题的实现与否,我们可以将分片依次分为三种类型:网络分片,交易分片,状态分片。

网络分片如何将全网节点划分到不同分片当中去。

交易分片如何将全网交易划分到不同分片当中去。

态分片如何让各个节点只维护各自分片内的账本,但又不影响整个系统的安全性。

主链和分片链的区别和联系?

分片的类型我们已经明白了,那么主链(Main chain)和分片链(shard chain)有什么不同呢?

640?wx_fmt=jpeg

在主链中,我们知道记账的人叫做矿工,账本是存在区块当中,对应到分片链当中,则是Collator校对人和Collation校对块。

类似于区块的构成,Collation校对块也包含Collation header校对头和tansaction list具体的交易信息。

640?wx_fmt=png

对比下来,主链和分片链本身来说,还是大同小异,但是一但要把他们联系起来,问题就变得复杂了,这里我们举个通俗的小例子类比一下:

假设,

以太坊主链=温州银行

每个分片=温州银行分行

比如:

shard1(分片1)=温州银行(杭州分行)

Shard2(分片2)=温州银行(宁波分行)

……

在这个系统中,我们就会清晰看到几大问题:1.各大分行的账本如何汇总到总行里去?2.各大分行的账本如何互联?

对应到主链和分片链系统当中来,则变成了1.分片链和主链如何实现跨链链接?2.分片之间怎么互联?甚至分叉的场景要怎么办?

分片链和主链如何实现跨链链接?

为了将分片链加入到主链中,在主链上需要有一个叫做验证人管理员合约(Validator Manager Contract)VMC的特殊合约。VMC具体是这样的:

640?wx_fmt=png

所有的验证人把它们的保证金(stake)存入 VMC当中,这些验证人就会被收录在VMC的common validator pool验证人备选池中。系统将会“隔一段时间”根据stake权益的多少随机为每个分片抽取一名验证人,将各个分片的collation header校对头信息同步到主链中去。

这里的“隔一段时间”,我们需要额外解释一下:“时间”,也叫period周期,这到底是怎么确定的呢?答案是主要看开发人员在最终代码中的实现为准,比如说我们把周期定为5个区块,那么就意味着主链出5个区块,所有分片链分别出一个collation校对块,这就间接决定了分片链的出块时间。

这种随机的形式,使得验证者无法提前预测他们何时会成为验证者,也无法预测会成为哪个分片的验证人,从而预防作恶的可能性。

如果一旦发现我们的分片验证人作恶了,他的stake权益就会被剥夺。

跨分片通信(cross-shard communication)怎么办?

比如说一个转账方小A在分片M中,收款方小B在分片N中,小A可以通过主链这个桥梁,完成扣款操作,并创建一个带有ID的 receipt收据,代表着“自己已经完成了扣款操作”,收款方小B可以根据这个 receipt ID 创建一个receipt-consuming收据消费交易,“消费”成功了之后,收款也就成功了。

640?wx_fmt=png

分片链分叉了怎么办?(fork choice rule)

在以往的分叉情况中,都是“以最长链为主链”,在分片当中,分叉规则是“以最长主链里面的最长分片链为有效分片链(the longest valid shard chain within the longest valid main chain)”。

什么意思呢?我们举个例子:

一条主链出现了分叉,一条分叉连续跟了两个区块,同时也跟了两个Collation校对块,另一条则是一个区块和一个校对块,那么很明显,第一条是有效链。

640?wx_fmt=png

接下来,第二条链又加了一个区块,变成两个区块和一个Collation校对块,依然很明显,第一条链仍然是有效链:

640?wx_fmt=png

接下来,第一条链上又加了一个区块,虽然这条链上只有一个Collation校对块,但是它的主链长度已经超过了第一条,那么第二条则成为了现在的有效链,这就是分片场景下的分叉规则,首先比较主链长度,再比较分片链长度!

640?wx_fmt=png

以太坊分片的实现是一个漫长的过程,就连Vitalik自己也说将会分阶段来逐步实现,分片到底能不能从理论走向实践,我们还是小小期待一下吧。如果有任何问题欢迎给我们留言,或者扫下方二维码,随时勾搭我们~

640?wx_fmt=png

640?wx_fmt=gif

大咖来啦!

《8问》神鱼:从“矿池一哥”到“钱包大佬”的进击之路

90年出生的他,在2011年接触这个入行,2013年辍学创业,后创立全球最大综合性矿池——F2Pool。历经牛熊洗礼,他依然在这个行业,他的故事在圈内也人尽所知。而今,他转身投入数字钱包之争......曾定下目标要在30岁退休,可见,钱包是他在区块链行业里的最后一次折腾。

回复 区块链报告 免费下载 《37份国内证券行业发布的区块链研究报告》

回复 工信部 免费下载 《中国区块链技术和应用发展白皮书》

回复 超级账本 免费下载《超级账本Hyperledger白皮书》

回复 比特币白皮书免费下载《比特币:一种点对点的电子现金系统》

回复 以太坊免费下载《以太坊白皮书》

回复 侧链 免费下载《侧链白皮书:用楔入式侧链实现区块链的创新》

回复 欧洲央行 免费下载《欧洲央行分布式账本技术报告》

回复 高盛 免费下载 《高盛区块链报告:区块链 从理论走向实践》

回复 闪电网络查看《详解最近大热的闪电网络、雷电网络和CORDA到底是什么》

回复 闪电网络白皮书 免费下载《比特币闪电网络白皮书:可扩展的 off-chain 即时支付》

回复 麦肯锡 免费下载《麦肯锡区块链报告:银行业游戏规则的颠覆者》

回复 IBM  免费下载《IBM 区块链热点技术与应用》

回复 毕马威 免费下载《毕马威区块链研究报告:价值互联的不变协议 》

回复 金融科技 免费下载《中国领先金融科技50强》

回复 直播间 查看往期所有大咖视频+文字版集合

回复时戳资本可获得时戳资本所有研报下载链接

回复喵懂可获得从0到1区块链进阶课程视频链接

回复8问可观看与重磅嘉宾深度对话视频链接

回复She knows可获得行业大咖话题直播链接

640?wx_fmt=png

转载地址:https://blog.csdn.net/weixin_44383880/article/details/88361344 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:美国富达暂时只支持比特币,以太坊因硬分叉需“再考虑考虑”
下一篇:巨鲸交易员在去中心化预测市场押注50万美元ETH

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月25日 15时26分05秒