一种基于区块链的可信广告数据管理系统的制作方法

文档序号:18835469发布日期:2019-10-09 05:11阅读:168来源:国知局
一种基于区块链的可信广告数据管理系统的制作方法

本发明属于数据安全技术领域,具体为一种基于区块链的可信广告数据管理系统。



背景技术:

随着互联网技术的蓬勃发展,人类进入了大数据时代。传媒产业在大数据的支持下,逐渐开始向小众化、个性化、即时性、灵活性发展,广告的精准投放在大数据技术的支持下成为可能。然而,海量数据的获取与管理过程中也存在着数据可靠性低、不够公开透明、可能被人为操纵、易被篡改、隐私保护困难以及数据安全难以保障等问题。数据获取与管理不当不仅会导致传媒广告投放出现误差,更会导致各类权益纠纷和安全问题。

区块链技术被认为是推进互联网由不可信到可信,由信息传递到价值传递的重要基石。区块链技术由中本聪在《比特币:一种点对点的电子现金系统》中首次提出,最早作为比特币的底层框架技术出现,本质是一个去中心化的数据库,是加密算法、共识机制、分布式数据存储、点对点传输等计算机技术结合在一起的应用模式。



技术实现要素:

本发明的目的在于提供一种精准智能、公正透明、不可篡改的基于区块链的可信广告数据管理方法。

本发明提供的基于区块链的可信广告数据管理方法,采用以下技术方案。

传媒公司对可信联盟链的用户进行身份分类并按分类进行数据使用权限的授权;传媒公司设置为系统角色,对可信联盟链上的数据有读取分析所有权限;广告主设置为业务角色,对广告播放量、用户点击量以及用户购买、收藏、分享率数据拥有读取权限;可信联盟链的不可篡改使传媒公司与广告主之间的信任得到保障;

其中,系统角色根据配置文件获取证书和加密服务提供程序的配置信息,根据配置信息创建可信联盟链客户端的实例,可信联盟链客户端实例是整个基于区块链的可信广告数据管理系统的操作的入口;然后获取负责提交用户资料的登记员的信息(即系统角色信息),如果不存在,则需要先初始化登记员的信息,获取登记员的注册证书和私人信息;

根据配置信息和组织信息创建证书的客户端的实例;根据需要登记的用户信息生成注册请求,提交给证书的客户端;登记员会提交访问可信联盟链的证书请求;通过可信联盟链的证书请求生成用户注册的密码,最终返回给应用程序,完成用户信息登记的步骤;

应用程序利用申请的用户信息和返回的用户注册的密码,调用证书的客户端的调用接口;

证书的客户端生成私钥和证书签名请求,调用可信联盟链提供的调用接口生成注册证书;

返回生成的注册证书和私钥给应用程序;

保存用户信息到分布式数据存储系统keyvaluestore装置里;

传媒公司与广告主之间身份认证使用的基于椭圆曲线算法的双向认证技术;双向认证在系统角色和业务角色之间进行,即传媒公司与广告主之间的数据交易前需要进行双向认证;交易双方传媒公司c和广告主u经过证书获取数字证书后,c的证书certc={idc,qc,(dc,sc),ec,mc},其中idc为证书分配给c的身份标识,rc∈[2,n-2]是c的私钥,qc是c的公钥,qc=rcp,ec表示由h(idc||qc||mc)生成的摘要,(dc,sc)表示证书对ec签名生成的整数对,mc表示与c相关的证书的发放时间和有效期信息;证书的公钥对为(rc,qc);qc、n及用户身份均为公开信息;p表示椭圆曲线e(a,b)上的点,n为p的阶;encryption(k,m)表示用密钥k对消息m进行加密和解密,decryption(k,m)表示用密钥k对消息m进行加密和解密,h(idc||qc||mc)表示单向函数;身份认证的目标就是双方通过相互验证创建一个秘密的共享会话密钥;双向认证流程步骤为:

c:生成随机数r1∈(2,n-2),计算q1=r1p,并向用户u发送消息m1=q1;c→u:q1

u收到消息后,生成随机数r2∈(2,n-2),计算q2=r2p,q1b=rbq1,q12=r2q1,然后以q12作为共享密钥,以及u的证书certu,生成密文cu=encryption(q12,certu||t1),t1为该密文消息的时间戳,将消息m2=q2||cu||h(q12||q1b||certu||t1)发送给用户c;

u→c:q2||cu||h(q12||q1u||certu||t1);

c收到消息m2后,计算q12=r1q2,获得u的证书certu和时间戳certu||t1=decryption(y12,cu),验证certu的有效性;如果验证成功则继续下一步,否则要求重发消息m2;

计算q1u=r1qu,验证h(q12||q1u||certu||t1),以及时间戳t1的有效性;如果成功则进行下一步,否则重新发起会话;

c计算q2c=rcq2和cc=encryption(y12,certc||t2),生成消息m3=cc||h(q12||q2c||certc||t2),发送给u;

c→u:cc||h(q12||q2c||certc||t2);

u收到消息m3后先将certc||t2=decryption(y12,cc)解密,获得c的证书certc和t2,然后验证certc和h(q12||q2c||certc||t2),以及t2的有效性;若验证成功则两者完成相互验证和密钥协商,生成共享会话密钥q12,否则重新发起会话;

广告主将广告内容加入到可信联盟链中的过程为广告数据上链;可信联盟链通过多级加密、共识机制将广告数据上链,广告数据一经上链将不可被撤销、篡改,广告数据在可信联盟链中完全公开、透明、可追溯,解决了广告主、传媒公司以及消费者之间的信任问题,步骤如下:

广告主提供广告数据,广告数据是文字、图片、视频或是他们的组合;

对广告数据的信息进行哈希hash计算,计算得到哈希hash值h(w),并将得到的比特串转化为整数;利用数字签名的公钥加密技术,对广告数据的信息的散列函数值h进行数字签名,从而得到广告数据的信息的签名;

区块文件管理器维护一个当前写入区块文件的数据,写入区块文件的数据包括两个部分,一个是区块大小,另一个是区块数据;写入区块文件中的区块大小和区块数据都是经过序列化处理的;如果写入区块大小和序列化后,当前区块文件的大小超过设定值,则会写入到下一个区块文件中;创建一个新的区块检查点信息,保存到数据库中;

传媒公司将分析后的广告数据的信息反馈给广告主,即在已经实例化的链码通道上,发起一个交易,交易的内容为用户行为数据以及大数据分析结果,在已经实例化的链码通道上,区块链客户端把交易请求发给之前约定好的所有背书节点,背书节点收到上述信息后,首先用公钥验证签名,背书节点执行智能合约,此时执行的结果是模拟交易,不会写到账本里,将执行的结果反馈给客户端;根据椭圆曲线参数以及广告数据的公钥,验证广告数据的签名,直到签名通过验证;

排序阶段接受已经签名背书的交易,确定交易的顺序和数量,将排好序的交易打包到区块中,广播给对等者节点进行验证,通常,从效率方面考虑,排序服务不会输出单个交易作为一个区块,而是把多个交易打包成一个区块;

共识节点将结果广播给所有的对等者节点,然后各对等者节点再更新自己账本;

多个不同类型的节点可以运行在同一物理服务器上,有多种类型的节点:客户端、对等者节点、排序服务节点和证书节点;

客户端或者应用程序代表由最终用户操作的实体,必须连接到某一个对等者节点或者排序服务节点上与可信联盟链进行通信,客户端向背书节点提交交易提案,当收集到足够背书后,向排序服务广播交易,进行排序,生成区块;

所有的对等者节点都是记账节点,负责验证从排序服务节点区块里的交易,维护状态数据和账本的副本;部分对等者节点会执行交易并对结果进行签名背书,充当背书节点的角色;背书节点是动态的角色,是与具体链码绑定的;每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的;也只有在应用程序向它发起交易背书请求的时候才是背书节点,其他时候就是普通的记账节点,只负责验证交易并记账;

身份管理通过通道的技术实现,通道的技术用于限制信息传播的范围;通道技术是和某一个账本关联的,通道的技术明确确定哪些组织及其成员会关注这个交易;而每个交易都是和唯一的通道关联的;系统提供创建通道的功能,以及为用户提供加入通道和退出通道的功能;

可信联盟链中使用基于椭圆曲线算法的双向认证技术进行身份认证;身份认证旨在保护系统角色和业务角色之间的数据传输,通过对双方身份的认证保证数据内容在正确的通道上正确的加密传输;认证协议能使合法用户间互相能够认证,并为两个用户生成共同的内容加密种子;

广告主拥有广告数据,广告数据可能是文字、图片、视频或者是它们的组合;传媒公司将广告主的广告数据加密,利用密码学的相关原理进行数据验证;其中使用哈希散列算法,把任意长度的输入变换成固定长度的由字母和数字组成的输出,具有不可逆性,实现不可篡改;非对称加密部分使用私钥证明节点所有权,通过数字签名实现;

区块是通过共识算法被正式纳入区块链中存储,与此同时全网节点均表示接受区块,而表示接受的方法,就是将区块的随机散列值视为最新的区块散列值,新区块的制造将以对可信联盟链为基础进行延长;从而保证数据一致性、透明、安全;

传媒公司将广告投放给用户,用户通过各种终端将广告数据解密,产生观看、点击、购买、收藏、分享用户行为;用户行为作为数据被实时存储在可信联盟链中;

传媒公司通过大数据技术将可信联盟链上的海量的用户行为的数据进行分析,从而实现广告的精准投放以及个性化推荐,使得海量的用户行为的数据到更有效的利用;

传媒公司将分析后的海量的用户行为的数据的信息反馈给广告主,即在已经实例化的链码通道上,发起一个交易,这个交易内容为用户行为数据以及大户据分析结果。

附图说明

图1是可信区块链数据管理方案图;

图2是可信区块链身份管理流程图;

图3是可信区块链身份双向认证流程图;

图4是可信区块链数据上链流程图;

图5是可信区块链数据交易流程图;

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

区块链系统具有多中心、开放和共识、可信任的特征。其主要技术有以下四点:

(1)分布式账本

交易是由分布式系统中的多个节点共同记录的。每个节点都记录完整的交易记录,因此每个节点都可以参与对交易合法性的监督以及对交易有效性的验证。与传统中心化的方式不同的是,区块链中的节点无权单独记录交易,从而避免了单一记账人或节点被控制而造假的可能性。同时,全网节点参与记录,防止了因单个节点收到攻击导致的数据丢失,保证了数据的安全性。

(2)加密技术和授权技术

区块链技术结合了当前对称加密、非对称加密和哈希算法的许多优点,同时使用椭圆曲线加密算法生成用户的公私钥对和使用椭圆曲线数字签名算法来保证交易安全。区块上打包的交易信息对参与共识的所有节点公开,同时账户的身份信息也经过严格的加密。

(3)共识机制

共识机制是区块链系统中各个节点达成一致的策略和方法。区块链中的共识机制替代了传统应用中心化的保证信任与安全的第三方机构,降低了由于各方互信问题导致的第三方信用成本、时间成本以及资本耗用。常用的共识机制主要有pow、pos、dpos、paxos、pbft等,共识机制是写入方式,同时也是防篡改的有效手段。

(4)智能合约

智能合约是可以自动化执行预先定义规则的一段计算机程序代码。它能够实现价值的存储、传递、管理与控制,为基于区块链的应用提供了创新性的解决方案。

step1:传媒公司对可信联盟链的用户进行身份分类并按分类进行数据使用权限的授权。本发明通过区块链的通道技术实现身份管理,系统通道功能是为了限制信息传播的范围。通道是和某一个账本关联的,这会明确地定义哪些组织及其成员会关注这个交易。而每个交易都是和唯一的通道关联的。系统提供创建通道的功能,以及为用户提供加入通道和退出通道的功能。

step2:可信区块链使用基于椭圆曲线算法的双向认证技术进行身份认证。身份认证旨在保护系统角色和业务角色之间的数据传输,通过对双方身份的认证保证数据内容在正确的通道上正确的加密传输。本发明中认证协议的目的在于使合法用户间互相能够认证,并为两个用户生成共同的内容加密种子。

step3:广告主拥有广告数据,广告数据可能是文字、图片、视频或者是它们的组合。传媒公司将广告主的广告数据加密,利用密码学的相关原理进行数据验证。其中使用哈希散列(hash)算法,把任意长度的输入变换成固定长度的由字母和数字组成的输出,具有不可逆性,实现不可篡改。非对称加密部分使用私钥证明节点所有权,通过数字签名实现。

step4:利用kafka排序功能实现共识。区块通过共识算法被正式纳入区块链中存储,全网节点均表示接受该区块,而表示接受的方法,就是将区块的随机散列值视为最新的区块散列值,新区块的制造将以该区块链为基础进行延长。从而保证数据一致性、透明、安全。

step5:传媒公司将广告投放给用户,用户通过各种终端将广告数据解密,产生观看、点击、购买、收藏、分享等用户行为。这些用户行为作为数据被实时存储在区块链中。

step6:传媒公司通过大数据技术将区块链上的海量用户行为数据进行分析,从而实现广告的精准投放以及个性化推荐,使得用户数据得到更有效的利用。

step7:传媒公司将分析后的数据信息反馈给广告主,即在已经实例化的链码通道上,发起一个交易,这个交易内容为用户行为数据以及大户据分析结果。从而帮助广告主实现广告内容质量优化以及受众分析。使得用户数据得到最大程度的利用,帮助广告主实现广告的小众化、个性化、即时性、灵活性。

可信联盟链通过区块链技术将用户行为转变为实用价值,使用户行为价值可以流通、变现。更好的激发了用户的主观能动性和积极性,并利用区块链去中心化和数据公开透明的特性,来解决价值信任问题,形成可靠的数据流闭环。从广义来看,广告传媒产品最终都是以数字资产的方式表现出来。可信联盟链可以为新型传媒产业的数字资产运作确立一个良好的、稳定的、可资信赖的秩序。因此,可信联盟链的加入会给传媒数据带来极大的机遇和无限的可能。

本发明技术方案基于区块链的可信广告数据管理方法包括可信区块链身份管理过程,可信区块链身份双向认证过程,可信广告数据上链过程,可信区块链交易发起、调用过程以及可新广告数据分析反馈过程。图1是可信区块链数据管理方案图,图2是可信区块链身份管理流程图,图3是可信区块链身份双向认证流程图,图4是可信区块链数据上链流程图,图5是可信区块链数据交易流程图。

本发明中可信区块链身份管理是传媒公司对可信联盟链的用户进行身份分类并按分类进行数据使用权限的授权登记的过程。本发明中ca节点是可信联盟链的证书颁发机构(certificateauthority),由服务器和客户端组件组成。ca节点接收客户端的注册申请,返回注册密码用于用户登录,以便获取身份证书。在区块链网络上所有的操作都会验证用户的身份。如图2所示,步骤如下:

步骤201,将传媒公司设置为系统角色,超级管理员身份,对链上的数据有读取分析等所有权限。将广告主设置为业务角色,对广告播放量、用户点击量以及用户购买、收藏、分享率等数据拥有读取权限。区块链系统的不可篡改性使传媒公司与广告主之间的信任得到保障。

步骤202,根据配置文件获取ca和csp的配置信息,根据配置信息创建可信联盟链client的实例,可信联盟链client实例是整个操作的入口。

步骤203,获取负责提交用户资料的登记员信息registrar(即系统角色信息),如果不存在,则需要先初始化登记员用户,获取登记员的注册证书和私信息。

步骤204,根据配置信息和组织信息创建可信联盟链caclient的实例。

步骤205,根据需要登记的用户信息生成registrationrequest请求,提交给可信联盟链caclient。

步骤206,登记员registrar会提交访问可信联盟链ca的post请求。

步骤207,可信联盟链ca请求生成用户注册的密码secret,最终返回给应用程序,完成用户信息登记的步骤。

步骤208,应用程序利用申请的用户信息和返回的注册密码,调用可信联盟链caclient的enroll接口。

步骤209,可信联盟链caclient生成私钥和证书签名请求csr(certificatesigningrequest),调用可信联盟链提供的enroll接口生成注册证书。

步骤210,返回生成的注册证书和私钥给应用程序。

步骤211,保存用户信息到keyvaluestore里。

本发明中使用基于椭圆曲线算法的双向认证技术进行身份认证。双向认证在系统角色和业务角色之间进行,即传媒公司与广告主之间的数据交易前需要进行双向认证。交易双方传媒公司c和广告主u经过ca获取数字证书后,c的证书certc={idc,qc,(dc,sc),ec,mc},其中idc为ca分配给用户c的身份标识,rc∈[2,n-2]是c的私钥,qc是c的公钥,qc=rcp,ec表示由h(idc||qc||mc)生成的摘要,(dc,sc)表示ca对ec签名生成的整数对,mc表示与c相关的其他信息(如证书发放时间和有效期)。ca的公钥对为(rsc,qsc),qsc,n及用户身份均为公开信息。p表示椭圆曲线e(a,b)上的点,n为p的阶。encryption(k,m),decryption(k,m)表示用密钥k对消息m进行加密和解密,h()表示单向函数。身份认证的目标就是双方通过相互验证创建一个秘密的共享会话密钥。双向认证流程如图3所示,步骤如下:

步骤301,c:生成随机数r1∈(2,n-2),计算q1=r1p,并向用户u发送消息m1=q1;

c→u:q1。

步骤302,u收到消息后,生成随机数r2∈(2,n-2),计算q2=r2p,q1b=rbq1,q12=r2q1,然后以q12作为共享密钥,生成密文cu=encryption(q12,certu||t1),t1为该密文消息的时间戳,将消息m2=q2||cu||h(q12||q1b||certu||t1)发送给用户c;

u→c:q2||cu||h(q12||q1u||certu||t1)。

步骤303,c收到消息m2后,计算q12=r1q2,获得u的证书和时间戳certu||t1=decryption(y12,cu),验证certu的有效性。如果验证成功则继续下一步,否则要求重发消息m2。

步骤304,计算q1u=r1qu,验证h(q12||q1u||certu||t1),以及时间戳t1的有效性。如果成功则进行下一步,否则重新发起会话。

步骤305,c计算q2c=rcq2和cc=encryption(y12,certc||t2),生成消息m3=cc||h(q12||q2c||certc||t2),发送给u。

c→u:cc||h(q12||q2c||certc||t2)。

步骤306,u收到消息m3后先将certc||t2=decryption(y12,cc)解密,获得certc和t2,然后验证certc和h(q12||q2c||certc||t2),以及t2的有效性。若验证成功则两者完成相互验证和密钥协商,生成共享会话密钥q12,否则重新发起会话。

本发明中广告数据上链是广告主将广告内容加入到可信联盟链中的过程。可信联盟链通过多级加密、共识机制将数据上链,广告数据一经上链将不可被撤销、篡改,广告数据在可信联盟链中完全公开、透明、可追溯,解决了广告主、传媒公司以及消费者之间的信任问题,如图4所示,步骤如下:

步骤401,广告主提供广告数据,广告数据可能是文字、图片、视频或是他们的组合。

步骤402,对广告信息进行hash计算,计算得到hash值h(w),并将得到的比特串转化为整数e。

步骤403,利用数字签名的公钥加密技术,对广告数据信息的散列函数值h进行数字签名,这里假定使用的椭圆曲线参数为d=(p,a,b,g,n,h),对应的密钥对为(k,q),其中q为公钥,k为私钥,按如下步骤进行数字签名:

①产生随机数d,1≤d≤n-1;

②计算dg=(x1,y1),将x1转化为整数

③计算若r=0,则重新计算随机数,否则计算d-1modn;

④计算s=d-1(e+kr)modn;

则(r,s)即为广告信息的签名。

步骤404,区块文件管理器维护一个当前写入区块文件的currentfilewriter,写入区块文件的数据包括两个部分,一个是区块大小,另一个是区块数据。写入区块文件中的区块大小和区块数据都是经过序列化处理的。如果写入区块大小和序列化后,当前区块文件的大小超过设定值,则会写入到下一个区块文件中。创建一个新的区块检查点信息,保存到数据库中。

本发明中传媒公司将分析后的数据信息反馈给广告主,即在已经实例化的链码通道上,发起一个交易,这个交易内容为用户行为数据以及大数据分析结果。在已经实例化的链码通道上,从发起一个调用交易到最终记账的全过程如图5所示,步骤如下:

步骤501,区块链客户端把交易请求发给之前约定好的所有背书节点(endorsingpeer)。这里说明一下endorsingpeer的选择是有一定范围的,并不是在所有的endorsingpeer里随意选择,是由所属的chaincode和该chaincode所定义的endorsementpolicy共同决定的。

步骤502,背书节点收到上述信息后,首先用公钥验证它的签名,背书节点执行智能合约(是模拟交易,不会写到账本里),将执行的结果反馈给客户端。根据椭圆曲线参数d=(p,a,b,g,n,h)以及广告数据的公钥q,按以下步骤验证广告数据的签名(r,s):

①验证r和s是区间[1,n-1]上的整数;

②计算w=s-1modn;

③计算u1=ewmodn以及u2=rwmodn;

④计算x=u1g+u2g;

⑤若x=0,则拒绝签名,否则将x的x坐标x1转化为整数并计算

⑥当且仅当v=r时,签名通过验证。

步骤503,排序阶段接受已经签名背书的交易,确定交易的顺序和数量,将排好序的交易打包到区块中,广播给peer节点进行验证。通常,从效率方面考虑,排序服务不会输出单个交易作为一个区块,而是把多个交易打包成一个区块。

步骤504,共识节点将结果广播给所有的节点(peer)。然后各节点再更新自己账本。

本发明中节点是区块链的通信主体,是一个逻辑概念。多个不同类型的节点可以运行在同一物理服务器上。有多种类型的节点:客户端、peer节点、排序服务节点和ca节点。

本发明中客户端或者应用程序代表由最终用户操作的实体,它必须连接到某一个peer节点或者排序服务节点上与区块链网络进行通信。客户端向背书节点(endorser)提交交易提案(transactionproposal),当收集到足够背书后,向排序服务广播交易,进行排序,生成区块。

本发明中所有的peer节点都是记账节点(committer),负责验证从排序服务节点区块里的交易,维护状态数据和账本的副本。部分节点会执行交易并对结果进行签名背书,充当背书节点的角色。背书节点是动态的角色,是与具体链码绑定的。每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。也只有在应用程序向它发起交易背书请求的时候才是背书节点,其他时候就是普通的记账节点,只负责验证交易并记账。

本发明中排序服务节点(orderer)接收包含背书签名的交易,对未打包的交易进行排序生成区块,广播给peer节点。排序服务提供的是原子广播(atomicbroadcast),保证同一个链上的节点接收到相同的消息,并且有相同的逻辑顺序。

排序服务的多通道(multichannel)实现了多链的数据隔离,保证只有同一个链的peer节点才能访问链上的数据,保护用户数据的隐私。

有益效果:本发明为一种基于区块链的可信广告数据管理系统,解决了数据可靠性低、不够公开透明、可能被人为操纵、易被篡改、隐私保护困难以及数据安全难以保障等问题。本发明将区块链技术应用于传媒行业,结合大数据技术,基于可信联盟链对广告商与传媒公司进行身份管理与授权,用户身份双向认证,将广告数据上链,对用户数据进行交易和分析。为传媒公司、广告主以及消费者提供了一个安全可信的广告数据管理方法。从而帮助广告主实现广告内容质量优化以及受众分析。使得用户数据得到最大程度的利用,帮助广告主实现广告的小众化、个性化、即时性、灵活性。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1