基于双RSA累加器的无状态交易验证方案
Double RSA accumulator based stateless transaction verification scheme
通讯作者:
收稿日期: 2022-07-15
Received: 2022-07-15
作者简介 About authors
杨晋生(1965—),男,副教授,从事无线传播技术与区块链技术的研究.orcid.org/0000-0002-1780-6305.E-mail:
为了缓解区块链中不断膨胀的状态数据给节点带来的存储压力,针对以比特币为代表的UTXO模型区块链,提出基于双RSA累加器的无状态交易验证方案. 该方案利用固定大小的密码学承诺取代状态数据,在保证节点能够独立验证交易的基础上,大幅降低本地存储. 基于RSA累加器的特性,利用2次高效的添加操作替换了复杂的删除操作,以较少的通信开销为代价,大幅降低系统的计算开销,保证交易验证的效率. 实验结果表明,该方案相比于传统的区块链拥有较高的节点存储压缩率,相比于其他无状态方案拥有固定的额外通信开销及较高的交易验证效率.
关键词:
A double RSA accumulator based stateless transaction verification scheme was proposed for the UTXO-model blockchain such as Bitcoin in order to release the storage burden in each node brought by the growing state data in blockchain. Fixed-size cryptographic commitments were used to replace the state data, which dramatically reduced the local storage on the basis of ensuring that nodes can independently verify transactions. The complicated delete operation was replaced by two efficient addition operations based on the properties of the RSA accumulator, which greatly reduced the computational overheads of the system at the cost of less communication overheads and ensured the efficiency of the transaction verification. The experimental results show that the scheme has a higher node storage compression ratio than the traditional blockchain, and has a fixed additional communication overhead and higher transaction verification efficiency than other stateless schemes.
Keywords:
本文引用格式
杨晋生, 王浩, 高镇, 郭朝晖.
YANG Jin-sheng, WANG Hao, GAO Zhen, GUO Zhao-hui.
持续增长的存储量已成为制约区块链可扩展性的关键瓶颈[12]. 在区块链中,存储主要分为链上数据和状态数据2部分. 网络中的全节点2部分数据都须存储,数量更多的轻节点通常只需要维护状态数据,即可实现交易合法性的高效验证. 根据状态数据存储方式的不同,区块链可以分为两大范式:以以太坊为代表的“账户-余额”模型(状态数据被存储为State Tries)和以比特币为代表的“未花费的交易输出(unspent transaction outputs, UTXO)”模型(状态数据被存储为UTXO Set)[13-14]. 随着用户、交易数量的激增,节点需要存储的状态数据不断膨胀. 最近,比特币节点维护的UTXO Set已达到4.65 GB,并保持增长的趋势[15]. 一方面,状态数据的不断增长加剧了节点的存储负担;另一方面,超出节点内存容量的状态数据将不得不存放到访问速度缓慢的磁盘中,这不仅会拖慢交易验证效率,而且会增大遭受拒绝服务攻击的风险[16]. 上述“状态爆炸”问题阻碍了资源有限节点参与区块链系统的交易验证过程,在增大区块链中心化风险的同时,制约了其在供应量金融、工业物联网、边缘计算等场景中的应用[17-18].
针对上述问题,本文提出基于双RSA累加器的UTXO模型区块链无状态交易验证方案. 该方案分别针对未花费的交易输出集合(UTXO Set)和已花费的交易输出集合(spent transaction outputs set, STXO Set)构建2个独立的RSA累加器,2个累加器均只执行添加操作来更新承诺. 交易的有效性由2个承诺共同验证. 得益于定长的RSA证明和高效的添加操作,该方案以较少的通信开销为代价,有效降低了状态数据存储负担,保证了交易验证的效率,具有较高的实用性.
1. 相关工作
目前针对区块链“状态爆炸”问题,研究者提出一系列解决方案,具体可分为数据转移、分布式存储及无状态交易验证3类. 第1类方案中,Xu等[19]提出状态信息线下存储方案SlimChain. 其中,完整的状态信息被转移到选定的全节点,轻节点只保留状态信息摘要,实现存储量的大幅削减. 轻节点验证交易必须依靠全节点,在增大系统中心化程度的同时,额外引入了数据泄露的风险. 第2类方法中,Guo等[20]提出基于冗余余数系统的分布式存储模型,通过求模运算,将固定长度的余额映射为一系列截短的余数,分发至不同节点存储,削减了单个节点的存储量. 单个节点的存储负担会随着整体状态的增加而线性增长,无法从根本上解决问题,数据的分发、收集、恢复过程引入额外的安全风险.
基于密码学累加器的无状态交易验证是解决区块链“状态爆炸”问题的崭新思路,基本思想是利用密码学承诺取代状态信息,利用承诺更新来反映状态变化,利用成员证明来验证交易合法性. 节点只存储承诺就可以验证交易的前提是,交易发起者在原本的交易之上需要提供对应的成员证明,而这份证明会带来额外的通信开销. Todd[21]通过默克尔树对UTXO Set进行聚合,记录默克尔树根并生成对应的见证,实现了UTXO模型区块链的无状态交易验证. 该方案的不足之处在于默克尔证明的数据大小随着UTXO Set的膨胀呈对数增长,这份证明带来的通信开销将远远大于交易本身. Chepurnoy等[22-24]提出的方案可以视为Todd方案的变种. Boneh等[25]利用RSA累加器生成的定长证明来验证UTXO的存在性和未花费性,通过“批处理”技术进一步降低通信开销. 该方案的不足之处在于花掉的UTXO需要从累加器中删除,删除操作的复杂性极大地拖慢了平均出块时间,阻碍了方案的实际应用. 在Boneh等[25]的基础上,Chen等[26]利用RSA累加器证明UTXO的未花费性,利用默克尔山脉证明UTXO的存在性,回避了RSA累加器删除元素的问题,提高了交易验证效率,但默克尔证明导致了通信开销的增加.
2. 基本概念
2.1. 区块链数据结构及存储模型
区块链是一系列区块通过加密算法连缀形成的反向链表. 区块由区块头和区块体组成. 区块头存储整个区块的元数据,主要包括父哈希、默克尔树根、难度值以及随机数等,可以实现区块链的大部分功能[14]. 父哈希是前一个区块的哈希值,凭借哈希函数的单向性及抗碰撞特性,保证了区块链的安全性[23]. 默克尔树根由包含在区块体内的全部交易哈希以二叉树的形式两两向上聚合得到,保证了交易的数据完整性. 难度值与随机数用来判定“记账权”,各节点争夺“记账权”的过程被称为共识. 目前,最常用也最安全的共识算法是工作量证明(proof of work, PoW),在该过程中,节点不断改变随机数的值,直到整个区块头的哈希小于预设难度[13].
区块体维护全部的历史记录,即网络中发生过的每一笔交易,是区块链数据产生、状态变化的凭证. 交易是实现区块链功能的最小单位. 比特币中,一笔合法的交易由多个输入、输出组成,其中每个输入都必须引用之前某笔合法交易产生的未花费的输出(UTXO). 输入被称为已花费的交易输出(STXO). 最简单的交易只有单个输入和输出. 伴随着交易的执行,各节点添加每个UTXO至UTXO Set,从中移除每个STXO,在区块达成共识后,统一更新本地状态. 在节点本地,UTXO Set一般以键值对的形式存储,一个UTXO可以由键值对{TxID:(Index, Address, Value)}唯一表征. TxID是产生该UTXO的交易哈希,Index是该UTXO在输出集合中的索引,两者结合反映了UTXO 的存在性. Address和Value分别是交易接收者和锁定在该UTXO内的金额. UTXO模型区块链中交易的数据结构如图1所示. 其中,第2笔交易(Tx1)引用第1笔交易(Tx0)产生的第1笔输出(Outputs[0])作为自己的第1笔输入(Inputs[0]). Version表示版本号,SignScript与PubScript分别表示解锁脚本与锁定脚本[13].
图 1
图 1 UTXO模型区块链中交易的数据结构
Fig.1 Data structure of transaction in UTXO-model blockchain
2.2. 状态区块链与无状态区块链
目前, UTXO模型区块链均采用状态化设计,即节点本地维护并更新UTXO Set,不需要追溯整个账本,即可高效验证交易合法性. 如图2所示,状态区块链中,一笔交易从签发到最终确认,要经历以下步骤. 1)节点基于本地维护的UTXO Set,引用合法的UTXO作为输入,签发交易并发送给邻居节点. 2)接收到新交易的节点验证交易签名(SignScript),基于本地维护的UTXO Set验证交易输入是否引用合法的UTXO,锁定在该UTXO内的资产是否不小于转账金额. 若验证通过,则交易合法. 节点将交易缓存进本地交易池,转发给邻居节点. 3)节点从本地交易池挑选部分交易打包进区块,执行交易并更新本地UTXO Set,生成默克尔树根,寻找满足难度要求的随机数. 率先完成PoW过程的节点获得“记账权”,将新生成的区块广播至全网. 4)收到新区块的各节点停止本地PoW过程,校验新区块. 若校验成功,则同步新区块到本地区块链,更新本地UTXO Set (添加新的UTXO,移除STXO). 5)当包含该交易的区块接续足够数量的后续区块时,该交易可以被认为得以最终确认[14].
图 2
无状态区块链是新兴的设计思想,通过实现无状态交易验证来解决状态爆炸问题. 如图3所示,区块头添加密码学承诺(Commh),反映交易执行引起的状态变化. 节点本地不再维护全部的UTXO Set,取而代之的是同Commh一一对应的密码学见证(witness). 在无状态区块链中,一笔交易从签发到最终确认,步骤相对状态区块链发生如下改变. 1)签发交易时,witness同原交易内容一同被转发至邻居节点,后者结合witness和包含在最新区块头内的承诺,验证交易签发者引用UTXO的合法性. 2)当节点打包新区块时,根据交易内容更新密码学承诺(Commh
图 3
2.3. RSA累加器
2)从未知阶数的有限循环群中选出一大质数G作为RSA累加器的生成元. 累加器的密码学承诺称为累加器状态. 初始累加器状态为
基于全素数集合S = {x1, x2,
生成承诺:t时刻,累加S内全部元素至RSA后,状态为
式中:
生成集合内元素的成员见证:对于xi (
依托此时的承诺
生成集合外元素u的非成员见证:对于u(
依托此时的承诺
若t+1时刻,新元素
添加元素后更新承诺:
更新集合内元素xi(
更新集合外元素u的非成员见证:对于xn
若t+1时刻,从S中删除某个元素xi(
删除元素后更新承诺:此时RSA承诺是被删除元素
更新集合内元素xj(
当批量添加元素进S时,将全部元素的乘积视为xn,根据上述步骤可以完成密码学承诺、见证的更新. 当批量从S中删除元素时,用全部元素的累积成员见证替换密码学承诺[29]. 基于RSA累加器的性质,删除操作的复杂度远远超过添加元素.
3. 双RSA累加器构建的无状态交易验证方案
3.1. 系统总体架构
在UTXO模型区块链中,交易的合法性包含2个层面:交易结构的合法性与交易字段的合法性. 交易结构的合法性是指交易符合区块链标准数据结构,交易签名与交易内容、签发者地址相匹配. 交易字段的合法性如下. 1)
为了验证交易引用输出的存在性与未花费性,各节点本地建立并维护2个RSA累加器
图 4
图 4 基于双RSA累加器无状态交易验证方案的总体架构
Fig.4 Overview of double RSA accumulator based stateless transaction verification scheme
当矿工生成新区块,更新RSA承诺时,2个RSA累加器
3.2. RSA累加器及本地见证的初始化
如2.3节所示,为了应用基于双RSA累加器的无状态交易验证方案,区块链系统应预置1组公共参数G、N充当模幂运算的生成元与模数. Alice与Bob可以在创世区块block0(区块高度
对于每一笔交易,由于只有输出,没有输入,则有
1)对于UTXO Set中的任意一笔
3)根据式(1)可知,Alice累积
创世区块将
1)计算拥有的
2)根据式(2),基于RSA承诺
3)根据式(4),基于RSA承诺
4)存在性(成员)见证、未花费性(非成员)见证共同组成
在初始化完毕后,Bob控制的节点只须将属于Bob的UTXO及对应的见证保存在本地,无须保留完整的UTXO Set. 其他账户控制的节点遵循相同的操作生成并保留各自UTXO及对应的见证. 考虑到实际场景中,完整UTXO Set大小接近甚至超过1亿,单个节点正常发起交易所必须的UTXO数量少于100,而RSA累加器产生的见证是定长的,所以节点本地维护的状态数据将大幅减少.
3.3. 交易的签发及验证
在状态区块链中,节点通过查询本地保存的完整UTXO Set,引用有效UTXO,签发交易. 验证节点对照本地保存的完整UTXO Set,查询引用UTXO对应的资产并与转账金额比较,判断该UTXO的存在性、未花费性及可用性,决定新交易是否合法. 在无状态区块链中,各节点不再保存完整的UTXO Set,只保留自身相关的部分UTXO、对应的
如图5所示为新的交易数据结构,为了方便、清晰起见,该交易只包含单个输入、输出,各自对应的解锁脚本(SignScript)与锁定脚本(PubScript)均被省略. 与图1所示的有状态UTXO模型区块链中的交易数据结构相比,新交易在输入项内部额外添加了2个字段
图 5
图 5 无状态UTXO模型区块链中交易的数据结构
Fig.5 Data structure of transaction in stateless UTXO-model blockchain
假设创世区块产生后,基于锁定在
1)引用
2) 声明锁定在
3)拼接
4)按规则填充交易各个字段. 填充完毕后进行签名,转发给邻居节点.
在收到新交易后,交易验证流程如下.
1)验证交易签名是否合法. 若签名验证失败,则直接抛弃.
2)提取交易输出项各字段,包括声明资产
3)计算该UTXO对应的哈希值
其中
4)基于最新的RSA承诺(保存在创世区块头的
5)基于最新的RSA承诺(保存在创世区块头的
6)存在性、未花费性验证通过后,比较
与状态区块链一样,通过验证的交易将被节点缓存进本地交易池,遵循自定义规则打包进新区块. 上述的签发和验证过程适用于多个输入、输出的交易,需要多验证几个交易输入的见证.
3.4. 新区块生成以及承诺与见证的更新
在无状态区块链中,生成新区块、争夺记账权的过程与状态区块链基本一致. 唯一的不同点如下:在无状态区块链中,矿工在生成默克尔树根之后,进行工作量证明之前,需要遍历每笔交易的输入、输出,更新UTXO Set及STXO Set,进而更新RSA承诺,并保存在新区块头. 基于创世区块,假设Bob作为矿工,创建新区块block1并取得记账权. block1包含
1)根据自定义规则,从本地交易池打包部分交易创建新区块block1,生成对应的默克尔树根.
2)遍历每笔交易的输入、输出,将输入引用的UTXO缓存进STXO Set,将新产生的UTXO缓存进UTXO Set. 由于交易均为单输入、单输出,STXO Set与UTXO Set的大小均为
3)对于UTXO Set、STXO Set内的每一个元素,计算对应的哈希值,根据预置算法映射为唯一的大素数
4)根据式(6),基于最新的RSA承诺(存储在创世区块头的
5)根据式(6),基于最新的RSA承诺(存储在创世区块头的
Bob完成RSA承诺的更新并存储在新区块block1的区块头后,与状态区块链一样,通过遍历
1)若在最新区块获得了新的UTXO,则节点需要基于最新承诺中的
2)若本地存在之前获得的UTXO,且未被使用,则节点需要基于
3.5. 网络中节点的划分与设计
在区块链网络中,节点可以简单地划分为全节点和轻节点2类. 前者保存区块链历史数据和完整状态,可以独立验证交易;后者只保存区块头,需要依赖全节点验证交易. 在本文方案中,理论上可以实现所有节点均是轻节点,因为节点只需保存最新的累加器承诺,就可以独立验证交易,根据新区块中的交易更新承诺和自己本地的见证. 考虑到实用性,在应用本文方案的系统中会保留一定数量的全节点,但全节点的功能将会发生变化.
在本文方案中,轻节点只保存包含最新承诺的区块头,负责验证交易以及参与区块的生成与共识这些区块链主要事务. 全节点存储区块链历史数据和完整状态,主要功能是保障区块链系统的可追溯性,提供一定的安全性. 因为见证需要一直与承诺保持同步更新,所以全节点还可以提供管理UTXO及见证的服务,不仅可以避免用户因离线或丢失见证而导致UTXO无法使用的情况,而且可以利用全节点的计算及存储资源.
4. 系统性能分析及仿真
在基于双RSA累加器的无状态交易验证方案中,各验证节点不再维护完整的UTXO Set,只维护自身相关的UTXO及对应的见证,大幅降低节点的存储负担,通过存储在区块头的RSA承诺保证交易合法性的高效验证. 为了保证交易签发、验证的正常进行,相应修改数据结构,增加声明资产及见证字段,导致额外的通信开销. 基于提出的无状态交易验证方案,从理论层面分析在存储效率、通信开销及计算复杂度3个方面的表现. 设计模拟实验,从上述3个方面对无状态验证方案的表现进行评估,与同类型方案进行比较.
4.1. 理论分析
4.1.1. 压缩率估算
压缩率是指在应用无状态交易验证方案后,节点本地节省的存储开销相对于原始存储量的比值. 在状态区块链中,各节点维护完整的UTXO Set. 假设每笔UTXO的平均比特长度为
从式(10)可知,RSA累加器的N的选取越大,
4.1.2. 通信开销估算
在应用无状态交易验证方案后,交易数据结构发生改变,新增的witness字段带来了额外的通信开销. 由于RSA累加器的性质,引用一笔UTXO,witness带来的额外开销是固定值,为3b. 其中,b为所选系统参数N的位宽. N一般选用RSA-2048 (2 048 bits),则本文方案相应的通信开销为6 144 bits. Boneh等[25]提出的方案为每笔UTXO引入固定的通信开销. 由于只采用一个RSA累加器,通信开销只有本文方案的1/3. 与基于RSA累加器的无状态交易验证方案相比,Todd[21]采用的累加器为默克尔累加器,每笔UTXO对应的通信开销随着UTXO数量的增加呈对数增长. EDRAX[22]采用默克尔累加器的变种,其中每一笔UTXO引入的额外通信开销为10 240 bits,远远超过本文方案. MiniChain[26]的通信开销不仅会受到区块中输出数量的影响,而且会随着区块的增加而无限制地增大. 考虑到实际生产环境中UTXO数量超过1亿[15],基于双RSA累加器的无状态交易验证方案在通信开销表现上,虽然略逊于Boneh等[25]提出的单RSA方案,但相对于基于默克尔体制的验证方案具有显著的优势. 如表1所示为目前主流无状态交易验证方案体制及通信开销,与本文方案进行了对比. 表中,M为预设的UTXO数量,且M
表 1 每笔引用的UTXO产生的额外通信开销
Tab.1
4.1.3. 计算复杂度分析
双RSA无状态交易验证方案在交易生命周期的不同阶段,分别执行累加器初始化、见证初始化、(非)成员验证以及承诺、见证更新. 不同的操作具有不同的时间复杂度. 基于通用累加器的性质可知,RSA初始化、添加元素、验证(非)成员见证均为O(1). 当矿工打包新区块时,要遍历全部交易花费及产生的UTXO,对应更新密码学承诺. 时间复杂度与区块体包含花费及产生UTXO的数量呈线性正相关. 与双RSA方案相比,Boneh的单RSA方案由于安全删除操作本身的复杂性,承诺更新的时间复杂度与花费的UTXO总量的平方呈正相关的关系. 尽管双RSA方案要同步更新2个承诺,计算开销仍远远小于单RSA方案. 与RSA体制相比,在基于默克尔累加器的验证方案中,初始化、承诺生成、更新以及见证生成、更新的复杂度均取决于默克尔树(或其变体)的高度,随着UTXO数量的增加呈对数增长的关系. 由于各个过程均实际执行高效的哈希计算,整体时间开销远小于基于RSA的无状态验证方案.
如表2所示为目前主流无状态交易验证方案及时间复杂度,与本文方案进行对比. 表中,ki、ko分别为区块包含的已花费和新产生的UTXO数量.
表 2 计算复杂度的对比
Tab.2
方案 | 验证见证 | 更新承诺 | 生成见证 | 更新见证 |
Todd | O(log2 m) | O((ki +ko)log2 m) | O(log2 m) | O((ki +ko)log2 m) |
EDRAX | O(log2 M) | O((ki +ko) log2 M) | O(log2 M) | O((ki +ko) log2 M) |
Boneh | O(1) | O(ki2 +ko) | O(ko) | O(ki +ko) |
MiniChain | O(1)+O(log2 ko+log2 h) | O(ki)+O(log2 h) | O(ko)+O(log2 ko +log2 h) | O(ki)+O(log2 h) |
本文方案 | O(1) | O(ki +ko) | O(ko) | O(ki) |
基于上述分析可知,双RSA累加器的无状态交易验证方案能够在压缩率、通信开销、内存占用及计算复杂度等方面达成较好的平衡,更适用于生产环境.
4.2. 实验仿真
4.2.1. 实验环境配置
该实验使用的设备是一台配备4核Intel(R) Core(TM) i7-7700HQ CPU @ 2.80 GHz处理器、16.0 GB内存的电脑. 通过Python 3.7模拟UTXO区块链网络及交易处理流程. 对使用了相同体制累加器的单、双RSA方案及MiniChain进行仿真实现,3个方案均选用相同的系统参数. 循环群模数N选定为安全性更强的RSA-3072,G 选用
4.2.2. 存储效率评估
当处理不同数量的UTXO时,3个无状态方案下的节点本地存储压缩率变化如图6所示. 可见,m越大,
图 6
4.2.3. 交易生命周期的各节点执行时间评估及对比
在仿真过程中,基于相同的源数据,分别统计整个交易生命周期内,使用了RSA累加器的Boneh、本文方案以及MiniChain执行各项操作产生的整体时间开销. 实验结果如图7所示. 图中,t为系统耗时,n为区块中的交易数量. 从图7可见,相比于MiniChain,本文方案完成交易的完整生命周期过程的耗时略长. 与单RSA方案相比,本文方案的操作效率具有显著优势,区块中的交易数量越大,这种效率优势越突出. 当区块内交易达到1 000笔时,利用单RSA方案进行交易验证、承诺更新及见证更新等操作的整体耗时超过2 500 s,远大于比特币出块间隔(600 s),实用性较差. 本文方案只需约50 s,对区块链出块间隔及由此决定的吞吐量、分叉率等造成的影响不大,具有更高的实用价值.
图 7
MiniChain、单RSA方案与本文的双RSA方案在操作耗时上的差距可以由图8来解释. 如图8所示为MiniChain及单、双RSA方案在交易生命周期各个节点执行各项操作的具体耗时. 可见,MiniChain各环节的耗时均略小于本文方案,这是因为默克尔累加器所进行的都是哈希运算,耗费的时间相比于RSA累加器的模幂运算基本上可以忽略不计. 单RSA方案与本文方案在交易验证、见证生成及更新等环节上的耗时相差不大,但在更新累加器承诺的环节上,本文方案的耗时远小于单RSA方案,且区块中交易数量越多,本文方案的时间优势越显著. 这是因为当更新承诺时,单RSA方案必须为每一笔被引用的UTXO执行复杂的删除操作,计算复杂度远大于执行元素添加操作.
图 8
5. 结 语
针对区块链的状态爆炸问题,本文提出应用于UTXO模型区块链中基于双RSA累加器的无状态交易验证方案. 该方案通过使用2个分别构建于 UTXO Set和STXO Set的相互独立的RSA累加器,使区块链系统中的节点只存储2个简短的RSA承诺,无须维护完整的区块链状态(UTXO Set),即可参与交易的验证过程,能够大幅降低区块链中轻节点参与交易验证过程的存储压力.
本文描述了该方案的设计细节及完整的工作流程,设计了仿真实验. 结果表明,与其他现有方案相比,利用该方案大幅降低了节点的状态数据存储负担,只产生有限的额外通信开销,保证了交易验证的效率,具有较高的实用性. 使用默克尔累加器的无状态方案适合对交易执行效率要求较高、对通信开销要求较低的场景;本文提出的双RSA方案更适合于对通信开销要求较高、要求一定的交易执行效率的场景.
参考文献
A survey of blockchain from the perspectives of applications, challenges, and opportunities
[J].DOI:10.1109/ACCESS.2019.2936094 [本文引用: 1]
A vademecum on blockchain technologies: when, which, and how
[J].DOI:10.1109/COMST.2019.2928178
Blockchain technology in finance
[J].
Database security-concepts, approaches, and challenges
[J].
Blockchain technology: transforming libertarian cryptocurrency dreams to finance and banking realities
[J].
When blockchain meets supply chain: a systematic literature review on current development and potential applications
[J].DOI:10.1109/ACCESS.2020.2983601 [本文引用: 1]
Solutions to scalability of blockchain: a survey
[J].DOI:10.1109/ACCESS.2020.2967218 [本文引用: 1]
区块链安全问题: 研究现状与展望
[J].
Blockchain security issues: research status and prospects
[J].
Ethereum: a secure decentralised generalised transaction ledger
[J].
Blockchain for the IoT and industrial IoT: a review
[J].DOI:10.1016/j.iot.2019.100081 [本文引用: 1]
When mobile blockchain meets edge computing
[J].DOI:10.1109/MCOM.2018.1701095 [本文引用: 1]
SlimChain: scaling blockchain transactions through off-chain storage and parallel processing
[J].DOI:10.14778/3476249.3476283 [本文引用: 1]
Design and optimization for storage mechanism of the public blockchain based on redundant residual number system
[J].DOI:10.1109/ACCESS.2019.2930125 [本文引用: 1]
MiniChain: a lightweight protocol to combat the UTXO growth in public blockchain
[J].DOI:10.1016/j.jpdc.2020.05.001 [本文引用: 3]
Close to uniform prime number generation with fewer random bits
[J].
/
〈 |
|
〉 |
