CN116071069A - 区块链数字钱包的快速授权方法、系统及相关设备 - Google Patents
区块链数字钱包的快速授权方法、系统及相关设备 Download PDFInfo
- Publication number
- CN116071069A CN116071069A CN202310084307.3A CN202310084307A CN116071069A CN 116071069 A CN116071069 A CN 116071069A CN 202310084307 A CN202310084307 A CN 202310084307A CN 116071069 A CN116071069 A CN 116071069A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- digital wallet
- knowledge proof
- chain
- zero knowledge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明适用于移动支付技术领域,尤其涉及一种区块链数字钱包的快速授权方法、系统及相关设备,所述方法包括:在区块链下数字钱包中确定用于支付业务的链下授权参数,并将链下授权参数根据预设编码方式封装为零知识证明,同时使用预设签名算法对零知识证明进行签名,得到具有时间戳和公钥数据的;将链下签名数据进行上链,进行区块链上数字钱包的解锁;在区块链下数字钱包中根据零知识证明计算出零知识证明授权数据,并利用零知识证明授权数据对区块链上数字钱包进行授权,之后,执行支付业务。本发明将区块链数字钱包的整体验证分为链下授权、链上验证的非交互式零知识证明的过程,保障了账户的独立性和安全性。
Description
技术领域
本发明适用于移动支付技术领域,尤其涉及一种区块链数字钱包的快速授权方法、系统及相关设备。
背景技术
区块链数字钱包是用户证明对数字资产所有权的重要工具。现有的区块链业务主要是基于联盟链实现,其中,数字钱包方案一般根据企业的区块链账户进行交易,或者是托管用户的钱包进行交易。在现有方案中,再利用数字钱包进行交易时,由于存在上链的需求,使得验证过程和交易过程中频繁进行验证,导致交易效率低;同时,用户的数字钱包没有使用公、私钥对和数字签名等技术保障用户真正的资产所有权,降低了区块链的去中心化程度,并且托管钱包安全性较低,需要防范外部网络的攻击和内部人员的攻击,具有安全风险。
发明内容
本发明实施例提供一种区块链数字钱包的快速授权方法、系统及相关设备,旨在解决现有的区块链数字钱包存在的验证效率低、安全性低的技术问题。
第一方面,本发明实施例提供一种区块链数字钱包的快速授权方法,所述快速授权方法包括以下步骤:
在区块链下数字钱包中确定用于支付业务的链下授权参数,并将所述链下授权参数根据预设编码方式封装为零知识证明,同时使用预设签名算法对所述零知识证明进行签名,得到链下签名数据,其中,所述链下签名数据具有时间戳和公钥数据;
将所述链下签名数据进行上链,进行区块链上数字钱包的解锁;
在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据,并利用所述零知识证明授权数据对所述区块链上数字钱包进行授权,之后,执行所述支付业务。
更进一步地,将所述链下授权参数根据预设编码方式封装为零知识证明的步骤,包括以下子步骤:
判断所述区块链下数字钱包是否为第一次使用,其中:
若是,则根据随机数和米勒-拉宾算法计算出素数循环群,并在所述素数循环群中随机生成用于计算所述零知识证明的计算参数,同时将所述计算参数作为默认参数,之后,将所述计算参数和所述链下授权参数根据所述预设编码方式封装为所述零知识证明;
若否,则将所述默认参数和所述链下授权参数封装为所述零知识证明。
更进一步地,在将所述链下签名数据进行上链,进行区块链上数字钱包的解锁的步骤前,还包括以下步骤:
验证所述时间戳,根据链上历史验证记录判断所述时间戳的时间是否大于任意的所述链上历史验证记录的时间,若是,则所述时间戳验证通过;
验证所述公钥数据,根据链上公钥数据判断所述公钥数据是否与之相同,若是,则所述公钥数据验证通过;
验证所述零知识证明,判断所述零知识证明的编码是否满足所述预设编码方式,若是,则所述零知识证明验证通过;
其中,若所述时间戳、所述公钥数据、所述零知识证明的编码中的至少一种验证不通过时,反馈所述区块链上数字钱包的解锁无效。
更进一步地,在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据的步骤后,还包括步骤:
通过取值递减的方式更新所述默认参数。
更进一步地,所述零知识证明基于Fiat-Shamir零知识证明实现。
更进一步地,所述预设编码方式基于EIP-712实现。
更进一步地,所述预设签名算法为椭圆曲线数字签名算法。
第二方面,本发明实施例还提供一种区块链数字钱包的快速授权系统,所述快速授权系统包括:
链下签名模块,用于在区块链下数字钱包中确定用于支付业务的链下授权参数,并将所述链下授权参数根据预设编码方式封装为零知识证明,同时使用预设签名算法对所述零知识证明进行签名,得到链下签名数据,其中,所述链下签名数据具有时间戳和公钥数据;
链上解锁模块,用于将所述链下签名数据进行上链,进行区块链上数字钱包的解锁;
链上授权模块,用于在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据,并利用所述零知识证明授权数据对所述区块链上数字钱包进行授权,之后,执行所述支付业务。
第三方面,本发明实施例还提供一种计算机设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述实施例中任意一项所述的区块链数字钱包的快速授权方法中的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中任意一项所述的区块链数字钱包的快速授权方法中的步骤。
本发明所达到的有益效果,在于将区块链数字钱包的整体验证分为链下授权、链上验证的非交互式零知识证明的过程,首先通过在初始化签名区块链上数字钱包,确认用户身份后,再在链上使用零知识证明证据进行后续验证,无需支付方重复数字签名,保障了账户的独立性和安全性,同时在流程和协议上都提高了效率;并且,通过引入零知识证明至验证过程中,利用证据有效期短、变化频繁的特性,也提高了区块链数字钱包的交易安全性。
附图说明
图1是本发明实施例提供的区块链数字钱包的快速授权方法的步骤流程框图;
图2是本发明实施例提供的区块链数字钱包的快速授权系统200的结构示意图;
图3是本发明实施例提供的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1,图1是本发明实施例提供的区块链数字钱包的快速授权方法的步骤流程框图,所述快速授权方法包括以下步骤:
S101、在区块链下数字钱包中确定用于支付业务的链下授权参数,并将所述链下授权参数根据预设编码方式封装为零知识证明,同时使用预设签名算法对所述零知识证明进行签名,得到链下签名数据,其中,所述链下签名数据具有时间戳和公钥数据。
具体的,在本发明实施例中,所述区块链下数字钱包用于在进行区块链上链前进行钱包的初始化和管理,签名内容的封装,零知识证明参数的初始化与计算。在一种典型的使用场景中,步骤S101为区块链数字钱包的用户在向服务方授权钱包的交易前,为了将区块链数据钱包连接至区块链所进行的准备。
更进一步地,所述零知识证明基于Fiat-Shamir零知识证明实现。零知识证明可以让证明方在不透露任何实际信息的情况下向验证方证明某保密信息或声明的真实性,而Fiat-Shamir零知识证明是建立在群中离散对数难题上,使用交互式声明构建的其中一种零知识证明,相比于其他零知识证明方案,Fiat-Shamir零知识证明方案易于实现且性能开销小,适合在区块链上实现。
在一种更具体的实施方式中,所述区块链下数字钱包通过java的编程语言实现,示例性的,本发明实施例使用MySQL数据库记录所述区块链下数字钱包的数据字段内容,所述区块链下数字钱包的账号使用以太坊的keystore存储私钥,并使用web3j库管理账户和签名。
更进一步地,将所述链下授权参数根据预设编码方式封装为零知识证明的步骤,包括以下子步骤:
判断所述区块链下数字钱包是否为第一次使用,其中:
若是,则根据随机数和米勒-拉宾算法计算出素数循环群,并在所述素数循环群中随机生成用于计算所述零知识证明的计算参数,同时将所述计算参数作为默认参数,之后,将所述计算参数和所述链下授权参数根据所述预设编码方式封装为所述零知识证明。
具体的,在本发明实施例中,根据随机数和米勒-拉宾算法寻找一个127位的大素数,再使用127位的大素数生成128位的安全素数n,作为所述素数循环群的阶,并且在此步骤中,根据零知识证明参数的需求,还要随机从[11,255]中选出一个数作为所述素数循环群n的生成元g;
对于所述零知识证明,其计算参数包括x、v、k1、k2、y、t、c,其中的x、v、k1、k2从所述素数循环群n中得到,具体的:
对于x、v,要求1<x、v<n-1;
定义授权验证有效次数s=2,指数为-1,0<s<n,对于k1,要求1<k1<n/s,且k1为奇数;
对于k2,要求k2=n+n`-(s+s`)+1,其中n`为n的按位取反,s`为s的按位取反;
对于y、t,其各自取值为:
y=pow(g,x,n);
t=pow(g,v,n);
其中pow(a1,a2,a3)为幂模运算,即a1的a2次方模a3;
对于c,本发明实施例将数据库中的用户账号地址、授权合约地址两种信息加上y、t共4个参数按照预设编码方式进行打包编码,再使用哈希函数获得32位的哈希值,将哈希截断低16位作为最终打包数据的哈希值,同时作为所述零知识证明的参数c;
更进一步地,所述预设编码方式基于EIP-712标准实现,EIP-712标准是一种更高级、更安全的交易签名方法,其提出了数据的标准结构和从结构化消息生成散列哈希的定义过程,提高链下消息签名对链上的可用性和安全性。
并且,由于所述区块链下数字钱包为第一次被使用,因此需要在得到所述计算参数时,会有一次根据区块链间协议进行数据传输的过程,用于将所述计算参数作为存储在区块链且相互同步的默认参数。
若否,则将所述默认参数和所述链下授权参数封装为所述零知识证明。
与所述区块链下数字钱包被第一次使用的步骤的不同之处在于,所述默认参数会在所述零知识证明被计算为授权数据后被更新,当所述区块链下数字钱包不是第一次被使用时,则说明所述区块链下数字钱包在区块链中已存在至少一次验证过程,因此不需要重复进行相关参数的初始化步骤,具体的,所述默认参数的更新在步骤S103后进行。
更进一步地,所述预设签名算法为椭圆曲线数字签名算法。在本发明实施例中,通过所述椭圆曲线数字签名算法对所述零知识证明进行签名,签名版本号和链id标识设置为2字节,用于标识签名的版本和对应的链;所述时间戳为6字节,使用UNIX时间戳,使得签名一次有效,防止签名重放攻击;外部数据打包哈希16字节,扩展字段8字节。优选的,在实现签名过程时进一步加入账户公钥数据,以加强安全性,其中,公钥数据是对于区块链的链上链下而言的,在本发明实施例中,公钥数据等安全性设置是用于区块链下数字钱包与区块链上数字钱包之间的交互。
S102、将所述链下签名数据进行上链,进行区块链上数字钱包的解锁。
在一种典型的使用场景中,步骤S102为区块链数字钱包的用户在向服务方授权钱包的交易前,将所述区块链数字钱包连接至区块链的过程。所述区块链上数字钱包可以通过solidity智能合约实现,与区块链下数字钱包的区别在于,其部署于区块链中,用于保存用户的数字资产信息。
更进一步地,在将所述链下签名数据进行上链,进行区块链上数字钱包的解锁的步骤前,还包括以下步骤:
验证所述时间戳,根据链上历史验证记录判断所述时间戳的时间是否大于任意的所述链上历史验证记录的时间,若是,则所述时间戳验证通过;
验证所述公钥数据,根据链上公钥数据判断所述公钥数据是否与之相同,若是,则所述公钥数据验证通过;
验证所述零知识证明,判断所述零知识证明的编码是否满足所述预设编码方式,若是,则所述零知识证明验证通过;
其中,若所述时间戳、所述公钥数据、所述零知识证明的编码中的至少一种验证不通过时,反馈所述区块链上数字钱包的解锁无效。
示例性的,在基于java编程语言实现的实施例中,验证过程还可以根据字符参数添加零知识证明证据的有效期、目标授权者和授权对象数据字段关联信息等。
S103、在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据,并利用所述零知识证明授权数据对所述区块链上数字钱包进行授权,之后,执行所述支付业务。
在一种典型的使用场景中,步骤S103为区块链数字钱包的用户在向服务方授权钱包的交易时的双方授权过程,此时,服务方根据零知识证明授权数据向区块链上数字钱包进行临时授权请求,如果临时授权请求成功,则可以在有效时间内执行所述零知识证明对应的链下授权参数所规定的所述支付业务。
具体的,根据Fiat-Shamir零知识证明算法,使用零知识证明参数v、c、x、n计算零知识证明授权数据r:
r=(v-c*x)%(n-1);
并且,在授权过程中还涉及到零知识证明授权数据r与零知识证明结果t的比对;
t=pow(g,r,n)*pow(y,c,n)%n;
若相等则说明当前零知识证明授权数据r有效,验证临时授权通过;若不相等,则说明当前零知识证明授权数据r无效,验证不通过。
也就是说,在基于零知识证明的授权流程中,服务方使用零知识证明参数通过区块链上数字钱包临时授权验证,能够执行一次用户授权代理合约的业务。
更进一步地,在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据的步骤后,还包括步骤:
通过取值递减的方式更新所述默认参数。
具体的,所述默认参数的更新涉及所述零知识证明的计算参数中的c,当步骤S103中的零知识证明授权数据r验证通过后,根据快速幂模的机制,使区块链下、链上同步更新零知识证明参数c,且:
c=(c-k1)&k2;
这样就会使得c的取值向下递减,且通过与运算减少c低位中0的个数,降低幂模运算的时间开销。当所述默认参数更新之后,服务方不能再使用同样的授权数据执行相同的业务,而必须经过钱包用户的再一次授权,但在后续授权中,由于所述默认参数已经被更改,最终服务方接收到的零知识证明也会有所不同,因此必须再一次进行验证临时授权。在实际使用中,本发明实施例提供的快速授权方法更适用于免密小额交易、兑换礼品等需要快速临时授权的场景。
示例性的,在实际实施时,本发明实施例提供的区块链数字钱包的快速授权方法可以通过以下方式实现:
一、基于智能移动终端,区块链下数字钱包使用移动端手机平台开发app实现,使用web3库实现钱包的签名,密钥管理功能;区块链上数字钱包在以太坊区块链的平台中使用solidity语言开发智能合约实现;区块链下数字钱包和区块链上数字钱包的交互使用API网关实现;用户区块链下数字钱包授权签名后,使用https协议将签名发送给目标授权平台,平台使用区块链SDK调用链上用户钱包合约验证授权签名,后续用户快速授权,区块链下数字钱包将零知识证明证据发送给目标授权平台,平台使用区块链SDK调用链上用户钱包合约验证授权;
二、基于浏览器,区块链下数字钱包使用JavaScript语言在浏览器扩展插件中实现,区块链上数字钱包在基于fabric的区块链平台中使用链码开发智能合约实现;
三、基于嵌入式平台,区块链下数字钱包使用c语言在嵌入式平台中实现,区块链上数字钱包在联盟链平台中使用智能合约实现,区块链下数字钱包和区块链上数字钱包的交互通过联盟链API网关或联盟链SDK实现。
本发明所达到的有益效果,在于将区块链数字钱包的整体验证分为链下授权、链上验证的非交互式零知识证明的过程,首先通过在初始化签名区块链上数字钱包,确认用户身份后,再在链上使用零知识证明证据进行后续验证,无需支付方重复数字签名,保障了账户的独立性和安全性,同时在流程和协议上都提高了效率;并且,通过引入零知识证明至验证过程中,利用证据有效期短、变化频繁的特性,也提高了区块链数字钱包的交易安全性。
本发明实施例还提供一种区块链数字钱包的快速授权系统,请参照图2,图2是本发明实施例提供的区块链数字钱包的快速授权系统200的结构示意图,其包括:
链下签名模块201,用于在区块链下数字钱包中确定用于支付业务的链下授权参数,并将所述链下授权参数根据预设编码方式封装为零知识证明,同时使用预设签名算法对所述零知识证明进行签名,得到链下签名数据,其中,所述链下签名数据具有时间戳和公钥数据;
链上解锁模块202,用于将所述链下签名数据进行上链,进行区块链上数字钱包的解锁;
链上授权模块203,用于在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据,并利用所述零知识证明授权数据对所述区块链上数字钱包进行授权,之后,执行所述支付业务。
所述区块链数字钱包的快速授权系统200能够实现如上述实施例中的区块链数字钱包的快速授权方法中的步骤,且能实现同样的技术效果,参上述实施例中的描述,此处不再赘述。
本发明实施例还提供一种计算机设备,请参照图3,图3是本发明实施例提供的计算机设备的结构示意图,所述计算机设备300包括:存储器302、处理器301及存储在所述存储器302上并可在所述处理器301上运行的计算机程序。
所述处理器301调用所述存储器302存储的计算机程序,执行本发明实施例提供的区块链数字钱包的快速授权方法中的步骤,请结合图1,具体包括以下步骤:
S101、在区块链下数字钱包中确定用于支付业务的链下授权参数,并将所述链下授权参数根据预设编码方式封装为零知识证明,同时使用预设签名算法对所述零知识证明进行签名,得到链下签名数据,其中,所述链下签名数据具有时间戳和公钥数据;
S102、将所述链下签名数据进行上链,进行区块链上数字钱包的解锁;
S103、在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据,并利用所述零知识证明授权数据对所述区块链上数字钱包进行授权,之后,执行所述支付业务。
更进一步地,将所述链下授权参数根据预设编码方式封装为零知识证明的步骤,包括以下子步骤:
判断所述区块链下数字钱包是否为第一次使用,其中:
若是,则根据随机数和米勒-拉宾算法计算出素数循环群,并在所述素数循环群中随机生成用于计算所述零知识证明的计算参数,同时将所述计算参数作为默认参数,之后,将所述计算参数和所述链下授权参数根据所述预设编码方式封装为所述零知识证明;
若否,则将所述默认参数和所述链下授权参数封装为所述零知识证明。
更进一步地,在将所述链下签名数据进行上链,进行区块链上数字钱包的解锁的步骤前,还包括以下步骤:
验证所述时间戳,根据链上历史验证记录判断所述时间戳的时间是否大于任意的所述链上历史验证记录的时间,若是,则所述时间戳验证通过;
验证所述公钥数据,根据链上公钥数据判断所述公钥数据是否与之相同,若是,则所述公钥数据验证通过;
验证所述零知识证明,判断所述零知识证明的编码是否满足所述预设编码方式,若是,则所述零知识证明验证通过;
其中,若所述时间戳、所述公钥数据、所述零知识证明的编码中的至少一种验证不通过时,反馈所述区块链上数字钱包的解锁无效。
更进一步地,在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据的步骤后,还包括步骤:
通过取值递减的方式更新所述默认参数。
更进一步地,所述零知识证明基于Fiat-Shamir零知识证明实现。
更进一步地,所述预设编码方式基于EIP-712标准实现。
更进一步地,所述预设签名算法为椭圆曲线数字签名算法。
本发明实施例提供的计算机设备300能够实现如上述实施例中的区块链数字钱包的快速授权方法中的步骤,且能实现同样的技术效果,参上述实施例中的描述,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现本发明实施例提供的区块链数字钱包的快速授权方法中的各个过程及步骤,且能实现相同的技术效果,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,简称RAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,所揭露的仅为本发明较佳实施例而已,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式用等同变化,均属于本发明的保护之内。
Claims (10)
1.一种区块链数字钱包的快速授权方法,其特征在于,所述快速授权方法包括以下步骤:
在区块链下数字钱包中确定用于支付业务的链下授权参数,并将所述链下授权参数根据预设编码方式封装为零知识证明,同时使用预设签名算法对所述零知识证明进行签名,得到链下签名数据,其中,所述链下签名数据具有时间戳和公钥数据;
将所述链下签名数据进行上链,进行区块链上数字钱包的解锁;
在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据,并利用所述零知识证明授权数据对所述区块链上数字钱包进行授权,之后,执行所述支付业务。
2.如权利要求1所述的区块链数字钱包的快速授权方法,其特征在于,将所述链下授权参数根据预设编码方式封装为零知识证明的步骤,包括以下子步骤:
判断所述区块链下数字钱包是否为第一次使用,其中:
若是,则根据随机数和米勒-拉宾算法计算出素数循环群,并在所述素数循环群中随机生成用于计算所述零知识证明的计算参数,同时将所述计算参数作为默认参数,之后,将所述计算参数和所述链下授权参数根据所述预设编码方式封装为所述零知识证明;
若否,则将所述默认参数和所述链下授权参数封装为所述零知识证明。
3.如权利要求2所述的区块链数字钱包的快速授权方法,其特征在于,在将所述链下签名数据进行上链,进行区块链上数字钱包的解锁的步骤前,还包括以下步骤:
验证所述时间戳,根据链上历史验证记录判断所述时间戳的时间是否大于任意的所述链上历史验证记录的时间,若是,则所述时间戳验证通过;
验证所述公钥数据,根据链上公钥数据判断所述公钥数据是否与之相同,若是,则所述公钥数据验证通过;
验证所述零知识证明,判断所述零知识证明的编码是否满足所述预设编码方式,若是,则所述零知识证明验证通过;
其中,若所述时间戳、所述公钥数据、所述零知识证明的编码中的至少一种验证不通过时,反馈所述区块链上数字钱包的解锁无效。
4.如权利要求3所述的区块链数字钱包的快速授权方法,其特征在于,在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据的步骤后,还包括步骤:
通过取值递减的方式更新所述默认参数。
5.如权利要求1所述的区块链数字钱包的快速授权方法,其特征在于,所述零知识证明基于Fiat-Shamir零知识证明实现。
6.如权利要求1所述的区块链数字钱包的快速授权方法,其特征在于,所述预设编码方式基于EIP-712标准实现。
7.如权利要求1所述的区块链数字钱包的快速授权方法,其特征在于,所述预设签名算法为椭圆曲线数字签名算法。
8.一种区块链数字钱包的快速授权系统,其特征在于,所述快速授权系统包括:
链下签名模块,用于在区块链下数字钱包中确定用于支付业务的链下授权参数,并将所述链下授权参数根据预设编码方式封装为零知识证明,同时使用预设签名算法对所述零知识证明进行签名,得到链下签名数据,其中,所述链下签名数据具有时间戳和公钥数据;
链上解锁模块,用于将所述链下签名数据进行上链,进行区块链上数字钱包的解锁;
链上授权模块,用于在所述区块链下数字钱包中根据所述零知识证明计算出零知识证明授权数据,并利用所述零知识证明授权数据对所述区块链上数字钱包进行授权,之后,执行所述支付业务。
9.一种计算机设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任意一项所述的区块链数字钱包的快速授权方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任意一项所述的区块链数字钱包的快速授权方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084307.3A CN116071069A (zh) | 2023-01-13 | 2023-01-13 | 区块链数字钱包的快速授权方法、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084307.3A CN116071069A (zh) | 2023-01-13 | 2023-01-13 | 区块链数字钱包的快速授权方法、系统及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116071069A true CN116071069A (zh) | 2023-05-05 |
Family
ID=86176546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310084307.3A Pending CN116071069A (zh) | 2023-01-13 | 2023-01-13 | 区块链数字钱包的快速授权方法、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116071069A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230360027A1 (en) * | 2022-05-03 | 2023-11-09 | Emoji ID, LLC | Method and system for unique, procedurally generated extended reality environment via few-shot model |
-
2023
- 2023-01-13 CN CN202310084307.3A patent/CN116071069A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230360027A1 (en) * | 2022-05-03 | 2023-11-09 | Emoji ID, LLC | Method and system for unique, procedurally generated extended reality environment via few-shot model |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3899808B2 (ja) | ディジタル署名生成方法およびディジタル署名検証方法 | |
US8122245B2 (en) | Anonymity revocation | |
Paquin et al. | U-prove cryptographic specification v1. 1 | |
US8874921B2 (en) | System and method for generating keyless digital multi-signatures | |
US9882890B2 (en) | Reissue of cryptographic credentials | |
CN112950367A (zh) | 生成和执行智能合约交易的方法及装置 | |
KR101740956B1 (ko) | 자체 인증 서명을 기반으로 하는 공공 감사 방법 및 시스템 | |
CN110505067B (zh) | 区块链的处理方法、装置、设备及可读存储介质 | |
CN112118100B (zh) | 改进的可链接环签名方法、验证方法、装置、电子设备及介质 | |
CN112436938B (zh) | 数字签名的生成方法、装置和服务器 | |
CN116071069A (zh) | 区块链数字钱包的快速授权方法、系统及相关设备 | |
CN115529141A (zh) | 一种对数签名大小的可追踪环签名生成方法及系统 | |
KR20120091618A (ko) | 연쇄 해시에 의한 전자서명 시스템 및 방법 | |
CN112436944B (zh) | 一种基于pow的区块链共识方法及装置 | |
CN114297678A (zh) | 一种联盟链系统运行方法、装置、设备及存储介质 | |
WO2022116176A1 (zh) | 数字签名的生成方法、装置和服务器 | |
CN112184245A (zh) | 一种跨区块链的交易身份确认方法及装置 | |
CN115879074A (zh) | 一种基于区块链的身份认证方法、装置和系统 | |
CN111245594A (zh) | 一种基于同态运算的协同签名方法及系统 | |
CN111709727B (zh) | 在区块链钱包中保存多重签名的方法和计算机可读存储介质 | |
CN113849860A (zh) | 一种电子凭据的防伪方法、装置、电子设备及存储介质 | |
Vijayakumaran | An introduction to bitcoin | |
CN113947405B (zh) | 基于区块链的数字资产管理方法 | |
CN116318738B (zh) | 签名方法、系统、电子设备及存储介质 | |
CN115473634B (zh) | 一种改进的可链接环签名生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |