【技术实现步骤摘要】
一种账户体系下的联盟链交易的重放攻击防范方法
[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所述的一种账户体系下的联盟链交易的重放攻击防范方法,...
【专利技术属性】
技术研发人员:石宁,吴怀江,甘子荣,赖石辉,许小明,李达,
申请(专利权)人:南京金宁汇科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。