一种账户体系下的联盟链交易的重放攻击防范方法技术

技术编号:31491336 阅读:66 留言:0更新日期:2021-12-18 12:28
本申请涉及区块链技术领域,提供一种账户体系下的联盟链交易的重放攻击防范方法,包括获取客户端发送的交易请求;获取交易请求的客户端时间,若所述客户端时间早于第一参照时间点T1,则拒绝所述交易请求;当所述客户端时间晚于第一参照时间点T1,且早于或等于第二参照时间点T2时,若交易缓存池P内存在所述交易请求对应的交易,则拒绝所述交易请求;若交易缓存池内P不存在所述交易请求对应的交易,则将所述交易请求对应的交易打包至当前区块内,并将交易请求对应的交易缓存至交易缓存池P。通过滑动时间窗的设计,交易的判重速度极快,且能够满足多种场景,对于节点宕机等异常情况,交易缓存池能够快速恢复,不会影响到联盟链系统的性能。统的性能。统的性能。

【技术实现步骤摘要】
一种账户体系下的联盟链交易的重放攻击防范方法


[0001]本申请涉及区块链
,尤其涉及一种账户体系下的联盟链交易的重放攻击防范方 法。

技术介绍

[0002]区块链作为一种分布式的公共记账系统,具有防重放攻击能力是系统记账正确性的重要 保证。在目前的区块链产品中,包括公链以及联盟链,都采取了防重放攻击的一些措施防范 交易的重放攻击。交易的重放攻击是一个很严重的问题,最直观的后果是会导致转账交易的 付款方在未同意的情况下重复支出其账户中的余额。对于存在转账交易以外的其他操作类型 的区块链产品,比如以太坊,如果反复调用其合约账户中的代码,将会导致系统状态的异常, 对于Hyperledger fabric(开源区块链分布式账本),则可能会使验证实体重复做链上编码 的唤醒操作,消耗其计算资源,影响系统的数据吞吐量。
[0003]为了实现防重放攻击的功能,现有技术中,提供多种解决方案,例如,记录历史交易的 哈希值作为解决方案,在该解决方案中,系统每执行一笔交易,都会在系统中记录该交易的 哈希值,通过在验证节点维护一个已经执行过的全部历史交易本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种账户体系下的联盟链交易的重放攻击防范方法,其特征在于,包括:获取客户端发送的交易请求;获取所述交易请求的客户端时间,若所述客户端时间早于第一参照时间点T1,则拒绝所述交易请求;判断所述客户端时间是否早于或等于第二参照时间点T2,若所述客户端时间早于或等于第二参照时间点T2,则将所述交易请求对应的交易与交易缓存池P内的全部交易进行对比;若交易缓存池P内存在所述交易请求对应的交易,则拒绝所述交易请求;若交易缓存池P内不存在所述交易请求对应的交易,则将所述交易请求对应的交易打包至当前区块内,并将所述交易请求对应的交易缓存至交易缓存池P。2.根据权利要求1所述的一种账户体系下的联盟链交易的重放攻击防范方法,其特征在于:在所述获取所述交易请求的客户端时间的步骤之后,还包括:若所述客户端时间晚于或等于第一参照时间点T1,则判断所述交易请求对应的交易签名正确,若所述交易请求对应的交易签名正确,则将所述交易请求对应的交易放入到交易池中;若所述交易请求对应的交易签名不正确,则拒绝所述交易请求。3.根据权利要求2所述的一种账户体系下的联盟链交易的重放攻击防范方法,其特征在于:所述判断所述客户端时间是否早于或等于第二参照时间点T2的步骤中,还包括:若所述客户端时间晚于第二参照时间点T2,则将所述客户端时间对应的交易请求继续保留在交易池中;当所述客户端时间早于或等于更新后的第二参照时间点T2,则判断所述客户端时间是否晚于或等于更新后的第一参照时间点T1,若所述客户端时间晚于或等于更新后的第一参照时间点T1,则将相应的交易请求对应的交易与交易缓存池P内的全部交易进行对比。4.根据权利要求1所述的一种账户体系下的联盟链交易的重放攻击防范方法,其特征在于:以当前区块的高度m向前取n个区块,选取第m

n个区块的构建时间作为第一参照时间点T1。5.根据权利要求1所述的一种账户体系下的联盟链交易的重放攻击防范方法,其特征在于,所述一种账户体系下的联盟链交易的重放攻击防范方法还包括:获取所述交易缓存池P内的全部交易请求对应的区块打包时间,并将区块打包时间早于第一参照时间点T1的交易请求,从所述交易缓存池P中剔除。6.根据权利要求1所述的一种账户体系下的联盟链交易的重放攻击防范方法,...

【专利技术属性】
技术研发人员:石宁吴怀江甘子荣赖石辉许小明李达
申请(专利权)人:南京金宁汇科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1