什么是分片技术?
因为以太坊每秒15~20笔的处理速度(TPS),2017年,加密猫DAPP火爆上线,交易频繁,直接导致了以太坊网络瘫痪。而随着DAPP的不断发展,区块链网络处理的交易量日益增长,以太坊等公链网络的堵塞问题也日益严重。
ETH开发人员表示,因为以太坊每个节点需要验证整个网络的所有交易,极大的限制了ETH的发展。需要一种新的机制,只有少部分节点验证每笔交易,而其它节点不必验证每笔交易,来提高每秒钟处理的交易量。
于是,2018年4月30日,V神在Twitter宣布,”Sharding is coming”(分片到来)!
image分片技术,就是让一笔交易不必全网去处理验证,只需一部分节点处理就好,而且节点越多,网络的吞吐量就越大。
分片技术,就像一个“分割手术”,将整个拥堵的马路分割成很多条通道,然后将数据子集分散在不同的通道上,让堵塞的马路变得顺畅起来。
MultiVAC—— 分片技术的集大成者
imageMultiVAC公链的核心就是——采用分片(Sharding)技术。
MultiVAC是全世界首个采用——计算、存储、传输完全分片的区块链底层架构。可以说是分片技术的集大成者。MultiVAC的分片创新包括:
三类节点:轻节点、矿工节点和存储节点
1. 轻节点:即客户端,等同于拥有账户、进行交易的用户。
是只提交新交易,不做任何处理的节点。
2. 矿工节点:是系统中的记账员。
运行共识算法、更新账本的节点,通过达成共识产生新的账本来获取出块奖励。在MultiVAC 网络中,成为矿工节点的门槛较低,普通家用PC 也能成为矿工节点。
3. 存储节点: 类似于网络中的基础设施。
负责存储和服务交易的特定节点,给矿工提供服务,使矿工能够更快、更高效地出块。
其中,矿工节点以分片为单位聚集,每隔几分钟分片就会重新随机选取属于该分片的矿工节点。而每个分片,会配有一定量的存储节点。
打个比方:轻节点是客户,如果分片是工地的话,存储节点就是工地配的仓库,而矿工不是固定工,而是临时工,可以受聘于多家工地。
完全分片架构
1. 交易(或计算)分片
每个分片会负责维护一条彼此独立的区块链,并会 周期性地随机选取一批矿工 ,参与自己分片的拜占庭共识并产生新区块。
随机分配矿工
MultiVAC采用权益证明(PoS),分片内的矿工不是固定的,每个矿工需要将抵押部分代币,作为在 MultiVAC 中拥有的“股权”。矿工会根据在分片内产生的随机种子和他的密匙,通过一个随机数生成器生成一个随机数,并根据这个随机数及他的押金数量,来决定他是否会被分配入某个分片内。分配入的概率和他的押金数成正比。而且,一个矿工可以同时加入多个分片,这提高了选取矿工的效率。
随机分配,既让矿工选择机制尽可能的公平,同时也提高了黑客攻击单个分片的难度,避免了因分片导致的安全性能退化。
重分片机制
简单说,重分片就是:每隔一段时间(比如几分钟)就将矿工重新分配,以降低某个特定分片受到攻击的可能性。
这样一来,攻击者就很难在短时间内弄清分片内到底有哪些节点,如果想要实现双重花费,攻击者必须在几分钟内攻陷某个分片内随机选出的数百上千个矿工中的大多数,因为矿工是随机的,所以,攻击成功的几率是微乎其微的。
退一万步,即使一个攻击者走运在很短时间内,攻陷了 某个分片内的大多数矿工,但几分钟后,这个分片就会进行重分片,攻击者瞬间就失去了对这个分片的控制。
打个比方:M号工地开了,临时工(矿工)蜂拥而上,要上工。分片说:交押金100元(抵押代币),然后掷骰子,分队、上工,每队轮流5分钟。所以,如果有坏人混进临时工队伍,比如说给其它临时工下毒,那么也只能毒晕他所在的临时工队伍。
5分钟后,第二队临时工上工了,坏人的计划也就落空了。
随机分配矿工 + 重分片机制 对网络安全防攻击,起到双重保险的作用。
同时,交易会根据接受者的地址,被发往相应的分片,并由该分片负责处理并写入区块。
2. 存储分片
存储负载也是区块链系统面临的主要瓶颈。要实现高TPS(每秒事务处理数)的区块链,同时也会产生极大的存储负载。比如,一条公链的TPS达到 2000,假设每个交易的数据量约400字节,那么每月产生的存储数据量,将达到 1931GB 。 在这种情况下,让每个节点存储所有区块数据是完全不可能的。
MultiVAC 通过存储分片来解决这个问题,将矿工节点和存储节点进行分工:
- 1. 矿工节点负责生成区块,在系统中掌握投票权,但不需要存储全部数据,在任何时候,矿工都只需保存不到1G的数据。(大赞!)
- 2. 存储节点负责存储、提供数据,充当存储服务的提供商,但不掌握任何决策和增删改的权力。
MultiVAC 尽可能减少矿工的本地存储和传输量,以便让大量的普通计算设备加入到挖矿中,从而使出块权力能始终保留在普通用户手中,保证挖矿的公平性和去中心化,从而提高网络的健壮性和效率。
打个比方:M号工地配有仓库(存储节点)存有木料砖头,临时工(矿工)不需要自带木料,要取材,去仓库就近拿就可以啦!
3. 传输分片
矿工只需要与同一分片中的其他矿工进行通信,从而显著地降低了传输成本。
在 MultiVAC 设计中,矿工仅仅需要新生成区块的信息,就足以更新 Main Merkle Root,无需对存储节点造成额外的传输压力,矿工就能拥有可产生新区块和重分片的 全部信息。
当网络扩展时,大量的跨分片信息传播,会产生严重的网络传输压力,并且大幅度限制扩展性。但在MultiVAC 设计中,尽可能的限制了跨分片信息的传播,使得无论网络如何扩展,来自同一个分片的信息量,都被限制在一个近乎固定的程度。MultiVAC 只需要矿工保存 Main Merkle Tree 的最右侧路径,用以定位新区块被添加的位置。这样的设计将矿工的硬件存储要求,保持在非常低的水 平,使得普通计算设备也能够担任矿工。存储节点为某个特定分片服务,为该分片存储区块链状态。
矿工节点负责处理交易、达成共识、产生区块。存储节点负责存储、提供本分片的所有历史数据和交易细节。这个存储解决方案使得区块链系统中的大多数通信都是在分片内部进行的,尽可能地减少了跨分片的数据交互,极大的提高了效率, 称之为传输分片。
打个比方:临时工(矿工)被分配到M号工地,那么只用在M号工地仓库(存储节点)取材,只用和M号工地的工友交流。当临时工(矿工)被分配到B号工地,那么只用在B号工地仓库(存储节点)取材,只用和B号工地的工友交流。
不需要千里迢迢的跨工地取材和交流沟通,大大节省了体力和时间成本。
区块链离大规模商用更近了!
总之,MultiVAC公链,采用的计算/存储/传输全维度分片技术,设计十分精妙,让爱莉莎眼前一亮。
通过计算/存储/传输全维度分片技术,MultiVAC能够——安全、快速、高效的并行执行和处理事务, 且具有非常好的扩展性、极大地增强了区块链系统对实体经济大规模业务的响应能力。让人十分期待。
MultiVAC的全维度分片技术,让区块链离大规模商用更近了!
谢谢您的阅读!谢谢!_
本文正在参加”分片杀手MultiVAC有奖征文“,详情请点击(官方征文链接)
网友评论