Bitcoin Forum
November 12, 2024, 12:35:56 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: 什么是ETH2.0的分片技术以及另一种解决低TPS的方案  (Read 243 times)
heheaini (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
March 12, 2021, 03:31:41 PM
 #1

ETH2.0 是以太坊的计划升级方案。在接下来的几年里,ETH2.0 的设计者们计划完全革新以太坊的共识系统,并引入以太坊现有的世界状态。目前,ETH2.0 设计者暂时计划的工作有分片,Casper,状态租金以及 eWASM 虚拟机。

今天,就来简单科普一下什么是ETH2.0的分片。

分片技术

去年关于以太坊网络手续费的争议特别多,由于网络日渐拥堵,以太坊的矿工费逐渐提高,甚至一度高到让人无法接受,如发送一个ETH则需要0.032个ETH(按3000元一个ETH算的话就是96元)作为手续费。于是人们开始讨论以太坊网络的扩容问题是否能够得到解决,如果不能,以太坊就没有未来可言。

事实上,以太坊联合创始人V神比任何人都更早发现这个问题。在2018年6月中国举行的一场以太坊技术及应用的会议中,V神分享了分片技术的最新进展。

分片的目的实际上就是扩容,以提高网络处理事务的效率。当前以太坊网络的可延展性不足,美妙执行事务的数量大概为30,远不能满足网络的需求。比如一个以太猫(一个区块链游戏)就能在几天内把以太网络堵死,导致全网崩溃。

当前区块链网络处理速度慢的原因是每个节点都要处理系统中的所有交易,这样可以保证系统的安全性和去中心化。但这种方式带来的好处实际上是牺牲了系统的可延展性,内存不足、交通拥堵的问题就随之而来。那么,有没有更好的解决方案,既能保证安全性、去中心化程度,又能解决网络拥堵问题?分片技术就这样应运而生。

我们可以用一个很形象的例子来比喻以太坊网络和分片技术。我们把以太坊比作一个人流量很多的大超市,在它扩容之前,只有一个收银台,大家都得在同一个地方排队结账,十分耗时,之后超市改造,平行出10个收银台,这10个收银台的数据是共享汇总的,用户选择任意收银台结账都会被记入总账,这样结账的人流就被疏散成10份,效率大大提升。

以太坊地址

我们先看一下以太坊的地址格式:

        0xd46f1b4d86320ff0beb8cdbb3cd0e031af169d0b

所有的以太坊地址开头两个字符都是0x,代表了使用的是十六进制。从第三个字符开始才没有规律,而每个字符的范围是0到9的阿拉伯数字,或者英文字母a到f。每个字符都有16个可能性。

以太坊地址的分类

如果你要对以太坊地址进行分类,你可以从第3个字符开始分,因为刚刚说了,所有以太坊地址都是0x开头的。如果你只看第3个字符来分类,那么你可以分成16组,对吧?第三个字母是1的一组,是2的一组,是英文字母a的一组,是b的一组……以此类推。如果你从第3个字符到最后一个字符也区别分类,那地址分类就太多了,片区过于冗杂和繁多,不适用于当前以太坊网络的交易量。

分片

第1阶段,以太坊2.0有64个片,这意味着以太坊只选择了地址的第3和第4个字符来分类。比如0xa开头的都属于同一分片,0xab开头的也属于同一分片。

从定义来讲,分片就是所有打包了同一类地址交易的区块,并且同一分片只打包一类地址的交易。按地址分类后,ETH2.0的节点、钱包、各种软件,以区块的设计,就可以区别对待各类的地址的交易。

跨片

分片之后,同一个片区的地址交易,只需要在片区内相互发送就可以了,无需联动其他片区,能够大大提高整个网络的处理效率。那如果是跨片区发送交易呢?这里就要用到信标链了。

每一个片区都有且只有一个区块,这些区块组合起来就形成了信标链。信标链能够帮助不同片区的地址跨片通信和交易。比如a片区的地址要发送1个ETH到c片区的地址,方法就是a片区的地址把要发送的1个ETH发到自己片区的信标链区块上,而信标链有一个叫状态转换函数的东西,这个函数会把那1个ETH发到c片区的信标链区块上,然后再转发到收款地址上。

所以信标链就是这么回事。因为信标链属于第0阶段,分片技术属于第1阶段,所以虽然目前信标链上线了,但是交易等功能还没开放。ETH2.0实际进展的突破还需要等到第2阶段的完成。

另一个方案的想法

ETH2.0的分片技术是将地址分类之后,对各类地址的交易分别打包。那不禁想到能不能对交易进行分类,然后对各类交易分别打包。如果可以的话,是不是也能达到提高TPS的效果?

地址是一连串字符串,可以分类,可交易该怎么分类呢?需要将一个地址的交易随机分类,可惜只有一个链,要是有多条链就好了,每一条链的交易都是一类。但好像也没有谁规定了只能有一条链啊,那么这种结构能否被实现呢?

网上目前能查到的只有一个项目Kadena,声称成功证实了多链结构的可能性。它提出的Chainwab链网就是采用多链方式提高了TPS。它是这么介绍的:

Chainweb 是⼀种新的并行链工作量证明架构,它由多个编织链组成,这些编织链全部开采相同的原生代币并享有彼此之间转移的流动性。与现有的工作量证明体系结构不同,Chainweb 在不显着提高哈希能力的情况下提供了巨大的吞吐量。Chainweb 有潜力增长到至少1,250个链,每秒执行10,000个交易以上,同时仍保持无与伦比的抵御欺诈和工作量证明制度的弹性。


当然无论是ETH2.0分片技术,还是Kadena的多链结构,其最终目的都是提高TPS,以解决网络拥堵的问题。不管黑猫白猫,能抓到老鼠的就是好猫。不管是哪种方案,能解决问题的就是好的方案。



好了,今天ETH2.0的分片科普就到这,觉得有用的可以点个赞、点个关注,谢谢。



https://mp.weixin.qq.com/s/lNJVo8D7TldiW1TUbVjq2g
wsxqaz123
Copper Member
Member
**
Offline Offline

Activity: 117
Merit: 10


View Profile
March 13, 2021, 01:58:01 PM
 #2

ETH现在最需要解决的就是gas问题,不然迟早会别其它币分走蛋糕的!
shalisiting88
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
December 07, 2021, 09:33:23 AM
 #3

波卡的很多項目都在挑戰ETH
無論是技術還是gas費
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!