温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
密码
累加器
状态
区块
性能
优化
孙林昆
第 49卷 第 2期2023年 2月Computer Engineering 计算机工程基于密码累加器的无状态区块链性能优化孙林昆,蒋文保,郭阳楠,李春强(北京信息科技大学 信息管理学院,北京 100192)摘要:区块链由于其去中心化的特点,被认为是近年来最具颠覆性和革命性的技术创新之一。然而,目前大多数公有链由于数据高度冗余使得区块链系统数据迅速增长,从而造成节点存储资源消耗严重,此外它还存在区块共识成本较高导致系统吞吐量低的问题。针对区块链的可扩展性问题,提出一种适用于智能合约的无状态区块链性能优化方案 STiPChain。STiPChain基于密码累加器与可验证计算完成无状态设计,采用 RSA累加器生成智能合约的有效性证明实现节点状态数据压缩,同时通过分布式设计将智能合约的有效性证明更新效率优化至常数,极大降低节点对磁盘和内存的需求。在此基础上,STiPChain将区块共识与区块运算解耦,基于可验证计算技术提出新的智能合约执行逻辑和交易验证方案,解决无状态条件下的交易验证与执行问题,有效提高系统吞吐量。实验结果表明,与Ethereum相比,STiPChain无状态区块链性能优化方案将共识节点的存储需求降低了 99%,吞吐量提高了 1.62 500倍。关键词:区块链;高性能;密码累加器;智能合约;可验证计算开放科学(资源服务)标志码(OSID):中文引用格式:孙林昆,蒋文保,郭阳楠,等.基于密码累加器的无状态区块链性能优化 J.计算机工程,2023,49(2):46-53.英文引用格式:SUN L K,JIANG W B,GUO Y N,et al.Performance optimization of stateless blockchain based on cryptographic accumulator J.Computer Engineering,2023,49(2):46-53.Performance Optimization of Stateless Blockchain Based on Cryptographic AccumulatorSUN Linkun,JIANG Wenbao,GUO Yangnan,LI Chunqiang(School of Information Management,Beijing Information Science&Technology University,Beijing 100192,China)【Abstract】Blockchains are considered among the most disruptive and revolutionary technological innovations in recent years because of their decentralization characteristics.However,most public chains are faced with the significant consumption of node storage resources owing to the high data redundancy,making the blockchain system data grow rapidly.In addition,they exhibit low system throughput caused by the high cost of block consensus.High storage and low throughput have become urgent problems to be solved in the development of blockchain.A stateless blockchain storage optimization scheme,STiPChain,suitable for the smart contract,is proposed to solve the scalability problem of blockchains.STiPChain completes a stateless design based on the accumulator and verifiable computing.The RSA accumulator is used to generate the validity proof of the smart contract and realize the state compression.It also generates state commitment using a new cryptographic accumulator technology,optimizing the update efficiency of the state accumulator to a constant value and significantly reducing the disk and memory requirements of the node.In addition,this study decouples block consensus and block operation and proposes a new smart contract execution logic and transaction verification scheme,which solves the smart contract execution under stateless conditions and effectively improves the system throughput.The experimental results show that compared with Ethereum,the STiPChain storage expansion scheme reduces the storage requirements of consensus nodes by 99%and increases the throughput by 1.6-2 500 times.【Key words】blockchain;high performance;cryptographic accumulator;smart contract;verifiable computingDOI:10.19678/j.issn.1000-3428.0063995基金项目:云南省区块链应用技术重点实验室项目(202105AG070005)。作者简介:孙林昆(1999),男,硕士研究生,主研方向为区块链、可信网络;蒋文保(通信作者),教授、博士;郭阳楠,硕士研究生;李春强,讲师、博士。收稿日期:2022-02-22 修回日期:2022-03-28 Email:热点与综述文章编号:1000-3428(2023)02-0046-08 文献标志码:A 中图分类号:TP393第 49卷 第 2期孙林昆,蒋文保,郭阳楠,等:基于密码累加器的无状态区块链性能优化0概述 区块链由于其去中心化、防篡改和可追溯等特点,引起了金融机构、投资机构、监管部门以及政府部门的广泛关注。但目前区块链仍存在较多技术难点,如性能问题就是其中之一。区块链在不同场景下的应用都因高冗余存储增强了数据的公开性、透明性和去中心化,提高了系统的可用性;但另一方面,每个节点都需要同步并保存系统中所有的账本数据。此外,共识节点为了验证交易,需要存储账户余额以及系统中各种智能合约的当前状态,这使得参与共识协议的成本更高,也给区块链带来性能问题和巨大的存储压力。针对上述问题,许多学者进行了大量研究。与传统的存储方案不同,比特币1采用一种 SPV 的方式缓解存储问题,但随着存储量的增多,会有更多的节点无法承担全节点的存储需求,从而转变为轻节点,降低网络的去中心化程度。文献 2 通过 IPFS协议将交易存储进链下,链上保存交易的索引,该文主要针对基于 UTXO 模型的区块链设计,未考虑基于账户模型区块链的存储及智能合约执行情况。文献 3 通过分片技术降低了单个节点的存储负担,同时提高了区块链系统的吞吐量,然而该系统中的跨分片交易存在分叉攻击的威胁,并且该系统需要执行一个代价高昂的节点重新分配协议,以增强系统安全性。文献 4 提出在 DHT 网络中验证新交易和新区块以保存区块链数据,然而该系统需要频繁访问网络来申请状态数据,并且不具有数据缓存功能,具有较大的网络开销。文献 5 采用纠删码的方法有效降低了系统中区块数据的冗余存储数量,然而共识节点在执行交易时需要进行频繁的网络请求来恢复区块数据,给网络带来一定的负担。近年来,无状态区块链的概念6-7被提出,无状态区块链通过减少节点的状态数据存储量从而减少存储负载。然而,现有的无状态区块链系统7-8大部分是为加密货币设计的,而试图开发支持智能合约的通用无状态区块链将面临新的问题。首先在一般应用程序中,由智能合约支持的事务可能包含任意逻辑,这需要新的证明技术来证明合约执行的完整性;其次智能合约交易会引入任意大小的读写集,这比简单的加密货币交易复杂得多,需要额外设计来支持状态承诺更新9。本文提出一种基于密码累加器的无状态区块链性能优化方案 STiPChain。采用 RSA累加器生成具有分布式存储能力的合约有效性证明(Contract Validity Proof,CVP)技术,并基于该技术构建无状态区块链,共识节点不再保存区块数据,而只需保存合约累加值及合约有效性证明降低磁盘和内存的负担。在此基础上,STiPChain将有效性证明与可验证计算技术相结合,设计一种适用于智能合约的无状态区块链,以解决无状态条件下智能合约运行验证问题。1相关工作 1.1无状态区块链以 Ethereum10为代表的区块链 2.0 是基于交易的状态机,从创世区块开始,通过交易持续不断地改变区块链状态。区块链状态信息描述了系统中账户和余额的当前状态,以及在区块链虚拟机中部署和运行的所有智能合约的参数数据。链上每个最终确定的区块都有且只有一个状态,这是由网络中的所有参与者共同确认的。每当有新的区块产生时,系统状态都会随之更新。在无状态区块链中,用户和共识节点都不需要存储完整的系统状态。相反,所有账户的当前状态以及在 EVM 中部署和运行的所有智能合约的集体组成的状态使用经过验证的数据结构在所有节点中分配。通过这种方式,共识节点只存储系统状态的简要摘要,每个用户存储他们的自身状态数据。共识节点仍然可以验证收集到的交易,这些交易中包含了合约的有效性证明。此外,共识节点仍然可以提出新的事务块,用户也可以在发布新块时快速同步或更新他们的证明。文献 11 提出一种基于 RSA累加器的改进型轻节点,极大地优化了轻节点的存储空间,但是并没有解决全节点存储问题。文献 12 基于 RSA累加器提出一种适用于 UTXO 模型的无状态客户端,可以较好地优化共识节点的存储问题,但并不能适用于智能合约的验证。文献 6 提出一种无状态交易验证的通用框架 EDRAX,所有节点只需持有最新被确认的区块即可验证交易并更新状态,但是 EDRAX仅支持对账号的余额进行验证。文献 7 首先针对通用累加器和向量承诺,提出了批处理技术,极大地提升了累加器的验证效率并降低了传输开销。然而,该累加器只适用于基于 UTXO 模型的无状态公有链,同时在不知道群阶的情况下,RSA 累加器批量删除操作的复杂度为 O(n2),导致累加器更新效率低,无法适用于高吞吐量的环境。文献 8 通过 KZG 多项式承诺13构造新的向量承诺方案 aSVC,使用一个更强的交叉承诺聚合概念,将不同向量承诺的多个子向量证明聚合为一个单一的、恒定大小的证明。该方法虽然可以高效地支持加密货币转账交易,却不能支持智能