区块链智能合约中获取真实交易提交人信息的方法技术

技术编号:36806870 阅读:15 留言:0更新日期:2023-03-09 00:20
本发明专利技术涉及区块链智能合约中获取真实交易提交人信息的方法,包括:事先将业务系统认证服务的公钥提交到区块链账本中;用户登录并获取token,提交交易事务到业务系统中,业务系统校验token;业务系统将token透传,并和业务交易数据组装后一起发送至区块链应用程序;区块链应用程序继续透传到区块链网络,最终在区块链背书节点和记账节点上执行智能合约;如果token携带payload,智能合约直接解析token,获取payload;如果token不携带payload,则调用业务系统认证服务,使用token获取payload;使用公钥再次解析并验证token中签名有效性,验证通过则将交易提交人的用户名认定为真正提交人,提交交易到区块链账本中。本方案能够获取真实交易提交人信息,提高区块链应用记录的真实性。实性。实性。

【技术实现步骤摘要】
区块链智能合约中获取真实交易提交人信息的方法


[0001]本专利技术涉及区块链
,具体地涉及一种区块链智能合约中获取真实交易提交人信息的方法。

技术介绍

[0002]随着区块链技术的发展,除了匿名公开的公链技术以外,目前越来越多的企业、行业引入了基于智能合约的、实名的不公开或半公开的私链或联盟链技术,主要用于利用区块链技术分布式、不可篡改的特性,记录企业内部或行业内部的交易数据(任何事务处理都可以理解为交易)。
[0003]很多同行业者会把区块链理解为“分布式账本”,类似数据库的作用。目前通常地,需要记录到区块链上的数据(事务)都是外部系统准备好之后提交到智能合约,再通过智能合约经过背书、排序、广播等过程,最终提交到区块链网络中各个记账节点(区块链账本所在节点)上进行记录的。由于区块链的数据是不可篡改的,因此会产生一个问题,即,如何确保数据记录的提交人身份是真实的。如果无法确保,那么区块链账本中可能记录的是错误的提交人身份,并且不可篡改,区块链应用程序记录的交易将被质疑。
[0004]为解决此问题,现有的方法有以下几种:
[0005]方法1:使用外部应用系统校验用户身份,然后区块链直接记录外部应用提交的数据记录,不再校验,直接将已有数据记录到区块链账本中,比如车辆管理部门、房屋管理部门等权威部门提供的数据。
[0006]此种方法的缺点很明显,区块链没有利用智能合约对事务进行校验,而是无条件的信任外部应用系统的数据。当外部应用系统出现错误时或被人恶意篡改时则无法发现。
[0007]方法2:区块链给外部应用系统颁发一个身份,无论外部应用提交的数据是什么,都记做是这个身份提交的数据记录。
[0008]此种方法的缺点也很明显,区块链记录的所有事务的提交人不是操作人,而是“某外部应用系统”,当需要对交易溯源时,只能追溯到提交系统,而无法追溯真正的操作人。
[0009]方法3:区块链需要对应外部应用系统,同步建立等量的用户身份,当外部应用系统提交数据时,区块链选择使用与外部应用系统上相同的用户身份进行记录。
[0010]此种方法看似没有问题,但实际上用户的同步建立、同步启用停用、同步修改、同步注销都是比较复杂的逻辑;并且仍然没有对提交人身份进行有效校验。

技术实现思路

[0011]本专利技术所要解决的技术问题在于:提供一种新的方式实现区块链智能合约中获取真实交易提交人信息;在区块链智能合约中,使用与外部应用系统一致的校验材料和校验逻辑,自主对业务系统操作人身份进行校验,并如实反应操作人信息,并将操作人信息连同提交的数据,一同记录到区块链账本中。
[0012]依据本专利技术的技术方案,本专利技术提供了一种区块链智能合约中获取真实交易提交
人信息的方法,包括:
[0013]步骤一,事先将要进行操作的机构的业务系统认证服务使用的私钥所对应的公钥作为区块链网络中智能合约的初始化数据提交到区块链账本中;
[0014]步骤二,用户在业务系统认证服务登录并获取业务系统的token,提交交易事务到业务系统中,业务系统校验token;
[0015]步骤三,业务系统将交易提交人的token透传,并和业务交易数据组装后一起发送至区块链应用程序;
[0016]步骤四,区块链应用程序继续透传包含交易提交人token的业务交易数据发送到区块链网络,最终在区块链背书节点和记账节点上执行智能合约;
[0017]步骤五,在区块链网络中执行智能合约时,对token进行解析;解析token时,先从token中的payload中解析出机构名,然后从区块链账本中获取步骤一所提交的该机构的公钥,使用该公钥再次解析并验证token中签名有效性,验证通过则信任此token中payload内容,并将交易提交人的用户名认定为真正提交人,提交交易到区块链账本中。
[0018]进一步地,还包括步骤六,在进行生命周期维护交易时,将生命周期维护交易视为普通业务交易一样,智能合约采用相同方法验证私钥签发的token,并最终提交至记账节点记录到区块链账本中。
[0019]优选地,在步骤三中,在组装业务交易数据后、访问区块链应用程序前,还包括使用业务系统的私钥,对组装的交易数据进行二次签名;
[0020]进一步地,在步骤四S4后,执行到智能合约时,首先使用业务系统的公钥对整个组装的交易数据进行验证token签名有效性;验证通过后再进行步骤五。
[0021]进一步地,若存在多个业务系统对应同一套区块链网络,则在每个业务系统执行业务交易前,生成两对公私钥对,私钥分别由业务系统的认证服务和业务系统本身各自持有,公钥都提交到区块链账本中记录。
[0022]在一实施例中,步骤二包括:
[0023]用户登录业务系统的认证服务,业务系统的认证服务验证用户信息后,使用私钥签发token,token中含有签名,将token返回给用户;
[0024]用户携带此token,提交事务到业务系统中;
[0025]业务系统首先拦截提交事务请求,用业务系统的认证服务预先分发的公钥,来验证token中的签名,若验证通过才继续进行后续步骤三。
[0026]与现有技术相比,本专利技术的有益技术效果如下:
[0027]本专利技术利用智能合约,将普通业务交易和公钥管理交易一视同仁,都需要在区块链智能合约中进行交易提交人的身份自主验证,以自主验证并获取到的身份作为记录提交到区块链账本中。总结而言,本专利技术主要利用了签名、验签机制(包括用到了非对称加密、散列算法、数字签名技术)、区块链中智能合约的自动隔离执行特性(确保对执行过程不受外界干扰,对执行逻辑无异议,满足条件就执行)、区块链账本数据不可篡改的特性(公钥已经提交到区块链账本中)、区块链分布式特性(信任各方已经成功提交并记录到区块链账本中的数据),从而确保了数据记录的提交人身份是真实的,提高了区块链应用程序记录的真实性,解决了从业务系统到区块链系统间事务链的消息防篡改难题、消息防抵赖难题,以及联合审计方法不能满足上链内容的一致性、完整性的难题。
附图说明
[0028]图1是本专利技术一实施例的方法流程图。
[0029]图2是本专利技术又一实施例的方法流程图。
[0030]图3是现有技术方案的方法流程图。
具体实施方式
[0031]首先需要补充解释的是,本专利技术所述“记账节点”指的是一个物理机、虚拟机或docker容器,它相当于一台电脑,这台电脑的职责是记账;而本专利技术所述“区块链账本”存在于每一个记账节点上,并且一致,区块链账本是记下来的交易数据存在于记账节点上的一组文件。
[0032]以及,本专利技术中所述的token,一般指代JWT(JSON Web Token),一个JWT包含Header(头部)、Payload(负载)、Signature(签名)三个部分。Header(头部)包含签名算法和token类型等信息;Payload(负载)用来存放实际需要传递的数据,一般包含tok本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链智能合约中获取真实交易提交人信息的方法,其特征在于,包括:步骤一,事先将要进行操作的机构的业务系统认证服务使用的私钥所对应的公钥作为区块链网络中智能合约的初始化数据提交到区块链账本中;步骤二,用户在业务系统认证服务登录并获取业务系统的token,提交交易事务到业务系统中,业务系统校验token;步骤三,业务系统将交易提交人的token透传,并和业务交易数据组装后一起发送至区块链应用程序;步骤四,区块链应用程序继续透传包含交易提交人token的业务交易数据发送到区块链网络,最终在区块链背书节点和记账节点上执行智能合约;步骤五,在区块链网络中执行智能合约时,对token进行解析;解析token时,先从token中的payload中解析出机构名,然后从区块链账本中获取步骤一所提交的该机构的公钥,使用该公钥再次解析并验证token中签名有效性,验证通过则信任此token中payload内容,并将交易提交人的用户名认定为真正提交人,提交交易到区块链账本中。2.如权利要求1所述的区块链智能合约中获取真实交易提交人信息的方法,其特征在于,还包括步骤六,在进行生命周期维护交易时,将生命周期维护交易视为普通业务交易一样,智能合约采用相同方法验证私钥签发的token,并最终提交至记账节点记录到区块链账本中。3.如权利要求...

【专利技术属性】
技术研发人员:刘庆波张玉杰安洋周威崔秀文张玲志宗可河李京朱虹张洪王鹏翁圻卢学哲吴淑珍
申请(专利权)人:北京中百信软件技术有限公司
类型:发明
国别省市:

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

1