CN110135909A - 基于零知识证明的数据处理方法、系统、设备及存储介质 - Google Patents
基于零知识证明的数据处理方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN110135909A CN110135909A CN201910410797.5A CN201910410797A CN110135909A CN 110135909 A CN110135909 A CN 110135909A CN 201910410797 A CN201910410797 A CN 201910410797A CN 110135909 A CN110135909 A CN 110135909A
- Authority
- CN
- China
- Prior art keywords
- random number
- time range
- data
- constant
- preset
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0212—Chance discounts or incentives
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0225—Avoiding frauds
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于零知识证明的数据处理方法、系统、设备及存储介质,本发明通过先确定第一预设时间范围及第二预设时间范围;在第一预设时间范围内接收消费者发送的第一哈希值、第一默认随机数及身份数据,从智能合约中获取第二默认随机数,并确定参与活动的总人数;在第二预设时间范围内接收消费者发送的常数及第一随机数,在对身份数据验证通过后根据常数及第一随机数对第一哈希值进行哈希验证;在哈希验证通过的数量不大于总人数时根据消费者发送的数据及智能合约中预设的公开规则确定中奖者,通过区块链技术保证所有数据不可更改,同时通过智能合约公平规则、常数或随机数确定抽奖者,排除了其他因素干扰,保障了抽奖的公平性和可信性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于零知识证明的数据处理方法、系统、设备及存储介质。
背景技术
随着互联网快速发展,为了吸引更多消费者,很多商家通过优惠活动推销自己的产品,比如低价促销、线上抽奖等。以线上抽奖为例,消费者在参与优惠抽奖活动的时候,根本不知道商家优惠活动是否公平,为了获取优惠,往往只能单方面信任商家。
目前线上抽奖活动未采取必要的保护措施防止抽奖过程中的作假行为,不能从根本上解决公平和公正问题,无法取得消费者的信任。
发明内容
本发明的主要目的在于提供一种基于零知识证明的数据处理方法、系统、设备及存储介质,旨在解决现有技术中线上抽奖不公平的技术问题。
为实现上述目的,本发明提供一种基于零知识证明的数据处理方法,所述数据处理方法包括:
接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;
在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;
根据所述身份数据及所述参与数据的数量确定参与活动的总人数;
在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;
在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者。
优选地,所述在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者的步骤,包括:
在所述哈希验证通过的数量等于总人数时,根据哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者;
在所述哈希验证通过的数量小于总人数时,根据哈希验证失败的消费者对应的所述第一默认随机数和所述第二默认随机数、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者。
优选地,所述在所述哈希验证通过的数量小于总人数时,根据哈希验证失败的消费者对应的所述第一默认随机数和所述第二默认随机数、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者的步骤,包括:
在所述哈希验证通过的数量小于总人数时,根据所述哈希验证失败的消费者对应的第一默认随机数及所述第二默认随机数计算第二哈希值;
根据所述第二哈希值、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者。
优选地,所述根据所述第二哈希值、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者的步骤,包括:
根据所述第二哈希值、所述哈希验证通过的消费者对应的常数、所述总人数及预设公式计算余数;
根据所述余数及所述智能合约中预设的公开规则确定中奖者。
优选地,所述根据所述身份数据及所述参与数据的数量确定参与活动的总人数的步骤之后,所述方法还包括:
根据所述活动数据确定活动的最低参与人数及最高参与人数;
在所述总人数小于所述最低参与人数或所述总人数大于所述最高参与人数时,返回接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围的步骤。
优选地,所述第一哈希值为所述常数及所述第一随机数基于默克尔树算法计算获得的根哈希值。
优选地,所述在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者的步骤之后,所述方法还包括:
向所述中奖者发送中奖凭证,以使所述中奖者根据所述中奖凭证向商家兑奖。
此外,为实现上述目的,本发明还提供一种基于零知识证明的数据处理系统,所述基于零知识证明的数据处理系统包括消费者端及区块链;其中,
消费者端,用于在第一预设时间范围内向所述区块链发送身份数据及参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;在第二预设时间范围内向所述区块链发送常数及第一随机数;
区块链,用于接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和所述参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数;根据所述身份数据和所述参与数据的数量确定参与活动的总人数;在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者。
此外,为实现上述目的,本发明还提供一种基于零知识证明的数据处理设备,所述基于零知识证明的数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于零知识证明的数据处理程序,所述基于零知识证明的数据处理程序配置为实现所述的基于零知识证明的数据处理方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有基于零知识证明的数据处理程序,所述基于零知识证明的数据处理程序被处理器执行时实现所述的基于零知识证明的数据处理方法的步骤。
本发明通过接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;根据所述身份数据及所述参与数据的数量确定参与活动的总人数;在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者,通过区块链技术保证所有数据公开透明、不可更改,同时通过默克尔根验证、智能合约公平规则、常数或随机数确定抽奖者,排除了其他因素干扰,有效防止了抽奖过程中的作假行为,保障了抽奖的公平性和可信性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于零知识证明的数据处理设备结构示意图;
图2是本发明基于零知识证明的数据处理方法第一实施例的流程示意图;
图3是本发明基于零知识证明的数据处理方法第二实施例的流程示意图;
图4是本发明基于零知识证明的数据处理系统第一实施例的系统架构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于零知识证明的数据处理设备结构示意图。
如图1所示,该基于零知识证明的数据处理设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对基于零知识证明的数据处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于零知识证明的数据处理程序。
在图1所示的基于零知识证明的数据处理设备中,网络接口1004主要用于与外部网络进行数据通信;用户接口1003主要用于接收用户的输入指令;所述基于零知识证明的数据处理设备通过处理器1001调用存储器1005中存储的基于零知识证明的数据处理程序,并执行以下操作:
接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;
在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;
根据所述身份数据及所述参与数据的数量确定参与活动的总人数;
在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;
在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者。
进一步地,处理器1001可以调用存储器1005中存储的基于零知识证明的数据处理程序,还执行以下操作:
在所述哈希验证通过的数量等于总人数时,根据哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者;
在所述哈希验证通过的数量小于总人数时,根据哈希验证失败的消费者对应的所述第一默认随机数和所述第二默认随机数、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者。
进一步地,处理器1001可以调用存储器1005中存储的基于零知识证明的数据处理程序,还执行以下操作:
在所述哈希验证通过的数量小于总人数时,根据所述哈希验证失败的消费者对应的第一默认随机数及所述第二默认随机数计算第二哈希值;
根据所述第二哈希值、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者。
进一步地,处理器1001可以调用存储器1005中存储的基于零知识证明的数据处理程序,还执行以下操作:
根据所述第二哈希值、所述哈希验证通过的消费者对应的常数、所述总人数及预设公式计算余数;
根据所述余数及所述智能合约中预设的公开规则确定中奖者。
进一步地,处理器1001可以调用存储器1005中存储的基于零知识证明的数据处理程序,还执行以下操作:
根据所述活动数据确定活动的最低参与人数及最高参与人数;
在所述总人数小于所述最低参与人数或所述总人数大于所述最高参与人数时,返回接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围的步骤。
进一步地,处理器1001可以调用存储器1005中存储的基于零知识证明的数据处理程序,还执行以下操作:
向所述中奖者发送中奖凭证,以使所述中奖者根据所述中奖凭证向商家兑奖。
本实施例通过上述方案,通过接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;根据所述身份数据及所述参与数据的数量确定参与活动的总人数;在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者,通过区块链技术保证所有数据公开透明、不可更改,同时通过默克尔根验证、智能合约公平规则、常数或随机数确定抽奖者,排除了其他因素干扰,有效防止了抽奖过程中的作假行为,保障了抽奖的公平性和可信性。
基于上述硬件结构,提出本发明基于零知识证明的数据处理方法实施例。
参照图2,图2为本发明基于零知识证明的数据处理方法第一实施例的流程示意图。
在第一实施例中,所述基于零知识证明的数据处理方法包括以下步骤:
S10:接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;
可以理解的是,所述商家,指活动发起方,所述活动数据,包括商家ID、商家签名、商家公钥、活动ID、活动描述、活动智能合约地址、最低参与人数、最高参与人数、抽奖时间段(包括第一预设时间范围及第二预设时间范围)、中奖规则等,本实施例对此不加以限制。
区块链将活动数据写入智能合约中,并保存智能合约,如此不仅随时可以从智能合约中获取活动相关的数据,还可以防止活动数据被篡改。
S20:在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;
为了便于区分和说明,以下简称第一默认随机数为DR1、第二默认随机数为DR2、第一哈希值为Hash1、第一预设时间范围为T1、第二预设时间范围为T2。
在具体实现中,消费者在T1需要向区块链提交参与数据(Hash1及DR1)和身份数据(消费者公钥及其签名信息),消费者可以将隐私信息用私钥加密,生成签名信息后将签名信息及公钥提交至区块链中,由于消费者并不直接向商家提供隐私信息,可以降低消费者隐私信息被泄露的风险。
S30:根据所述身份数据及所述参与数据的数量确定参与活动的总人数;
需要说明的是,接收完消费者发送的身份数据及参与数据后,需要对参与活动的总人数进行统计,当参与活动的总人数小于商家设置的最低参与人数或大于最高参与人数时,需要重新开启活动。
易于理解的是,由于每个消费者在T1会发送一份身份数据和一份参与数据,因此,可以统计身份数据的数量或者参与数据的数量,或者身份数据与参与数据取平均值的数量,将这个数量作为参与活动的总人数。
S40:在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;
为了便于区分和说明,以下简称常数为K,第一随机数为R1。
易于理解的是,消费者在T2随机提供一个K,为了保障公平性,K的取值应大于商家设置的最高参与人数。
需要说明的是,Hash1为K和R1通过计算获得的哈希值,可以为K与R1之和的Hash值,作为一种优选的实施方式,Hash1为K及R1基于默克尔树算法计算获得的根哈希值,以防止哈希碰撞。
在具体实现中,在T1接收了消费者发送的身份数据之后,在T2使用公钥对消费者进行身份验证;若身份验证通过,根据消费者发送的K及R1对Hash1进行哈希验证,具体地,根据K、R1及对应的算法计算出第三哈希值,并在第三哈希值与Hash1相同时,验证通过。
S50:在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者。
易于理解的是,当哈希验证通过的数量等于总人数时,说明所有消费者均提供了K和R1,则说明抽奖是公平的,通过K及智能合约中预设的公开规则或公式可以计算出中奖者,当验证通过的数量小于总人数时,说明有消费者未提供K和R1,则表示未提供K和R1的消费者存在造假风险,此时通过消费者发送的DR1、K、智能合约中的DR2及智能合约中预设的公开规则计算出中奖者,由于确定中奖者的过程中区块链并不知道消费者身份,使得每个消费者的中奖概率一致,而且由于中奖规则是公开的,使抽奖更加公平。
在具体实现中,确定中奖者之后,区块链会向所述中奖者发送中奖凭证,以使所述中奖者根据所述中奖凭证向商家兑奖。由于中奖者只需要向商家提供中奖凭证,不需要提供隐私信息,使得消费者在公平的参与活动时,也能保护自己的关键隐私信息不被泄漏。
本实施例通过接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;根据所述身份数据及所述参与数据的数量确定参与活动的总人数;在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者,通过区块链技术保证所有数据公开透明、不可更改,同时通过默克尔根验证、智能合约公平规则、常数或随机数确定抽奖者,排除了其他因素干扰,有效防止了抽奖过程中的作假行为,保障了抽奖的公平性和可信性。
进一步地,如图3所示,基于第一实施例提出本发明基于零知识证明的数据处理方法第二实施例,在本实施例中,步骤S50具体包括:
S51:在所述哈希验证通过的数量等于总人数时,根据哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者;
应当理解的是,当哈希验证通过的数量等于总人数时,说明所有消费者均提供了K和R1,通过K及智能合约中预设的公开规则可以计算出中奖者,比如将哈希验证通过的消费者提供的K求和后取余数,再根据预设规则计算出中奖者。
具体地,作为一种实施方式,计算中奖者的过程可以如下:在抽奖时间范围内根据接收参与数据的时间戳为每位消费者进行排位;在T2将哈希验证通过的消费者提供的K求和后取余数,获得消费者排名,对应的排位即为中奖者。
S52:在所述哈希验证通过的数量小于总人数时,根据哈希验证失败的消费者对应的所述第一默认随机数和所述第二默认随机数、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者。
应当理解的是,当哈希验证通过的数量小于总人数时,说明有消费者未提供K和R1,此时通过哈希验证通过的消费者发送的K、哈希验证失败的消费者对应的DR1和DR2及智能合约中预设的公开规则或公式计算出中奖者。
具体地,步骤S52具体包括:
S520:在所述哈希验证通过的数量小于总人数时,根据所述哈希验证失败的消费者对应的第一默认随机数及所述第二默认随机数计算第二哈希值;
需要说明的是,在哈希验证通过数量小于总人数时,为了防止未提交K和R1的消费者造假,本实施例通过由哈希验证失败的消费者对应的DR1及智能合约中对应的DR2共同计算出第二哈希值,再根据第二哈希值和哈希验证通过的消费者提交的K共同确定中奖者,提高了造假难度,使抽奖更加公平。
S521:根据所述第二哈希值、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者。
具体地,可以根据所述第二哈希值、哈希验证通过的消费者对应的所述常数、所述总人数及预设公式计算余数;根据所述余数及所述智能合约中预设的公开规则确定中奖者。即计算中奖者的过程可以如下:在抽奖时间范围内根据接收参与数据的时间戳为每位消费者进行排位;在T2将计算获得的第二哈希值和哈希验证通过的消费者对应的K求和后取余数,获得消费者排名,对应的排位即为中奖者。
本实施例通过在哈希验证通过的数量等于总人数时,根据哈希验证通过的消费者对应的所述常数及所述智能合约确定中奖者;在哈希验证通过的数量小于总人数时,根据哈希验证失败的消费者对应的所述第一默认随机数及所述第二默认随机数获得第二哈希值;根据所述第二哈希值、哈希验证通过的消费者对应的所述常数及所述智能合约确定中奖者,通过智能合约公平规则、常数或随机数确定抽奖者,排除了其他因素干扰,保证了抽奖过程的公平性和公正性,增加了抽奖的可信度。
本发明进一步提供一种基于零知识证明的数据处理系统。
参照图4,图4为本发明基于零知识证明的数据处理系统第一实施例的系统架构示意图。
本实施例中,所述基于零知识证明的数据处理系统包括:
消费者端10,用于在第一预设时间范围内向所述区块链发送身份数据及参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;在第二预设时间范围内向所述区块链发送常数及第一随机数;
为了便于区分和说明,以下简称常数为K,第一随机数为R1、第一默认随机数为DR1、第二默认随机数为DR2、第一哈希值为Hash1、第一预设时间范围为T1、第二预设时间范围为T2。
在具体实现中,可以从智能合约中获取T1及T2,T1为接收消费者发送的身份数据和参与数据的时间范围,T2为验证和确定中奖者的时间范围。消费者在T1需要向区块链提交参与数据(Hash1及DR1)和身份数据(消费者公钥及其签名信息),消费者可以将隐私信息用私钥加密,生成签名信息后将签名信息及公钥提交至区块链中,由于消费者并不直接向商家提供隐私信息,可以降低消费者隐私信息被泄露的风险。
易于理解的是,消费者在T2随机提供一个K,为了保障公平性,K的取值应大于商家设置的最高参与人数。
需要说明的是,Hash1为K和R1通过计算获得的哈希值,可以为K与R1之和的Hash值,作为一种优选的实施方式,Hash1为K及R1基于默克尔树算法计算获得的根哈希值,以防止哈希碰撞。
当区块链中确定中奖者之后,会向所述中奖者发送中奖凭证,中奖者根据所述中奖凭证向商家兑奖。由于中奖者只需要向商家提供中奖凭证,不需要提供隐私信息,使得消费者在公平的参与活动时,也能保护自己的关键隐私信息不被泄漏。
区块链20,用于接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和所述参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数;根据所述身份数据和所述参与数据的数量确定参与活动的总人数;在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者。
可以理解的是,所述商家,指活动发起方,所述活动数据,包括商家ID、商家签名、商家公钥、活动ID、活动描述、活动智能合约地址、最低参与人数、最高参与人数、抽奖时间段(包括第一预设时间范围及第二预设时间范围)、中奖规则等,本实施例对此不加以限制。
区块链将活动数据写入智能合约中,并保存智能合约,如此不仅随时可以从智能合约中获取活动相关的数据,还可以防止活动数据被篡改。
需要说明的是,接收完消费者发送的身份数据及参与数据后,需要对参与活动的总人数进行统计,当参与活动的总人数小于商家设置的最低参与人数或大于最高参与人数时,需要重新开启活动。
易于理解的是,由于每个消费者在T1会发送一份身份数据和一份参与数据,因此,可以统计身份数据的数量或者参与数据的数量,或者身份数据与参与数据取平均值的数量,将这个数量作为参与活动的总人数。
在具体实现中,在T1接收了消费者发送的身份数据之后,在T2使用公钥对消费者进行身份验证;若身份验证通过,根据消费者发送的K及R1对Hash1进行哈希验证,具体地,根据K、R1及对应的算法计算出第三哈希值,并在第三哈希值与Hash1相同时,验证通过。
易于理解的是,当哈希验证通过的数量等于总人数时,说明所有消费者均提供了K和R1,则说明抽奖是公平的,通过哈希验证通过的消费者提供的K及智能合约中预设的公开规则或公式可以计算出中奖者,当哈希验证通过的数量小于总人数时,说明有消费者未提供K和R1,则表示未提供K和R1的消费者存在造假风险,此时通过哈希验证通过的消费者发送的K、哈希验证失败的消费者对应的DR1和DR2及智能合约中预设的公开规则计算出中奖者,由于确定中奖者的过程中区块链并不知道消费者身份,使得每个消费者的中奖概率一致,而且由于中奖规则是公开的,使抽奖更加公平。
本实施例通过接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;根据所述身份数据及所述参与数据的数量确定参与活动的总人数;在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者,通过区块链技术保证所有数据公开透明、不可更改,同时通过默克尔根验证、智能合约公平规则、常数或随机数确定抽奖者,排除了其他因素干扰,有效防止了抽奖过程中的作假行为,保障了抽奖的公平性和可信性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于零知识证明的数据处理程序,所述基于零知识证明的数据处理程序被处理器执行时实现如下操作:
接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;
在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;
根据所述身份数据及所述参与数据的数量确定参与活动的总人数;
在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;
在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者。
其中,计算机存储介质实现的步骤可参照本发明基于零知识证明的数据处理方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于零知识证明的数据处理方法,其特征在于,所述数据处理方法包括:
接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;
在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;
根据所述身份数据及所述参与数据的数量确定参与活动的总人数;
在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;
在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者。
2.如权利要求1所述的基于零知识证明的数据处理方法,其特征在于,所述在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者的步骤,包括:
在所述哈希验证通过的数量等于总人数时,根据哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者;
在所述哈希验证通过的数量小于总人数时,根据哈希验证失败的消费者对应的所述第一默认随机数和所述第二默认随机数、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者。
3.如权利要求2所述的基于零知识证明的数据处理方法,其特征在于,所述在所述哈希验证通过的数量小于总人数时,根据哈希验证失败的消费者对应的所述第一默认随机数和所述第二默认随机数、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者的步骤,包括:
在所述哈希验证通过的数量小于总人数时,根据所述哈希验证失败的消费者对应的第一默认随机数及所述第二默认随机数计算第二哈希值;
根据所述第二哈希值、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者。
4.如权利要求3所述的基于零知识证明的数据处理方法,其特征在于,所述根据所述第二哈希值、哈希验证通过的消费者对应的所述常数及所述智能合约中预设的公开规则确定中奖者的步骤,包括:
根据所述第二哈希值、所述哈希验证通过的消费者对应的常数、所述总人数及预设公式计算余数;
根据所述余数及所述智能合约中预设的公开规则确定中奖者。
5.如权利要求1至4中任一项所述的基于零知识证明的数据处理方法,其特征在于,所述根据所述身份数据及所述参与数据的数量确定参与活动的总人数的步骤之后,所述方法还包括:
根据所述活动数据确定活动的最低参与人数及最高参与人数;
在所述总人数小于所述最低参与人数或所述总人数大于所述最高参与人数时,返回接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围的步骤。
6.如权利要求1至4中任一项所述的基于零知识证明的数据处理方法,其特征在于,所述第一哈希值为所述常数及所述第一随机数基于默克尔树算法计算获得的根哈希值。
7.如权利要求1至4中任一项所述的基于零知识证明的数据处理方法,其特征在于,所述在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者的步骤之后,所述方法还包括:
向所述中奖者发送中奖凭证,以使所述中奖者根据所述中奖凭证向商家兑奖。
8.一种基于零知识证明的数据处理系统,其特征在于,所述数据处理系统包括区块链及消费者端;其中,
消费者端,用于在第一预设时间范围内向所述区块链发送身份数据及参与数据,并从智能合约中获取第二默认随机数,所述身份数据包括消费者公钥及其签名信息,所述参与数据包括第一哈希值及第一默认随机数;在第二预设时间范围内向所述区块链发送常数及第一随机数;
区块链,用于接收商家发送的活动数据,并根据所述活动数据确定第一预设时间范围及第二预设时间范围,所述第一预设时间范围为接收消费者发送的身份数据和所述参与数据的时间范围,所述第二预设时间范围为验证和确定中奖者的时间范围;在第一预设时间范围内接收所述身份数据及所述参与数据,并从智能合约中获取第二默认随机数;根据所述身份数据和所述参与数据的数量确定参与活动的总人数;在第二预设时间范围内接收消费者发送的常数及第一随机数,根据所述消费者公钥对所述签名信息进行身份验证,在身份验证通过后,根据所述常数及所述第一随机数对所述第一哈希值进行哈希验证;在所述哈希验证通过的数量小于或等于总人数时,根据所述常数及所述智能合约中预设的公开规则确定中奖者或根据所述第一默认随机数、所述第二默认随机数、所述常数及所述智能合约中预设的公开规则确定中奖者。
9.一种基于零知识证明的数据处理设备,其特征在于,所述基于零知识证明的数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于零知识证明的数据处理程序,所述基于零知识证明的数据处理程序配置为实现如权利要求1至7中任一项所述的基于零知识证明的数据处理方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有基于零知识证明的数据处理程序,所述基于零知识证明的数据处理程序被处理器执行时实现如权利要求1至7中任一项所述的基于零知识证明的数据处理方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910410797.5A CN110135909A (zh) | 2019-05-15 | 2019-05-15 | 基于零知识证明的数据处理方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910410797.5A CN110135909A (zh) | 2019-05-15 | 2019-05-15 | 基于零知识证明的数据处理方法、系统、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN110135909A true CN110135909A (zh) | 2019-08-16 |
Family
ID=67574778
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910410797.5A Pending CN110135909A (zh) | 2019-05-15 | 2019-05-15 | 基于零知识证明的数据处理方法、系统、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN110135909A (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110601819A (zh) * | 2019-09-26 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种对随机数的处理方法及相关设备 |
| CN112968769A (zh) * | 2021-03-03 | 2021-06-15 | 中国人民银行数字货币研究所 | 一种区块链中随机数的生成方法及装置 |
| CN114726534A (zh) * | 2022-03-28 | 2022-07-08 | 海南格子山网络科技有限公司 | 一种基于Solana区块链技术实现智能合约抽签的方法 |
| CN115640779A (zh) * | 2022-09-27 | 2023-01-24 | 山东工商学院 | 集成电路内部数据包路由的验证方法、装置、设备及介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060056621A1 (en) * | 2004-08-27 | 2006-03-16 | Zulfikar Ramzan | Provisional signature schemes |
| US20060137006A1 (en) * | 2004-12-17 | 2006-06-22 | Ramzan Zulfikar A | Use of modular roots to perform authentication including, but not limited to, authentication of validity of digital certificates |
| CN107682151A (zh) * | 2017-10-30 | 2018-02-09 | 武汉大学 | 一种gost数字签名生成方法及系统 |
| CN108269099A (zh) * | 2018-02-05 | 2018-07-10 | 桂林金发明科技开发有限公司 | 一种去中心化的抽奖方法 |
| CN109615422A (zh) * | 2018-11-29 | 2019-04-12 | 哈希未来(北京)科技有限公司 | 基于区块链的竞抽方法、系统以及存储介质 |
-
2019
- 2019-05-15 CN CN201910410797.5A patent/CN110135909A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060056621A1 (en) * | 2004-08-27 | 2006-03-16 | Zulfikar Ramzan | Provisional signature schemes |
| US20060137006A1 (en) * | 2004-12-17 | 2006-06-22 | Ramzan Zulfikar A | Use of modular roots to perform authentication including, but not limited to, authentication of validity of digital certificates |
| CN107682151A (zh) * | 2017-10-30 | 2018-02-09 | 武汉大学 | 一种gost数字签名生成方法及系统 |
| CN108269099A (zh) * | 2018-02-05 | 2018-07-10 | 桂林金发明科技开发有限公司 | 一种去中心化的抽奖方法 |
| CN109615422A (zh) * | 2018-11-29 | 2019-04-12 | 哈希未来(北京)科技有限公司 | 基于区块链的竞抽方法、系统以及存储介质 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110601819A (zh) * | 2019-09-26 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种对随机数的处理方法及相关设备 |
| CN110601819B (zh) * | 2019-09-26 | 2023-02-14 | 腾讯科技(深圳)有限公司 | 一种对随机数的处理方法、区块链节点装置及存储介质 |
| CN112968769A (zh) * | 2021-03-03 | 2021-06-15 | 中国人民银行数字货币研究所 | 一种区块链中随机数的生成方法及装置 |
| CN114726534A (zh) * | 2022-03-28 | 2022-07-08 | 海南格子山网络科技有限公司 | 一种基于Solana区块链技术实现智能合约抽签的方法 |
| CN115640779A (zh) * | 2022-09-27 | 2023-01-24 | 山东工商学院 | 集成电路内部数据包路由的验证方法、装置、设备及介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20220368596A1 (en) | Robust and Secure Proof of Space Based Mining | |
| US12015714B2 (en) | System and method for an electronic identity brokerage | |
| CN110135909A (zh) | 基于零知识证明的数据处理方法、系统、设备及存储介质 | |
| CN117136373A (zh) | 信息处理装置、信息处理方法和信息处理程序 | |
| WO2019034164A1 (zh) | 赛事投票系统及方法 | |
| US9992018B1 (en) | Generating cryptographic challenges to communication requests | |
| CN109432784A (zh) | 一种基于区块链的账号交易处理方法及装置 | |
| JP3216098U (ja) | インタラクティブ環境における広告の提供システム | |
| US20250184164A1 (en) | Blockchain-based systems and method for providing secure digital identities and affiliations for users via digital token | |
| CN110599145A (zh) | 一种基于智能合约的数据处理方法、装置以及存储介质 | |
| JP2020537391A (ja) | 宣言的スマート契約 | |
| US20240037618A1 (en) | System and platform for creating and managing fractionalized non-fungible tokens | |
| CN107563798A (zh) | 中奖数据处理方法及装置 | |
| JP6859645B2 (ja) | 乱数生成システム、乱数生成装置、乱数生成方法及びプログラム | |
| Judmayer et al. | Pay to win: Cheap, crowdfundable, cross-chain algorithmic incentive manipulation attacks on pow cryptocurrencies | |
| JP7186257B2 (ja) | プログラム、ゲームシステム及びゲームサービス提供方法 | |
| US20210260469A1 (en) | Quiz Game Processing Method and System | |
| CN110941680B (zh) | 一种数据处理方法、装置及存储介质 | |
| CN110365671B (zh) | 一种支持隐私保护的群智感知激励机制方法 | |
| KR102720594B1 (ko) | 블록체인 기반 검증 가능한 온라인 추첨 시스템 서비스 장치 및 방법 | |
| JP2004242816A (ja) | クイズ提供システム | |
| JP2001043278A (ja) | 通信ネットワーク上で行われるゲームとワールド・ワイド・ウェブを利用したポイント計算システム | |
| US20240356767A1 (en) | Data storage method, apparatus, electronic device, and non-transitory computer-readable storage medium | |
| JP2017046920A (ja) | 抽選システム、ユーザ端末機及びゲームシステム | |
| EP2954940B1 (en) | Communication of reward data between applications |
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 | ||
| RJ01 | Rejection of invention patent application after publication | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190816 |