上一讲中,我们简单提到了什么是分片。今天的文章我们会详细介绍以太坊的分片技术。
什么是分片?
分片是数据库系统中抽离而来的一个词。我们先来介绍下数据库中分片的概念。假设你的网站上有大量的数据库存储,这不仅会导致数据搜索速度减慢,还会影响可扩展性。这种情况下我们可以做些什么呢?
能不能把数据横向切分成小的数据表格,并把他们存储在不同的数据库服务器中?
你或许会问为什么要进行横向切分而不是垂直切分呢?这是由于数据表格本身的设计导致的。
我们现在进行垂直切分。
注意到了吗?垂直切分后会把整个数据库表切割成两个完全不相干的数据表格。
但是横向切分的话,还是同一个由A,B,AB,A-B构成的数据库,只不过每个数据库中的数据存量减少了。这些小的数据库就是大的数据库的分片。每一个分片的表格结构都相同。
深圳市信息服务业区块链协会教育培训中心揭牌:2021年8月14日,深圳市信息服务业区块链协会教育培训中心在龙华区鸿荣源壹成环智中心揭牌。本次揭牌仪式汇聚来自全国各地区块链教育行业的专家、大咖,共同见证国内首个区块链应用操作员职业资格培训项目的启动。深圳市信息服务业区块链协会会长郑定向、副会长王兆勇,教育培训中心主任王一凡,原深圳市人力资源和社会保障局劳动监察支队副支队长谢贵龙,深圳市信息服务业区块链协会副会长、美国休斯顿大学区块链博士后、深圳百纳维科技有限公司创始人高智敏等二十余位嘉宾共同参与了此次揭牌仪式。(深圳新闻网)[2021/8/16 22:17:05]
区块链中的分片
上一讲中,我们提到过以太坊共识的问题在于所有的节点都必须对同一笔交易进行计算和确认。整个计算过程又慢又繁琐。分片技术可以如何改善这个问题呢?
深圳市南山区启动采用区块链技术的跨部门大数据办案平台:近日,深圳市政法跨部门大数据办案平台推广应用现场会在南山区召开,会议介绍了南山区政法跨部门大数据办案平台,并部署平台推广工作。跨部门大数据办案平台实现了案件全流程网上办理,各个工作环节的信息公开共享,增强了司法办案透明度。平台在全国率先采用区块链技术,构建政法“联盟链”,对电子卷宗流转过程中节点信息保全,实现多点存储、互为镜像,确保电子卷宗可互信、可溯源、防丢失、防篡改,免除一线办案人员的后顾之忧,极大促进了司法办案的公平公正。(深圳晚报)[2020/9/9]
现在我们来设想一下:整个以太坊区块链就是一个“万国领土”,可以分割给所有人。这个万国领土的默克尔树根会切分成大大小小不同的分片根,每一个分片根都拥有自己的国度。让我们以默克尔树的形式把这些国度表现出来:
这就是整个万国领土切分成多个小国的简单结构图。现在让我们来看一下内部机制。
中国平安与深圳市政府签署战略合作协议:据中国平安官网消息,5月29日,中国平安与深圳市政府签署战略合作框架协议。平安称,将运用区块链技术参与深圳智慧城市建设。[2018/5/31]
分片启动后会发生什么呢?
*万国领土被分割成多个分片*每一个独特的账户都代表着一个分片*只有同一个分片里的账户能相互转账。
在以太坊的开发者大会中,Vitalik是这样解释分片的:
假设以太坊被分割成成千上万个小的岛屿。每个岛屿都是自治的。每个岛屿都有自己的特色,岛屿上的每个人都可以跟其他岛民互动,并且随意享用这个岛屿的特色。如果你想跟其他岛屿互动,就必须使用某种特定的协议。
那么问题来了,这种分片技术对区块链有什么影响呢?我们先来看一下比特币和以太坊中一个正常的区块长什么样子?
Huobi 上线STAKE,交易、锁仓瓜分12400个 STAKE:据官方消息,Huobi Global“全球观察区”定于2021年4月20日上线STAKE(xDAI Stake),目前已开放STAKE的充币业务,并于17:30 (GMT+8) 开放STAKE币币交易。同时Huobi 上线交易、锁仓奖励 12400个 STAKE 新币活动。
4月20日至4月27日上线首周,在Huobi 参与STAKE现货交易量大于10 STAKE的实名用户,将按照交易量占比瓜分3100 STAKE的奖励。4月20日至4月23日期间,在Huobi 锁仓HT 的用户,将根据锁仓HT份额瓜分3100 STAKE,锁仓周期为3日;锁仓STAKE用户,将根据锁仓STAKE份额瓜分6200 STAKE,锁仓周期为7日。[2021/4/20 20: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意味着什么?
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。