1、2023 年 2 月 25 日第 7 卷第 4 期现代信息科技Modern Information Technology Feb.2023 Vol.7 No.429292023.022023.02收稿日期:2022-09-22基于节点属性分片的区块链研究设计赵鹏,梁晋铭,刘佳宝(太原师范学院,山西 晋中 030619)摘 要:区块链系统的交易处理能力较弱使其无法广泛应用,分片是在不降低去中心化程度情况下解决区块链瓶颈的最佳技术,但目前主流的分片方案存在牺牲安全性来提升性能的问题。通过对现有分片方案进行研究,提出了基于节点属性的分片方案,根据节点属性和节点随机分配方法开展了网络分片、交易分片和状
2、态分片。实验结果表明基于节点属性分片的区块链系统在满足系统安全的条件下提升了交易处理能力。关键词:区块链;扩展性;节点属性;分片技术中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2023)04-0029-04Research and Design of Blockchain Based on Node Attribute FragmentationZHAO Peng,LIANG Jinming,LIU Jiabao(Taiyuan Normal University,Jinzhong 030619,China)Abstract:The weak transaction
3、processing capability of blockchain system makes it unable to be widely used.Fragmentation is the best technology to solve the blockchain bottleneck without reducing the degree of decentralization.However,the current mainstream fragmentation scheme has the problem of improving performance at the exp
4、ense of security.Based on the research of existing fragmentation schemes,a fragmentation scheme based on node attributes is proposed.According to node attributes and node random allocation method,network fragmentation,transaction fragmentation and state fragmentation are carried out.The experimental
5、 results show that the blockchain system based on node attribute fragmentation improves the transaction processing ability under the condition of meeting the system security.Keywords:blockchain;extensibility;node attribute;fragmentation technology0 引 言区块链在交易处理和数据存储方面难以与中心化应用媲美,为了提高区块链的交易处理能力和可扩展性,一些
6、学者提出运用分片技术来提升区块链的性能。Luu1等人提出第一个公有链分片协议 Elastico,借鉴数据库分片的方式将区块链进行分片,将众多节点划分到不同的委员会,多个委员会并行处理事务提升区块链的交易处理能力。但 Elastico 在没有状态分片的前提下要求每经过一轮共识之后重新组织委员会,当网络中的节点数增多时,委员会重组会耗费大量的时间,进而导致区块链的 TPS 下降。Kokoris-Kogias 等人提出了一种抗预测的公共随机协议 Omniledger2对区块链系统中的节点进行随机分片,引入一种有效的跨分片提交协议来处理跨分片的交易。Omniledger 在处理跨片交易时会将跨片交易广
7、播给所有分片,由对应分片来进行验证,交易验证合法则生成有效证明,否则生成拒绝证明。但如果区块链系统的大部分分片中均有超过半数的跨片交易,则会产生大量的通信开销,进而造成 TPS 的下降,而节点有时并不能被均匀分配。Wang等人提出 Monoxide3协议,协议中提出了“异步共识组”的概念,采用“连弩挖矿”机制即一个矿工可以同时对多个分片挖矿,只要解决一次 PoW 难题便可打包多个分片的交易上链,相当于扩大了每个分片的算力,同时提出了“最终原子性”DOI:10.19850/ki.2096-4706.2023.04.007原则,在跨分片交易中将一笔转账分为扣款和存款,如果扣款操作被成功执行,在接收
8、到接力交易后存款操作也将被成功执行。但由于区块链中的数据是永久储存的,随着区块链系统的运行,累计的交易数据会越来越多,相应的各节点的存储压力也会越来越大,有可能造成单点过热的问题。本文基于节点属性的不同提出一个安全高效的分片方案,并将该分片方案应用到区块链系统中,研究表明在满足系统安全的前提下该方案可以提升基于区块链系统的交易处理能力。1 基于节点属性分片的区块链设计1.1 节点属性的设计本文将 PoS 算法思想作为节点身份的验证机制,用代币资源替换算力资源,将节点自身利益与整个系统绑定,从而抵抗女巫攻击,同时赋予节点不同属性,不同属性的节点有不同功能,如静态属性节点分为存储节点和事务节点,存
9、储节点负责存储区块链系统中的数据,事务节点负责交易的产生发布,所有静态属性节点负责动态属性节点的分配验证工作,动态属性节点负责验证交易的合法性和区块的共识等,用户通过身份验证机制进入区块链系统后,便可根据自身需求选择节点属性,进而参与系统的运行。1.2 网络分片的设计1.2.1 节点随机分配方法针对节点分配不均、恶意节点伪造分片结果的问题,本30302023.022023.02第 4 期现代信息科技文提出可验证随机函数 VRF 与一致性哈希算法相结合的节点随机分配方法,在保证可验证随机性的同时利用一致性哈希算法的特点,把节点均匀地分布在各分片中,节点的分配工作不依赖于某个委员会且避免了分片结果
10、在全网广播,具体方法如下:首先计算各分片在 Hash 环上的映射,然后节点在本地通过 VRF 算法计算出一个可验证的随机数,再使用该随机数结合一致性哈希算法得到节点在 Hash 环上的映射,从而得出节点所属的分片。为了能将节点均衡地分配到各分片,引入一致性哈希算法的虚拟节点机制,即对同一个分片取多个命名,分别计算各个命名在哈希环的映射,这样同一个分片就会在哈希环上有多个映射,从而保证节点随机并且均匀地分配在各分片中,如图 1 所示。Index0232-1Hash()Hash()Hash()Shard AShard BShard CNode ANode BIndexNode CIndexShar
11、d A-虚拟节点Shard B-虚拟节点Shard C-虚拟节点图 1 节点的均匀分配若用节点某个关键值的 Hash 结果来分配节点,根据哈希函数相同输入必有相同输出的特性,节点每次分片均会被分到同一分片中。若用节点某个关键值与随机数进行一致性Hash 结果来分配节点,虽然节点每次分片会被分配到不同分片中,但无法验证其结果是否由该节点产生,可能发生伪造现象。在本文提出的节点随机分配方法中,各分片委员会能通过 VRF 算法计算分配结果是否被伪造,还能依据其随机性避免某节点被重复分配到同一分片的情况,同时由单一委员会变为多个委员会并行分配节点,减少了节点分配所需时间。1.2.2 重分片方法区块链系
12、统中即使有节点身份验证机制,但仍避免不了恶意节点的存在,而诚实节点长期处于某一分片可能会遭到恶意节点的腐败,进而转变为恶意节点,所以要保证节点进行周期性的重分片。但节点在参与共识之前要保证节点本地状态的一致性,因此重分片前后必须要保证各节点的本地状态一致以便能快速参与共识。在 Monoxide3方案中,各分片完成一轮共识后由委员会将各分片产生的微区块聚合成完整的区块,再由全网同步该区块,达到各节点本地状态一致的目的。但节点同步全网的区块数据需要消耗较多的时间和带宽占用量,甚至造成网络拥塞,同时区块链系统运行时间越长,新节点启动时间(参与共识需要同步网络数据的时间)也越长。针对重分片通信开销大和
13、时耗时长的问题,在每个重分片周期结束前,各分片内产生的最后一个区块达成共识时,存储节点同步区块,同时动态属性节点在本地计算所属分片,并将结果与所需的检验凭证广播给所属静态属性节点委员会,静态属性节点委员会通过算法验证后,将节点纳入所属分片,即完成重分片。仅将动态属性节点重新随机分片,解决了重分片过程中同步区块数据带来的通信开销和节点的存储压力等问题,同时一个分片内有多个存储节点存储数据,避免了单点故障问题。1.3 交易分片和状态分片的设计交易分片指把系统中未确认的交易分配到相应的分片中进行处理,各分片并行处理交易,达到提高区块链交易处理能力的目的4。区块链系统中的交易经由网络分片被分为片内交易
14、和跨片交易。片内交易指交易双方均在同一个分片内,可以快速查询验证该交易是否合法,跨片交易指交易双方分别在不同的分片,在验证时就涉及该交易应交由哪个分片协助处理,如何减少处理跨片交易产生的通信开销等问题。目前主流交易分片方案中采用主链转发交易的方式完成对跨片交易的转发验证。如以太坊在其分片方案中设置了信标链对跨片交易进行转发,但若网络中存在大量交易时,单一的主链或者委员会却可能因为无法负载大量交易的转发工作而阻塞甚至崩溃,成为区块链系统的另一个瓶颈。本文根据节点属性的不同提出新的交易分片方案。当网络分片完成后,各分片内的静态属性节点会临时记录当前分片内各节点的信息,事务节点在产生并发布交易后,存
15、储节点和动态属性节点通过双方交易信息判断该交易的类别,如果是片内交易,则由动态属性节点验证交易的合法性,如果是跨片交易,则存储节点验证交易合法性后转发到相应分片,经由目标分片中的存储节点验证交易的合法性后交由动态属性节点进行验证。一个分片内的多个存储节点组成委员会并行转发和接收本分片的跨片交易,当目标分片的跨片交易数量达到规定值或收集时间超过规定值时,将交易切分后以并发的方式发送至目标委员会,来减少跨片交易转发时间,降低因跨片交易产生的通信开销。跨片交易示意图如图2所示。事务节点存储节点动态节点分片A事务节点存储节点动态节点分片B3.签名转发6.签名转发交易交易图 2 跨片交易示意图状态分片指
16、将区块链系统中完整的交易数据分片存储,各分片存储、维护各自的交易数据,降低网络中节点的存储压力,减少网络中节点同步交易数据所消耗的时间。本文中各分片的交易数据由其内部的存储节点存储,所有的存储节点存储着区块链系统的数据信息,而存储节点不参与重分片过程,也就减少了状态分片中因重分片后数据同步导致的通信开销,从而形成了状态分片。31312023.022023.02第 4 期2 实验对比分析2.1 节点均衡性分析针对本文提出的网络分片方法将节点均衡分布情况作为指标对其分析。实验采用控制变量法,测试了分片数量和节点数量对节点均衡分布情况的影响。如图 3 所示本文提出的网络分片方案可以使节点均衡地分配在各分片,同时利用VRF 函数的可验证性避免恶意节点伪造分片信息企图进入到某分片,提高了网络分片的安全性。Node segmentNumber of slicesNumber of nodes10 5009 0007 5006 0004 5003 0001 50000 4 8 12 16 20 24 28(a)节点在 30 个分片的分布情况图Node segmentNumber of slicesN