CN108415686B - 随机数提供过程中的分账计算方法和装置 - Google Patents
随机数提供过程中的分账计算方法和装置 Download PDFInfo
- Publication number
- CN108415686B CN108415686B CN201711487171.1A CN201711487171A CN108415686B CN 108415686 B CN108415686 B CN 108415686B CN 201711487171 A CN201711487171 A CN 201711487171A CN 108415686 B CN108415686 B CN 108415686B
- Authority
- CN
- China
- Prior art keywords
- data
- random number
- commitment
- submitted
- data provider
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- 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/12—Accounting
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C15/00—Generating random numbers; Lottery apparatus
- G07C15/006—Generating random numbers; Lottery apparatus electronically
Abstract
本发明实施例提供一种随机数提供过程中的分账计算方法和装置,其中,方法包括:接收多个数据提供方提交的数据承诺并对数据提供方的账户进行固定金额冻结,接收数据承诺中欲提交的源随机数并经不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值相同,则接受源随机数并向数据提供方的账户返还已冻结的固定金额;对已接受的源随机数经不可逆算法进行计算,生成随机数并存储至区块链中;基于订购方提交的购买随机数的订单请求,将随机数提供给订购方,并向数据提供方支付预定劳务费。本发明实施例的方案基于随机数的生成过程和订单的交付过程,对各数据提供方进行分账结算,具有很强的可执行性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种随机数提供过程中的分账计算方法和装置。
背景技术
传统的网络环境中,随机数都由各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性。
随机数本身是一种数据资源,在很多领域都有应用,例如,对于多个主体之间的抽签或者随机分配等机制中的应用。例如,机动车购买的摇号,比赛的分组的抽签、彩票等领域,这些都会使用到随机数。
随机数最重要的特性在于要保证其产生的随机性,不能受到任何人的操控。如果某个节点提供的并不是随机数,而是在获得了一定信息的条件下,生成的有目的性的随机数,那么这个随机数就有可能影响到最终所应用事项的结果。
比如,节点可以通过有限次的实验来生成对其有利结果的随机数,这样也是不公平的。
发明内容
本发明提供了一种随机数提供过程中的分账计算方法和装置,基于随机数的生成过程和订单的交付过程,对各数据提供方进行分账结算,具有很强的可执行性,且执行效果显著。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种随机数提供过程中的分账计算方法,包括:
接收多个数据提供方提交的数据承诺并存储至区块链中,并对所述多个数据提供方的账户进行固定金额冻结,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;
接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数并向所述数据提供方的账户返还已冻结的所述固定金额;
对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;
基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方,并向所述数据提供方支付预定劳务费。
第二方面,提供了一种随机数提供过程中的分账计算装置,包括:
承诺存储模块,用于接收多个数据提供方提交的数据承诺并存储至区块链中,并对所述多个数据提供方的账户进行固定金额冻结,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;
承诺验证模块,用于接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数并向所述数据提供方的账户返还已冻结的所述固定金额;
随机数生成模块,用于对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;
随机数提供模块,用于基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方,并向所述数据提供方支付预定劳务费。
本发明提供的随机数提供过程中的分账计算方法和装置,以“数据承诺”的方式对数据提供方提交的源随机数进行承诺验证,以防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数计算生成的随机数的随机性。同时,本方案基于随机数的生成过程和订单的交付过程,对各数据提供方进行分账结算,具有很强的可执行性,且执行效果显著。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的随机数的生成逻辑示意图;
图2为本发明实施例的在商业环境中针对随机数提供过程中进行分账计算的原理图;
图3为本发明实施例示出的随机数提供过程中的分账计算方法流程图一;
图4为本发明实施例示出的随机数提供过程中的分账计算方法流程图二;
图5为本发明实施例示出的随机数提供过程中的分账计算装置的结构示意图一;
图6为本发明实施例示出的随机数提供过程中的分账计算装置的结构示意图二;
图7为本发明实施例示出的随机数提供过程中的分账计算装置的结构示意图三。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本方案改善了现有技术中,随机数的生成为由数据提供方各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间由于缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性的缺陷。其核心思想是基于各个数据提供方提交的源随机数,对这些源随机数经不可逆算法进行计算从而生成最终的随机数。
如图1所示,为本发明实施例的随机数的生成逻辑示意图。该生成逻辑为从不同的多个数据源获取多个源随机数,每个源随机数本身也可以是随机产生的。然后基于这些随机数经不可逆算法最终得到一个随机数。
在上述生成随机数的方案思想中,原则上只要有一个源随机数是随机产生,那么就可以保证最终得到的随机数具有较好的随机性。这种随机数生成方法可以引用到现有的各种商业环节中,为需要随机数的订购方提供有效的随机数。
如图2所示,本实施例给出了如何在商业环境中针对随机数提供过程中进行分账计算的方案,即采用“数据承诺+提交数据”的方式筛选用于计算随机数的各源随机数,然后基于各源随机数再计算生成随机数,并且将该筛选过程、随机数计算过程与区块链技术相结合。同时在这些过程中通过账户金额冻结和金额返还的方式对各数据提供方进行分账结算。首先,服务器先接收各数据提供方提交的数据承诺并存储至区块链中,同时对数据提供方的账户进行固定金额冻结,该数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值;然后,服务器接收多个数据提供方提交的之前数据承诺中欲提交的源随机数,将源随机数存储至区块链中,基于接收数据承诺及其相应的提交数据(包含源随机数)的先后顺序,一般处理提交数据的区块编号要大于数据承诺所在的区块编号(本实施例中区块编号均为按区块链的生成过程顺序编号);接着,对各源随机数经不可逆算法进行承诺验证,如果计算得到的承诺值均与数据提供方提交的数据承诺中的承诺值对应相同,则接受该源随机数并向数据提供方的账户返还已冻结的固定金额,并利用已接受的源随机数计算生成随机数并存储至区块链中;最后,基于订购方提交的购买随机数的订单请求,将生成的随机数提供给订购方,并向数据提供方支付预定劳务费。由于在筛选随机数的过程中,通过区块链对数据承诺、源随机数、随机数以及账户信息进行存储,保证了这些数据的不可篡改性,从而保证了最终生成的随机数的真实性以及分账结算结果的可信度。
下面通过多个实施例来进一步说明本申请的技术方案。
实施例一
基于上述针对随机数提供过程中的分账进行计算的方案思想,如图3所示,其为本发明实施例示出的随机数提供过程中的分账计算方法流程图一,该方法的执行主为设置在网络中的服务器。如图3所示,该随机数提供过程中的分账计算方法包括如下步骤:
S310,接收多个数据提供方提交的数据承诺并存储至区块链中,并对多个数据提供方的账户进行固定金额冻结,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值。
由于网络延迟等原因,各数据提供方提供源随机数的时间是不同步的,有早有晚。为了防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,因此本方案采用一种“数据承诺+提交数据”的方式(简称“数据承诺”)来限定数据提供方提交源随机数,以保证各数据提供方提供的源随机数是事先提供的,而不是在获知了其他数据提供方所提供的源随机数后再提供的。
所谓“数据承诺”方式提交源随机数即指,在各数据提供方提交源随机数之前,先提交针对欲提交的源随机数的数据承诺,该数据承诺的内容包括欲提交的源随机数所对应的承诺值,该承诺值为数据提供方对欲提交的源随机数经上述不可逆算法计算后获得,以用于后续服务器对接收到的该数据提供方提交的源随机数进行承诺验证。
同时,为了很好的利用区块链对数据承诺进行关联处理,在数据承诺中还包括用于数据提供方标识数据承诺的数据标识,例如该数据标识可以是数据承诺欲被处理的区块的区块编号,即第一区块编号;或者是用于标识基于源随机数所待生成的不同随机数的随机数编号;又或者是仅用于标识数据提供方自己提供的各数据承诺的数据编号。
在实际应用场景中,区块链的生成过程对于全网中各数据提供方都是公开透明的,数据提供方可以根据其掌握的当前区块链中正在生成的区块的区块编号,主动决定其提交的数据承诺所希望在哪个区块里被处理,并在提交的数据承诺中携带相应区块的第一区块编号;或者数据提供方可以根据其掌握的当前区块链中正在生成的区块中存储的随机数编号,主动决定其提交的数据承诺中对应的源随机数所希望被计算而得到的随机数,并在提交的数据承诺中携带相应随机数的随机数编号;又或是数据提供方为了区分其提交的各数据承诺而在提交的数据承诺中携带相应数据编号。
为了体现数据提供方提交的承诺值与区块之间的关联关系,在数据承诺中可同时包含该数据提供方的身份ID、上述第一区块编号和承诺值,并且该承诺值不仅可以为上述数据提供方对欲提交的源随机数直接经上述不可逆算法计算后获得,还可以是对欲提交的源随机数、数据提供方的身份ID以及第一区块编号所拼接后的字符串经上述不可逆算法计算后获得。
或者,为了体现数据提供方提交的承诺值与随机数的关联关系,在数据承诺中可同时包含该数据提供方的身份ID、上述随机数编号和承诺值,并且该承诺值不仅可以为上述数据提供方对欲提交的源随机数直接经上述不可逆算法计算后获得,还可以是对欲提交的源随机数、数据提供方的身份ID以及随机数编号所拼接后的字符串经上述不可逆算法计算后获得。
又或者,为了体现数据提供方提交的承诺值与提交的源随机数的关联关系,在数据承诺中可同时包含该数据提供方的身份ID、上述数据编号和承诺值,并且该承诺值不仅可以为上述数据提供方对欲提交的源随机数直接经上述不可逆算法计算后获得,还可以是对欲提交的源随机数、数据提供方的身份ID以及数据编号所拼接后的字符串经上述不可逆算法计算后获得。
上述不可逆算法可以为哈希算法,计算得到的承诺值为哈希值。
同时,服务器在接收到数据提供方提交的数据承诺后,会对该数据提供方的账户进行固定金额冻结,被冻结的固定金额可作为后续数据提供方履行提交源随机数的押金。
S320,接收多个数据提供方提交的数据承诺中欲提交的源随机数并存储至区块链中,并对各源随机数经不可逆算法进行承诺验证;
各数据提供方在提交完数据承诺后,接着会将该数据承诺中承诺值对应的源随机数提供给服务器。服务器在接收到各数据提供方提交的源随机数后,将源随机数存储至区块链中。基于接收数据承诺及其相应的提交数据(包含源随机数)的先后顺序,一般处理提交数据的区块编号要大于数据承诺所在的区块编号。
在实际应用场景中,在一个区块链中除了根区块外,任一区块中既可以存储区块编号指向当前区块的数据承诺,也可以存储区块编号指向当前区块之前的区块的数据承诺所对应的提交数据。但由于数据提供者在提交数据承诺后,一般会马上提交该数据承诺对应的提交数据,因此一般处理提交数据的区块编号不会大于数据承诺所在的区块编号太多(一般延后1-2个区块)。如果提交数据所在区块编号大于数据承诺所在的区块编号太多,那么提交该提交数据的数据提供方很可能是监听到了其他数据提供方提交的源随机数后,再上传的提交数据,存在较大的作弊嫌疑。
在服务器接收到上述多少个数据提供方提交的源随机数后,可将这些源随机数,按其各自对应的数据承诺所在区块链中的存储顺序,依次对各源随机数进行承诺验证。
具体地,对每个源随机数分别经上述不可逆算法进行计算得到承诺值,并将该承诺值与之前数据提供方提交的数据承诺中的承诺值进行比较,完成承诺验证。
S330,如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值相同,则接受数据提供方提交的源随机数并向数据提供方的账户返还已冻结的固定金额。
具体地,针对每个源随机数分别经上述不可逆算法进行计算得到承诺值,且该承诺值与之前数据提供方提交的数据承诺中的承诺值对应相同,则表明该数据提供方提交的该源随机数有效,服务器可接受该数据提供方提交的源随机数,以作为计算一个随机数所需的源随机数。同时,由于该用户提供方提交的源随机数有效,可以将之前对该数据提供方的账户冻结的固定金额全部返还给该数据提供方。
S340,对已接受的数据提供方提交的源随机数经不可逆算法进行计算,生成随机数并存储至区块链中。
例如,在计算随机数之前,可以预先指定用于计算得到一个随机数所需要的源随机数的数目。例如,本实施例可在数据提供方提交源随机数之后,通过对已接受的多个源随机数进行划分,以确定用于计算一个随机数所需的源随机数。
具体地,在接收到多个数据提供方提交的源随机数之后,可先对这些源随机数进行如上所述的承诺验证,并保留接受验证成功的源随机数;然后,对已接受的源随机数的数目进行统计,并根据用于计算随机数所需的源随机数的指定数目,对已接受的源随机数进行划分,形成至少一个数据组,每个数据组中包括指定数目的源随机数,以作为计算一个随机数所需的源随机数。然后,对每个数据组中的源随机数经不可逆算法进行计算,生成一个随机数并存储至区块链中。
S350,基于订购方提交的购买随机数的订单请求,将生成的随机数提供给订购方,并向数据提供方支付预定劳务费。
当订购方提交用于购买随机数的订单请求后,可以根据订单请求中的订单内容,如订单数量等将已生成的随机数提供给订购方。
这里需要说明的是,订购方提交订单请求与生产随机数数的过程,并没有严格的时间顺序,两个过程环节可以相对独立地完成。
当将随机数提供给订购方后,可以将订购方支付的订单费用作为劳务费分发给相应的数据提供方。
需要说明的是,本方案中分账结算的过程中产生的各种信息也可存储至区块链中,以保证分账结算结果的真实性。
本发明实施例提供的随机数提供过程中的分账计算方法,结合区块链技术,将随机数的生成过程引用到商业领域中,可为订购方提供供应随机数服务。本方案中产生随机数的过程可防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而提高生成随机数产生结果的随机性。本方案基于随机数的生成过程和订单的交付过程,对各数据提供方进行分账结算,具有很强的可执行性,且执行效果显著。同时,由于在提供随机数的过程中,通过区块链对数据承诺、源随机数、生成的随机数以及分账结算过程中的信息进行存储,保证了这些数据的不可篡改性,从而保证了最终计算得到的随机数以及分账结算的真实性。
实施例二
如图4所示,其为本发明实施例示出的随机数提供过程中的分账计算方法流程图二,该方法可视为图3所示方法的具体实现方式,主要针对账户金额冻结过程以及返还过程进行细化。如图4所示,该随机数提供过程中的分账计算方法包括如下步骤:
S410,接收多个数据提供方提交的数据承诺,判断数据提供方的账户余额是否大于预定余额,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值。
在接收到数据提供方提交的数据承诺之后,可先判断该数据提供方的账户余额是否大于预定余额。数据提供方的账户余额的多少直接影响到该数据提供方是否有资格参与提交数据承诺的过程。
S420,如果数据提供方的账户余额大于预定余额,则将数据承诺存储至区块链中,并对数据提供方的账户进行固定金额冻结。
如果数据提供方的账户余额大于预定余额,则认为该数据提供方有足够的账户余额用于后续的固定金额冻结,从而有资格参与提交数据承诺的过程。
如果数据提供方的账户余额小于预定余额,则认为该数据提供方没有足够的账户余额用于固定金额冻结,从而没有资格参与提交数据承诺的过程。
步骤S410~步骤S420可作为上述步骤S310的细化。
S430,接收多个数据提供方提交的数据承诺中欲提交的源随机数并存储至区块链中,并对各源随机数经不可逆算法进行承诺验证。
步骤S430上述步骤S320的内容相似。
在具体应用场景中,在接收到多个数据提供方提交的数据承诺中欲提交的源随机数并存储至区块链之后,如果该数据承诺对应的源随机数所在的区块编号大于且超出数据承诺所在区块编号预定值,则放弃对该源随机数的承诺验证并向数据提供方的账户返还已冻结的固定金额的部分金额。
具体地,如果提交数据(包含源随机数)所在区块编号大于数据承诺所在的区块编号太多,那么提交该提交数据的数据提供方很可能是监听到了其他数据提供方提交的源随机数后,再上传的提交数据,存在较大的作弊嫌疑。所以,如果数据承诺对应的源随机数所在的区块编号大于且超出数据承诺所在区块编号预定值(例如延后3个区块以上),则认为该数据提供方提交的源随机数存在作弊嫌疑,相应的服务器会确定该源随机数无效,并放弃对该源随机数的承诺验证。
当然,如果经上述对承诺组所在区块编号与源随机数所在区块编号进行比较后确定,该源随机数没有存在作弊可能,则服务器可以继续对数据提供方提交的源随机数经不可逆算法进行承诺验证。
S440,如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值相同,则接受数据提供方提交的源随机数并向数据提供方的账户返还已冻结的固定金额。
步骤S440与上述步骤S330的内容相同。
当然,在步骤S430之后,还可执行步骤S450。
S450,如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值不相同,则拒绝数据提供方提交的源随机数并向数据提供方的账户返还已冻结的固定金额的部分金额。
具体地,针对每个源随机数分别经上述不可逆算法进行计算得到承诺值,如果某个承诺值与之前数据提供方提交的数据承诺中的承诺值对应不相同,则表明该数据提供方提交的源随机数无效,服务器可拒绝该数据提供方提交的源随机数,该源随机数不可以作为计算任一个随机数所需的源随机数。同时,为了惩罚该数据提供方提交无效源随机数的行为,针对之前对该数据提供方的账户冻结的固定金额,只返还该固定金额的部分金额至该数据提供方的账户,以监督数据提供方禁止作弊。因此,一个数据提供方其账户余额的多少在一定程度上也反映出该数据提供方过去提交有效的源随机数的情况。
另外,根据对数据提供方提交的源随机数进行承诺验证的结果,还可设置数据提供方的诚信值;诚信值用于对数据提供方提交的数据承诺的可信度进行评价,诚信值越高,相应的可信度越高。
例如,当一个数据提供方提交的源随机数通过承诺验证时,可设置其诚信值在原有诚信值基础上增加1;当一个数据提供方提交的源随机数未通过承诺验证时,可设置其诚信值在原有诚信值基础上减少1。如此,当服务器再次接收到数据提供方提交的数据承诺后,就可以通过该数据提供方的诚信值,判断其提交的数据承诺的可信度,如果诚信值过低,则服务器可直接拒绝处理该数据提供方提交的数据承诺,以提高生成随机数的效率。
S460,对已接受的数据提供方提交的源随机数经不可逆算法进行计算,生成随机数并存储至区块链中。
S470,基于订购方提交的购买随机数的订单请求,将生成的随机数提供给订购方,并向数据提供方支付预定劳务费。
步骤S460~步骤S470与上述步骤S340~步骤S350的内容对应相同。
本发明实施例提供的随机数提供过程中的分账计算方法,在图3所示实施例的基础上,通过对数据提供方的账户余额的判断,确定数据提供方提交数据承诺的资格、通过向未通过承诺验证的数据提供方的账户返还已冻结的固定金额中的部分金额,以及为每个数据提供方设置诚信值的方式,使得分账结算更加合理,同时提高生成随机数的效率。
实施例三
如图5所示,其为本发明实施例示出的随机数提供过程中的分账计算装置的结构示意图一,该装置可以为设置在网络中的服务器,用于执行如图3所示的方法步骤。如图5所示,该随机数提供过程中的分账计算装置包括:
承诺存储模块510,用于接收多个数据提供方提交的数据承诺并存储至区块链中,并对多个数据提供方的账户进行固定金额冻结,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值;
承诺验证模块520,用于接收多个数据提供方提交的数据承诺中欲提交的源随机数并存储至区块链中,并对各源随机数经不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值相同,则接受数据提供方提交的源随机数并向数据提供方的账户返还已冻结的固定金额;
随机数生成模块530,用于对已接受的数据提供方提交的源随机数经不可逆算法进行计算,生成随机数并存储至区块链中;
随机数提供模块540,用于基于订购方提交的购买随机数的订单请求,将生成的随机数提供给订购方,并向数据提供方支付预定劳务费。
进一步地,如图6所示,在图5所示装置的基础上,上述承诺存储模块510可包括:
账户余额判断单元610,用于在接收数据提供方提交的数据承诺之后,判断数据提供方的账户余额是否大于预定余额;
承诺存储单元620,用于如果大于预定余额,则将数据承诺存储至区块链中。
进一步地,上述承诺验证模块520还可用于,
如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值不相同,则拒绝数据提供方提交的源随机数并向数据提供方的账户返还已冻结的固定金额的部分金额。
图6所示装置结构可用于执行图4所示方法步骤。
进一步地,如图7所示,在图5所示装置的基础上,还可包括:
区块编号判断模块710,用于如果数据承诺对应的源随机数所在的区块编号大于且超出数据承诺所在区块编号预定值,则触发承诺验证模块520放弃对该源随机数的承诺验证并向数据提供方的账户返还已冻结的固定金额的部分金额。
所述装置还可包括:
诚信值设置模块720,用于根据对数据提供方提交的源随机数进行承诺验证的结果,设置数据提供方的诚信值;
所述诚信值用于对数据提供方提交的数据承诺的可信度进行评价,诚信值越高,相应的可信度越高。
本发明实施例提供的随机数提供过程中的分账计算装置,结合区块链技术,将随机数的生成过程引用到商业领域中,可为订购方提供供应随机数服务。本方案中产生随机数的过程可防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而提高生成随机数产生结果的随机性。本方案基于随机数的生成过程和订单的交付过程,对各数据提供方进行分账结算,具有很强的可执行性,且执行效果显著。同时,由于在提供随机数的过程中,通过区块链对数据承诺、源随机数、生成的随机数以及分账结算过程中的信息进行存储,保证了这些数据的不可篡改性,从而保证了最终计算得到的随机数以及分账结算的真实性。
进一步地,通过对数据提供方的账户余额的判断,确定数据提供方提交数据承诺的资格、通过向未通过承诺验证的数据提供方的账户返还已冻结的固定金额中的部分金额,以及为每个数据提供方设置诚信值的方式,使得分账结算更加合理,同时提高生成随机数的效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种随机数提供过程中的分账计算方法,其特征在于,包括:
接收多个数据提供方提交的数据承诺并存储至区块链中,并对所述多个数据提供方的账户进行固定金额冻结,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;
接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数并向所述数据提供方的账户返还已冻结的所述固定金额;
对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;
基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方,并向所述数据提供方支付预定劳务费。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收所述数据提供方提交的所述数据承诺之后,判断所述数据提供方的账户余额是否大于预定余额;
如果大于所述预定余额,则将所述数据承诺存储至区块链中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值不相同,则拒绝所述数据提供方提交的源随机数并向所述数据提供方的账户返还已冻结的所述固定金额的部分金额。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述数据承诺对应的所述源随机数所在的区块编号大于且超出所述数据承诺所在区块编号预定值,则放弃对该源随机数的承诺验证并向所述数据提供方的账户返还已冻结的所述固定金额的部分金额。
5.根据权利要求1-4任一种所述的方法,其特征在于,所述方法还包括:
根据对所述数据提供方提交的所述源随机数进行承诺验证的结果,设置所述数据提供方的诚信值;
所述诚信值用于对所述数据提供方提交的所述数据承诺的可信度进行评价,所述诚信值越高,相应的可信度越高。
6.一种随机数提供过程中的分账计算装置,其特征在于,包括:
承诺存储模块,用于接收多个数据提供方提交的数据承诺并存储至区块链中,并对所述多个数据提供方的账户进行固定金额冻结,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值;
承诺验证模块,用于接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数并存储至区块链中,并对各所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值相同,则接受所述数据提供方提交的源随机数并向所述数据提供方的账户返还已冻结的所述固定金额;
随机数生成模块,用于对已接受的所述数据提供方提交的源随机数经所述不可逆算法进行计算,生成随机数并存储至区块链中;
随机数提供模块,用于基于订购方提交的购买随机数的订单请求,将生成的所述随机数提供给所述订购方,并向所述数据提供方支付预定劳务费。
7.根据权利要求6所述的装置,其特征在于,所述承诺存储模块包括:
账户余额判断单元,用于在接收所述数据提供方提交的所述数据承诺之后,判断所述数据提供方的账户余额是否大于预定余额;
承诺存储单元,用于如果大于所述预定余额,则将所述数据承诺存储至区块链中。
8.根据权利要求6所述的装置,其特征在于,所述承诺验证模块还用于,
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值不相同,则拒绝所述数据提供方提交的源随机数并向所述数据提供方的账户返还已冻结的所述固定金额的部分金额。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
区块编号判断模块,用于如果所述数据承诺对应的所述源随机数所在的区块编号大于且超出所述数据承诺所在区块编号预定值,则触发所述承诺验证模块放弃对该源随机数的承诺验证并向所述数据提供方的账户返还已冻结的所述固定金额的部分金额。
10.根据权利要求6-9任一种所述的装置,其特征在于,所述装置还包括:
诚信值设置模块,用于根据对所述数据提供方提交的所述源随机数进行承诺验证的结果,设置所述数据提供方的诚信值;
所述诚信值用于对所述数据提供方提交的所述数据承诺的可信度进行评价,所述诚信值越高,相应的可信度越高。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711487171.1A CN108415686B (zh) | 2017-12-29 | 2017-12-29 | 随机数提供过程中的分账计算方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711487171.1A CN108415686B (zh) | 2017-12-29 | 2017-12-29 | 随机数提供过程中的分账计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108415686A CN108415686A (zh) | 2018-08-17 |
CN108415686B true CN108415686B (zh) | 2020-07-14 |
Family
ID=63125662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711487171.1A Active CN108415686B (zh) | 2017-12-29 | 2017-12-29 | 随机数提供过程中的分账计算方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108415686B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783057A (zh) * | 2018-12-03 | 2019-05-21 | 北京建筑大学 | 一种区块链上随机数生成方法及装置 |
CN111290733B (zh) * | 2020-02-18 | 2022-07-19 | 杭州复杂美科技有限公司 | 结算方法、设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1421091A (zh) * | 1999-11-08 | 2003-05-28 | Mci全球通讯公司 | 用于通过互联网协议网络系统提供预付费电话业务的方法 |
CN1825350A (zh) * | 2006-03-22 | 2006-08-30 | 古铁锋 | 以押金为担保方式的防交易(现实及网络)欺诈系统 |
CN101197028A (zh) * | 2006-12-08 | 2008-06-11 | 祁勇 | 一种基于交易代码的电子支付方法 |
JP2009225356A (ja) * | 2008-03-18 | 2009-10-01 | Toshiba Corp | デジタル署名システム、装置及びプログラム |
CN104616486A (zh) * | 2013-11-01 | 2015-05-13 | 深圳市赛格导航科技股份有限公司 | 一种约车管理方法及其系统 |
CN104850984A (zh) * | 2014-05-13 | 2015-08-19 | 电子科技大学 | 一种离线电子货币支付的安全运行方法 |
CN105825383A (zh) * | 2016-03-18 | 2016-08-03 | 桂林电子科技大学 | 双方参与的随机数生成和验证方法 |
CN107330775A (zh) * | 2017-07-05 | 2017-11-07 | 贵州大学 | 一种基于比特币协议的首价密封交易方法 |
CN107342867A (zh) * | 2017-07-07 | 2017-11-10 | 北京牛链科技有限公司 | 签名验签方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8374916B2 (en) * | 2009-10-27 | 2013-02-12 | At&T Mobility Ii Llc | Secure mobile-based financial transactions |
-
2017
- 2017-12-29 CN CN201711487171.1A patent/CN108415686B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1421091A (zh) * | 1999-11-08 | 2003-05-28 | Mci全球通讯公司 | 用于通过互联网协议网络系统提供预付费电话业务的方法 |
CN1825350A (zh) * | 2006-03-22 | 2006-08-30 | 古铁锋 | 以押金为担保方式的防交易(现实及网络)欺诈系统 |
CN101197028A (zh) * | 2006-12-08 | 2008-06-11 | 祁勇 | 一种基于交易代码的电子支付方法 |
JP2009225356A (ja) * | 2008-03-18 | 2009-10-01 | Toshiba Corp | デジタル署名システム、装置及びプログラム |
CN104616486A (zh) * | 2013-11-01 | 2015-05-13 | 深圳市赛格导航科技股份有限公司 | 一种约车管理方法及其系统 |
CN104850984A (zh) * | 2014-05-13 | 2015-08-19 | 电子科技大学 | 一种离线电子货币支付的安全运行方法 |
CN105825383A (zh) * | 2016-03-18 | 2016-08-03 | 桂林电子科技大学 | 双方参与的随机数生成和验证方法 |
CN107330775A (zh) * | 2017-07-05 | 2017-11-07 | 贵州大学 | 一种基于比特币协议的首价密封交易方法 |
CN107342867A (zh) * | 2017-07-07 | 2017-11-10 | 北京牛链科技有限公司 | 签名验签方法和装置 |
Non-Patent Citations (3)
Title |
---|
《Generating Verifiable Random Numbers Without A Trusted Party》;Xiao Yang;《2014 Communications Security Conference (CSC 2014)》;20140524;全文 * |
《区块链技术与应用前瞻综述》;何蒲等;《计算机科学》;20170430;第44卷(第04期);全文 * |
《基于可验证随机数的电子彩票方案》;叶俊等;《计算机工程与应用》;20111231(第33期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108415686A (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chauhan et al. | Blockchain and scalability | |
CN107220130B (zh) | 一种在区块链的节点处实现的信息共识方法、装置及系统 | |
CN108848055B (zh) | 一种区块链共识方法、记账节点及节点 | |
KR102250810B1 (ko) | 트랜잭션 증명 방식의 합의 알고리즘이 적용된 블록체인 시스템 및 그 방법 | |
CN108365960B (zh) | 随机数提供方法和装置 | |
CN105488675B (zh) | 一种区块链的分布式共享总账构建方法 | |
CN108805627B (zh) | 媒体资源分配方法、装置、系统、介质及设备 | |
CN106934611B (zh) | 一种数据处理的方法及装置 | |
CN107392608A (zh) | 基于区块链系统的数字资产交易方法及区块链系统 | |
CN108390762B (zh) | 基于区块链的数据筛选方法和装置 | |
US11616649B2 (en) | Computer-implemented systems and methods relating to a binary blockchain comprising a pair of coupled blockchains | |
CN109859043B (zh) | 一种交易清算方法和交易清算系统 | |
CN109377338A (zh) | 基于区块链的金融产品处理方法及装置 | |
CN108415686B (zh) | 随机数提供过程中的分账计算方法和装置 | |
CN111010284B (zh) | 一种待共识区块的处理方法、相关装置及区块链系统 | |
CN111612453A (zh) | 基于区块链的去中心化交易方法、装置及电子设备 | |
CN111130790A (zh) | 基于区块链节点网络的共识出块方法 | |
CN112597240B (zh) | 一种基于联盟链的联邦学习的数据处理方法与系统 | |
CN110851531A (zh) | 协作边缘计算方法、区块链和协作边缘计算系统 | |
CN108334553B (zh) | 基于区块链的数据筛选方法和装置 | |
CN110378693B (zh) | 基于联盟区块链的分布式能源弱中心化交易管理系统 | |
CN112446771A (zh) | 在线拍卖系统、方法、装置和电子设备 | |
CN108334307B (zh) | 基于区块链的数据筛选方法和装置 | |
WO2022079431A1 (en) | Block reward management in blockchain | |
KR102178895B1 (ko) | PoP 기반 블록체인 보상 방법 및 장치 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |