基于区块链的信息分发方法和***
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于区块链的信息分发方法和***。
背景技术
现有信息分发过程是:分发端获取用户信息,并对用户进行分类,按照分类结果将用户信息直接推送给接收端。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:第一,分发端会向接收端推送无效用户信息,导致接收端存在管理和浪费的问题;第二,接收端将用户信息再次打包出售,损害用户权益。
发明内容
有鉴于此,本发明实施例提供一种基于区块链的信息分发方法和***,能够减少分发端分发无效信息,减少接收端管理和资源的浪费,保证用户的权益。
为实现上述目的,根据本发明实施例的第一个方面,提供了一种基于区块链的信息分发方法。
本发明实施例的基于区块链的信息分发方法,包括:
分发端根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链;
接收端根据所述区块链上的所述信息摘要生成申请标识请求,并将所述申请标识请求发送给所述分发端;
所述分发端根据所述申请标识请求确定用户标识,从而得到所述用户标识的第一哈希值;设置响应请求参数,所述响应请求参数包括第一参数;将所述响应请求参数和所述第一哈希值广播到所述区块链,并将所述用户标识发送给所述接收端;
所述接收端接收所述用户标识,根据所述区块链上的所述第一哈希值得到第二哈希值,将所述第二哈希值广播到所述区块链,并根据所述第一参数进行处理。
在一个实施例中,所述申请标识请求携带所述用户的类别和数量;
根据所述申请标识请求确定用户标识,从而得到所述用户标识的第一哈希值,包括:
根据所述用户的类别和数量确定用户标识;
对所述用户标识进行哈希运算,得到第一运算结果;
使用分发端私钥对所述第一运算结果进行签名,得到所述用户标识的第一哈希值。
在一个实施例中,根据所述区块链上的所述第一哈希值得到第二哈希值,包括:
从所述区块链上获取所述第一哈希值,使用接收端私钥对所述第一哈希值进行签名,得到第二哈希值。
在一个实施例中,所述响应请求参数还包括第二参数;
在根据所述第一参数进行处理之后,还包括:
所述接收端根据所述用户标识生成申请信息请求,并将所述申请信息请求发送给所述分发端;
所述分发端根据所述申请信息请求确定用户信息,从而得到所述用户信息的第三哈希值;将所述第三哈希值广播到所述区块链,并将所述用户信息发送给所述接收端;
所述接收端接收所述用户信息,从所述区块链获取所述第三哈希值,使用所述接收端私钥对所述第三哈希值进行签名,得到第四哈希值,将所述第四哈希值广播到所述区块链,并根据所述第二参数进行处理。
在一个实施例中,所述申请信息请求携带所述用户标识;
根据所述申请信息请求确定用户信息,从而得到所述用户信息的第三哈希值,包括:
根据所述用户标识确定用户信息;
对所述用户信息进行哈希运算,得到第二运算结果;
使用所述分发端私钥对所述第二运算结果进行签名,得到所述用户信息的第三哈希值。
在一个实施例中,在分发端根据用户的类别和数量生成信息摘要之前,还包括:
获取用户信息和用户标识;
对用户在分发端产生的行为数据进行画像和分类,得到用户对应的类别;
将用户信息、用户标识和用户对应的类别进行匹配存储。
为实现上述目的,根据本发明实施例的第二个方面,提供了一种基于区块链的信息分发***。
本发明实施例的基于区块链的信息分发***,包括分发端和接收端;
所述分发端包括:
第一生成单元,用于根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链;
第一处理单元,用于根据所述申请标识请求确定用户标识,从而得到所述用户标识的第一哈希值;设置响应请求参数,所述响应请求参数包括第一参数;将所述响应请求参数和所述第一哈希值广播到所述区块链,并将所述用户标识发送给所述接收端;
所述接收端包括:
第二生成单元,用于根据所述区块链上的所述信息摘要生成申请标识请求,并将所述申请标识请求发送给所述分发端;
第二处理单元,用于接收所述用户标识,根据所述区块链上的所述第一哈希值得到第二哈希值,将所述第二哈希值广播到所述区块链,并根据所述第一参数进行处理。
在一个实施例中,所述申请标识请求携带所述用户的类别和数量;
所述第一处理单元还用于:
根据所述用户的类别和数量确定用户标识;
对所述用户标识进行哈希运算,得到第一运算结果;
使用分发端私钥对所述第一运算结果进行签名,得到所述用户标识的第一哈希值。
在一个实施例中,所述第二处理单元还用于:
从所述区块链上获取所述第一哈希值,使用接收端私钥对所述第一哈希值进行签名,得到第二哈希值。
在一个实施例中,所述响应请求参数还包括第二参数;
所述第二生成单元,还用于在根据所述第一参数进行处理之后,根据所述用户标识生成申请信息请求,并将所述申请信息请求发送给所述分发端;
所述第一处理单元,还用于根据所述申请信息请求确定用户信息,从而得到所述用户信息的第三哈希值;将所述第三哈希值广播到所述区块链,并将所述用户信息发送给所述接收端;
所述第二处理单元,还用于接收所述用户信息,从所述区块链获取所述第三哈希值,使用所述接收端私钥对所述第三哈希值进行签名,得到第四哈希值,将所述第四哈希值广播到所述区块链,并根据所述第二参数进行处理。
在一个实施例中,所述申请信息请求携带所述用户标识;
所述第一处理单元还用于:
根据所述用户标识确定用户信息;
对所述用户信息进行哈希运算,得到第二运算结果;
使用所述分发端私钥对所述第二运算结果进行签名,得到所述用户信息的第三哈希值。
在一个实施例中,所述分发端还包括预处理单元,用于:
在根据用户的类别和数量生成信息摘要之前,获取用户信息和用户标识;
对用户在分发端产生的行为数据进行画像和分类,得到用户对应的类别;
将用户信息、用户标识和用户对应的类别进行匹配存储。
为实现上述目的,根据本发明实施例的第三个方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的如下方法:根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链;根据所述申请标识请求确定用户标识,从而得到所述用户标识的第一哈希值;设置响应请求参数,所述响应请求参数包括第一参数;将所述响应请求参数和所述第一哈希值广播到所述区块链,并将所述用户标识发送给所述接收端。
为实现上述目的,根据本发明实施例的第四个方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的如下方法:根据所述区块链上的所述信息摘要生成申请标识请求,并将所述申请标识请求发送给所述分发端;接收所述用户标识,根据所述区块链上的所述第一哈希值得到第二哈希值,将所述第二哈希值广播到所述区块链,并根据所述第一参数进行处理。
为实现上述目的,根据本发明实施例的第五个方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的如下方法:根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链;根据所述申请标识请求确定用户标识,从而得到所述用户标识的第一哈希值;设置响应请求参数,所述响应请求参数包括第一参数;将所述响应请求参数和所述第一哈希值广播到所述区块链,并将所述用户标识发送给所述接收端。
为实现上述目的,根据本发明实施例的第六个方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的如下方法:根据所述区块链上的所述信息摘要生成申请标识请求,并将所述申请标识请求发送给所述分发端;接收所述用户标识,根据所述区块链上的所述第一哈希值得到第二哈希值,将所述第二哈希值广播到所述区块链,并根据所述第一参数进行处理。
上述发明中的一个实施例具有如下优点或有益效果:分发端根据用户的类别和数量生成信息摘要,广播到区块链;接收端根据用户的类别和数量生成申请标识请求。因而,接收端生成请求时,分发端才发送用户标识,接收端未生成请求时,分发端不发送用户标识,而不是由分发端直接推送,从而减少了分发端分发无效信息,减少了接收端的管理和资源的浪费。分发端根据申请标识请求,确定用户标识,得到第一哈希值,将第一哈希值广播到区块链,将用户标识发送给接收端。接收端根据第一哈希值得到第二哈希值,并广播到区块链。如此,则利用区块链的记录和不可更改的特性,减少了接收端泄露用户标识,保证了用户的利益。分发端分发用户标识时,有第一参数的记录,减少了接收端夸大自身实力导致的分发端利益受损问题。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一实施例的基于区块链的信息分发方法的主要流程的示意图;
图2是根据本发明另一实施例的基于区块链的信息分发方法的信令交互的示意图;
图3是根据本发明另一实施例的基于区块链的信息分发方法中的结构关系示意图;
图4是根据本发明另一实施例的基于区块链的信息分发方法的一个应用场景示意图;
图5是根据本发明实施例的基于区块链的信息分发***的主要部件的示意图;
图6是本发明实施例可以应用于其中的示例性架构图;
图7是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以互相组合。
随着互联网时代,特别是移动互联时代的到来,人们对网络的依赖度越来越高,同时,随着社会分工的不断深入,信息分发作为一个专门的社会分工领域,在现代社会中也担负起越来越重要的作用。
信息分发的实质就是分发端将获取的用户信息分发给接收端,并由接收端来响应用户的需求。其中,用户的需求可以是消费者的交易需求,也可以是销售者的交易需求。信息分发能够避免大量用户的需求均由分发端来处理导致分发端处理速度缓慢的问题,同样,也拓展了接收端的业务范围,提升了用户体验。
下面以一具体例子说明现有信息分发过程:
分发端通过多种途径获得用户信息,例如,分发端通过网上电子商务的开展获取销售者的信息和消费者的信息,或者行业协会等分发端通过管理登记在册的企业获得登记在册企业的企业信息。分发端可以是电商平台。一般来说,同类型的平台之间存在竞争关系,各个平台获得的用户信息具有一定的平台偏好,但总体来说各个平台获得的用户信息中大部分用户信息相同。
分发端根据用户在分发端产生的行为数据对用户进行画像和分类,将不同类别的用户的用户信息直接推送给不同接收端。
接收端接收用户信息,与机构自身已有的产品进行匹配,对用户的需求进行响应。
上述现有信息分发过程中,存在如下问题:
首先,分发端为了盈利,会向接收端推送无效用户信息,例如,多次推送相同用户信息,如此,则接收端在识别用户信息时,会存在管理和资源的浪费问题。
其次,用户信息被分发给接收端后,接收端会将用户信息再次打包出售,如此,则用户信息在用户未同意下被泄露,损害了用户权益。
再次,接收端为了在与分发端的合作中争取更多主动权,往往夸大了接收端的交易规模和交易量,造成分发端利益受损。
为了解决现有技术存在的问题,本发明一实施例提供了一种基于区块链的信息分发方法,如图1所示,该方法包括:
步骤S101、分发端根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链。
在该步骤中,具体实施时,数量可以通过统计用户的类别的数量得到,且,信息摘要以明文形式在区块链进行全网广播。
另外,类别可以是儿童类别、中青年类别和老年类别;类别还可以是高消费类别、中等消费类别和低消费类别;类别还可以是高信用类别、中等信用类别和低信用类别;类别还可以是高素质类别、中等素质类别和低素质类别。需要说明的是,上文仅是列举了几个类别的例子,上述例子并不用于限定本发明,本发明实施例可以根据具体需要设置类别。
步骤S102、接收端根据所述区块链上的所述信息摘要生成申请标识请求,并将所述申请标识请求发送给所述分发端。
在该步骤中,具体实施时,接收端从区块链获取信息摘要,而信息摘要携带用户的类别和数量,根据其携带的用户的类别和数量生成申请标识请求,并通过区块链的协议将申请标识请求发送给分发端。
步骤S103、所述分发端根据所述申请标识请求确定用户标识,从而得到所述用户标识的第一哈希值;设置响应请求参数,所述响应请求参数包括第一参数;将所述响应请求参数和所述第一哈希值广播到所述区块链,并将所述用户标识发送给所述接收端。
在该步骤中,具体实施时,分发端可以事先将用户信息、用户标识和用户对应的类别进行匹配存储。而申请标识请求携带用户的类别和数量,如此,则分发端可以根据用户的类别和数量确定用户标识。对用户标识进行哈希运算,得到第一运算结果,使用分发端私钥对第一运算结果进行签名,得到第一哈希值。需说明的是,用户标识不是通过区块链的协议发送给接收端,而是通过其他途径发送给接收端,其他途径可以是邮箱。
步骤S104、所述接收端接收所述用户标识,根据所述区块链上的所述第一哈希值得到第二哈希值,将所述第二哈希值广播到所述区块链,并根据所述第一参数进行处理。
在该步骤中,具体实施时,接收端从区块链获取第一哈希值,并使用接收端私钥对第一哈希值进行签名,得到第二哈希值。另外,第一参数可以是区块链的燃料值(简称GAS),根据第一参数进行处理的具体过程可以是:向区块链的矿工支付区块链的GAS。需说明的是,可以先根据第一哈希值和用户标识验证用户标识的完整性和一致性,在验证完整且一致后再支付区块链的GAS。
在本发明实施例中,分发端根据用户的类别和数量生成信息摘要,广播到区块链;接收端根据用户的类别和数量生成申请标识请求。因而,接收端生成请求时,分发端才发送用户标识,接收端未生成请求时,分发端不发送用户标识,而不是由分发端直接推送,从而减少了分发端分发无效信息,减少了接收端的管理和资源的浪费。分发端根据申请标识请求,确定用户标识,得到第一哈希值,将第一哈希值广播到区块链,将用户标识发送给接收端。接收端根据第一哈希值得到第二哈希值,并广播到区块链。如此,则利用区块链的记录和不可更改的特性,减少了接收端泄露用户标识,保证了用户的利益。分发端分发用户标识时,有第一参数的记录,减少了接收端夸大自身实力导致的分发端利益受损问题。
本发明实施例通过区块链技术将用户、分发端和接收端构造为一个联盟链。用户不光与分发端进行交互,在经过分发端的分发后,还可以与接收端进行交互,继而由接收端响应用户的需求。
为了解决现有技术存在的问题,本发明另一实施例提供了一种基于区块链的信息分发方法,如图2、图3和图4所示,该方法包括:
步骤S201、分发端获取用户信息和用户标识;对用户在分发端产生的行为数据进行画像和分类,得到用户对应的类别;将用户信息、用户标识和用户对应的类别进行匹配存储。
在该步骤中,具体实施时,用户通过用户端将用户信息发送给分发端。因而,分发端接收用户信息。分发端将用户在分发端产生的行为数据(行为数据可以是浏览行为、阅读行为、交易行为,或其他行为数据),输入到算法或模型(算法可以是机器学习算法,模型可以是用户画像模型),得到用户的画像,画像描绘出了用户的行为习惯或者生产经营状态。分发端根据分发端的评分模型对用户的画像进行打分,根据打分结果得到用户对应的类别,将该用户的用户信息划分进与用户对应的类别相同的类别群组,并在该类别群组内对用户信息进行排序,分配给该用户唯一的用户ID,用户ID即为用户标识。
需说明的是,分发端对用户进行画像和分类的目的是:方便分发端为用户提供更有效的服务,及更准确地实现信息分发。
还需说明的是,分发端的使用者一般不愿意将用户在分发端形成的原始数据进行分发,但类似用户黑名单等可以分发。例如,分发端可以把不良用户名单分发给接收端。
另外,用户信息可以包括:用户联系方式、用户性别和用户姓名等。
步骤S202、分发端根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链。
在该步骤中,具体实施时,数量通过统计用户的类别的用户的数量而得到。另外,将信息摘要以明文形式在区块链进行全网广播。再者,分发端是将用户的类别和数量,及分发端的IP地址组装成信息摘要,因而,信息摘要携带用户的类别和数量。
步骤S203、接收端根据所述区块链上的所述信息摘要生成申请标识请求,并将所述申请标识请求发送给所述分发端,所述申请标识请求携带所述用户的类别和数量。
在该步骤中,具体实施时,接收端从区块链获取信息摘要,接收端的使用者通过接收端浏览信息摘要,信息摘要携带了用户的类别和数量,接收端的使用者根据用户的类别和数量确定是否操作接收端,从而生成申请标识请求。接收端通过信息摘要携带的用户的类别和数量生成申请标识请求。接收端通过区块链的协议将申请标识请求发送给分发端。
步骤S204、分发端根据所述用户的类别和数量确定用户标识,对所述用户标识进行哈希运算,得到第一运算结果;使用分发端私钥对所述第一运算结果进行签名,得到所述用户标识的第一哈希值;设置响应请求参数,所述响应请求参数包括第一参数和第二参数;将所述响应请求参数和所述第一哈希值广播到所述区块链,并将所述用户标识发送给所述接收端。
在该步骤中,具体实施时,由于分发端是将用户信息、用户标识和用户对应的类别进行匹配存储,因而,分发端根据用户的类别和数量从分发端可以确定用户标识。应理解的是,分发端具有独有的私钥,即不同分发端,分发端私钥不同。如此,则第一哈希值是具有签名的分发端的标记性。另外,分发端的哈希运算可以通过区块链的去中心化的应用(DAPP)实现。
第二参数可以是令牌(简称TOKEN)。需说明的是,分发端将信息摘要广播到区块链、接收端将申请标识请求发送给分发端、接收端将申请信息请求发送给分发端等,均需要支付GAS给区块链的矿工,即相当于分发端或者接收端使用区块链,即需要向区块链的矿工支付GAS。
分发端还要将分发端账户信息发送给接收端,从而使接收端支付TOKEN给分发端,分发端的账户信息可以包括:分发端的账户名、开户行和税号等。另外,分发端先将用户标识和分发端账户信息打包成第一数据包,将第一数据包通过其他途径发送给接收端,其他途径可以是邮箱,第一数据包并不通过区块链的协议发送给接收端。之所以如此,是因为区块链的承载能力有限,而第一数据包的数据量较多。
分发端使用分发端私钥对第一运算结果进行签名,得到第一哈希值,而第一运算结果是由用户标识进行哈希运算得到,将第一哈希值广播到区块链,因而,利用区块链的记录和不可更改的特性,减少了接收端泄露用户标识,进一步保障了用户的权益。
步骤S205、接收端接收所述用户标识,从所述区块链上获取所述第一哈希值,使用接收端私钥对所述第一哈希值进行签名,得到第二哈希值;将所述第二哈希值广播到所述区块链,并根据所述第一参数进行处理。
在该步骤中,具体实施时,接收端接收第一数据包,获得用户标识,对用户标识进行哈希运算,若哈希运算得到的哈希值与第一哈希值相同,则确认接收的用户标识是完整,且一致,然后支付GAS给区块链的矿工。需说明的是,根据第一参数进行处理的具体过程即为支付GAS给区块链的矿工。
另外,若第一参数是一个GAS,则接收端在将第二哈希值广播到区块链后,需要支付一个GAS给区块链的矿工。
需说明的是,接收端将第二哈希值广播到区块链后,区块链的矿工(区块链中的矿工用于生成区块,矿工可以是接收端,也可以是用户端等)会查看到第二哈希值,并通过共识算法确认第二哈希值是否是事实;若矿工确认是事实时,则根据第二哈希值生成区块。当然,矿工并非每查看到一条第二哈希值即生成区块,而是在待查看的第二哈希值的数量达到区块链设置的数量值时才生成区块,不同种类的区块链其设置的数量值不同。应用于本发明实施例的共识算法可以是实用拜占庭容错算法(PBFT),也可以是改进型拜占庭容错算法(DBFT),但不能是工作量算法(POW),或者股份证明算法(POS)。另外,第一哈希值、第三哈希值和第四哈希值等广播到区块链后的情况与第二哈希值广播到区块链后的情况相同,在此不再赘述。当然,区块链的记账节点由共识算法产生,记账过程可以获得奖励。
应理解的是,接收端具有独有的私钥,即不同接收端,接收端私钥不同。如此,则第二哈希值是具有签名的接收端的标记性和签名的分发端的标记性。
接收端使用接收端私钥对第一哈希值进行签名,并广播到区块链,因而,利用区块链的记录和不可更改的特性,减少了接收端泄露用户标识,进一步保障用户的权益。
步骤S206、在根据所述第一参数进行处理之后,接收端根据所述用户标识生成申请信息请求,并将所述申请信息请求发送给所述分发端,所述申请信息请求携带所述用户标识。
在该步骤中,具体实施时,在根据所述第一参数进行处理之后,接收端的使用者可以通过接收端浏览用户标识;在浏览用户标识后认为有必要获取用户信息,从而对用户的需求进行响应,或者将用户纳入服务范围时,可以操作接收端,从而使接收端根据用户标识生成申请信息请求。另外,接收端根据用户标识生成申请信息请求可以包括:接收端对接收端ip地址和用户标识进行组装,得到申请信息请求。如此,则分发端可以利用接收端ip地址将用户信息发送给接收端。接收端通过区块链的协议将申请信息请求发送给分发端。
步骤S207、分发端根据所述用户标识确定用户信息;对所述用户信息进行哈希运算,得到第二运算结果;使用所述分发端私钥对所述第二运算结果进行签名,得到所述用户信息的第三哈希值;将所述第三哈希值广播到所述区块链,并将所述用户信息发送给所述接收端。
在该步骤中,具体实施时,分发端是将用户信息、用户标识和用户对应的类别进行匹配存储,因而,分发端根据用户标识从分发端可以确定用户信息。应理解的是,分发端使用分发端私钥对第二运算结果进行签名,因而,使信息的来源具有可追溯性,防止泄露用户隐私。
分发端先将用户信息打包成第二数据包,将第二数据包通过其他途径发送给接收端,其他途径可以是邮箱,第二数据包并不通过区块链的协议发送给接收端。之所以如此,是因为区块链的承载能力有限,而第二数据包的数据量较多。
分发端使用分发端私钥对第二运算结果进行签名,得到第三哈希值,而第二运算结果是由用户信息进行哈希运算得到,将第三哈希值广播到区块链,因而,利用区块链的记录和不可更改的特性,减少了接收端泄露用户信息,进一步保障用户的权益。
步骤S208、接收端接收所述用户信息,从所述区块链获取所述第三哈希值,使用所述接收端私钥对所述第三哈希值进行签名,得到第四哈希值;将所述第四哈希值广播到所述区块链,并根据所述第二参数进行处理。
在该步骤中,具体实施时,接收端接收第二数据包,获得用户信息,对用户信息进行哈希运算,若哈希运算得到的哈希值与第三哈希值相同,则确认接收的用户信息是完整,且一致,然后支付TOKEN给分发端。需说明的是,根据第二参数进行处理的具体过程即为支付TOKEN给分发端。应理解的是,接收端的哈希值的比对和TOKEN的支付均可以通过DAPP实现。
第四哈希值是分别经过了分发端和接收端签名,并广播到区块链,利用区块链的记录和不可更改的特性,使用户信息的产生和使用具有了记录性,减少了接收端泄露用户信息,进一步保障了用户的权益。并且,分发端分发用户信息时,有第二参数的记录,进一步减少了接收端夸大自身实力导致的分发端利益受损问题。
需说明的是,第二哈希值和第四哈希值可以存储在同一区块上,也可以存储在不同区块上。另外,分发端只是信息的中介,只是将用户信息分发给接收端,因而,对于用户信息指向的用户的需求,是由接收端来处理,而不是由分发端来处理。再者,接收端在从分发端获得了用户信息后,还可以根据接收端的偏好和策略,对用户进行再次分层,并与接收端的产品进行匹配,满足用户的需求。并且,分发端将用户信息分发给接收端后,用户端与接收端建立了直接联系,从业务层来讲,不需要分发端再提供信息,但由于用户在分发端的行为继续,因而,用户在分发端产生的行为数据在变化,用户的类别在变化,所以,分发端可以根据更新后的用户的类别,继续分发用户信息,但需要对用户的类别进行标记,便于接收端识别是同一用户的类别变化,从而提升分发效率。
应理解的是,个别用户通过多个用户端,在某个时间段对分发端进行大量集中访问(大量集中访问即是向分发端提出大量访问请求),致使通往分发端的网络堵塞,甚至该个别用户因此而不当得利。为了解决这个问题,可以通过用户每提出一次请求即需用户支付预设数量的GAS的方式,或者通过若用户在预设时间段内提出的请求的数量等于第一预设数量时,则需该用户支付第二预设数量的GAS的方式(应理解的是,第一预设数量和第二预设数量可以根据具体需要设置),来对集中访问行为进行限制。如此,以提高用户提出请求的成本的方式,减少该个别用户不当得利的情况。
还应理解的是,如图4所示,分发端和接收端的角色可以互换,接收端具有分发信息的需求时,也可以作为分发端,同样地,分发端也可以作为接收端。例如,用户端1的用户信息、用户端2的用户信息和用户端3的用户信息由分发端1获取后,可以由分发端1分发给分发端2、分发端3、接收端1、接收端2和接收端3。用户端可以是终端设备,也可以是服务器,但分发端和接收端均是服务器。
还应理解的是,用户在分发端注册后,分发端即获取该用户的用户信息。在注册过程中,分发端需要对该用户进行身份识别,身份识别是已有技术。该用户注册后,分发端的用户名即为该用户的公钥,分发端的密码即为该用户的私钥,该用户的私钥用于对该用户进行签名,该用户通过该用户的公钥和私钥即可访问分发端。另外,分发端在将该用户的用户信息进行分发之前,需与该用户签订同意分发用户信息的协议,签订协议后,分发端才能分发该用户的用户信息,如此,则符合了相关规定。再者,由于分发端对该用户在分发端产生的行为数据进行画像和分类,得到该用户的类别,由该用户的类别得到信息摘要,并广播到区块链,从而使接收端能够分发到该用户的用户信息,该用户信息可以包括用户的状态(例如,资金缺乏状态),如此,则减少了接收端不获取用户的状态导致接收端的利益受损的问题。
还应理解的是,若区块链的智能合约自收到信息摘要开始,预设时间段内未收到因信息摘要而生成的第一哈希值,则区块链的智能合约从分发端扣除第一参数。由于信息摘要是广播到区块链,而第一哈希值也是广播到区块链,因而区块链的智能合约(智能合约是一种可自行执行的程序)能够实现上述过程。当然,区块链的矿工会对分发端扣除第一参数进行记账。另外,预设时间段可以是根据具体需要设置,例如,每周。由于预设时间段内未收到第一哈希值,因而,智能合约确认接收端不需要分发端的用户信息,此时,由分发端来承担第一参数,接收端在不需要时不用识别用户信息,减少了接收端管理和资源的浪费,并且,通过提高分发成本的方式,减少了分发端分发无效信息。
上文结合图1至图4说明了基于区块链的信息分发方法,下文结合图5说明基于区块链的信息分发***。
为了解决现有技术存在的问题,本发明实施例提供了一种基于区块链的信息分发***,如图5所示,该***包括分发端510和接收端520;
所述分发端510包括:
第一生成单元511,用于根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链;
第一处理单元512,用于根据所述申请标识请求确定用户标识,从而得到所述用户标识的第一哈希值;设置响应请求参数,所述响应请求参数包括第一参数;将所述响应请求参数和所述第一哈希值广播到所述区块链,并将所述用户标识发送给所述接收端;
所述接收端520包括:
第二生成单元521,用于根据所述区块链上的所述信息摘要生成申请标识请求,并将所述申请标识请求发送给所述分发端;
第二处理单元522,用于接收所述用户标识,根据所述区块链上的所述第一哈希值得到第二哈希值,将所述第二哈希值广播到所述区块链,并根据所述第一参数进行处理。
在本发明实施例中,所述申请标识请求携带所述用户的类别和数量;
所述第一处理单元512还用于:
根据所述用户的类别和数量确定用户标识;
对所述用户标识进行哈希运算,得到第一运算结果;
使用分发端私钥对所述第一运算结果进行签名,得到所述用户标识的第一哈希值。
在本发明实施例中,所述第二处理单元522还用于:
从所述区块链上获取所述第一哈希值,使用接收端私钥对所述第一哈希值进行签名,得到第二哈希值。
在本发明实施例中,所述响应请求参数还包括第二参数;
所述第二生成单元521,还用于在根据所述第一参数进行处理之后,根据所述用户标识生成申请信息请求,并将所述申请信息请求发送给所述分发端;
所述第一处理单元512,还用于根据所述申请信息请求确定用户信息,从而得到所述用户信息的第三哈希值;将所述第三哈希值广播到所述区块链,并将所述用户信息发送给所述接收端;
所述第二处理单元522,还用于接收所述用户信息,从所述区块链获取所述第三哈希值,使用所述接收端私钥对所述第三哈希值进行签名,得到第四哈希值,将所述第四哈希值广播到所述区块链,并根据所述第二参数进行处理。
在本发明实施例中,所述申请信息请求携带所述用户标识;
所述第一处理单元512还用于:
根据所述用户标识确定用户信息;
对所述用户信息进行哈希运算,得到第二运算结果;
使用所述分发端私钥对所述第二运算结果进行签名,得到所述用户信息的第三哈希值。
在本发明实施例中,所述分发端还包括预处理单元,用于:
在根据用户的类别和数量生成信息摘要之前,获取用户信息和用户标识;
对用户在分发端产生的行为数据进行画像和分类,得到用户对应的类别;
将用户信息、用户标识和用户对应的类别进行匹配存储。
应理解的是,本发明实施例提供的基于区块链的信息分发***的各部件所执行的功能已经在上述实施例一种基于区块链的信息分发方法中做了详细的介绍,这里不再赘述。
图6示出了分发端的示例性架构600。
如图6所示,架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机***700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机***700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有***700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,上述单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一生成单元和第一处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一生成单元还可以被描述为“根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据用户的类别和数量生成信息摘要,将所述信息摘要广播到区块链;根据所述申请标识请求确定用户标识,从而得到所述用户标识的第一哈希值;设置响应请求参数,所述响应请求参数包括第一参数;将所述响应请求参数和所述第一哈希值广播到所述区块链,并将所述用户标识发送给所述接收端。
应理解的是,接收端与分发端相同,仅是处理器包括的单元,及实现的功能不同,在此不再赘述。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。