CN112764714B - 基于智能合约的自激励随机数生成方法及终端设备 - Google Patents
基于智能合约的自激励随机数生成方法及终端设备 Download PDFInfo
- Publication number
- CN112764714B CN112764714B CN202110121437.0A CN202110121437A CN112764714B CN 112764714 B CN112764714 B CN 112764714B CN 202110121437 A CN202110121437 A CN 202110121437A CN 112764714 B CN112764714 B CN 112764714B
- Authority
- CN
- China
- Prior art keywords
- random number
- contract
- proposal
- node
- blockchain
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or 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
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Bioethics (AREA)
- Computational Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于智能合约的自激励随机数生成方法及终端设备,该方法包括:合约管理节点在区块链中部署提案合约,提案合约中定义提案通过的条件以及参与提案投票的条件;合约管理节点获取参与节点针对在区块链中发布的提案进行投票的投票结果,根据提案合约统计各提案的投票结果并确认有效提案,生成随机数合约并将其部署在区块链中;提案内容包括随机数生产节点的积分奖励数目和奖励方式;随机数合约用于将根据多个随机数生产节点提供的随机数种子产生的随机数提供给随机数消费节点,并扣除随机数消费节点的积分作为对随机数生产节点的奖励;本发明使用积分激励手段鼓励生产者积极参与随机数的生成,避免出现“合约的拒绝服务攻击”现象。
Description
技术领域
本发明属于区块链技术领域,更具体地,涉及一种基于智能合约的自激励随机数生成方法及终端设备。
背景技术
智能合约(Smart contract),是一种具有图灵完备的,可自动执行的特殊计算机协议。智能合约的概念由身兼计算机科学家及密码学专家的学者尼克·萨博在1994年首次提出。随着区块链等分布式技术的发展,智能合约迅速被以太坊为代表的区块链系统采纳。区块链中的智能合约,允许在没有第三方的情况下进行可信交易。更具体地讲,智能合约中的内置函数(Function)可以完成其内部状态(State)的转移,以促进外部交易状态的变更。分布式的区块链系统赋予了智能合约分布式、自动化、定制化、透明性、不可篡改等特征。具体特征表现如下:
分布式:智能合约,以去中心化的形式,部署在区块链的分布式网络中;
自动化:智能合约可以按照预先设定的内置函数,在有触发的情况下自动执行程序;
定制化:智能合约中的内置函数和相关逻辑,可以按照实际业务需求进行灵活定制;
透明性:合约内部的状态及状态转移的过程公开透明;
不可篡改:智能合约部署成功后,其内置函数和相关逻辑无法进行更改。基于以上属性,区块链智能合约的应用被迅速推广到民主投票、保险抵押、学历认证等领域。
随机数作为密码协议的核心基石,在区块链智能合约中被广泛使用,并发挥着重要的作用。以竞猜类合约应用为例,竞猜类游戏的核心逻辑是由智能合约生成无法预测的随机数,然后基于此随机数及其相关规则决定胜出者。安全的随机数生成器可以保证所有玩家在游戏中的竞猜是公平的,进而确保玩家获胜概率也是相同的。因此智能合约中的安全性决定了其上层应用的安全性。然而,近年来由于随机数的安全问题导致的合约被攻击的事件屡见不鲜,例如公有链EOS的EOSDice随机数攻击事件,以太坊的Fomo3D游戏随机数漏洞事件。
如何在智能合约内有效地产生安全可靠的随机数一直是学术界和工业界的一个难题。目前学术界和工业界已经提出了大量的智能合约方案,如以太坊上的Randao合约,其允许多个生成者在一定的周期内,按照提交-揭示(Commit Reveal)方法方式的随机数生成方案。即在提交阶段,Randao合约从多个随机数生产者收集随机数种子的哈希;然后在后续的揭示阶段中,每个生产者再提交相应的哈希。因为在提交阶段无法预测其他生产者的随机数种子,而在揭晓阶段已经提交哈希的随机数参与者又无法变成其之前的预设的随机数,因此最终的随机数保证了真正的随机性。再比如基于BLS签名产生随机数的方案,其核心思想是:将全部参与者分为m个组,第一组生成一个随机数SIG1,使用SIG1选取下一个组,被选中的组签名这个随机数得到SIG2,使用SIG2选取下一个组,再对SIG2签名得到SIG3。如此重复,直到第m个组生成SIGh作为最终的随机数输出。在比如在专利CN111596890A中提出的一种基于分布式协议的区块链随机数种子生成方法、设备及介质,其核心思想和Randao类似,采用了将多个随机源按照一定的顺序进行结合,然后通过散列函数生成随机数的种子的方式生成随机数。
然而,在目前的随机数合约方案中,均存在激励机制设计的问题,即:如果随机数的生产者无法按照预定的规则参与随机数的生成,则无法完成本轮次随机数的生成,具体表现为合约的拒绝服务攻击;这些设计上的缺陷导致最终随机数达不到预期的安全要求。
发明内容
针对现有技术的至少一个缺陷或改进需求,本发明提供了一种具有自动激励机制的智能合约随机数方案,该方案可以激励随机数生产者积极参与随机数网络的维护,进而保证随机数的安全性。更具体地说,方案中的生产者会因为合约中的积分(例如以太坊中的ERC 20虚拟货币)奖励而积极参与原始随机数种子的提交。由于生产者的个数不确定性和提交的原始随机数种子的不确定性,使系统的最终的随机数具有不确定性。在本方案中,积分的发行和积分的奖励规则全部透明,并交由积分的持有者共同管理和决策。同时,方案中引入了常任随机数生产者的机制(固定的能持续产生随机数的节点),包含了即使在激励不足的情况下,依然可以产生稳定的随机数,从而解决了合约拒绝服务的攻击的问题。重要的是,基于此方案的合约可以作为其他业务合约的底层随机数基础设施(提供者),被业务合约无缝调用,保证了业务合约的安全性。
为实现上述目的,按照本发明的第一个方面,提供了一种基于智能合约的自激励随机数生成方法,该方法包括:
合约管理节点在区块链中部署提案合约,并获取所述提案合约在所述区块链中的部署地址;所述提案合约中定义提案的格式、提案通过的条件以及参与提案投票的条件;
合约管理节点获取参与节点针对在区块链中发布的提案进行投票的投票结果,根据所述提案合约的定义统计各提案的所述投票结果并确认有效提案,以及,根据所述有效提案生成随机数合约并将其部署在区块链中;
所述提案的内容包括随机数生产节点的积分奖励数目和奖励方式;所述参与节点为随机数生产节点、随机数消费节点、任意的积分持有节点中的一个或多个;
在随机数产生过程中,所述随机数合约用于将根据多个随机数生产节点提供的随机数种子产生的随机数提供给随机数消费节点,并扣除随机数消费节点的积分作为对随机数生产节点的奖励。
优选的,上述自激励随机数生成方法还包括:
所述合约管理节点在区块链中部署积分合约,所述积分合约中初始化积分的总量和流通规则;合约管理节点根据所述积分合约和有效提案生成随机数合约。
优选的,上述自激励随机数生成方法,所述随机数合约还用于在生成随机数之后分别返还从随机数生产节点质押的保证积分给提供被使用的随机数种子的各随机数生产节点。
按照本发明的第二个方面,提供了一种基于智能合约的自激励随机数生成方法,其包括:
参与节点向合约管理节点部署在区块链中的提案合约中发布提案,所述提案的内容包括随机数生产节点的积分奖励数目和奖励方式;所述参与节点为随机数生产节点、随机数消费节点、任意的积分持有节点中的一个或多个;
参与节点对完成共识并存储在区块链中的一个或多个提案进行投票,以使合约管理节点在投票结束后获取各提案的投票结果,并根据所述提案合约确认有效提案并生成随机数合约。
优选的,上述自激励随机数生成方法,所述参与节点向合约管理节点部署在区块链中的提案合约中发布提案,包括:
参与节点生成提案对应的交易,所述交易中包括所述提案的名称和描述字段;使用交易调用提案合约在区块链中的部署地址,以使提案合约将交易的内容发布到区块链中。
优选的,上述自激励随机数生成方法,所述参与节点对完成共识并存储在区块链中的一个或多个提案进行投票,包括:
参与节点生成投票事件对应的交易,所述交易中包括所述投票事件对应的提案名称以及所投票数;使用交易调用提案合约在区块链中的部署地址,以使提案合约将交易的内容发布到区块链中。
优选的,上述自激励随机数生成方法还包括:
参与节点根据提案合约对合约管理节点生成的随机数合约进行校验,并将校验结果发布在区块链中。
按照本发明的第三个方面,提供了一种基于智能合约的自激励随机数生成方法,其包括:
第一阶段,多个随机数生产节点分别向合约管理节点部署在区块链中的随机数合约发送其选择的随机数种子的哈希;
第二阶段,各随机数生产节点向所述随机数合约发送各自在第一阶段选择的所述随机数种子,以使随机数合约对第二阶段获取的所述随机数种子与第一阶段获取的所述哈希之间的映射关系进行验证,并根据验证通过的所有随机数种子生成最终的随机数的哈希。
优选的,上述自激励随机数生成方法还包括:
各随机数生产节点在第一阶段向合约管理节点部署在区块链中的随机数合约发送规定数量的保证积分。在随机数生产节点在第二阶段提供的随机数种子与其在第一阶段获取提供的哈希之间的映射关系不匹配时,所述保证积分被随机数合约扣除。
按照本发明的第四个方面,提供了一种终端设备,其包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述计算机程序被所述处理单元执行时,使得所述处理单元执行上述任一项所述的自激励随机数生成方法的步骤。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)去中心积分激励:本申请使用激励手段鼓励随机数生产者积极参与。
(2)分布式生产:每个轮次的随机数由多个积极响应激励的生产者在共同生成。
(3)激励政策的透明:随机数合约在部署完成,随机数生产者的激励政策透明化,任何参与者都可以看到和审核。
(4)激励政策的去中心化管理:激励的政策制定和变更需要多个利益相关者参与,其中利益相关者包含随机数的生产者,合约管理者等;
(5)随机数使用的闭环:随机数的生产和使用,有经济学上货币流通价值保证,通过经济学的激励手段,保证了最终随机数生产的有效性。
附图说明
图1是本发明实施例提供的基于智能合约的自激励随机数生成方案中各参与角色的组织关系示意图;
图2是本发明实施例一提供的基于智能合约的自激励随机数生成方法的流程图;
图3是本发明实施例提供的提案合约的部署过程示意图;
图4是本发明实施例提供的提案合约、积分合约和随机数合约之间的层次关系图;
图5是本发明实施例二提供的基于智能合约的自激励随机数生成方法的流程图;
图6是本发明实施例提供的随机数激励政策的提案过程示意图;
图7是本发明实施例提供的提案过程中产生的交易内容的示意图;
图8是本发明实施例提供的随机数激励政策的投票过程示意图;
图9是本发明实施例提供的随机数合约的部署过程示意图;
图10是本发明实施例三提供的基于智能合约的自激励随机数生成方法的流程图;
图11是本发明实施例提供的随机数生成过程示意图;
图12是本发明实施例提供的随机数被调用时的过程示意图;
图13是本发明实施例提供的终端设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本申请提供的基于智能合约的自激励随机数生成方案中,主要涉及四个参与角色,分别是:智能合约的管理者,激励政策的制定者,随机数生产者和随机数消费者。
合约的管理者A:
合约的管理者A主要负责合约的管理,其管理范围包括但是不限以下操作:智能合约的生成,智能合约的部署,智能合约的紧急维护和智能合约的销毁等。合约的管理者可以为一个或多个。
激励政策的制定者B:
激励政策的制定者B主要负责生产者激励政策的制定,其权限范围包括但是不限以下操作:激励积分总量(类似以太坊ERC 20代币)的发行,随机数生产者每次参与随机数生成所得到的具体奖励和奖励个数的变更等。需要说明的是,为了实现不同角色的相互制衡,本申请规定激励政策的制定者B和合约的管理者A不允许为同一个,且激励政策的制定者必须是多个。
随机数生产者C:
随机数的生产者C主要负责向合约提供随机源以获取对应的积分奖励。随机数生产者C的个数以及提供的随机数种子,共同决定了最终的随机数的质量。随机数的生产者必须是多个。
随机数消费者D:
随机数消费者D使用积分付费以获取随机数服务。随机数消费者D可以为其他部署在同一区块链上的业务合约或者外部调用者。随机数消费者D可以为一个或者多个,具体个数不做限制。
各个角色的组织关系如图1所示,具体而言:
(1)合约的管理者对初始投票合约(即提案合约)进行部署,并公布相关提案的内容和调用方式;
(2)激励政策制定者按照多人参与的原则制定具体的激励措施(即提案),并发布到初始投票合约中;
(3)合约的管理者根据提案的投票结果部署积分发行合约和随机数合约,投票结果为有效的激励措施以内置函数的形式固化在随机数合约中;
(4)随机数生产者提交原始随机数并获取相应激励;
(5)随机数消费者使用随机数;
(6)激励措施的变更,按照步骤(2)和(3)进行调整。
图2是本发明实施例一提供的一种基于智能合约的自激励随机数生成方法,参见图2,该方法包括:
步骤101、合约管理节点在区块链中部署提案合约,所述提案合约中定义提案通过的条件以及参与提案投票的条件;
本实施例的执行主体为区块链中的合约管理节点,该合约管理节点可以为用户终端或者服务器。
合约管理节点可以为参与自激励随机数生成的合约的管理者A,图3是提案合约的部署过程示意图,合约的管理者A生成提案合约C1,并将该提案合约C1部署到区块链系统中。此区块链系统可以是任意一个,本申请不做具体要求。提案合约C1主要用于对提案的格式、提案通过的条件以及参与提案投票的条件进行规定。
下面给出一个提案合约C1的一个具体示例,从示例中可以看出提案合约C1中有关于提案的名称字段和描述字段。
此外,提案合约C1中还必须包含提案通过的要求,举例说明,提案通过的相关要求可以是:在规定的时间周期内比如有超过51%的参与者通过;同时提案合约C1还必须包含参与投票的条件,举例说明,相关的条件可以是:每个参与者有多少票,票的个数与持有的积分的关系;拥有投票权的最低积分持有限制等。
在对提案合约C1的内容进行撰写和编译后,合约的管理者A将提案合约C1部署在区块中,待到区块链完成确认后,返回一个合约的部署地址add1给合约的管理者A。
步骤102、合约管理节点获取参与节点针对在区块链中发布的提案进行投票的投票结果,根据所述提案合约的规定统计各提案的所述投票结果并确认有效提案,以及,根据所述有效提案生成随机数合约并将其部署在区块链中;
本实施例中,区块链中的各个参与节点向区块链中发布关于随机数生产激励政策的提案,本申请对提案的内容不做限制,但是至少包括两个方面:随机数生产节点的积分奖励数目和奖励方式;参与节点,即激励政策的制定者B可以为随机数生产节点、随机数消费节点、任意的积分持有节点中的一个或多个。
在提案被创建并存储在区块链中之后,各参与节点可对一个或多个提案进行投票;具体而言,提案合约C1将各参与节点提供的提案写入到区块链中,区块链对提案进行共识,提案合约C1将完成共识的提案存储在区块链中,并且任一方均可见;进一步地,本申请限制可参与投票的节点为具有规定数量积分的参与节点,未持有积分或者积分持有量低于规定数量的参与节点不能进行投票。各参与节点依据提案合约的规定进行投票,举例说明:参与节点可投的票数与其持有的积分数量正相关,一个积分允许投一票等;每个提案的投票结束时间可由提案者规定,或者统一限定,但是不得少于24个小时。
投票结束后,合约管理节点根据提案合约C1的规定统计各提案的投票结果,并从中确认有效提案,例如:在投票结束之后,如果某个提案的得票率51%,则该投票为通过状态,否则提案被放弃。如果同时由多个提案通过,则从中选出得票数最高的提案作为最终的有效提案;然后,合约管理节点根据有效提案生成随机数合约,并按照提案的规则将随机数合约C3部署在区块链中。在一个具体示例中,有效提案以内置函数的形式固化在随机数合约C3中。
在随机数产生过程中,所述随机数合约C3用于将根据多个随机数生产节点提供的随机数种子产生的随机数提供给随机数消费节点,并扣除随机数消费节点的积分作为对随机数生产节点的奖励。
区块链中的随机数生产节点提供随机数种子,随机数合约C3根据有效的随机数种子生成随机数并将其提供给随机数消费节点之后,会自动扣除随机数消费节点的积分并按照有效提案的规定将该积分分发给提供有效的随机数种子的各个随机数生产节点,作为对随机数生产者的奖励,从而激励随机数生产节点积极响应随机数的生产,避免出现“合约的拒绝服务攻击”现象。
在一个可选的实施方式中,上述自激励随机数生成方法还包括:
合约管理节点在区块链中部署积分合约,所述积分合约中初始化积分的总量和流通规则;合约管理节点根据所述积分合约和有效提案生成随机数合约。
本实施例中,合约的管理者A生成积分合约C2,并在合约中初始化相关的积分和流通规则,举例说明,积分合约C2完成以下初始化内容:
a)积分的初始化总数;
b)积分和法定货币的兑换汇款(固定汇率或者浮动汇率);
c)积分和法定货币的交易方式;
d)积分的流通方式;
e)积分的发行规则,在一个具体的示例中,积分的发行规则可以使用以太坊ERC20代币的方式实现。
合约管理节点根据积分合约C2和有效提案生成随机数合约C3,这其中涉及到提案合约C1、积分合约C2和随机数合约C3之间的关系,如图4所示,其中,提案合约C1负责政策提案和投票,积分合约C2负责稳定按照某种固定的规则生成积分,随机数合约C3用于生产随机数以供其他业务合约C4的调用,并对随机数生产节点进行积分奖励。
本实施例通过设置积分合约,使随机数的生产和使用有经济学上货币流通价值保证。通过经济学的激励手段,保证了最终随机数生产的有效性。
在一个可选的实施方式中,随机数合约还用于在生成随机数之后分别返还从随机数生产节点质押的保证积分给提供被使用的随机数种子的各随机数生产节点。
本实施例中,各个随机数生产节点在向随机数合约提供随机数种子时同时上缴规定数量的保证积分,如果随机数生产节点提供的随机数种子为可用于最终随机数生成的有效积分,则随机数合约将在随机数生成并被消费之后返还该保证积分,否则扣除随机数生产节点的保证积分;通过此种方式限制各随机数生产节点提供高质量的随机数种子,保证了最终随机数生产的有效性。
图5是本发明实施例二提供的一种基于智能合约的自激励随机数生成方法,参见图5,该方法包括:
步骤201、参与节点向合约管理节点部署在区块链中的提案合约中发布提案,所述提案的内容包括随机数生产节点的积分奖励数目和奖励方式;所述参与节点为随机数生产节点、随机数消费节点、任意的积分持有节点中的一个或多个;
本实施例的执行主体为区块链中的参与节点,该参与节点可以为用户终端或者服务器。
在合约管理节点将提案合约C1部署到区块链中后,各参与节点向提案合约C1中提出相关的提案。本实施例中,参与节点可以是任何利益相关方,如随机数的生产者、随机数的消费者和任意积分持有者等。本申请对提案的内容不做限制,但是至少包括两个方面:随机数生成者的奖励数目和奖励方式。
在一个可选的实施方式中,所述参与节点向合约管理节点部署在区块链中的提案合约中发布提案,包括:
参与节点生成提案对应的交易,所述交易中包括所述提案的名称和描述字段;使用交易调用提案合约在区块链中的部署地址,以使提案合约将交易的内容发布到区块链中。
图6是本实施例提供的随机数激励政策的提案过程示意图,参见图6,具体的提案方法如下:
a)参与节点按照提案合约C1的规定生成含有提案P说明的交易T1,交易T1中必须含有提案的名称和描述字段,如图7所示;
b)使用交易T1调用提案合约C1的部署地址add1中的setProposal方法(以实施例一中提案合约为例);
c)提案合约C1执行setProposal方法,将交易T1对应的提案内容写入到区块链中;
d)待区块链完成共识后,提案P将被存储在区块链中,并且任何均可见。
步骤202、参与节点对完成共识并存储在区块链中的一个或多个提案进行投票,以使合约管理节点在投票结束后获取各提案的投票结果,并根据所述提案合约确认有效提案并生成随机数合约。
图8是本实施例提供的随机数激励政策的投票过程示意图,参见图8,在提案创建后,积分的持有人可参与提案的投票。本申请限制可参与投票的节点为具有规定数量积分的参与节点,未持有积分或者积分持有量低于规定数量的参与节点不能进行投票。各参与节点依据提案合约的规定进行投票,举例说明:参与节点可投的票数与其持有的积分数量正相关,一个积分允许投一票等;每个提案的投票结束时间可由提案者规定,或者统一限定,但是不得少于24个小时。激励政策(即提案)的投票过程在透明的提案合约中进行,任何参与节点均可审计。投票结束后,合约管理节点根据提案合约C1的规定统计各提案的投票结果,并从中确认有效提案,例如:在投票结束之后,如果某个提案的得票率51%,则该投票为通过状态,否则提案被放弃。如果同时由多个提案通过,则从中选出得票数最高的提案作为最终的有效提案。
在一个可选的实施方式中,参与节点采用往提案合约内发布交易的方式对提案进行投票;
具体而言,参与节点生成投票事件对应的交易T2,该交易T2中包括投票事件对应的提案名称以及所投票数;使用交易T2调用提案合约C1的部署地址add1中的setProposal方法;提案合约C1执行setProposal方法,将交易T2对应的投票内容写入到区块链中。
进一步地,参与节点还根据提案合约对合约管理节点生成的随机数合约进行校验,并将校验结果发布在区块链中。
图9是本实施例提供的随机数合约的部署过程示意图,参见图9,按照提案的规则,合约管理节点对随机数合约C3进行部署。为了保证公正性,系统允许参与节点对随机数合约C3进行校验,校验的原则为随机数合约C3满足提案合约C1中的提案要求,仅当校验成功时,区块链系统才认为随机数合约C3有效。
随机数激励政策的变更遵循上述提案、投票的原则,执行步骤201、202对激励政策进行变更。
图10是本发明实施例三提供的一种基于智能合约的自激励随机数生成方法,本实施例方法的执行主体为区块链中的随机数生产节点,该随机数生产节点可以为用户终端或者服务器。
参见图10,该方法包括:
步骤301、第一阶段,多个随机数生产节点分别向合约管理节点部署在区块链中的随机数合约发送其选择的随机数种子的哈希;
步骤302、第二阶段,各随机数生产节点向所述随机数合约发送各自在第一阶段选择的所述随机数种子,以使随机数合约对第二阶段获取的所述随机数种子与第一阶段获取的所述哈希之间的映射关系进行验证,并根据验证通过的所有随机数种子生成最终的随机数的哈希。
作为一个优选的示例,上述自激励随机数生成方法还包括:
各随机数生产节点在第一阶段向合约管理节点部署在区块链中的随机数合约发送规定数量的保证积分,所述保证积分在随机数生产节点在第二阶段提供的随机数种子与其在第一阶段获取提供的哈希之间的映射关系不匹配时被随机数合约扣除。
采用本方式,可以限制各随机数生产节点提供高质量的随机数种子,保证了最终随机数生产的有效性。
本申请采用了分阶段的随机数生成方法,但是不对随机数生成的具体方法做限制,具体的随机数生成方式同样可以采用提案和投票的方式由多方共同决定,以提案的结果为准。在一个具体的示例中,选择commit-open方案为例进行阐释。图10是本实施例提供的随机数生成过程示意图,参见图11,本示例采用分轮次分阶段的方式生成随机数,具体而言,不同的区块被分为不同的轮次,在每个轮次内,轮次以区块链的块号作为区分。在每个轮次内依次执行如下操作:原始随机数哈希提交阶段、原始随机数揭晓阶段,和随机数计算阶段。
a)原始随机数哈希提交阶段:在该阶段约定的时间窗口期内,随机数生产者向随机数合约C3发送规定数量个保证积分,同时附上其任意挑选的随机数seed_i的哈希HASH,记作hash_i。此处增加保证积分的目的是保证在随机数的揭晓阶段随机数生产者能如实提供原始随机数seed_i。
b)原始随机数揭晓阶段:在该阶段约定的时间窗口期内,各个随机数生产者向随机数合约C3发送各自在第一阶段选中的随机数seed_i。然后,随机数合约C3检查随机数seed_i的正确性。检查的方法如下:检查seed_i与hash_i映射关系是否正确,即判断hash_i是否等于Hash(seed_i)。如果相同则保存该seed_i,否则放弃该seed_i,同时扣除该随机数生产者的保证积分。
c)随机数计算阶段:在第二阶段的时间窗口结束后,随机数合约C3收集所有第二阶段验证成功的seed_i,以seed_1,seed_2,…,seed_n作为最终的随机数Hash:
如图12所示,最终的随机数产生后,随机数合约C3执行以下步骤:
a)存储本轮随机数到当前区块内;
b)向随机数的消费者返回结果;需要说明的是,随机数的消费者可以是其他业务合约C4,其他业务合约C4可以调用随机数合约C3产生的随机数;也可以是随机数消费节点,该随机数消费节点可以为用户终端或者服务器;
c)返还在原始随机数HASH提交阶段质押的积分给随机数生产节点;
d)扣去随机数的消费者的相关积分,作为本轮次对随机数生产节点的奖励。
参见图13,其示出了本申请实施例所涉及的一种终端设备的结构示意图,该终端设备可以用于实施例一或实施例二或实施例三中的自激励随机数生成方法。如图13所示,终端设备400可以包括:至少一个中央处理器401,至少一个网络接口404,用户接口403,存储器405,至少一个通信总线402。
其中,通信总线402用于实现这些组件之间的连接通信。
其中,用户接口403可以包括显示屏(Display)、摄像头(Camera),可选用户接口403还可以包括标准的有线接口、无线接口。
其中,网络接口404可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,中央处理器401可以包括一个或者多个处理核心。中央处理器401利用各种接口和线路连接整个终端400内的各个部分,通过运行或执行存储在存储器405内的指令、程序、代码集或指令集,以及调用存储在存储器405内的数据,执行终端400的各种功能和处理数据。可选的,中央处理器401可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。中央处理器401可集成中央中央处理器(Central Processing Unit,CPU)、图像中央处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到中央处理器401中,单独通过一块芯片进行实现。
其中,存储器405可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器405包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器405可用于存储指令、程序、代码、代码集或指令集。存储器405可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器405可选的还可以是至少一个位于远离前述中央处理器401的存储装置。如图13所示,作为一种计算机存储介质的存储器405中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
在图13所示的终端设备400中,用户接口403主要用于为用户提供输入的接口,获取用户输入的数据;而处理器401可以用于调用存储器405中存储的自激励随机数生成程序,并具体执行实施例一、实施例二或实施例三中的方法步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现实施例一、实施例二或实施例三中的方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (9)
1.一种基于智能合约的自激励随机数生成方法,其特征在于,包括:
合约管理节点在区块链中部署提案合约,所述提案合约中定义提案通过的条件以及参与提案投票的条件;
合约管理节点获取参与节点针对在区块链中发布的提案进行投票的投票结果,根据所述提案合约的定义统计各提案的所述投票结果并确认有效提案,以及,根据所述有效提案生成随机数合约并将其部署在区块链中;
所述提案的内容包括随机数生产节点的积分奖励数目和奖励方式;所述参与节点为随机数生产节点、随机数消费节点、任意的积分持有节点中的一个或多个;
在随机数产生过程中,所述随机数合约用于将根据多个随机数生产节点提供的随机数种子产生的随机数提供给随机数消费节点,并扣除随机数消费节点的积分作为对随机数生产节点的奖励。
2.如权利要求1所述的自激励随机数生成方法,其特征在于,还包括:
所述合约管理节点在区块链中部署积分合约,所述积分合约中初始化积分的总量和流通规则;合约管理节点根据所述积分合约和有效提案生成随机数合约。
3.如权利要求1或2所述的自激励随机数生成方法,其特征在于,所述随机数合约还用于在生成随机数之后分别返还从随机数生产节点质押的保证积分给提供被使用的随机数种子的各随机数生产节点。
4.一种基于智能合约的自激励随机数生成方法,其特征在于,包括:
参与节点向合约管理节点部署在区块链中的提案合约中发布提案,所述提案的内容包括随机数生产节点的积分奖励数目和奖励方式;所述参与节点为随机数生产节点、随机数消费节点、任意的积分持有节点中的一个或多个;
参与节点对完成共识并存储在区块链中的一个或多个提案进行投票,以使合约管理节点在投票结束后获取各提案的投票结果,并根据所述提案合约确认有效提案并生成随机数合约。
5.如权利要求4所述的自激励随机数生成方法,其特征在于,所述参与节点向合约管理节点部署在区块链中的提案合约中发布提案,包括:
参与节点生成提案对应的交易,所述交易中包括所述提案的名称和描述字段;使用交易调用提案合约在区块链中的部署地址,以使提案合约将交易的内容发布到区块链中。
6.如权利要求4所述的自激励随机数生成方法,其特征在于,所述参与节点对完成共识并存储在区块链中的一个或多个提案进行投票,包括:
参与节点生成投票事件对应的交易,所述交易中包括所述投票事件对应的提案名称以及所投票数;使用交易调用提案合约在区块链中的部署地址,以使提案合约将交易的内容发布到区块链中。
7.如权利要求4所述的自激励随机数生成方法,其特征在于,还包括:
参与节点根据提案合约对合约管理节点生成的随机数合约进行校验,并将校验结果发布在区块链中。
8.一种基于智能合约的自激励随机数生成方法,其特征在于,包括:
第一阶段,多个随机数生产节点分别向合约管理节点部署在区块链中的随机数合约发送其选择的随机数种子的哈希;
第二阶段,各随机数生产节点向所述随机数合约发送各自在第一阶段选择的所述随机数种子,以使随机数合约对第二阶段获取的所述随机数种子与第一阶段获取的所述哈希之间的映射关系进行验证,并根据验证通过的所有随机数种子生成最终的随机数的哈希;
各随机数生产节点在第一阶段向合约管理节点部署在区块链中的随机数合约发送规定数量的保证积分,所述保证积分在随机数生产节点在第二阶段提供的随机数种子与其在第一阶段获取提供的哈希之间的映射关系不匹配时被随机数合约扣除。
9.一种终端设备,其特征在于,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述计算机程序被所述处理单元执行时,使得所述处理单元执行权利要求1~3、4~7或8中任一项所述的自激励随机数生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110121437.0A CN112764714B (zh) | 2021-01-28 | 2021-01-28 | 基于智能合约的自激励随机数生成方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110121437.0A CN112764714B (zh) | 2021-01-28 | 2021-01-28 | 基于智能合约的自激励随机数生成方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764714A CN112764714A (zh) | 2021-05-07 |
CN112764714B true CN112764714B (zh) | 2023-10-03 |
Family
ID=75707491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110121437.0A Active CN112764714B (zh) | 2021-01-28 | 2021-01-28 | 基于智能合约的自激励随机数生成方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764714B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783057A (zh) * | 2018-12-03 | 2019-05-21 | 北京建筑大学 | 一种区块链上随机数生成方法及装置 |
CN110427782A (zh) * | 2019-07-23 | 2019-11-08 | 杭州云象网络技术有限公司 | 一种基于区块链的随机数生成方法 |
CN110555724A (zh) * | 2019-08-27 | 2019-12-10 | 北京艾摩瑞策科技有限公司 | 在区块链上向投票平台使用者发送奖励的方法及装置 |
CN110599132A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种奖励数据的生成方法、装置及计算机可读存储介质 |
CN110766554A (zh) * | 2019-09-29 | 2020-02-07 | 南京金宁汇科技有限公司 | 基于多中心化管理的智能合约共识方法、系统及存储介质 |
CN110868286A (zh) * | 2018-12-29 | 2020-03-06 | 北京版全家科技发展有限公司 | 一种基于区块链智能合约生成随机数的方法 |
KR20200096045A (ko) * | 2019-02-01 | 2020-08-11 | 한국전자통신연구원 | 블록체인 생성 장치, 그것의 블록체인을 샤딩하는 방법 및 그것을 포함하는 시스템 |
CN111596890A (zh) * | 2020-04-16 | 2020-08-28 | 浪潮云信息技术股份公司 | 一种基于分布式协议的区块链随机数种子生成方法、设备及介质 |
WO2020258925A1 (zh) * | 2019-06-28 | 2020-12-30 | 京东数字科技控股有限公司 | 基于区块链的业务信息处理方法、设备及可读存储介质 |
-
2021
- 2021-01-28 CN CN202110121437.0A patent/CN112764714B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783057A (zh) * | 2018-12-03 | 2019-05-21 | 北京建筑大学 | 一种区块链上随机数生成方法及装置 |
CN110868286A (zh) * | 2018-12-29 | 2020-03-06 | 北京版全家科技发展有限公司 | 一种基于区块链智能合约生成随机数的方法 |
KR20200096045A (ko) * | 2019-02-01 | 2020-08-11 | 한국전자통신연구원 | 블록체인 생성 장치, 그것의 블록체인을 샤딩하는 방법 및 그것을 포함하는 시스템 |
WO2020258925A1 (zh) * | 2019-06-28 | 2020-12-30 | 京东数字科技控股有限公司 | 基于区块链的业务信息处理方法、设备及可读存储介质 |
CN110427782A (zh) * | 2019-07-23 | 2019-11-08 | 杭州云象网络技术有限公司 | 一种基于区块链的随机数生成方法 |
CN110555724A (zh) * | 2019-08-27 | 2019-12-10 | 北京艾摩瑞策科技有限公司 | 在区块链上向投票平台使用者发送奖励的方法及装置 |
CN110599132A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种奖励数据的生成方法、装置及计算机可读存储介质 |
CN110766554A (zh) * | 2019-09-29 | 2020-02-07 | 南京金宁汇科技有限公司 | 基于多中心化管理的智能合约共识方法、系统及存储介质 |
CN111596890A (zh) * | 2020-04-16 | 2020-08-28 | 浪潮云信息技术股份公司 | 一种基于分布式协议的区块链随机数种子生成方法、设备及介质 |
Non-Patent Citations (1)
Title |
---|
陈杰 ; 张再跃 ; 张晓如 ; .融合IPFS与以太坊的爬虫智能合约研究.软件导刊.2019,(第03期),206-209. * |
Also Published As
Publication number | Publication date |
---|---|
CN112764714A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11922402B2 (en) | System and method for authorizing blockchain network transactions | |
US11107321B2 (en) | Distributed ledger based gaming system | |
US20180373984A1 (en) | Architectures, systems and methods having segregated secure functions and public functions | |
CN107979585B (zh) | 一种数据处理方法、应用客户端及系统 | |
US11813533B2 (en) | User registration | |
CN110163590A (zh) | 基于区块链的缴费代扣方法及装置、电子设备、存储介质 | |
CN107742352A (zh) | 基于区块链及智能合约的去中心化抽签/排队方法及系统 | |
CN108805707A (zh) | 基于区块链的作品版权收益分配方法和装置 | |
CN109360091A (zh) | 一种基于区块链的随机对象选取方法和装置 | |
CN105913174A (zh) | 一种基于区块链的彩票发行方法 | |
KR20210008111A (ko) | 트랜잭션 증명 방식의 합의 알고리즘이 적용된 블록체인 시스템 및 그 방법 | |
CN103460261A (zh) | 用于参与数字门使能的基于彩票票券的游戏的方法 | |
CN110046480A (zh) | 基于区块链的作品版权分配方法和装置 | |
CN109389399A (zh) | 基于区块链的博彩方法、装置、计算机设备及存储介质 | |
CN114902195A (zh) | 应用程序协作方法、计算机程序以及应用程序协作系统 | |
Laurence | Introduction to blockchain technology | |
CN114362987B (zh) | 一种基于区块链和智能合约的分布式投票系统及方法 | |
CN106920097A (zh) | 一种量子链共识协议的生成时间块链方法 | |
CN108805664A (zh) | 一种基于区块链的责任彩票信息公开方法 | |
CN112764714B (zh) | 基于智能合约的自激励随机数生成方法及终端设备 | |
CN110458541A (zh) | 基于区块链的对象置换方法及装置 | |
KR102104646B1 (ko) | 블록 체인 기반의 복권 발행 방법 및 시스템 | |
US20230073427A1 (en) | Decentralized hard exchange | |
Sahitya et al. | D-lotto: the lottery dapp with verifiable randomness | |
Ahuja et al. | A Regulatory System for Optimal Legal Transaction Throughput in Cryptocurrency Blockchains |
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 |