链资讯 链资讯
Ctrl+D收藏链资讯
首页 > Ethereum > 正文

区块链:分片技术——提升区块链TPS的利刃-ODAILY_BTCP

作者:

时间:

编者按:本文来自哈希未来,作者:陈致佳蒙绎泽江泽武,星球日报经授权转发。

报告摘要:

分片是源自数据库的扩容技术,可用于提高区块链系统的可扩展性,基本思想是将网络中的节点分成不同的碎片,各分片可以并行处理不同交易,这样可以并行处理相互之间未建立连接的交易,以提高网络并发量。它的特点是随着节点数目的增加,网络吞吐量也随之增加。核心难点在于数据分片的关键特征值确定,以及元数据在片区之间通信的延迟造成的不一致性问题,频繁的跨碎片之间的通信会使得区块链网络性能大大降低。由于每个片区里的数据是分开更新的,在设计应用逻辑时必须确保信息的成功更新,同时也需要预留出一定的鲁棒性来应对一个达成最终一致性过程中可能出现的不一致性。

在区块链中的分片根据对象分为交易分片、网络分片和状态分片,其中值得注意的是,在区块链中采用网络分片技术,也就是将矿工分成几个子网络分别负责验证该碎片上的交易,需要保证恶意节点的数目足够小,也因此在分配矿工的规则上需要注意保证随机性。在区块链中应用分片技术,还需要考虑的问题是对各种攻击如女巫攻击,DDOS攻击、双花攻击的防御,需要在权衡效率的同时,保证每个分片内的总节点数目足够多,并且诚实的节点占大多数,分片技术对安全性要求极高,同时,区块链系统中的节点数目比传统数据库中的可能要多,并且面临带宽的限制,需要充分考虑到延迟带来的不一致性导致的性能和安全性问题,因此鲜少有落地的相关项目。需要在大规模的网络中进行长时间的测试验证,并结合严谨的理论方案证明,才能令人信服。

掌柜调查署 | Marco:未来必然有越来越多的项目会基于分片技术打造或改造:在今日举行的《掌柜调查署 | Near分片技术如何引领web3.0时代》直播中,针对“分片技术在行业内的落地情况如何?”的问题,Buildlinks合伙人、Near中国线上黑客松冠军Marco表示,不管是老项目的扩容改造,还是新项目的能力建设,分片方案都是目前最佳的选择。所以,未来必然有越来越多的项目会基于分片技术打造或改造。当前大部分分片方案,都是基于信标链模式,比如,以太坊上的信标链,波卡上的中继链,Cosmos的Cosmos Hub。而这个模式的由来,也是为了解决分片本身所面临的几大挑战之一:安全性挑战。因为每分片上验证人数目随着分片而减少,如何保证分片的安全性是分片系统面临的最基础挑战。信标链作为分片的基准链,提供统一的随机性,让分片上的验证人随机产生,使得从概率上攻击单个分片的难度与攻击全链一致。除了安全性挑战外,分片协议还普遍面临:跨分片通信;数据一致性问题;数据有效性和可用性等挑战。特别的,信标链模式的分片系统还面临一个分片规模受限的问题。因为信标链要处理所有分片的验证人分配,以及对分片快照这些工作,其本身是一个能力受限的瓶颈。除此以外,信标链系统设计复杂,仅分叉选择逻辑一项,就需要处理信标链分叉和分片链分叉两种情况及其相互之间的关联关系。NEAR为什么这么受追捧,跟它的分片协议关系很大了。NEAR在分片技术上独树一帜,采用了无信标链的构建方式。[2020/8/14]

传统概念里的分片技术,是将数据库分割成多个碎片并放置在不同的服务器上。在现代的云服务中,数据常常被托管在不同站点并进行分区。这一做法的原因包括使多台计算机之间的负载平衡,进而提高可扩展性;通过多站点存储数据,来提高可用性等。而区块链分片技术则是基于数据库分片概念的一种扩容技术。

声音 | NEAR软件工程师:NEAR分片技术具有跨合约的可组合性:NEAR协议高级软件工程师Evgeny Kuzyakov称,NEAR协议的分片技术具有跨合约的可组合性,并发布长篇系列推文解释了在技术上NEAR是如何达成这一特性。此前,以太坊创始人Vitalik Buterin曾经转发一篇名为《跨分片(Cross-shard) DeFi 可组合性》的文章,并评价表示分片(Sharding)不会破坏 DeFi 的可组合性。在文中,V神表示,最近有人担心以太坊的的可组合性属性(基本上就是不同应用程序之间轻松交流的能力)是否会保留在 ETH 2.0 跨分片背景中。他认为答案是肯定的,在很大程度上将会如此。此外,ERC20标准需要修改。代币将能够存在于所有分片上,并且可以像 ETH一样从一个分片无缝转移至另一个分片上。[2020/1/10]

无论在区块链领域或数据库领域,分片时要进行的第一步工作都是提取数据的关键特征值,并将关键特征值按照一定的规则来划分给不同的碎片来处理。关键特征值的选择非常重要,它关系着数据的表示唯一性保障以及分片的效果。关于特征值的选取方法,一个言简意赅的标准:basedonwhatyouthinktheprimaryaccesspatternwillbe。因此我们在区块链项目中经常可以看到分片的依据是用户的私钥/账户地址等等,因为这些值是唯一性且不随时间改变的,分片时逻辑比较清晰。

动态 | Ripple引入历史分片技术:据blokt报道,10月31日,Ripple 在ripple 0.90.0上引入了历史分片(History Sharding)技术。该功能允许单个Ripple服务器存储历史数据,而无需存储整个历史记录。[2018/11/2]

在传统的数据库技术中,数据的分片主要有三种方式:

1.哈希方式,直接取模:例如有3个碎片,就将数据经过哈希运算后用3求模,根据结果分配至特定的碎片,此种策略的目的是减少碎片负载不均衡的发生,因为哈希函数计算出来的结果毫无规律,也就打破了因为一些关键特征值和负载的量相关的情况,因此数据更有可能均匀分散于各个碎片之间。一个反例则是,如果数据的关键特征值是注册时间顺序的话,刚注册的数据更为活跃,则有可能会把它们都分到某一个碎片里。但是这一方法的缺点在于如果有新的碎片加入,重新平衡分片比较困难;其优点则在于不需要额外维护状态信息。

2.一致性哈希:无虚拟节点的一致性哈希方式是指数据按照特征值映射到首尾相连的哈希环上,同时也将节点按照一定规则映射上去,数据顺时针找到的第一个节点为其所存储的节点。有虚拟节点的一致性哈希和此类似,不过是将虚拟节点映射到哈希环上,也因此一个实际的物理节点可以占据哈希环上的多个范围。此种方法需要维护状态信息,也就是数据具体被分到哪个节点了,但是优点在于如果碎片的数目需要增加,则重新平衡分片更为容易。但是分片状态信息的维护需要考虑一致性问题,较为复杂。

现场 | Vitalik Buterin:“中心化”系统涉及高成本 分片技术能减少交易固定成本:金色财经现场报道,今日,由金色财经提供战略媒体支持的以太坊产业发展峰会在香港举办,会上以太坊创始人Vitalik Buterin发表观点:中心化系统通常涉及较高的固定成本,以太坊技术可以减少相关交易成本。[2018/9/8]

3.Rangebased:按照关键特征值划分成不同区间,每个节点对应一个或多个区间,类似一致性哈希的方式,也需要维护状态信息。

在区块链系统中,需要有机制来知道哪个节点实现了哪个分片,在传统数据库系统中分片信息一般需要专门的服务器存储,有时为了减轻元数据服务器的压力,分布式系统中,会在其他节点缓存元数据。在区块链中的思路也大体一致,需要保证在节点之间缓存的元数据的一致性,或者引入一个类似的主服务器来保证性能,但都带来了一致性的挑战。

多个副本的一致性、可用性是CAP理论讨论的范畴,主要有两种可用的方案。

第一种是主从同步,首先选出主服务器,只有主服务器提供对外服务,主服务器将元数据的更新信息以日志的方式存至某个共享的存储空间,然后从服务器从共享存储空间读取日志并应用,达到与主服务器一致的状态,如果主服务器被检测到故障,那么会重新选出新的主服务器。在网络分割的情况下,有可能出现大家认为原来的主服务器已经宕机了,就选举出新的主服务器,但是实时上原来的主服务器还在继续提供服务,这就导致出现了“双主”现象,为了解决这种问题,需要想办法把旧的主服务器隔离,使其不能正常对外提供服务。为了保证元数据的强一致性,在进行准备切换的时候,新的主服务器必须要在确认元数据完全同步之后才能继续对外提供服务。为了达到这个目的,一种方式是当元数据变化时立即通知所有的缓存服务器,并锁定数据,例如如果系统要完成的任务需要多个碎片里同时对状态进行更新,那么在更新完成之前,访问将被拒绝。另一种在高度可扩展的NoSQL数据库中经常实现的复制数据之间保持高度一致性的方法是使用读写仲裁和版本控制。这种方法避免了锁定数据,代价是读取和写入数据的过程中会带来额外的复杂度。

声音 | 新加坡国立大学Jia Yaoqi :提高公链性能的最佳解决方案是分片技术:今日,新加坡国立大学博士Jia Yaoqi 针对如何提高公链的吞吐量,以及可扩展性的问题,指出目前已有的一些解决方案如增加区块大小、代理人共识机制(DPOS),侧链以及各种链下的解决方案,因受限于带宽或丧失去中心化的特质,并不是100分的解决方案。而分片技术通过把整个网络进行一个切割,切成不同的小组,进行不同的交易,允许整个网络在不同的分片里面处理不同的交易,则能够最终达到共同计算以及共同解决交易的效果,从而达到一个很高的吞吐量。[2018/9/5]

第二种方式,通过分布式一致性协议来达到多个副本件的一致,比如Paxos和Raft协议,协议可以实现所有备份均可以提供对外服务,并且保证强一致性。

区块链的状态分片是指每个节点只存储了一部分的区块链状态信息,亦需要类似的机制来维护状态信息,以知道哪个片存储了需要的状态。需要解决的一致性问题和以上所述类似,而交易分片的实现更为简单。在基于账户的区块链系统中,每一笔交易将会有一个发送者的地址,然后系统可以根据发送者的地址分配一个碎片。这确保了两笔双花交易将在相同的碎片中得到验证,因此系统可以很容易地检测到双花交易,而不需要进行任何跨碎片的通信。如果节点是确定的,那么几乎不存在上述讨论的元数据的更新带来的问题。但是如果交易验证时涉及到跨碎片之间的通信,通常开销成本很高,将影响网络的吞吐量和经济效益。

区块链的网络分片指将矿工划分成几个组,同时验证交易,提高系统并行处理交易的能力,进而可提高TPS。通常可以通过定期以随机数生成来决定选取达成共识的节点,只要将其映射到已经编好号的碎片中问题也就变的好处理多了。但是如果有节点宕机,重新分配节点时,就需要在碎片之间形成一致性共识。值得注意的是,在区块链中采用网络分片技术,也就是将矿工分成几个子网络分别负责验证该碎片上的交易,需要保证恶意节点的数目足够小,也因此在分配矿工的规则上需要注意保证随机性。

分片技术的关键在于由于每个片区里的数据是分开更新的,在设计应用逻辑时必须确保在平衡效率的前提下,对信息进行成功更新,同时也需要预留出一定的鲁棒性来应对一个达成最终一致性过程中可能出现的不一致性。在区块链中应用分片技术,还需要考虑的问题是对各种攻击如女巫攻击,DDOS攻击、双花攻击的防御,需要在权衡效率的同时,保证每个分片内的总节点数目足够多,并且诚实的节点占大多数,分片技术对安全性要求极高,同时,区块链系统中的节点数目比传统数据库中的可能要多,并且面临带宽的限制,需要充分考虑到延迟带来的不一致性导致的性能和安全性问题,因此鲜少有落地的相关项目。需要在大规模的网络中进行长时间的测试验证,并结合严谨的理论方案证明,才能令人信服。

参考文献:

1.《带着问题学习分布式系统之数据分片》,https://www.cnblogs.com/xybaby/p/7076731.html

2.《分片技术——区块链扩容问题的良方》,http://www.8btc.com/sharding-blockchain-scalability

3.《sharding》,https://docs.mongodb.com/manual/sharding/

4.《Shardingpattern》,https://docs.microsoft.com/en-us/azure/architecture/patterns/sharding

5.《DatabaseshardingexplainedinplainEnglish》,https://www.citusdata.com/blog/2018/01/10/sharding-in-plain-english/

6.卢晓明,《被看做公链未来的分片技术,究竟离我们还有多远?》,https://www.odaily.com/post/5132394

7.币学院,《分片概述、Zilliqa和QuarkChain》,http://8btc.com/article-4660-1.html

标签:区块链比特币BTCDIN为什么现在不提区块链了比特币市值占比多少是熊市BTCPodin币王鸣个人简历

Ethereum热门资讯
300:年末的最后狂欢夜,静待新一年的大行情到来-ODAILY_TOC

大海虽然浩瀚,也是由无数个小水滴组成的。投资市场的高手,不管是索罗斯还是巴菲特,他们的财富也是从每一单的交易中一点一点积累的,没有几十年的积累他们也不可能拥有今天的成就.

比特币:行情分析:币天销毁数不会撒谎,长期屯币者没有恐慌-ODAILY_YSDT币

摘要:今日大盘快速下行,山寨币血流成河,市场恐慌情绪不减,但场外资金流入增强,短时有企稳反弹的迹象.

DIN:3.12今日已破前期低点:行情是否继续下行?-ODAILY_AIN

很多的人,总分不清理想和梦想的不同。理想是一种可能实现也可能不实现的观念,这要天时,地利,加上人和和三大条件才能略知成功成功与否的一二.

MAC:2.12比特币行情分析:在币圈的你是否迷茫?-ODAILY_300

关于数字货币合约交易,有人说它是一种工具,有人说它就是一个玩大小的场所。在理性者看来,可以利用合约做量化,可以对冲交易风险;激进者则高呼“赢了会所,输了下海”.

MAC:大盘目前处于什么阶段,减半行情结束了吗?-ODAILY_TOC

这段时间币市的整体走势,也有资金轮动的迹象。先是减产币轮番上涨,几倍的涨幅吸引了众多的目光,然后是主流币、BTC的持续性反弹,目前轮到了山寨币,也有活跃的迹象.

300:OK江湖录 | 投资分析大讲堂-ODAILY_OKB

《OK江湖录-嘉宾大讲堂》由全球顶级交易所最专业最安全的数字资产交易平台OKEx主办的行业深度访谈栏目。主要内容是行情分析,市场政策,行情分析,技术指标,投资技巧,\n个人经验等,币圈故事.