CN107820690B - 信息选取方法、装置、电子设备及计算机可读存储介质 - Google Patents

信息选取方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN107820690B
CN107820690B CN201780001835.0A CN201780001835A CN107820690B CN 107820690 B CN107820690 B CN 107820690B CN 201780001835 A CN201780001835 A CN 201780001835A CN 107820690 B CN107820690 B CN 107820690B
Authority
CN
China
Prior art keywords
information
user
block chain
block
user information
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
Application number
CN201780001835.0A
Other languages
English (en)
Other versions
CN107820690A (zh
Inventor
陈敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudminds Shanghai Robotics Co Ltd
Original Assignee
Cloudminds Chengdu Technologies Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cloudminds Chengdu Technologies Co ltd filed Critical Cloudminds Chengdu Technologies Co ltd
Publication of CN107820690A publication Critical patent/CN107820690A/zh
Application granted granted Critical
Publication of CN107820690B publication Critical patent/CN107820690B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本公开公开了一种信息选取方法、装置、电子设备及计算机可读存储介质,所述方法包括:获取参与信息选取的用户的用户信息;将用户信息存储到区块链中;根据区块链中存储的信息选取算法,在存储到区块链中的所述用户信息中选取出目标信息。通过本公开,将参与信息选取的用户信息和选取出的目标信息不可篡改,不可伪造的记录到区块链中;信息选取算法存储于区块链中,所有参与者都可以监督信息选取的公平与公正。

Description

信息选取方法、装置、电子设备及计算机可读存储介质
技术领域
本公开涉及数据处理领域,具体地,涉及一种信息选取方法、装置、电子设备及计算机可读存储介质。
背景技术
在进行资源(例如,车牌、房屋、学位等)分配时,通过“摇号”的方式可以保证公平和公正。“摇号”方式一般包括:线下摇号和线上摇号。
线下摇号方式,一般采用摇号箱抽取,或利用计算机进行现场抽取等获取摇号结果。线上摇号方式,一般是根据设定好的摇号规则,通过计算机对参摇者进行抽取获取摇号结果。
相关技术中的摇号方式,由于摇号规则的设置、摇号结果的公布等都不能做到公开透明,因此,不能做到摇号的公平公正。
发明内容
本公开的目的是提供一种信息选取方法、装置、电子设备及计算机可读存储介质,以解决相关技术中存在的问题。
为了实现上述目的,第一方面,本公开提供一种信息选取方法,应用于区块链节点设备,所述方法包括:获取参与信息选取的用户的用户信息;
将用户信息存储到区块链中;
根据区块链中存储的信息选取算法,在存储到区块链中的所述用户信息中选取出目标信息。
第二方面,提供一种信息选取装置,应用于区块链节点设备,包括:
信息获取模块,用于获取参与信息选取的用户的用户信息;
存储模块,用于将用户信息存储到区块链中;
选取模块,用于根据区块链中存储的信息选取算法,在存储到区块链中的所述用户信息中选取出目标信息。
第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面所述方法的步骤。
第四方面,提供一种电子设备,包括:
上述第三方面所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序
通过上述技术方案,将参与信息选取的用户信息和选取出的目标信息不可篡改,不可伪造的记录到区块链中;信息选取算法存储于区块链中,所有参与者都可以监督信息选取的公平与公正。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开一实施例的区块链中的区块的数据结构示意图;
图2是本公开一实施例的信息选取***的结构示意图;
图3是本公开一实施例的信息选取方法的流程示意图;
图4是本公开的一实施例中,将用户信息存储到区块链中的流程示意图;
图5是本公开的一实施例中,将信息选取算法息存储到区块链中的流程示意图;
图6是本公开一实施例通过查询方式进行信息选取结果公布的流程示意图;
图7是本公开一实施例中,根据信息选取算法进行礼品发放的流程示意图;
图8是本公开一实施例中,选取目标信息的流程示意图;
图9是本公开的一实施例中,根据信息选取方法进行公立幼儿园摇号的流程示意图;
图10是本公开一实施例的信息选取装置示意图;
图11是本公开一实施例用于信息选取方法的装置的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在对本公开提供的信息选取方法、装置、电子设备及计算机可读存储介质进行说明之前,先对本公开各个实施例所涉及的区块链进行介绍。
区块链是由区块链网络中所有节点设备共同参与维护的去中心化分布式数据库***,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。下面对区块链网络的一些概念进行介绍。
区块链节点设备:区块链网络中的节点设备可以称为区块链节点设备,其中区块链网络基于P2P(Peer to Peer,对等网络)网络,每个参与交易和区块存储、验证、转发的P2P网络节点设备都是一个区块链网络中的节点设备。
用户身份:区块链中的用户身份使用公钥表示,公钥所对应的私钥由用户掌握而不发布到网络。在一些实施例中,公钥通过哈希和编码后成为“地址”,“地址”即为账户地址,代表了用户,并可随意发布。用户身份和区块链节点设备不存在一一对应关系,用户可以在任意一个区块链节点设备上使用自己的私钥。
区块链数据写入:区块链节点设备通过向区块链网络发布“交易”(Transaction)实现向区块链写入数据。交易中包含用户使用自己私钥对交易的签名,以证明用户的身份。交易被“矿工”(执行PoW共识竞争机制的区块链节点设备)记录入产生的新区块,然后发布到区块链网络,并被其他区块链节点设备验证通过和接受后,交易数据即被写入区块链。
在本公开的一实施例中,可通过区块链的智能合约的方式,实现摇号。
参见图1,为本公开一实施例的区块链中的区块的数据结构示意图。区块链中的区块100包括:区块头101和区块主体102。区块主体102记录前一段时间内的所有交易信息。区块头101包括:父区块哈希值、默克尔树根、时间戳、随机数等字段。
其中,默克尔树根的值是对整棵树上保存的数据进行哈希(hash)计算得出的。以默克尔树根为根节点设备的叶节点设备用于存储账户信息。
参见图1,叶节点设备110即为一存储账户信息的账户节点设备,每个账户节点设备中包括:交易数字段、账户余额字段、代码哈希字段、存储根字段等。其中,交易数字段用于记录从账户发起的交易数。账户余额字段用于记录该账户的账户余额。代码哈希字段用于记录智能合约的代码哈希值,并指向智能合约代码。如果账户不是智能合约账户,则代码哈希字段为空。存储根字段是用于另一颗树的根节点设备,该树为智能合约账户的内部数据存储空间。
智能合约可被绑定了智能合约账户的区块链节点设备部署在区块链上,部署好的智能合约会在区块链上拥有“自己的地址”。部署智能合约的过程,即区块链节点设备将编译好的智能合约调用字节码通过发布交易的形式写入到区块链上的一区块中的过程。智能合约被部署后,将被存储到相应的区块中,并分配合约地址。
存储有完整的区块链或区块头的区块链节点设备,确定智能合约的地址后,通过时间或事件驱动(例如,执行相应的指令消息),可激活智能合约,由此,读取到智能合约中存储的相关信息,或读取到智能合约的程序运行后生成的信息。
本公开的一实施例中,智能合约中的信息可被更改,例如,修改、替换和删除等。对智能合约中数据的更改通过“交易”的方式实现。为了保证信息安全,只有具有相应的更改权限的账户才能对智能合约中的信息进行更改。
对于智能合约的读权限控制,可采用如下方式实现:区块链节点设备请求读取智能合约中的信息时,提供签名。该签名可在智能合约中进行验证,验证通过,才激活智能合约,并返回相应信息给区块链节点设备。签名可采用区块链节点设备所绑定的账户的私钥进行,也可采用预先协商好的方式进行签名。
同时,还可以叠加采用私有链或许可链作为智能合约的区块链基础平台,进一步提高读权限的控制。即只有绑定有经过许可或认证的账户的区块链节点设备才能组成区块链网络,形成私有链或许可链,从而进一步保证了智能合约的安全性,提高网络安全性。
在本公开的实施例中,区块链的区块中的智能合约包括:用于存储参与信息选取的用户的用户信息的数据提供合约、用于执行信息选取算法的信息选取合约,以及用于输出目标信息的监听合约。
参见图2,为本公开一实施例的信息选取***的结构示意图。
信息选取***包括多个区块链节点设备201。这些区块链节点设备可以各种形式来实施,例如,可以为手机、智能电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、服务器、矿机(即可执行PoW(Proof Of Work,工作证明)共识竞争机制的设备)等。
上述数据提供合约、信息选取合约,以及监听合约,可通过区块链节点设备201部署到区块链中。
参见图3,为本公开一实施例的信息选取方法的流程示意图。
在步骤S31中,获取参与信息选取的用户的用户信息。
在本公开的一实施例中,用户信息可包括以下信息中的一者或多者:用户的身份信息、用户的通讯信息、用户的员工编号、邀请编号等。用户的身份信息,例如,可为用户的身份证号码、护照号码等。用户的通信信息,可为用户的手机号码、社交账号等。用户的员工编号可为用户所在公司或相关组织的员工编号。邀请编号可为由摇号主办方统一发布的,用于参与信息选取的凭证码,例如,8位数字组成的凭证码。
在本公开的实施例中,可通过以下方式获取用户的用户信息:
方式一:由信息登记端,对用户信息进行登记,并发送给区块链节点设备。
信息登记端可为具有数据处理和通信功能的电子设备。登记,可通过表格、文字记录等方式对用户信息进行记录和存储来实现。
在一个实施例中,当设定的时间到时,或获取的用户信息的数量达到设定值时,信息登记端停止进行用户信息的登记。
在一个实施例中,进一步,通过信息审核端,对信息登记端登记的用户信息进行审核。信息审核端将审核通过的用户信息发送给区块链节点设备。信息登记端和信息审核端可为同一电子设备。
方式二:区块链节点设备作为信息登记端,对用户信息进行登记。如上述方式一所述,对用户信息进行登记。在一些实施例中,区块链节点设备还作为上述信息审核端,对登记的用户信息进行审核。
在步骤S32中,将用户信息存储到区块链中。
区块链节点设备获取到用户信息后,将用户信息存储到区块链的区块中。
在本公开的一实施例中,可将用户信息以智能合约的方式存储到区块链中。区块链节点设备将用户信息编译为智能合约调用字节码,并将编译好的智能合约调用字节码通过发布交易的形式写入到区块链上的一区块中。在本公开的实施例中,将登记的所有用户信息存储到同一智能合约中,也可将用户信息分别存储到不同的智能合约中。
用户信息可以数组的方式存储到智能合约中。存储有用户信息的智能合约为数据提供合约。
在本公开的一实施例中,为了保护用户信息的安全和隐私,将用户信息按照预设规则进行转换后,再存储到区块链的区块中。在一个实施例中,预设规则为哈希算法,则将用户信息按照哈希算法进行转换后,得到用户信息对应的哈希值,并将得到的哈希值存储到数据提供合约中。例如,哈希算法可为SHA3算法,将用户信息中的身份信息、通讯信息和预设口令转换为对应的哈希值,并将该哈希值作为用户信息存储到数据提供合约中。
参见图4,在本公开的一实施例中,将用户信息存储到区块链中,包括:
在步骤S41中,对于每个用户的用户信息,将该用户信息转换为哈希值。
在步骤S42中,根据每个用户对应的哈希值,获取第一智能合约调用字节码。
在步骤S43中,将第一智能合约调用字节码作为交易数据,发送给区块链网络中的一个或多个区块链节点设备,以将第一智能合约调用字节码写入到区块链的一区块中。
在一些实施例中,也可由区块链节点设备直接将用户信息作为“交易”发布到区块链网络,由此,实现将用户信息存储到区块链中。
由此,本公开实施例可将用户信息存储到区块链中,可以防止用户信息被篡改,提高信息安全性。
在本公开的实施例中,除了用户信息,数据提供合约还可以记录更多的信息,例如,用户信息的登记时间、用户信息的添加者等。添加者,可为接收用户信息的信息登记端的标识或操作该信息登记端的操作者的标识。登记时间可为用户信息被登记的时刻。
在一个实施例中,可设置一权限账户,具有权限账户的区块链节点设备可对用户信息进行更改,以及进行数据提供合约的部署。在一些实施例中,也可以不作任何限制,所有的区块链节点设备都可以对用户信息进行更改,以及进行数据提供据合约的部署。
在步骤S33中,根据区块链中存储的信息选取算法,在存储到区块链中的用户信息中选取出目标信息。
在本公开的一实施例中,信息选取算法以智能合约的方式存储在区块链的区块中。参见图5,在步骤S51中,根据信息选取算法,获取第二智能合约调用字节码。在步骤S52中,将第二智能合约调用字节码作为交易数据,发送给区块链网络中的一个或多个区块链节点设备,以将第二智能合约调用字节码写入到区块链的一区块中。由此,信息选取算法被编译为智能合约调用字节码。编译好的智能合约调用字节码,被区块链节点设备通过发布交易的形式写入到区块链的一区块中。存储有信息选取算法的智能合约为信息选取合约。
在一些实施例中,区块链中的所有区块链节点设备均具有信息选取权限,可激活信息选取合约,执行信息选取。
在一些实施例中,将权限信息和信息选取算法一起存储到信息选取合约中。权限信息用于指定具有权限的用户才能激活信息选取合约。在本公开的实施例中,可通过设置权限账户的方式实现信息选取权限的控制。即设置权限账户,绑定了权限账户的区块链节点设备,可激活信息选取合约,执行信息选取。
信息选取合约被激活后,根据信息选取合约中的信息选取算法对用户信息进行选取。在一个实施例中,信息选取算法可为:将用户信息的登记时间进行排序;将排序在预设范围内的用户信息,选取为目标信息。这里的预设范围可根据需要选取的目标信息的目标数量确定。
在另一个实施例中,信息选取算法可为:根据预设的随机选择算法,在用户信息中随机选取出目标信息。随机选择算法可为:根据用户信息的数量和需要选取出的目标信息的目标数量,从用户信息中进行随机选取,得到目标信息。
在一个实施例中,信息选取算法可为:根据区块链中一区块的哈希值和该区块的产生时间,生成随机数,以及,根据随机数和需选取出的目标信息的目标数量,在存储到区块链中的用户信息中,迭代选取出目标信息。当选取的目标信息的数量达到目标数量时,迭代选取结束。
在一个实施例中,每个用户信息对应一权重值,权重值作为信息选取算法的参数使用。若一用户信息的权重值为4,则可将该用户信息的数量从1增加为4。用户信息的权重值与该用户信息被选取到的概率正相关。
权重值可根据实际情况进行设置,例如,对于用户信息中的手机号码,可根据手机号码的尾号来确定权重值,将尾号为“0”的用户信息的权重值设置为高于尾号为“1”的用户信息的权重值。
在本公开的实施例中,信息选取合约中的信息选取算法可根据实际需求进行灵活更改,适应不同的信息选取场景。对信息选取算法进行更改后,可按照上述方式,重新部署更改后的信息选取合约到区块链中。
在本公开的实施例中,由于包括了权限信息和信息选取算法的信息选取合约存储到了区块链中,可防止信息选取过程***控,保证信息选取的公正和公平。另一方面,通过智能合约的方式存储信息选取算法,可灵活根据信息选取的适用场景,对信息选取算法进行更改,并重新部署到区块链中,从而可适应不同的场景。
获取到目标信息后,本公开实施例还包括,将目标信息存储到区块链的区块中,以防止目标信息被篡改,进一步保证信息选取的公平和公正。将目标信息存储到区块链的区块中,可通过发布交易的方式实现。
在一个实施例中,还包括:当选取出目标信息后,将目标信息发送给目的端,目的端包括以下设备中的至少一者:参与信息选取的用户所绑定的电子设备,用户信息被选取的用户所绑定的电子设备,被配置的查询设备,显示设备。
在本公开的一实施例中,可采用主动公布方式公布信息选取结果,将目标信息发送给目的端:
当信息选取合约被激活,选取出目标信息后,将目标信息作为参数,写入到用于输出目标信息的智能合约中。用于输出目标信息的智能合约,例如,可称为监听合约。监听合约为用于输出目标信息的合约,当接收到目标信息且被激活时,可输出的目标信息。输出目标信息包括:将目标信息发送给上述目的端。当目标信息被发送给配置的查询设备时,查询设备可接收查询信息,并根据查询信息,获取查询结果。当目标信息被发送给配置的显示设备时,显示设备可显示目标信息,以公布信息选取结果。
在本公开的另一实施例中,可采用查询方式公布信息选取结果:
参见图6,在步骤S61中,接收查询设备发送的查询信息。在步骤S62中,根据查询信息,在存储目标信息的区块中查询待查询用户的选取结果。在步骤S63中,将查询到的选取结果发送给查询设备。
在一个实施例中,查询设备发送的查询信息可包括:待查询用户的用户信息。区块链中的节点设备,根据接收到的查询信息,在区块中存储的被选取的目标信息中进行查询,并将查询结果返回给查询端。当待查询用户的用户信息在被选取的目标信息中时,返回的查询结果可为“已被选取”、“录取”等。当待查询用户的用户信息未在被选取的目标信息中时,返回的查询结果可为“未选取”、“未录取”等。
在一些实施例中,当区块链节点设备接收到查询信息时,向查询端发送的查询结果也可为所有已被选取的用户信息。
在本公开的一实施例中,还包括:当用户根据目标信息,获取相应的资源时,对用户信息进行验证。资源可为商品、学位、车牌等等。验证即查询用户信息是否在选取出的目标信息中。当验证通过时,将相应的资源分配给对应的用户。
本公开实施例中,参与信息选取的用户信息和选取出的目标信息不可篡改,不可伪造的记录到区块链中。同时,信息选取算法公开发布到区块链上,所有参与者都可以监督信息选取的公平与公正。信息选取算法可以灵活实现,以满足不同的信息选取需求。
参见图7,在本公开的一实施例中,根据上述信息选取方法进行礼品的发放。
在步骤S71中,用户进行商品交易,产生订单信息。
在步骤S72中,根据用户的商品交易信息,获取参与信息选取的用户的用户信息。
在该实施例中,礼品发放是基于用户发生商品交易,因此,用户信息为用户的订单信息。
当用户进行商品交易且交易成功时,产生订单信息。订单信息包括:订单交易时间、订单交易用户的身份信息或通讯信息。
在步骤S73中,将用户信息存储到区块链中。
在设定的时间段内(例如,商家设定的活动期间),商家的服务器作为信息登记端,对产生的订单信息进行登记。当设定的时间段结束时,停止登记订单信息。区块链节点设备将商家的服务器登记的订单信息,加入区块链的数据提供合约中。若商家的服务器是区块链节点设备,则其将订单信息编译为智能合约调用字节码后,通过发布交易的方式,将订单信息存储到区块链中。若商家的服务器不是区块链节点设备,则其将订单信息发送给一区块链节点设备,由该区块链节点设备将订单信息存储到区块链中。
在步骤S74中,设定时间段到时,对登记的订单信息进行筛选,获取有效的订单信息。
在一个实施例中,服务器对登记的订单信息进行筛选,获取有效的订单信息。例如,有效的订单信息可为用户未发生退货的订单信息,或者有效的订单信息为订单交易金额超过预设值的订单信息。有效订单信息所对应的用户信息,才进行后续的信息选取步骤。
在步骤S75中,根据区块链中存储的信息选取算法,在用户信息中选取出目标信息。
在步骤S76中,根据目标信息,进行礼品发放。
参见图8,在本公开的一实施例中,步骤S75包括:
在步骤S81中,确定需要选取的目标信息的目标数量。
在步骤S82中,获取区块链中一区块的区块头的哈希值Hb。
在一个实施例中,获取激活执行信息选取合约时前一区块的区块头的哈希值。
在步骤S83中,按照式(1)和式(2),获取随机数。
sha3(Hb+Orders.length)%Orders.length(1)
其中,sha3为哈希算法;Hb为获取的区块头的哈希值;%为取余运算。将数据提供合约中的用户信息以数组Orders形式表示,其中,Orders.length为数组的长度。首次获取随机数时采用的式(1),当根据式(1)从用户信息中选取出了第一个用户信息后,根据式(2)获取第二至第N个随机数,以选取N个用户信息,N为目标数量。
sha3(Hb+Orders.length+OrdersI)%Orders.length(2)
其中,OrdersI为上一次选中的用户信息的在数组中的编号。
在步骤S84中,根据第一至第N个随机数,在存储到区块链中的用户信息中迭代选取出目标信息。
按照步骤S83中获取的随机数,进行循环迭代,直到选取出目标数量个用户信息。选取出的用户信息存储到区块链的区块中,防止被更改。
在本公开的实施例中,可以用数组的方式存储选取出的用户信息。如果用户A的用户信息在数组中,则表明该用户信息被选中。
在一个实施例中,若商家的服务器不是区块链节点设备,则商家的服务器可向区块链节点设备查询获得选取出的用户信息。若商家的服务区是区块链节点设备,则其可通过激活信息选取合约获得选取出的用户信息。
商家的服务器可进一步的,将选取出的用户信息进行显示,或者向被选取出的用户信息所对应的用户发送提醒信息。
由此,本公开实施例可以根据选取出的目标信息,将礼品发送给目标信息对应的用户,以可保证礼品发送的公平和公正。
参见图9,在本公开的一实施例中,根据上述信息选取方法进行公立幼儿园摇号。
在步骤S91中,获取摇号所需的用户信息。在该实施例中,用户信息可为幼儿的身份证号码、姓名、出生日期、居住地信息等。
在该实施例中,可根据幼儿园的报名条件,对幼儿的用户信息进行审核验证。报名条件包括:出生日期的限制、居住地信息限制等。例如,将出生日期与报名条件中的出生日期限制进行匹配,满足出生日期的限制,则审核通过。
在步骤S92中,将用户信息进行转换后,存储到数据提供合约中。
由于同一信息选取合约,可适用于多个幼儿园的摇号。因此,本公开实施例中,可将数据提供合约分为多个数据结构,每个数据结构用于存储一个幼儿园所对应的用户信息。
例如,根据用户信息中的户口号码和姓名生成一个hash值:sha3(户口号码+姓名),该hash值加入数据提供合约Data Contract B对应公立幼儿园数据结构中。同时,也可在本地对所有登记的用户信息进行保存,以便以后查询摇号结果。
在本公开的实施例中,为了防止同一用户信息被添加到多个幼儿园对应的数据提供合约中。在将用户信息加入数据提供智能合约时,先查询该用户信息是否已添加至其他幼儿园数据结构中,若已添加则禁止再加入。
在步骤S93中,激活信息选取合约,进行信息选取。
当设定的登记时间到时,停止登记新的用户信息。若数据提供合约中共有10个公立幼儿园,总共2000个用户信息。则,摇号开始时,信息选取合约可按上述实施例所述的信息选取方法,为每家公立幼儿园实施摇号。每家公立幼儿园可设置自己的招收目标数量。
在步骤S94中,公布信息选取结果。
摇号结束,则信息选取合约禁止任何人再修改摇号结果数据。摇号结果检测合约获取信息选取合约的结果后,通知相关机构公布结果。有条件的地方可以结合第三方应用,直接通知幼儿家长。
在一个实施例中,数据提供合约和信息选取合约都在公共区块链上,幼儿家长可以通过相关机构在线程序或者第三方公共区块链查询客户端,查询对应合约的数据。由此,保证整个摇号流程公开,透明。
当幼儿报名时,需提供户口本,重新生成hash特征值,只有特征值在摇号结果中,才有资格报名。入学摇号数据,摇号方法以及摇号结果不可篡改的永久保存在区块链中,可供以后审查。
参见图10,相应的,本公开实施例还提供一种信息选取装置,应用于区块链节点设备,包括:
信息获取模块1001,用于获取参与信息选取的用户的用户信息;
存储模块1002,用于将用户信息存储到区块链中;
选取模块1003,用于根据区块链中存储的信息选取算法,在存储到区块链中的所述用户信息中选取出目标信息。
在一个实施例中,所述存储模块包括:
转换子模块,用于对于每个用户的用户信息,将该用户信息转换为哈希值;
获取子模块,用于根据每个用户对应的哈希值,获取第一智能合约调用字节码;
交易发送子模块,用于将所述第一智能合约调用字节码作为交易数据,发送给区块链网络中的一个或多个区块链节点设备,以将所述第一智能合约调用字节码写入到区块链的一区块中。
在一个实施例中,所述选取模块包括:
随机数生成子模块,用于根据区块链中一区块的哈希值和该区块的产生时间,生成随机数;
迭代选取子模块,用于根据所述随机数和需选取出的目标信息的目标数量,在存储到区块链中的所述用户信息中迭代选取出所述目标信息。
在一个实施例中,所述选取模块包括:
哈希值获取模块;获取区块链中一区块的区块头的哈希值;
第一随机数获取模块,用于按照sha3(Hb+Orders.length)%Orders.length获取第一个随机数;
第二随机数获取模块,用于按照sha3(Hb+Orders.length+OrdersI)%Orders.length,获取第二至第N个随机数,其中,sha3为哈希算法;Hb为获取的区块的区块头的哈希值;Orders.length为存储所述用户信息的数组的长度;OrdersI为上一次选中的用户信息的在所述数组中的编号;N为需选取出的用户信息的目标数量;%为取余运算;
选取模块,用于根据所述第一至第N个随机数,在存储到区块链中的所述用户信息中迭代选取出所述目标信息。
在一个实施例中,所述装置还包括:
信息发送模块,用于在选取出所述目标信息后,将所述目标信息发送给目的端,所述目的端包括以下设备中的至少一者:参与信息选取的用户所绑定的电子设备,用户信息被选取的用户所绑定的电子设备,被配置的查询设备,显示设备。
在一个实施例中,所述装置还包括:
目标信息存储模块,用于将所述目标信息存储到区块链的区块中。
在一个实施例中,所述装置还包括:
接收模块,用于接收查询设备发送的查询信息,所述查询信息中包括:待查询用户的用户信息;
查询模块,用于根据所述查询信息,在存储所述目标信息的区块中查询所述待查询用户的选取结果;
查询结果发送模块,用于将查询到的所述选取结果发送给所述查询设备。
在一个实施例中,所述装置还包括:
目标信息写入模块,用于在选取出所述目标信息后,将所述目标信息作为参数,写入到用于输出所述目标信息的智能合约中。
在一个实施例中,所述装置还包括:
获取模块,用于根据所述信息选取算法,获取第二智能合约调用字节码;
交易发送模块,用于将所述第二智能合约调用字节码作为交易数据,发送给区块链网络中的一个或多个区块链节点设备,以将所述第二智能合约调用字节码写入到区块链的一区块中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供,一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述信息选取方法的步骤。
本公开实施例还提供,一种电子设备,包括:上述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
参见图11,为本公开一实施例用于信息选取方法的装置的框图。该装置可被提供为区块链节点设备,其至少包括:处理器1101、存储器1102和通信组件1103。其中,存储器1102用于存储操作***,各种类型的数据以支持在该区块链节点设备的操作,这些数据,例如可以包括用于在区块链节点设备上操作的任何应用程序或方法的指令,以及应用程序相关的数据。
存储器1102还存储有完整区块链或存储有区块链的区块头信息。
处理器1101用于控制该区块链节点设备的整体操作,进行信息处理等。在本公开的一实施例中,处理器1101可控制区块链中的区块中的智能合约的运行。
通信组件1103用于该区块链节点设备与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G、4G或5G,或它们中的一种或几种的组合,因此相应的该通信组件312可以包括:Wi-Fi模块,蓝牙模块,NFC模块,2G模块,3G模块,4G模块或5G模块,或它们中的一种或几种的组合。
在本公开的实施例中,通过通信组件1103,区块链节点设备可与信息登记端、信息审核端、目的端等等建立通信连接。
此外,区块链节点设备还可包括多媒体组件(例如,触摸屏、麦克风、扬声器等)和输入/输出接口等,以实现相应的功能。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (16)

1.一种信息选取方法,应用于区块链节点设备,其特征在于,包括:
获取参与信息选取的用户的用户信息;
将用户信息存储到区块链中;
根据区块链中存储的信息选取算法,在存储到区块链中的所述用户信息中选取出目标信息;
所述根据区块链中存储的信息选取算法,在存储到区块链中的所述用户信息中选取出目标信息,包括:
根据区块链中一区块的哈希值和该区块的产生时间,生成随机数;
根据所述随机数和需选取出的目标信息的目标数量,在存储到区块链中的所述用户信息中迭代选取出所述目标信息;
或者,
所述根据区块链中存储的信息选取算法,在存储到区块链中的所述用户信息中选取出目标信息,包括:
获取区块链中一区块的区块头的哈希值;
按照sha3(Hb+Orders.length)%Orders.length获取第一个随机数;
按照sha3(Hb+Orders.length+OrdersI)%Orders.length,获取第二至第N个随机数;其中,sha3为哈希算法;Hb为获取的区块的区块头的哈希值;Orders.length为存储所述用户信息的数组的长度;OrdersI为上一次选中的用户信息的在所述数组中的编号;N为需选取出的用户信息的目标数量;%为取余运算;
根据所述第一至第N个随机数,在存储到区块链中的所述用户信息中迭代选取出所述目标信息。
2.根据权利要求1所述的方法,其特征在于,所述将用户信息存储到区块链中,包括:
对于每个用户的用户信息,将该用户信息转换为哈希值;
根据每个用户对应的哈希值,获取第一智能合约调用字节码;
将所述第一智能合约调用字节码作为交易数据,发送给区块链网络中的一个或多个区块链节点设备,以将所述第一智能合约调用字节码写入到区块链的一区块中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当选取出所述目标信息后,将所述目标信息发送给目的端,所述目的端包括以下设备中的至少一者:参与信息选取的用户所绑定的电子设备,用户信息被选取的用户所绑定的电子设备,被配置的查询设备,显示设备。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述目标信息存储到区块链的区块中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收查询设备发送的查询信息,所述查询信息中包括:待查询用户的用户信息;
根据所述查询信息,在存储所述目标信息的区块中查询所述待查询用户的选取结果;
将查询到的所述选取结果发送给所述查询设备。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
选取出所述目标信息后,将所述目标信息作为参数,写入到用于输出所述目标信息的智能合约中。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述信息选取算法,获取第二智能合约调用字节码;
将所述第二智能合约调用字节码作为交易数据,发送给区块链网络中的一个或多个区块链节点设备,以将所述第二智能合约调用字节码写入到区块链的一区块中。
8.一种信息选取装置,应用于区块链节点设备,其特征在于,包括:
信息获取模块,用于获取参与信息选取的用户的用户信息;
存储模块,用于将用户信息存储到区块链中;
选取模块,用于根据区块链中存储的信息选取算法,在存储到区块链中的所述用户信息中选取出目标信息;
所述选取模块包括:
随机数生成子模块,用于根据区块链中一区块的哈希值和该区块的产生时间,生成随机数;
迭代选取子模块,用于根据所述随机数和需选取出的目标信息的目标数量,在存储到区块链中的所述用户信息中迭代选取出所述目标信息;
或者,
所述选取模块包括:
哈希值获取模块;获取区块链中一区块的区块头的哈希值;
第一随机数获取模块,用于按照sha3(Hb+Orders.length)%Orders.length获取第一个随机数;
第二随机数获取模块,用于按照sha3(Hb+Orders.length+OrdersI)%Orders.length,获取第二至第N个随机数,其中,sha3为哈希算法;Hb为获取的区块的区块头的哈希值;Orders.length为存储所述用户信息的数组的长度;OrdersI为上一次选中的用户信息的在所述数组中的编号;N为需选取出的用户信息的目标数量;%为取余运算;
选取模块,用于根据所述第一至第N个随机数,在存储到区块链中的所述用户信息中迭代选取出所述目标信息。
9.根据权利要求8所述的装置,其特征在于,所述存储模块包括:
转换子模块,用于对于每个用户的用户信息,将该用户信息转换为哈希值;
获取子模块,用于根据每个用户对应的哈希值,获取第一智能合约调用字节码;
交易发送子模块,用于将所述第一智能合约调用字节码作为交易数据,发送给区块链网络中的一个或多个区块链节点设备,以将所述第一智能合约调用字节码写入到区块链的一区块中。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
信息发送模块,用于在选取出所述目标信息后,将所述目标信息发送给目的端,所述目的端包括以下设备中的至少一者:参与信息选取的用户所绑定的电子设备,用户信息被选取的用户所绑定的电子设备,被配置的查询设备,显示设备。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
目标信息存储模块,用于将所述目标信息存储到区块链的区块中。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收查询设备发送的查询信息,所述查询信息中包括:待查询用户的用户信息;
查询模块,用于根据所述查询信息,在存储所述目标信息的区块中查询所述待查询用户的选取结果;
查询结果发送模块,用于将查询到的所述选取结果发送给所述查询设备。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
目标信息写入模块,用于在选取出所述目标信息后,将所述目标信息作为参数,写入到用于输出所述目标信息的智能合约中。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
获取模块,用于根据所述信息选取算法,获取第二智能合约调用字节码;
交易发送模块,用于将所述第二智能合约调用字节码作为交易数据,发送给区块链网络中的一个或多个区块链节点设备,以将所述第二智能合约调用字节码写入到区块链的一区块中。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
16.一种电子设备,其特征在于,包括:
权利要求15中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
CN201780001835.0A 2017-08-21 2017-08-21 信息选取方法、装置、电子设备及计算机可读存储介质 Active CN107820690B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/098249 WO2019036831A1 (zh) 2017-08-21 2017-08-21 信息选取方法、装置、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN107820690A CN107820690A (zh) 2018-03-20
CN107820690B true CN107820690B (zh) 2020-11-10

Family

ID=61606894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780001835.0A Active CN107820690B (zh) 2017-08-21 2017-08-21 信息选取方法、装置、电子设备及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN107820690B (zh)
WO (1) WO2019036831A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108520307A (zh) * 2018-03-31 2018-09-11 深圳慧通商务有限公司 数据处理方法及相关装置
CN108648323B (zh) * 2018-05-10 2021-02-19 广州市申迪计算机***有限公司 目标信息的选取方法、装置、计算机设备和存储介质
CN108764701A (zh) * 2018-05-23 2018-11-06 深圳市元征科技股份有限公司 一种学位资源分配公示方法、***及设备和存储介质
CN108846298A (zh) * 2018-05-23 2018-11-20 马佳明 一种文件内容的篡改检测方法及相关设备
CN108776838A (zh) * 2018-06-01 2018-11-09 深圳市轱辘汽车维修技术有限公司 一种车辆维修商家匹配方法及相关装置
CN110610418B (zh) * 2018-06-15 2022-05-31 中数智创科技有限公司 基于区块链的交易状态查询方法、***、设备及存储介质
CN108831001B (zh) * 2018-06-25 2021-06-18 北京奇虎科技有限公司 基于区块链的节点随机选取方法、***、节点、电子设备
WO2020000198A1 (zh) * 2018-06-26 2020-01-02 深圳齐心集团股份有限公司 一种基于区块链的考勤***
CN109146679B (zh) 2018-06-29 2023-11-10 创新先进技术有限公司 基于区块链的智能合约调用方法及装置、电子设备
CN109242677A (zh) * 2018-07-27 2019-01-18 阿里巴巴集团控股有限公司 对象选取方法及装置、电子设备
CN109448211B (zh) * 2018-09-18 2022-06-17 平安科技(深圳)有限公司 基于大数据的车牌发放方法、装置、介质和设备
CN110932859B (zh) * 2018-09-20 2021-06-15 北大方正集团有限公司 用户信息的处理方法、装置、设备及可读存储介质
TW202016743A (zh) 2018-10-25 2020-05-01 財團法人資訊工業策進會 用於物聯網系統之資料處理裝置及資料處理方法
CN109615370A (zh) * 2018-10-25 2019-04-12 阿里巴巴集团控股有限公司 对象选取方法及装置、电子设备
CN109584432B (zh) * 2018-10-26 2020-06-30 阿里巴巴集团控股有限公司 对象选取方法及装置、电子设备
CN109660514B (zh) * 2018-11-15 2020-06-09 苏宁易购集团股份有限公司 一种智能设备***的实现方法、智能设备控制方法及***
CN109542455B (zh) * 2018-11-29 2021-08-06 杭州复杂美科技有限公司 合约执行方法、合约精简方法、设备和存储介质
CN109767271B (zh) * 2019-01-18 2023-07-04 众安信息技术服务有限公司 基于区块链的抽奖方法和设备
CN109831501B (zh) * 2019-01-30 2020-09-29 京东数字科技控股有限公司 基于区块链的信息分发方法和***
CN109862136A (zh) * 2019-03-19 2019-06-07 全链通有限公司 基于域名区块链的群组通信方法、区块链节点及介质
CN110336672B (zh) * 2019-04-29 2020-07-28 山东工商学院 基于零知识证明的公民隐私保护的方法、***及存储介质
CN110197708B (zh) * 2019-06-05 2023-01-24 重庆邮电大学 一种面向电子医疗病历的区块链迁移与存储方法
CN111709595A (zh) * 2019-12-16 2020-09-25 航天信息股份有限公司 一种基于区块链技术对资源进行分配的方法及***
CN111009068B (zh) * 2019-12-18 2021-09-17 中体彩科技发展有限公司 基于区块链的彩票开奖号码生成方法及***
CN111966503B (zh) * 2020-10-20 2021-05-25 支付宝(杭州)信息技术有限公司 智能合约账户的存储空间管理方法和装置
CN112418856A (zh) * 2020-11-25 2021-02-26 政采云有限公司 一种摇号方法、装置、区块链、设备及计算机存储介质
CN115460231A (zh) * 2022-09-06 2022-12-09 北京信息科技大学 一种移动通信核心网中基于区块链的用户数据存储方法
CN115796869B (zh) * 2022-11-24 2024-01-19 元疆(广州)供应链管理合伙企业(有限合伙) 一种基于智能数字合约的商品数据处理方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US20170200147A1 (en) * 2016-01-08 2017-07-13 Akbar Ali Ansari System and the computer methods of issuing, transferring and manipulating value or gift cards using blockchain technology
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法
CN105976248A (zh) * 2016-04-29 2016-09-28 邓迪 一种众筹抽签方法及***
CN106230851B (zh) * 2016-08-29 2019-12-13 中金云金融(北京)大数据科技股份有限公司 基于区块链的数据保全方法及***
CN106529946A (zh) * 2016-11-01 2017-03-22 北京金股链科技有限公司 基于区块链实现用户身份数字化的方法
CN106504097A (zh) * 2016-11-09 2017-03-15 北京金股链科技有限公司 一种资产信息的处理方法和装置
CN106453407B (zh) * 2016-11-23 2019-10-15 江苏通付盾科技有限公司 基于区块链的身份认证方法、认证服务器及用户终端
CN106598579B (zh) * 2016-12-06 2020-12-25 北京果仁宝科技有限公司 区块链上集成动态类型编程语言方法和装置

Also Published As

Publication number Publication date
WO2019036831A1 (zh) 2019-02-28
CN107820690A (zh) 2018-03-20

Similar Documents

Publication Publication Date Title
CN107820690B (zh) 信息选取方法、装置、电子设备及计算机可读存储介质
US11314891B2 (en) Method and system for managing access to personal data by means of a smart contract
US20220092586A1 (en) Off network identity tracking in anonymous cryptocurrency exchange networks
CN108898389B (zh) 基于区块链的内容验证方法及装置、电子设备
US11669832B2 (en) Blockchain-implemented method and system for access control on remote internet-enabled resources
TWI703853B (zh) 網路中使用者身份認證方法和裝置
CN109495592B (zh) 数据协同方法及电子设备
JP2020503579A (ja) 電子通信の受信者を指定するブロックチェーンに基づく方法及びシステム
WO2019127532A1 (zh) 基于区块链的众筹信息处理方法、装置、存储介质及电子设备
TW202016853A (zh) 基於區塊鏈的資料存證、取證方法和裝置
Abdullah et al. PRISED tangle: A privacy-aware framework for smart healthcare data sharing using IOTA tangle
CN115271731A (zh) 用于安全处理电子身份的***和方法
CN109753815A (zh) 基于区块链的数据处理方法、数据处理网络及电子设备
CN111985007A (zh) 一种基于区块链的合同签署与执行方法及装置
CN110400217B (zh) 智能合约的规则变更处理方法及装置
CN112131298A (zh) 基于区块链的数据转换方法及装置
CN110278246B (zh) 一种针对联盟链的存证业务转移方法、装置及设备
CN114207613A (zh) 用于激励式入侵检测***的技术
CN111213170A (zh) 资产托管方法,存储介质,区块链***及区块链节点
KR20210106532A (ko) 블록체인을 통해 행해지는 전송의 성능을 제어하거나 강제하기 위한 컴퓨터-구현된 시스템 및 방법
Jiang et al. A Blockchain‐Based Vehicle Condition Recording System for Second‐Hand Vehicle Market
CN113541965B (zh) 一种基于区块链的通信授权方法、装置、设备和存储介质
CN115048672A (zh) 基于区块链的数据审计方法和装置、处理器及电子设备
Kruthik et al. Security model for Internet of Things based on blockchain
CN115150151A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210301

Address after: 201111 2nd floor, building 2, no.1508, Kunyang Road, Minhang District, Shanghai

Patentee after: Dalu Robot Co.,Ltd.

Address before: No.3, 7th floor, unit 1, building 5, No.399, Fucheng Avenue West, Chengdu, Sichuan 610094

Patentee before: CLOUDMINDS (CHENGDU) TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 201111 Building 8, No. 207, Zhongqing Road, Minhang District, Shanghai

Patentee after: Dayu robot Co.,Ltd.

Address before: 201111 2nd floor, building 2, no.1508, Kunyang Road, Minhang District, Shanghai

Patentee before: Dalu Robot Co.,Ltd.