25

巴比特专栏 | 轻松理解ETH2.0的分片概念

 3 years ago
source link: https://www.lianyi.com/zixun/2892412
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

现在 以太坊 2.0的技术讨论非常多,但绝大多数文章都没能把那些基础概念说明白,把读者都绕晕了。

虽然ETH2.0总体上是非常复杂的,但那些基础概念,如分片,信标链,的设计思想是非常简洁,不需要我们拥有多少专业知识就可以弄明白。

我们先抛开那些复杂的技术实现细节,就可以用非常简洁的文字描述分片这个概念。

以太坊地址

我们先看一下以太坊的地址格式。下面是一个典型的以太坊地址,我在浏览器里随便复制过来的。

0x506dDF5a547EaaE34bAE6Ff57c78B5aD50a6A1BF

所有的以太坊地址开头两个字符都是0x,代表了使用的是十六进制。从第三个字符开始,每个字符就是从0到F,一共16个可能性。

分类

我们从第三个字符开始分类,如果采用一个字符分,把0到F,分别分成一类,就可以分成16类。而如果采用两个字符,比如从00到FF,就可以分成16^2 = 256类。而选三位数来分,就是16^3=4096类。

(我们先不考虑以太坊地址规范里的一些限制条件,比如大小写,比如校验码之类的。先只考虑分片的思想。如果考虑地址设计规范,实际的可分类要少。)

现在的以太坊1.0所有的账户是没有按上述字母进行区别对待,所有的地址都是一样地位,包括外部账户和合约账户,都是一样的。

这里说的一样,指的是以太坊节点、钱包、及各种软件是不会将地址分门别类,都是一视同仁。包括以太坊的区块打包,也不会按地址分类排序。

在ETH2.0的分片设计思路中,地址就会按前几个字母进行分类。

分片

ETH2.0的地址设计规则会进行分类,一类地址就是一个分片。这就是大名鼎鼎的分片,就这么简单。

第一阶段,以太坊2.0会有64个片,这意味着只需要选择地址的第3和第4个字符来分类就可以了。

按地址分类后,ETH2.0的节点、钱包、各种软件,以区块的设计,就可以区别对待各类的地址的交易。

地址分类之后,区块就会按地址分类进行打包。一个区块里只会包含一类地址。而所有这些同一个分类地址的区块,就共同组成了一个以太坊的分片。

定义

现在我们可以来定义ETH2.0的分片了。

先把地址按前几个字母进行分类。

分片就是所有打包了同一类地址交易的区块,并且同一分片只打包一类地址的交易。

跨片

如果一个片的地址相互发送币,非常好处理。但如果是跨片区发送交易呢?这就要用到信标链了。

信标链我们以后说,这里简单描述信标链如何帮助不同类地址跨片通信。

比如0x00地址要发1ETH到0x01地址。

每一个分片区块,都是跟随着信标链的一个区块,一对一的关系。

方法就是0x00先把1ETH发给自己片区的那个信标链区块上,信标链有一个叫状态转换函数的东西,这个状态转换函数会把这1ETH发给0x01分区的那个信标链的区块上,然后再转发给0x01地址。

补充说明

我上面的描述是非常简单,不需要基础知识就能理解。我还是要强调,这只是对分片的思想进行描述,它的实现细节很复杂。

参考资料在这里:https://eth.wiki/sharding/Sharding-FAQs 英文的,很难懂。如果你愿意一个单词一个单词啃完,那也就理解了。

根据国家《 关于防范代币发行融资风险的公告 》,大家应警惕代币发行融资与交易的风险隐患。

本文来自 LIANYI 转载,不代表链一财经立场,转载请联系原作者。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK