跨链用户身份及其数字资产管理系统的制作方法

文档序号:16060787发布日期:2018-11-24 12:09阅读:172来源:国知局

本发明属于区块链技术领域,具体涉及一种跨链用户身份及其数字资产管理系统。

背景技术

当前主体系流区块链包括比特币,以太坊,eos等几大技术体系,对用户的账户采用了不兼容的地址格式,无法直接在这些异构的区块链之间实现跨链转账等交互操作。另一方面,对同一个用户在每一条链上都需要维护至少一个地址,可能需要安装多个钱包,甚至在多种终端上安装钱包,不仅地址对应的私钥不好集中管理,并且私钥越多安全风险越大,被盗和丢失概率越大。

常规的异构链之间的账户问题的解决办法是在一个中心化用户管理系统中维护一个用户在多条链上的私钥和地址信息,或者由用户自己持有在多条链上的私钥,即安装多个钱包。

这两种方案的没有从根本上解决问题:中心化用户管理系统存在私钥被盗的风险;如果是用户自己保管多个私钥,其中一个私钥丢失,对应的该地址账户资产永远无法找回;用户跨链资产相互转移时操作繁琐,需要使用多个钱包对不同的跨链交易签名,没有统一的交易签名入口。



技术实现要素:

本发明目的是提供一种能实现对异构区块链系统间进行跨链资产转移操作时,对用户身份及其数字资产进行统一管理的系统,包括:

用户身份管理模块,用于用户设备的管理和发起该用户在多条区块链上的数字资产操作;

中继链客户端模块,用于提供用户信息管理接口服务,接收所有的用户在多条区块链上的数字资产操作请求并在中继链上执行相应操作,所述中继链保存有用户管理智能合约;

所述用户管理智能合约,用于管理用户在每条区块链上的账户数据,并创建用户代理智能合约;

所述用户代理智能合约,用于保存用户在每条区块链上的地址和数据的智能合约。

进一步而言,所述用户身份管理模块支持用户在多个安装有用户身份管理模块的用户设备上注册,每个设备拥有相同的用户身份标识。每个已注册的设备都可以通过用户身份标识id代表该用户发起对数字资产的操作,管理其在每条链上的数字资产,包括转账,授权,查询等。

进一步而言,用户身份管理模块所在设备离线生成非对称公钥私钥对,并生成公钥二维码,所述二维码用于被已注册设备扫描后向中继链客户端模块发起加入该生成公钥二维码的设备的请求。

进一步而言,所述用户身份管理模块显示当前用户下已注册的设备列表和/或当前用户在所有链上的数字资产余额。

进一步而言,通过所述用户身份管理模块发起删除某个设备请求和/或删除已注册用户的请求。

进一步而言,所述中继链客户端模块在用户注册时,为该用户在中继链上动态创建一个唯一代表其身份的用户代理智能合约,并生成一个唯一的身份标识id。

进一步而言,所述中继链客户端模块为该用户在每条连接到中继链的区块链创建一个独立的账户地址,用于保存该用户在该链上的所有数字资产的余额,账户地址和余额都保存在用户代理智能合约中。

进一步而言,当注册用户在某条区块链上没有持有任何数字资产时,可以通过中继链客户端模块删除在该用户在相应区块链上的地址;如果需要重新加入该地址,通过中继链客户端模块新建该用户在相应区块链上的地址。

进一步而言,所述中继链客户端模块监听用户代理智能合约的对交易进行离线签名的事件,将离线签名交易发送给指定的区块链执行。

进一步而言,所述用户管理智能合约在用户注销时销毁相应的用户代理智能合约。

进一步而言,所述用户管理智能合约根据不同区块链类型,生成不同的转账签名交易。

进一步而言,所述用户管理智能合约保存用户设备公钥与用户身份识别标识间的映射关系。

进一步而言,所述用户代理智能合约使用指定区块链上的对应地址对交易数据进行签名。

本发明的有益效果如下:

本发明的跨链用户身份及其数字资产管理系统,对各用户在各区块链上的地址以及各地址对应的私钥进行管理,解决了中心化管理用户私钥和用户自己管理私钥的安全问题;使用统一的跨链数字资产操作入口,实现安全、统一的管理。该系统降低了用户操作多条区块链上的数字资产时用户私钥和资产管理方面的安全风险。

附图说明

图1是本发明实施例的通过中继链实现的区块链跨链网络结构示意图。

图2是本发明实施例的新用户注册流程图。

图3是本发明实施例的用户注册新设备流程图。

图4是本发明实施例的查询和同步用户数字资产流程图。

图5是本发明实施例的查询和同步用户已注册设备信息流程图。

图6是本发明实施例的删除设备流程图。

图7是本发明实施例的用户进行数字资产转移操作流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并构成对本发明的限定。

本说明书中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

实施例一

跨链用户身份及其数字资产管理系统适用于通过中继链实现的区块链跨链网络。请参见图1,其示出了一种通过中继链实现的区块链跨链网络结构,该网络结构中包括由数个节点组成的中继链以及与中继链连接的区块链,例如以太坊、quorum链和私有链(图1中为eth-poa链)。中继链的节点采用相应协议与各个区块链连接。中继链中每个节点上的数据都相同。中继链的节点上设置有中继链客户端(构成中继链客户端模块)。中继链支持智能合约。

用户通过用户身份管理app(构成用户身份管理模块)连接到中继链客户端程序。用户身份管理app内置中继链节点地址信息列表。启动用户身份管理app后,该app根据该列表自动搜索跨链中继链的节点,确认某一节点为活跃状态(运行正常)后,和该活跃节点建立长久的tcp连接。

当用户注册时,中继链客户端程序为该用户在中继链上动态创建一个唯一代表其身份的用户代理智能合约,并生成一个唯一的身份标识id。中继链客户端程序为该用户在每条连接到中继链的区块链创建一个独立的账户地址,用于保存该用户在该链上的所有数字资产的余额,账户地址和余额都保存在用户代理智能合约中。当注册用户在某条链上没有持有任何数字资产时,可以通过中继链客户端程序删除在该用户在该链上的地址;如果需要重新加入该地址,通过中继链客户端程序新建该用户在该链上的地址。

注册用户在每条链上的相关数据通过中继链上的用户代理智能合约管理,存储类型为私有数据,防止第三方窃取和监视。注册用户对数字资产的所有操作都通过该用户代理智能合约来最终执行相应的操作。

注册用户需要持有至少一个可以安装用户身份管理app的设备,不限于移动设备、pc终端等。一个注册用户可以注册多个设备,每个设备拥有相同的用户身份标识id。每个已注册的设备都可以通过用户身份标识id代表该用户发起对数字资产的操作,管理其在每条链上的数字资产,包括转账,授权,查询等。注册用户在某个已注册设备丢失时或希望手动删除设备时,可以通过其他已注册设备来删除该设备。删除设备时,如果已注册的设备为2个以上(含2个),要求半数以上(含半数)的设备都发起删除指定设备请求,才可以成功删除;如果只有一个设备,当该用户在所有链上的数字资产为0时,才可以删除该设备。

注册用户在每条链上不同类型的数字资产之间汇兑的汇率由中继链的管理员配置。

跨链用户身份及其数字资产管理系统包括以下几个功能模块:

●用户身份管理app。是用户身份管理的入口,用于用户设备的管理和该用户在多条区块链上的数字资产操作。

●中继链客户端程序。提供用户信息管理接口服务,接收所有的用户在多条区块链上的数字资产操作请求并在中继链上执行相应操作。

●保存用户数据的用户管理智能合约usermanager。该智能合约保存在中继链上,用于管理用户在每条区块链的账户(身份、资产)数据,账户数据包括用户代理智能合约。

●代表用户的用户代理智能合约userproxy。该智能合约是注册新用户时,动态创建的保存用户在区块链上的地址和数据的合约。

其中,用户身份管理app的功能包括:

●离线生成非对称公钥私钥对,并将私钥生成json格式的加密文件。

●发起对本注册设备对应的用户的数字资产操作,包括转账查询等。

●加入已注册用户。新设备上安装用户身份管理app后,离线生成非对称公钥私钥对,并生成公钥二维码。已注册设备通过扫描新设备生成的公钥二维码,向中继链的节点发起加入该新设备的请求。

●显示当前用户下已注册的设备列表。

●显示当前用户下在所有链上的数字资产余额。

●发起删除某个设备的请求。

●发起删除已注册用户的请求。

中继链客户端程序提供的服务包括:

●定时查询用户地址在每条链上的数字资产余额,并同步更新到usermanager合约。

●接收用户身份管理app发送的消息,根据消息类型执行相应的操作。

●提供用户注册和注销服务,新设备注册和删除服务,用户和设备信息查询服务。

●对指定用户的数字资产余额查询服务。

●监听userproxy的对交易进行离线签名的事件,将离线签名交易发送给指定的链执行。

usermanager合约的功能包括:

●当新用户注册时,创建用户代理智能合约userproxy,当用户注销时,销毁相应的用户代理智能合约userproxy。

●接收用户发起的数字资产转账操作,根据不同链类型,生成不同的转账签名交易。

●保存用户数据。

●保存用户设备公钥到用户身份识别id的映射关系。publickey1->{userid},publickey2->{userid}

●保存用户身份识别id到用户设备公钥的映射关系:userid->[{加入的链,在该链上的token地址,在该链上的账户地址,在该链上的账户余额},{加入的链,在该链上的token地址,在该链上的账户地址,在该链上的账户余额},{加入的链,在该链上的token地址,在该链上的账户地址,在该链上的账户余额}]

userproxy合约包括:

●使用指定链上的对应地址对交易数据进行签名,当交易执行成功后,通知中继链客户端程序。

跨链用户身份及其数字资产管理系统对跨链用户的身份和资产进行管理包括以下流程:

1,中继链初始化:

1-1)跨链系统的管理员在中继链中部署usermanager合约。

1-2)用户将用户身份管理app安装在可信任的设备上。

1-3)用户身份管理app启动自动连接跨链中继链,并自动连接其中一个活跃节点。

2,新用户注册的流程参考图2。

新用户注册之前,该用户操作的设备上应已安装的用户身份管理app。

2-1)用户身份管理app启动后,自动搜索中继链,并连接其中一个中继链客户端程序。

2-2)连接成功后,用户可以通过身份管理app创建一个新的用户身份。输入设备名字,以离线的方式在本设备上生成一对公钥私钥,将私钥生成一个加密json文件,密码由用户输入设置并妥善保管。

2-3)身份管理app将本设备名和公钥一起发送给中继链客户端程序。

2-4)中继链客户端程序收到注册用户请求后,调用用户管理智能合约(usermanager)的注册用户函数,在该交易中执行以下步骤:

2-4-1)创建一个用户代理智能合约(userproxy),该用户代理智能合约唯一代表该用户执行所有数字资产相关的操作。

2-4-2)对数据(公钥,userproxy合约地址)进行sha-3操作,生成用户身份id;将数据{用户id,设备名字,userproxy合约地址}保存到usermanager合约中,存储类型为私有数据,第三方无法获取和监视。

2-5)usermanager合约以事件的方式通知用户身份id给中继链客户端程序。

2-6)中继链客户端程序将用户身份id发送给用户身份管理app,作为该用户唯一标识userid。

2-7)用户身份管理app保存设备名对应的用户身份id。

3,用户注册新设备的流程参考图3。

3-1)在安装了用户身份管理app并完成注册的设备上启动用户身份管理app,连接到中继链客户端程序。

3-2)使用新设备的用户身份管理app的<加入已注册用户>的功能,输入新设备名,离线生成公钥私钥对,并对(公钥,设备名)生成一个二维码。

3-3)用已注册的设备扫码读取新设备公钥,即扫3-2)生成的二维码。

3-4)已注册的设备用私钥加密新设备公钥。

3-5)发送{userld,加密后新设备公钥,设备名}给中继链客户端程序。

3-6)中继链客户端程序收到消息数据后,根据usrid查询usermanager合约中保存的数据,得到已注册设备对应的公钥和userporxy合约。

3-7)用公钥解密加密的数据。如果解密失败,通知用户管理app添加刷新设备失败;如果解密成功,则得到新设备公钥。

3-8)将新设备公钥和设备名保存到userporxy合约中。

3-9)保存成功后,通知用户设备注册成功。

3-10)新设备自动搜索、连接到中继链客户端程序,并发送公钥到该中继链客户端程序。

3-11)中继链客户端程序根据公钥查询得到userid,并将该userid保存到新设备。

4,查询和同步用户数字资产的流程参考图4。

4-1)中继链客户端程序启动一个定时服务,定时从usermanager合约中获取已注册用户的名单。

4-2)根据该名单查询每个用户在所有区块链上的地址。

4-3)在对应的区块链上查询该用户地址的token余额。

4-4)将余额保存到usermanager合约中。

5,查询和同步用户已注册设备信息的流程参考图5。

5-1)用户打开用户身份管理app,用户身份管理app自动连接节点之后,启动定时同步消息功能。

5-2)用户身份管理app定时向中继链客户端程序发送本设备的公钥。

5-3)中继链客户端程序收到消息后,向usermanager合约查询该公钥对应的userid。

5-4)查询得到该userid下所有公钥和设备名字,以及该userid在所有区块链上所有数字资产的余额。

5-5)中继链客户端程序将上面2组数据作为消息响应发送给查询设备上的用户身份管理app。

5-6)用户身份管理app收到消息后,显示该userid下对应的所有设备名字和在所有区块链上的资产余额。

6,删除设备的流程参考图6。

6-1)用户身份管理app用本设备的私钥加密待删除设备的公钥,并将其和userid一起发送给已连接的中继链客户端程序。

6-2)中继链客户端程序收到该消息后,用对应的该设备公钥解密,得到待删除设备的公钥,并记录该公钥。

6-3)查询userod下所有已注册设备的公钥,以及记录的被删除次数。

6-4)计算发起删除该设备请求的设备数是否满足条件(全部已注册设备的一半以上)。如果满足,删除usermanager合约中相关的该公钥的记录;如果不满足,则记录删除次数。

6-5)返回删除设备操作结果给用户身份管理app。

7,用户进行数字资产转移操作的流程参考图7。

7-1)用户在用户身份管理app上发起跨链转账,并指定转账参数(源链、源token、目标链、目标token和转账金额)。

7-2)将转账参数用本设备私钥进行签名加密,和userid一起发送给中继链客户端程序。

7-3)中继链客户端程序收到该转账消息,查询该userid下所有公钥。

7-4)中继链客户端程序解密在7-2)中接收到的加密数据得到转账参数。

7-5)中继链客户端程序使用转账参数调用usermanager合约的函数执行跨链转账。

因为整个跨链转账操作涉及多个在源链、目标链的交易,每个交易都需要通过该userid对应的用户代理智能合约对交易数据进行离线签名。中继链客户端程序监听离线签名的结果,在收到离线签名的交易数据后,在对应的链上执行该离线签名交易。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1