以太坊:图文详解以太坊的节点和分片(三)

上一讲中,我们简单提到了什么是分片。今天的文章我们会详细介绍以太坊的分片技术。

什么是分片?

分片是数据库系统中抽离而来的一个词。我们先来介绍下数据库中分片的概念。假设你的网站上有大量的数据库存储,这不仅会导致数据搜索速度减慢,还会影响可扩展性。这种情况下我们可以做些什么呢?

能不能把数据横向切分成小的数据表格,并把他们存储在不同的数据库服务器中?

你或许会问为什么要进行横向切分而不是垂直切分呢?这是由于数据表格本身的设计导致的。

我们现在进行垂直切分。

注意到了吗?垂直切分后会把整个数据库表切割成两个完全不相干的数据表格。

但是横向切分的话,还是同一个由A,B,AB,A-B构成的数据库,只不过每个数据库中的数据存量减少了。这些小的数据库就是大的数据库的分片。每一个分片的表格结构都相同。

韩国拟在实施虚拟资产第二阶段立法前征集行业意见并参考国外法律:5月25日消息,韩国金融服务委员会金融创新部门负责人表示,在实施监管虚拟资产发行、分配和披露的第二阶段立法之前,希望通过征集行业意见并参考国外法律(包括欧盟和美国的立法),以自我监管形式准备监管体系。

据悉,韩国对加密行业的第一立法阶段为《虚拟资产投资者保护法》,已于5月11日通过,第二阶段立法将推进虚拟资产发行和披露等市场秩序的补充规定。[2023/5/25 10:39:27]

区块链中的分片

上一讲中,我们提到过以太坊共识的问题在于所有的节点都必须对同一笔交易进行计算和确认。整个计算过程又慢又繁琐。分片技术可以如何改善这个问题呢?

现在我们来设想一下:整个以太坊区块链就是一个“万国领土”,可以分割给所有人。这个万国领土的默克尔树根会切分成大大小小不同的分片根,每一个分片根都拥有自己的国度。让我们以默克尔树的形式把这些国度表现出来:

虎符:推出“债币转换”等方案,8月1日起停止所有交易服务:7月24日消息,虎符交易所官网发布“关于虎符债币转换方案、合伙人投资及其它业务优化方案”的公告。公告称,推出“债币转换”等方案,并将于8月1日起停止所有交易服务。[2022/7/24 2:34:42]

这就是整个万国领土切分成多个小国的简单结构图。现在让我们来看一下内部机制。

分片启动后会发生什么呢?

*万国领土被分割成多个分片*每一个独特的账户都代表着一个分片*只有同一个分片里的账户能相互转账。

在以太坊的开发者大会中,Vitalik是这样解释分片的:

假设以太坊被分割成成千上万个小的岛屿。每个岛屿都是自治的。每个岛屿都有自己的特色,岛屿上的每个人都可以跟其他岛民互动,并且随意享用这个岛屿的特色。如果你想跟其他岛屿互动,就必须使用某种特定的协议。

武汉:对首次进入权威机构发布的全国区块链百强企业一次性奖励200万元:金色财经报道,据武汉经信局网站,该局制定了《市经信局落实武汉市加快区块链技术和产业创新发展有关奖励政策的实施细则》,其中提出:“对首次进入权威机构发布的全国区块链百强企业一次性奖励200万元,市、区各承担50%的奖励资金” 、“将以区块链为主要业务的企业列入市重点企业培育库,对年营收增速超过20%的入库企业以地方财政贡献额为限最高给予30万元奖励”。[2022/6/25 1:31:05]

那么问题来了,这种分片技术对区块链有什么影响呢?我们先来看一下比特币和以太坊中一个正常的区块长什么样子?

一个区块中由区块头和包含所有交易的区块主体构成。所有交易的默克尔根都存在在区块头中。

现在让我们来自问一下:比特币真的需要区块吗?真的需要区块链吗?中本聪本可以把上一笔交易的哈希记录在一笔新的交易之中,用这种简单的方式就可以构成一条交易链。

a16z Crypto负责人提醒欺诈风险:有人在Instagram冒充我:金色财经报道,a16z Crypto负责人 Chris Dixon 在其官方社交媒体账户上发布欺诈风险提示,他表示自己不使用任何 Instagram 消息,但现在发现有人冒充他实施欺诈,因此提醒用户注意风险。Chris Dixon 创立并领导 a16z Crypto,该机构刚刚完成了第四只基金 Crypto Fund 4募资,规模高达45亿美元。[2022/6/3 3:59:57]

把交易都记录在区块中的目的是为了创造一层交互,让整个过程更加可扩展。以太坊想做的是实现两层交互。

第一层

第一层是交易组。每一个分片都有自己的交易群。交易群包括交易群头和交易群主体。

交易群头包括左右两个部分。左侧包含的信息如下:

派盾:Starship项目发生Rug Pull,损失约715枚BNB:5月25日消息,据派盾监测,基于BNB Chian的Starship项目发生Rug Pull,其代币价格几乎归零,约715枚BNB转入Tornado Cash。[2022/5/25 3:40:01]

*分片ID:交易组所属的分片ID*前状态根:这是交易执行前分片43的根状态。*后状态根:交易执行后分片43的根状态。

右侧信息如下:

*右侧是随机选取的需要在分片内确认交易的确认者。*交易组主体*包含了分片中所有交易的ID。

第一层的特征

*每一笔交易对应着它所属分片的ID。*某特定分片中的一笔交易表明这笔交易的发起和接收账户都在这个特定的分片中。*交易群组中的交易只存在于分片ID之中,具有特定的前后状态根。

现在我们来看一下第二层交互

别跑!其实非常简单。

这就是一般的区块链结构,只不过现在包括两个主要的根:

*状态根(stateroot)*交易群根

状态根代表了整个以太系统的根。我们之前提到过,这个系统被切分成大大小小的分片,对应着它们各自的分国度。

交易群根包含了某特定区块里所有的交易群。

第二层的特征

第二层是一个简单的区块链,记录交易群而不是交易本身。交易群合法的唯一条件是:

*前状态根与整个系统的分片根相符。*交易群组中的所有签名都已经得到了确认。

交易群进入区块后,整个系统的根就变成了特定分片ID的后状态根。

那么跨分片通信是怎么实现的呢?还记得之前的岛屿比喻吗?

分片就相当于岛屿。它们如何互相联系呢?记住,分片的目的是让很多平行交易同时发生来提高性能。如果以太坊允许任意的跨分片交流,那么整个分片就毫无意义了。

因此以太坊协议要如何设计来允许跨分片通信呢?以太坊使用收据实现跨分片通信。

如你所见,每笔交易的收据只需通过这个交易群的多个默克尔根就可以轻松访问。分片中的每一笔交易都会做两件事情:

*改变所属分片的状态*产生收据

数据存储在分布式共享内存中,其他分片可以看到,但是无法修改。通过数据跨分片交流如下:

实行分片技术的挑战有哪些?

*我们需要一种机制来知道每个节点执行了哪个分片,这种机制还要能保证系统安全又高效。*根据以太坊研究员VladZamfir的说法,在实现分片之前需要以太坊需要先转到POS算法。节点之间可以互不信任,但是也需要能够达成共识。如果某笔交易分割成多个分片,并分配给节点A和节点B,节点A和B需要利用某种机制来证明自己完成了分片中各自对应的工作量。

总结

随着以太坊的进一步崛起,大都会和宁静阶段的到来,分片对以太坊越来越重要。如果以太坊想要演化成新一代的互联网,必须要解决可拓展性问题。采用分片后的以太坊会如何发展,让我们拭目以待。

来源链接:None

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

行走的翻译C

现已在非小号资讯平台发布19篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/9602874.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

币安为何推出第三条链?这对BNB意味着什么?

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:62ms0-0:442ms