账户地址的生成方法和校验方法、装置、设备和介质制造方法及图纸

技术编号:27776045 阅读:32 留言:0更新日期:2021-03-23 13:15
本申请公开了一种账户地址的生成方法和校验方法、装置、设备和介质,涉及计算机技术领域中的区块链技术。其中账户地址的生成方法包括:基于至少两个密钥,按照设定地址生成算法生成初始地址;将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址。本申请实施例实现通过多个密钥推导形成一个账户地址,且推导过程不依赖于多个密钥的顺序,同时基于账户地址还能确定所使用的地址生成算法,使得地址生成算法的使用更加多样灵活,为新业务需求的账户地址生成提供了条件。

【技术实现步骤摘要】
账户地址的生成方法和校验方法、装置、设备和介质
本申请实施例涉及计算机
,具体涉及区块链技术,尤其涉及一种账户地址的生成方法和校验方法、装置、设备和介质。
技术介绍
区块链中支持用户注册账户,通过账户可实现转账交易,签名背书等各种操作。传统的账户地址是从一个公钥推导而来的。公钥一般是用户注册账户时分配的非对称密钥对中的公钥。当在区块链中进行转账交易时,就需要用到账号地址,作为转入地址和转出地址。随着区块链所支持业务的发展而出现了新的需求,即,多个账户向一个账户进行转账,或者一个账户向多个账户进行转账等情况,这些转账交易之间还可能具有高度关联。面对这些新需求,则需要调整账户地址的生成方式,以便适应不同业务需求。
技术实现思路
本申请实施例提出一种账户地址的生成方法和校验方法、装置、设备和介质,以提出适用于新业务需求的账户地址的生成和校验方式。第一方面,本申请实施例提供了一种账户地址的生成方法,该方法包括:基于至少两个密钥,按照设定地址生成算法生成初始地址;将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址。本申请实施例通过基于至少两个密钥,按照设定地址生成算法生成初始地址,并将包括地址生成算法的算法标识与初始地址拼接,形成账户地址。由此,实现通过多个密钥推导形成一个账户地址,且推导过程不依赖于多个密钥的顺序,同时基于账户地址还能确定所使用的地址生成算法,使得地址生成算法的使用更加多样灵活,为新业务需求的账户地址生成提供了条件。另外,根据本申请上述实施例的账户地址的生成方法,还可以具有如下附加的技术特征:可选的,基于至少两个密钥,按照设定地址生成算法生成初始地址包括:基于至少两个密钥,分别提取所述密钥中的关键参数;按照设定地址生成算法对各所述密钥的关键参数进行加法运算,以生成初始地址。上述申请中的一个实施例具有如下优点或有益效果:按照设定地址生成算法对各密钥的关键参数进行加法运算,可有效提高初始地址生成速度。可选的,所述密钥为基于同一椭圆曲线生成的非对称密钥中的公钥,则基于至少两个公钥,按照设定地址生成算法生成初始地址包括:获取每个所述公钥的公钥点坐标Xi和Yi;将各所述公钥的公钥点坐标Xi和Yi进行累加,以确定总点坐标Xs和Ys;将总点坐标Xs和Ys作为所述椭圆曲线上的新增公钥点坐标,并转换成为所述新增公钥点坐标对应的公钥字节数组,作为所述初始地址。可选的,所述密钥为基于同一椭圆曲线生成的非对称密钥中的公钥,则基于至少两个公钥,按照设定地址生成算法生成初始地址包括:创建一个图类型的数据结构;获取每个所述公钥的公钥点坐标Xi和Yi;将每个公钥点坐标Xi和Yi分别填入键值对中键域和值域,并将各键值对添加到所述图类型的数据结构中;将所述图类型的数据结构进行序列化处理,转换为一个字节数组,作为所述初始地址。可选的,所述密钥为基于同一椭圆曲线生成的非对称密钥中的公钥,则基于至少两个公钥,按照设定地址生成算法生成初始地址包括:对每个所述公钥进行哈希运算,以获取公钥哈希值;对每个所述公钥哈希值,按字符进行排序;按排序顺序,将所有所述公钥哈希值拼接到一起,形成一个初始字节数组;将所述初始字节数组进行哈希运算,得到地址字节数组,作为所述初始地址。上述申请中的一个实施例具有如下优点或有益效果:当至少两个密钥为基于同一椭圆曲线生成的非对称密钥中的公钥时,通过采用不同的地址生成算法生成初始地址,增加了初始地址生成方式的多样性。可选的,所述算法标识所标识的算法包括所述地址生成算法和各所述密钥的密码学算法。上述申请中的一个实施例具有如下优点或有益效果:通过将各密钥的密码学算法和地址生成算法作为标识的算法,解决了无法确定地址生成算法的问题,使得基于账户地址就能确定使用的地址生成算法。可选的,将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址包括:将作为初始地址的字节数组进行哈希运算,获得字节数组哈希值;将各所述密钥的密码学算法和所述地址生成算法进行记录,并形成算法标识;将所述算法标识与所述字节数组哈希值进行拼接;根据所述拼接结果形成所述账户地址。上述申请中的一个实施例具有如下优点或有益效果:通过对初始地址的字节数组进行哈希运算,以得到固定长度的字节数组,并将各密钥的密码学算法和地址生成算法进行记录,形成算法标识,然后根据字节数组哈希值与算法标识形成账户地址,以为形成账户地址提供了条件。可选的,将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址包括:将包括所述地址生成算法的算法标识与初始地址拼接,形成拼接结果;将所述拼接结果进行哈希运算,形成拼接哈希值;将所述拼接哈希值中设定位置的字符抽取出来,作为校验码;将所述校验码与所述拼接结果进行拼接,形成所述账户地址。上述申请中的一个实施例具有如下优点或有益效果:通过对拼接结果进行哈希运算,以减小拼接结果的长度,并从拼接哈希值抽取字符作为校验码,为后续校验账户地址奠定了基础。可选的,形成账户地址之前,还包括:将所述算法标识和初始地址拼接后的字符串进行可视化字符编码处理,形成所述账户地址。上述申请中的一个实施例具有如下优点或有益效果:通过将字符串进行可视化字符编码处理,以使字符串可视化,使得用户可以更直观的查看字符串信息,还可在没有密钥的基础上进行逆向验证。可选的,基于至少两个密钥,按照设定地址生成算法生成初始地址之前,还包括:在区块链节点接收到至少两个用户注册生成联合账户的事务请求时,获取所述至少两个用户各自的密钥,并触发账户地址生成操作。第二方面,本申请实施例还公开了一种账户地址的校验方法,包括:获取待校验账户地址关联的至少两个密钥;基于至少两个密钥,按照设定地址生成算法生成初始地址;将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址;将形成的所述账户地址与所述待校验账户地址进行比对,并根据比对结果确定所述待校验账户地址的校验结果。本申请实施例通过利用获取的待校验账户地址关联的至少两个密钥,按照设定地址生成算法生成初始地址,将包括地址生成算法的算法标识与初始地址拼接,形成账户地址,然后将账户地址与待校验账户地址进行比对,确定待校验账户地址的校验结果,实现了对待校验账户地址进行校验的目的。第三方面,本申请实施例还公开了一种账户地址的生成装置,包括:第一生成模块,用于基于至少两个密钥,按照设定地址生成算法生成初始地址;第二生成模块,用于将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址。第四方面,本申请实施例还公开了一种账户地址的校验装置,包括:密钥获取模块,用于获取待校验账户地址关联的至少两个密钥;第三生成模块,用于基于至少两本文档来自技高网...

【技术保护点】
1.一种账户地址的生成方法,其特征在于,包括:/n基于至少两个密钥,按照设定地址生成算法生成初始地址;/n将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址。/n

【技术特征摘要】
1.一种账户地址的生成方法,其特征在于,包括:
基于至少两个密钥,按照设定地址生成算法生成初始地址;
将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址。


2.根据权利要求1所述的方法,其特征在于,基于至少两个密钥,按照设定地址生成算法生成初始地址包括:
基于至少两个密钥,分别提取所述密钥中的关键参数;
按照设定地址生成算法对各所述密钥的关键参数进行加法运算,以生成初始地址。


3.根据权利要求1所述的方法,其特征在于,所述密钥为基于同一椭圆曲线生成的非对称密钥中的公钥,则基于至少两个公钥,按照设定地址生成算法生成初始地址包括:
获取每个所述公钥的公钥点坐标Xi和Yi;
将各所述公钥的公钥点坐标Xi和Yi进行累加,以确定总点坐标Xs和Ys;
将总点坐标Xs和Ys作为所述椭圆曲线上的新增公钥点坐标,并转换成为所述新增公钥点坐标对应的公钥字节数组,作为所述初始地址。


4.根据权利要求1所述的方法,其特征在于,所述密钥为基于同一椭圆曲线生成的非对称密钥中的公钥,则基于至少两个公钥,按照设定地址生成算法生成初始地址包括:
创建一个图类型的数据结构;
获取每个所述公钥的公钥点坐标Xi和Yi;
将每个公钥点坐标Xi和Yi分别填入键值对中键域和值域,并将各键值对添加到所述图类型的数据结构中;
将所述图类型的数据结构进行序列化处理,转换为一个字节数组,作为所述初始地址。


5.根据权利要求1所述的方法,其特征在于,所述密钥为基于同一椭圆曲线生成的非对称密钥中的公钥,则基于至少两个公钥,按照设定地址生成算法生成初始地址包括:
对每个所述公钥进行哈希运算,以获取公钥哈希值;
对每个所述公钥哈希值,按字符进行排序;
按排序顺序,将所有所述公钥哈希值拼接到一起,形成一个初始字节数组;
将所述初始字节数组进行哈希运算,得到地址字节数组,作为所述初始地址。


6.根据权利要求1-5任一所述的方法,其特征在于:所述算法标识所标识的算法包括所述地址生成算法和各所述密钥的密码学算法。


7.根据权利要求6所述的方法,其特征在于,将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址包括:
将作为初始地址的字节数组进行哈希运算,获得字节数组哈希值;
将各所述密钥的密码学算法和所述地址生成算法进行记录,并形成算法标识;
将所述算法标识与所述字节数组哈希值进行拼接;
根据所述拼接结果形成所述账户地址。


8.根据权利要求6所述的方法,其特征在于,将包括所述地址生成算法的算法标识与初始地址拼接,形成账户地址包括:
将包括所述地址生成算法的算法标识与初始地址拼接,形成拼接结果;
将所述拼接结果进行哈希运算,形成拼接哈希值;
将所述拼接哈希值中设定位置的字符抽取出来,作为校验码;
将所述校验码与所述拼接结果进行拼接,形成所述账户地址。


9.根据权利要求6所述的方法,其特征在于,形成账户地址之前,还包括:
将所述算法标识与初始地址拼接后的字符串进行可视化字符编码处理,形成所述账户地址。


10.根据权利要求1所述的方法,其特征在于,基于至少两个密钥,按照设定地址生成算法生成初始地址之前,还包括:
在区块链节点接收到至少两个用户注册生成联合账户的事务请求时,获取所述至少两个用户各自的密钥,并触发账户地址生成操作。


11.一种账户地址的校验方法,其特征在于,包括:
获取待校验账户地址关联的至少两个密钥;
基于至少两个密钥,按照设定地址生成算法生成初始地址;
将包括所述地址生成算法的算法标识...

【专利技术属性】
技术研发人员:荆博
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

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

1