区块链红包的处理、创建、领取方法和装置、介质及计算机程序制造方法及图纸

技术编号:22364881 阅读:38 留言:0更新日期:2019-10-23 04:56
本公开提出了一种区块链红包的处理、创建、领取方法和装置、介质及计算机程序。区块链红包的处理方法包括,在区块链网络的节点处:接收红包发起者终端发送的红包发放交易请求;处理红包发放交易请求,响应于处理成功向红包发起者终端返回红包ID;接收红包领取者终端发送的红包领取交易请求;验证领取签名;响应于领取签名验证通过且红包领取者的地址未在已领取地址列表中,计算红包领取者的红包份额并向红包领取者发送该红包份额。本公开的方法无需中心化的服务器,实现了基于区块链的非中心化的红包的创建和发放,提高了红包发放和领取过程的安全性。

Processing, creation and receiving methods, devices, media and computer programs of blockchain red packets

【技术实现步骤摘要】
区块链红包的处理、创建、领取方法和装置、介质及计算机程序
本专利技术涉及区块链领域,具体涉及一种区块链红包的处理、创建、领取方法和装置、介质及计算机程序。
技术介绍
区块链技术的一个重要特点就是信息完全公开透明,所有人都可随时查看和下载保存在区块中的数据。区块链技术发展到2.0时代,引入了智能合约的概念。智能合约提供了实现数据处理和业务逻辑的能力,使得更多和更广泛的去中心化应用成为可能。在常规的中心化应用中,例如在微信中,已经实现了红包功能。一个微信用户可以单独向其特定联系人或者在一个群组中向该群组中的所有成员发布红包,该特定联系人或者该群组中的任意成员可以通过领取操作,获取该红包的全部或部分金额。然而,在区块链环境中,实现一个完全去中心化并且安全可靠的红包应用并不那么容易。这是因为,红包应用有一个潜在的使用要求,即红包的发放和领取需要在一个红包发起者可控的场景中完成,只有特定对象或群组成员才能够领取该红包。换句话说,红包创建者不希望他的红包被其他“不相干”的人甚至程序脚本领走,从而造成自己的资金损失。这在中心化系统中很容易解决,但在区块链这种去中心化的开放系统中却成为了一个难题。公开号为CN108921525A的中国专利申请公开了一种区块链红包的处理方法,其中引入服务器作为客户端与智能合约进行任务交互的中介,通过服务器实现区块链红包的发放和接收。然而,在上述方案中,通过服务器来实现区块链红包的发放和接收相当于在区块链中引入了中心化的服务器,这与区块链的去中心化本质是背道而驰的。并且,由于中心化服务器的引入,使得整个应用的抗爬虫能力较弱,资金安全难以保证。此外,可以设想的实现区块链红包应用的其他方案还包括:利用密码,即红包发起者在创建红包时设置领取密码,并将领取密码告知目标人群,只有知道该领取密码的人才能领走红包的份额;或者利用白名单,即红包发起者在创建红包时设置白名单列表,从而只有在该白名单列表中的用户地址才能领走红包的份额。然而,对于上述密码方案来说,区块链上需要保存密码以供领取时验证,而区块链上的信息都是公开透明的(包括交易数据体和智能合约存储),这意味着所有人,包括恶意攻击者都可以获取链上信息,甚至恶意领走他人的红包。另一方面,对于白名单方案来说,虽然可以解决恶意攻击者的问题,但是收集白名单的工作是一件低效和麻烦的事情,也不符合红包的使用逻辑,从而会阻碍应用的推广和使用。因此,本领域需要一种能够解决上述问题,且在客户端与智能合约之间直接交互的区块链红包处理方法和装置。
技术实现思路
为了解决上述至少一个问题,本专利技术提出了一种链下加密、链上校验的区块链红包解决方案。简单来说,通过非对称加密技术,在链下创建红包的同时生成公私钥密钥对,公钥用于链上验签,私钥在链下分享和传播以供领取者向链上请求红包的份额。具体地,本专利技术提供一种区块链红包的处理方法,所述方法包括,在区块链网络的节点处:接收红包发起者终端发送的红包发放交易请求,所述红包发放交易请求是基于红包发起者输入的红包信息和所述红包发起者终端产生的见证公钥而创建的;处理所述红包发放交易请求,并且响应于所述红包发放交易请求处理成功向所述红包发起者终端返回红包ID;接收红包领取者终端发送的红包领取交易请求,所述红包领取交易请求包括所述红包ID、所述红包领取者的地址和领取签名,所述领取签名由所述红包领取者终端利用所述红包发起者分享的、与所述见证公钥相对应的见证私钥对所述红包ID和红包领取者的地址这二者的哈希值进行签名而生成;对所述红包ID和所述红包领取者的地址进行哈希运算以产生第一哈希值,利用所述见证公钥解密所述领取签名以获取第二哈希值,比较所述第一哈希值和所述第二哈希值以验证所述领取签名;以及响应于所述领取签名验证通过且所述红包领取者的地址未在所述区块链网络的节点处保存的已领取地址列表中,根据所述红包信息计算所述红包领取者的红包份额并向所述红包领取者发送所述红包份额。在一较佳实施例中,所述红包信息包括红包总金额、红包份额总个数和红包类型。在一较佳实施例中,所述红包信息还包括所述红包发起者的留言信息和/或所述红包发起者的昵称。在一较佳实施例中,在所述接收所述红包领取交易请求之后,所述方法还包括:检查红包状态是否有效,其中,检查红包状态是否有效包括以下至少一种:检查所述红包ID是否存在,检查所述红包是否过期,检查所述红包的未领取份额个数是否为0,以及检查所述红包领取者的地址是否在已领取地址列表中。在一较佳实施例中,在根据所述红包信息计算红包份额并向所述红包领取者发送所述红包份额之后,所述方法还包括:将所述红包领取者的地址记录到所述已领取地址列表中;以及基于所述红包份额更新剩余红包总金额和剩余红包份额个数。本专利技术还提供一种区块链红包的创建方法,所述方法包括,在红包发起者终端处:接收红包发起者输入的红包信息;基于非对称密钥生成算法生成包括见证公钥和见证私钥的见证密钥对;基于所述红包信息和所述见证公钥创建红包发放交易请求并向区块链网络发送所述红包发放交易请求;从所述区块链网络接收针对所述红包发放交易请求的成功确认消息,所述成功确认消息包括红包ID;以及向至少一个候选红包领取者分享所述红包ID和所述见证私钥。在一较佳实施例中,所述红包信息包括红包总金额、红包份额总个数和红包类型。在一较佳实施例中,所述红包信息还包括所述红包发起者的留言信息和/或所述红包发起者的昵称。在一较佳实施例中,在接收红包发起者输入的红包信息之后,所述方法还包括:对所述红包发起者输入的所述红包信息进行验证,以确定所述红包信息是否符合红包规则和/或所述红包发起者的账户余额是否大于所述红包信息中的红包总金额。在一较佳实施例中,所述红包规则包括总金额规则、数量规则和币种规则中的至少一种。在一较佳实施例中,所述方法还包括:将所述留言信息上传至星际文件系统,得到所述留言信息的消息链接,并且其中,向多个候选红包领取者分享所述红包ID和所述见证私钥还包括:向所述多个候选红包领取者分享所述红包发起者的昵称和/或所述留言信息的消息链接。在一较佳实施例中,所述红包发放交易请求包括第一子句,所述第一子句用于向所述区块链网络的节点上的红包合约指示第一类型数字货币形式的红包,所述第一子句包括第一字段、第二字段和第三字段,其中,所述第一子句的第一字段被配置为包括所述红包合约的地址,用于指示所述第一子句的目的地址;所述第一子句的第二字段被配置为包括所述红包信息中的红包总金额,用于指示向所述红包合约的地址转移所述红包总金额的第一类型数字货币;所述第一子句的第三字段被配置为包括所述红包信息中的红包类型、红包总个数以及所述见证公钥或根据所述见证公钥派生的见证地址。在一较佳实施例中,所述红包发放交易请求包括原子操作的第一子句和第二子句,其中所述第一子句用于向所述区块链网络的节点上的红包合约指示第二类型数字货币形式的红包,所述第二子句用于向所述红包合约的地址转移所述红包总金额的第二类型数字货币,所述第一子句和第二子句均包括第一字段、第二字段和第三字段,其中,所述第一子句的第一字段被配置为包括所述红包合约的地址,用于指示所述第一子句的目的地址;所述第一子句的第二字段被配置为第一预定值,用于指示所述红包发放交易请求不是第一类型数字本文档来自技高网
...

【技术保护点】
1.一种区块链红包的处理方法,其特征在于,所述方法包括,在区块链网络的节点处:接收红包发起者终端发送的红包发放交易请求,所述红包发放交易请求是基于红包发起者输入的红包信息和所述红包发起者终端产生的见证公钥而创建的;处理所述红包发放交易请求,并且响应于所述红包发放交易请求处理成功向所述红包发起者终端返回红包ID;接收红包领取者终端发送的红包领取交易请求,所述红包领取交易请求包括所述红包ID、所述红包领取者的地址和领取签名,所述领取签名由所述红包领取者终端利用所述红包发起者分享的、与所述见证公钥相对应的见证私钥对所述红包ID和所述红包领取者的地址这二者的哈希值进行签名而生成;对所述红包ID和所述红包领取者的地址进行哈希运算以产生第一哈希值,利用所述见证公钥解密所述领取签名以获取第二哈希值,比较所述第一哈希值和所述第二哈希值以验证所述领取签名;以及响应于所述领取签名验证通过且所述红包领取者的地址未在所述区块链网络的节点处保存的已领取地址列表中,根据所述红包信息计算所述红包领取者的红包份额并向所述红包领取者发送所述红包份额。

【技术特征摘要】
1.一种区块链红包的处理方法,其特征在于,所述方法包括,在区块链网络的节点处:接收红包发起者终端发送的红包发放交易请求,所述红包发放交易请求是基于红包发起者输入的红包信息和所述红包发起者终端产生的见证公钥而创建的;处理所述红包发放交易请求,并且响应于所述红包发放交易请求处理成功向所述红包发起者终端返回红包ID;接收红包领取者终端发送的红包领取交易请求,所述红包领取交易请求包括所述红包ID、所述红包领取者的地址和领取签名,所述领取签名由所述红包领取者终端利用所述红包发起者分享的、与所述见证公钥相对应的见证私钥对所述红包ID和所述红包领取者的地址这二者的哈希值进行签名而生成;对所述红包ID和所述红包领取者的地址进行哈希运算以产生第一哈希值,利用所述见证公钥解密所述领取签名以获取第二哈希值,比较所述第一哈希值和所述第二哈希值以验证所述领取签名;以及响应于所述领取签名验证通过且所述红包领取者的地址未在所述区块链网络的节点处保存的已领取地址列表中,根据所述红包信息计算所述红包领取者的红包份额并向所述红包领取者发送所述红包份额。2.根据权利要求1所述的区块链红包的处理方法,其特征在于,所述红包信息包括红包总金额、红包份额总个数和红包类型。3.根据权利要求2所述的区块链红包的处理方法,其特征在于,所述红包信息还包括所述红包发起者的留言信息和/或所述红包发起者的昵称。4.根据权利要求1所述的区块链红包的处理方法,其特征在于,在接收所述红包领取交易请求之后,所述方法还包括:检查红包状态是否有效,其中,检查红包状态是否有效包括以下至少一种:检查所述红包ID是否存在,检查所述红包是否过期,检查所述红包的未领取份额个数是否为0,以及检查所述红包领取者的地址是否在所述已领取地址列表中。5.根据权利要求1所述的区块链红包的处理方法,其特征在于,在根据所述红包信息计算红包份额并向所述红包领取者发送所述红包份额之后,所述方法还包括:将所述红包领取者的地址记录到所述已领取地址列表中;以及基于所述红包份额更新剩余红包总金额和剩余红包份额个数。6.一种区块链红包的创建方法,其特征在于,所述方法包括,在红包发起者终端处:接收红包发起者输入的红包信息;基于非对称密钥生成算法生成包括见证公钥和见证私钥的见证密钥对;基于所述红包信息和所述见证公钥创建红包发放交易请求并向区块链网络发送所述红包发放交易请求;从所述区块链网络接收针对所述红包发放交易请求的成功确认消息,所述成功确认消息包括红包ID;以及向至少一个候选红包领取者分享所述红包ID和所述见证私钥。7.根据权利要求6所述的区块链红包的创建方法,其特征在于,所述红包信息包括红包总金额、红包份额总个数和红包类型。8.根据权利要求7所述的区块链红包的创建方法,其特征在于,所述红包信息还包括所述红包发起者的留言信息和/或所述红包发起者的昵称。9.根据权利要求6所述的区块链红包的创建方法,其特征在于,在接收红包发起者输入的红包信息之后,所述方法还包括:对所述红包发起者输入的所述红包信息进行验证,以确定所述红包信息是否符合红包规则和/或所述红包发起者的账户余额是否大于所述红包信息中的红包总金额。10.根据权利要求9所述的区块链红包的创建方法,其特征在于,所述红包规则包括总金额规则、数量规则和币种规则中的至少一种。11.根据权利要求9所述的区块链红包的创建方法,其特征在于,所述方法还包括:将所述留言信息上传至星际文件系统,得到所述留言信息的消息链接,并且其中,向多个候选红包领取者分享所述红包ID和所述见证私钥还包括:向所述多个候选红包领取者分享所述红包发放者的昵称和/或所述留言信息的消息链接。12.根据权利要求6所述的区块链红包的创建方法,其特征在于,所述红包信息还包括红包的币种,用于指示第一类型数字货币,所述红包发放交易请求包括第一子句,所述第一子句用于向所述区块链网络的节点上的红包合约指示第一类型数字货币形式的红包,所述第一子句包括第一字段、第二字段和第三字段,其中,所述第一子句的第一字段被配置为包括所述红包合约的地址,用于指示所述第一子句的目的地址;所述第一子句的第二字段被配置为包括所述红包信息中的红包总金额,用于指示向所述红包合约的地址转移所述红包总金额的第一类型数字货币;以及所述第一子句的第三字段被配置为包括所述红包信息中的红包类型、红包份额总个数以及所述见证公钥或根据所述见证公钥派生的见证地址。13.根据权利要求6所述的区块链红包的创建方法,其特征在于,所述红包信息还包括红包的币种,用于指示第二类型数字货币,所述红包发放交易请求包括原子操作的第一子句和第二子句,其中所述第一子句用于向所述区块链网络的节点上的红包合约指示第二类型数字货币形式的红包,所述第二子句用于向所述红包合约的地址转移所述红包总金额的第二类型数字货币,所述第一子句和第二子句均包括第一字段、第二字段和第三字段,其中,所述第一子句的第一字段被配置为包括所述红包合约的地址,用于指示所述第一子句的目的地址;所述第一子句的第二字段被配置为第一预定值,用于指示所述红包发放交易请求不是第一类型数字货币形式的;所述第一子句的第三字段被配置为包括所述红包信息中的红包类型、红包份额总个数以及所述见证公钥或根据所述见证公钥派生的见证地址;所述第二子句的第一字段被配置为包括所述第二类型数字货币的合约地址,用于指示所述第二子句的目的地址;所述第二子句的第二字段被配置为第二预定值,用于指示所述第二子句不向所述第二类型数字货币的合约地址执行转账;以及所述第二子句的第三字段被配置为包括所述红包合约的地址和所述红包信息中的红包总金额,用于指示所述第二类型数字货币的合约地址所对应的智能合约...

【专利技术属性】
技术研发人员:耿强乐
申请(专利权)人:上海唯链信息科技有限公司
类型:发明
国别省市:上海,31

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

1