CN110191153B - 基于区块链的社交通信方法 - Google Patents

基于区块链的社交通信方法 Download PDF

Info

Publication number
CN110191153B
CN110191153B CN201910331688.4A CN201910331688A CN110191153B CN 110191153 B CN110191153 B CN 110191153B CN 201910331688 A CN201910331688 A CN 201910331688A CN 110191153 B CN110191153 B CN 110191153B
Authority
CN
China
Prior art keywords
node
information
block
data
user
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
CN201910331688.4A
Other languages
English (en)
Other versions
CN110191153A (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.)
Chengdu Pvirtech Co ltd
Original Assignee
Chengdu Pvirtech 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 Chengdu Pvirtech Co ltd filed Critical Chengdu Pvirtech Co ltd
Priority to CN201910331688.4A priority Critical patent/CN110191153B/zh
Publication of CN110191153A publication Critical patent/CN110191153A/zh
Application granted granted Critical
Publication of CN110191153B publication Critical patent/CN110191153B/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
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • 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
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种基于区块链的社交通信方法,该方法包括:以社交平台区域服务器集群节点构建区块链,各集群节点将用户个人数据存储在区块链中。本发明提出了一种基于区块链的社交通信方法,实现了社交网络中用户隐私数据的去中心化存储和认证,认证过程在区块链中完成,利用区块链的不可篡改性确保用户身份的有效性,使用数据摘要代替用户个人信息明文,根据数据摘要为用户匹配信息,即使恶意攻击者截取用户信息也无法查看用户隐私信息明文,保护了用户的隐私。

Description

基于区块链的社交通信方法
技术领域
本发明涉及社交网络,特别涉及一种基于区块链的社交通信方法。
背景技术
近年来,微信、论坛、微博等社交网络发展迅猛,人们也通常会同时加入 多个社交平台来享受互联网提供的便利与完整的服务。以两个社交平台为例, 已经在其中一个平台中注册过的用户想要新加入另一个平台,则就会向原始平 台发送请求询问该用户的基本信息,以便为其提供个性化服务。而传统的身份 认证方法存在用户隐私泄露、伪造认证信息和平台对已认证行为的抵赖问题。 更严重的是,社交网络平台对海量用户相关信息进行调查,用户提供系统以海 量的明文信息,最后统一收集形成中心化的数据库。平台利用用户个人信息和 会话信息进行数据挖掘,采集用户个人特征或爱好。例如Facebook公司,多次 涉嫌侵犯用户隐私,2018年一家第三方公司获取了超过5000万Facebook用户 的数据信息,通过算法建构用户画像并设计软件程序,进而预测和干涉选民的 投票意向和行为。甚至有第三方平台利用海量用户信息,不断对用户进行推荐 和骚扰,无法保证用户个人隐私安全。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种基于区块链的社交 通信方法,包括:
以社交平台区域服务器集群节点构建区块链,各集群节点将用户个人数据 存储在区块链中。
优选地,所述区块链存储结构包括区块头和区块体,所述区块头包括当前 区块所记录的社交网络数据的记录类型。
优选地,所述记录类型包括用户身份信息、个人属性信息、用户状态信息、 社交会话信息。
优选地,所述区块体包含所述记录类型对应的社交网络数据记录,采用 Merkle树进行存储。
优选地,所述社交网络数据记录包括生成时间戳、HASH值、索引编号; 每一个数据记录都对应一个Merkle节点值,所述HASH值是Merkle树的一部 分,防止重复写入或伪造。
优选地,所述方法还包括,在区块链上设置权限限制,各集群节点通过协 商,确定可以访问的社交网络通信内容。
优选地,所述方法还包括,区域服务器集群的每个节点进入P2P网络前, 预设网络接入许可证,该许可证基于节点所属区域、节点类型、节点唯一标识、 有效期信息而使用该区域私钥离线加密生成;当节点进入网络时,收到管理节 点列表并管理节点建立通信连接后,管理节点验证该节点唯一标识是否使用过, 如果使用过,该唯一标识对应的节点是否在线,如果在线,拒绝该节点连接; 如果节点唯一标识有效,验证节点许可证是否有效,管理节点先确认许可证没 有被纂改,然后使用公钥解密许可证,确认许可证中的节点唯一标识与目前节 点上报的唯一标识一致,有效期可用,如果验证通过,则接受该节点。
本发明相比现有技术,具有以下优点:
本发明提出了一种基于区块链的社交通信方法,实现了社交网络中用户隐 私数据的去中心化存储和认证,认证过程在区块链中完成,利用区块链的不可 篡改性确保用户身份的有效性,使用数据摘要代替用户个人信息明文,根据数 据摘要为用户匹配信息,即使恶意攻击者截取用户信息也无法查看用户隐私信 息明文,保护了用户的隐私。
附图说明
图1是根据本发明实施例的基于区块链的社交通信方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详 细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发 明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在 下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的 而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利 要求书实现本发明。
本发明的一方面提供了一种基于区块链的社交通信方法。图1是根据本发 明实施例的基于区块链的社交通信方法流程图。
本发明提出一种基于区块链的社交平台用户隐私保护体系,采用P2P的网 络结构,以社交平台区域服务器集群节点构建区块链,并建立分布式集群数据 库系统的授权访问和安全防护机制。各区域服务器集群节点将用户个人数据存 储在区块链中,并通过加密签名的验证方式将单独的区块链成首尾相接的形式。 社交平台区块链系统包含数据存储模块、密码模块、共识模块和智能合约模块。
数据存储模块中,区块头存储结构包含版本号、时间戳、记录类型、类型 数量、节点代码、节点标识、节点权限、算法计数器、Merkle根、前驱区块头; 其中版本号记录了当前区块生成时所属的系统版本信息。时间戳记录当前区块 的生成时间戳。记录类型记录了当前区块体中所包含的社交信息的类型,标识 字符串每位代表一种类型,记录类型包括用户身份信息、个人属性信息、用户 状态信息、社交会话信息以及社交网络中的其他信息。类型数量记录当前区块 的区块体中所包含的社交信息记录的数量,按记录类型分别计数。节点代码记 录当前区块的生成节点的HASH值,便于快速定位区块对应的生成节点。节点 标识记录当前区块建立时,对应生成节点的等级信息。节点权限记录当前区块 建立时,对应生成节点的权限信息,为不同共识算法提供可识别信息。算法计 数器为共识算法提供数据支持,将共识算法所需的关键信息记录到区块中。 Merkle根记录交易树的树根HASH值。当每次区块被打包的时候,该字段需要 重新计算更新一次,Merkle根为该区块中所有被记录交易的根节点HASH值。 前驱区块头为当前区块前一个区块的区块头的HASH值。
其次,区块体包含通信数据块信息、用户身份信息、个人属性信息和会话 内容信息的社交网络数据记录,并采用Merkle树结构来进行记录。采用对称加 密算法对原始信息进行加密,通过HASH算法形成加密信息摘要,通过非对称 加密算法进行签名,设计符合社交隐私信息保护特征的区块链Merkle树与布隆 过滤器,从而构成防篡改、可追溯的可信数据链。
社交网络数据记录按照时间顺序生成。且每次社交网络数据记录都有索引 编号以供查询。其记录包括生成时间戳、HASH值、数据记录的索引编号以及 关键信息等细节。每一个数据记录都对应一个Merkle节点值,而这个HASH值 是Merkle树的一部分,因此每一个地址都不能重复写入或伪造。每个事件都有 时间戳,成为一条长链的一部分,且无法在事后进行篡改。通过在区块链上设 置权限限制,各集群节点通过协商,确定可以访问的通信内容,从而维持用户 数据的隐私性。
密码模块用于将区块数据进行加密。在加密过程中,使用私钥对加密用户 信息的对称密钥进行加密,并使用公钥对加密后的对称密钥信息解密。私钥所 有者解密后,可以使用对称密钥,解密后获得用户信息。私钥对用户信息签名, 公钥验证签名。通过公钥签名验证的信息确认为私钥所有者发出。由于没有可 信任的中心,传统方法由各节点自主保存私钥,为避免私钥丢失以使认证信息 的永久失效,本发明的密码模块设置集中式的密钥中心,对所有节点密钥进行 统一管理,所有节点在接入区块链前都需要在密钥中心中注册,分配相应的公 钥和私钥,只有获取了集群节点的私钥才能够解密由公钥加密的信息,而通过 密钥中心获取丢失的私钥,确保区块链上数据可以被真实还原。
为实现将密文交由所有节点共同存储和维护,在进一步优选的实施例中, 所述密码模块将明文通过伪随机映射生成密文,再将密文按照随机序列交由区 块链上的区块进行加密存储,并将存储数据的区块号信息反馈至加密节点生成 相应的权限。此后密文由区块链共同维护,只有许可证中具备相应权限的区块 节点才拥有数据解密信息。
首先,使用两个伪随机映射,设置μ0和μ1分别为两个伪随机映射的密钥分 支参数,x0和x1分别为两个密钥序列初始值,按照μ0,x0,μ1,x1分别产生m×n 个随机数,其中μ0和μ1分别为两个伪随机映射的分支参数,x0和x1分别为两个 伪随机映射的序列初始值,生成序列L1(k)、L2(k),并合成m×n大小的随机矩阵 Z1(i,j)m×n,Z2(i,j)m×n;其中,i∈[1,m],j∈[l,n];
根据公式ai和bi分别抽取L1(k)、L2(k)相应位,并作为下一次抽取的初始 位;
Figure RE-GDA0002140252470000051
Figure RE-GDA0002140252470000052
其中,初始位置b0根据明文数据的信息熵确定,信息熵值用h表示。
Figure RE-GDA0002140252470000053
迭代计算ai和bi,使k=1,2,…,m×n,直到L1(k)、L2(k)遍历序列得到ak和bk
由序列ak和bk合成m×n的中间矩阵F(i,j),根据以下公式转换成二进 制随机矩阵Z3(i,j)m×n
Figure BDA0002037888490000061
将Z3(i,j)m×n进行标准互补配对编码,得到对应的编码矩阵Z4(i,j)m×n
将原始明文数据转换成二进制的K(i,j)m×n矩阵,具体地,首先根据互补配 对编码规则进行编码,然后选取置换规则生成乱序的编码Kdisorder(i,j)m×n
计算矩阵Z4(i,j)m×n+Kdisorder(i,j)m×n=Hdisorder(i,j)m×n,并将根据预先选取的所述 置换规则进行相应解码,得到K1(i,j)m×n
选取随机矩阵Z1(i,j)m×n,Z2(i,j)m×n,根据下列公式对矩阵K1(i,j)m×n进行置 乱:
temp=K1(i,j);
K1(i,j)=K(X(i,j),Y(i,j));
K(X(i,j),Y(i,j))=temp;
其中:
Figure BDA0002037888490000062
Figure BDA0002037888490000063
x和y分别为明文矩阵的行列值;
重复上述置乱步骤,直到将矩阵K1(i,j)m×n全部遍历w次,遍历次数w可 根据加密强度进行选择,得到置乱后的加密矩阵并生成相应的信息数据,完成 加密。
将密文分为N个密文块,将密文块进行编号(0,1,2,3,…,N-l)。将块 头存储在集群管理节点中,将其余密文块的编号置乱后按区块链连接顺序发送 给链上的集群节点。接收数据的节点根据本地的加密算法对接收到的数据再次 加密,加密信息存储在该节点的许可证中。由于密文交由区块链节点节点共同 存储、共同维护,因此增加了破译难度。只有当某个节点中的许可证拥有该权 限才可以获得索引信息,进而获取其余区块上的加密数据并对密文进行还原, 保障了信息的私密性。
在社交网络集群节点的存储架构上,首先在多个区域服务器集群节点里选 择多个管理节点,这些管理节点与普通节点组成一个P2P网络簇,管理节点保 存当前区域其余普通节点全部路由信息以及全网其他节点的部分路由信息,管 理节点之间同步路由信息和发现算法。
每个节点启动时,首先计算自己的计算能力值,然后在局域网内通过广播 寻找管理节点,即返回给这个节点当前网络内最高计算能力值前n名列表及节 点地址,节点根据列表比较自己计算出的计算能力值,如果自己属于普通节点, 则保存该列表,从列表中选择一个管理节点进行信息索引同步和资源获取路由; 如果自己的计算能力值更高,则与列表排名最低的节点通信,交接管理节点位 置,拷贝其索引和路由信息,并且广播最新管理节点列表。
如果某个集群节点错过了管理节点列表更新,其在连接旧的管理节点时, 会被告知最新的管理节点列表。如果排名最低的管理节点无法进行通信,则该 节点尝试连接其他管理节点,推荐自己成为管理节点,推荐被接受后,最新管 理节点列表也会被广播。如果有管理节点退出网络,与管理节点组协商,更新 管理节点列表,普通节点可以根据自身计算能力值,进行推荐提升为管理节点。
管理节点保存资源数据,并且在管理节点内进行同步。普通节点不存储资 源数据,需要资源时,通过管理节点进行获取。簇内传播时,普通节点将信息 转给管理节点,并在管理节点间传递,由管理节点实现信息的传播到各个普通 节点。需要全网传播时,由管理节点实现信息路由到全分布结构化P2P网络。
每个区域服务器集群的管理节点间同步本区域的公钥信息。每个节点进入 P2P网络前,预设网络接入许可证,该许可证基于节点所属区域、节点类型、节 点唯一标识、有效期信息而使用该区域私钥离线加密生成。当节点进入网络时, 收到管理节点列表并管理节点建立通信连接后,管理节点需要验证节点唯一标 识是否使用过,如果使用过,该唯一标识对应的节点是否在线,如果在线,拒 绝该节点连接;如果节点唯一标识有效,验证节点许可证是否有效,管理节点 先确认许可证没有被纂改,然后使用公钥解密许可证,确认许可证中的节点唯 一标识与目前节点上报的唯一标识一致,有效期可用,如果验证通过,则接受 该节点。
在本发明的P2P网络中,所有节点都被当作二叉树的叶节点,并且每一个 节点的位置都由其ID值唯一的确定。对于二叉树上的每一个节点都可以通过异 或操作算出逻辑距离,即在每个节点内保存节点距离路由表,每个路由表内保 存多个节点信息(节点地址、端口、节点码)。
节点加入全分布结构化网络时进行组播,发布自身节点标识,寻找网络内 节点。当前节点接收多个最接近自身节点的节点信息,按照节点标识开始构建 自己二叉树和路由表,对二叉树的节点进行査询,直到没有新的节点出现。当 节点x收到另一个节点y消息时,发送节点的信息更新对应的路由表和二叉树 数据,具体如下:
第一,计算节点x和节点y的逻辑距离d(x,y)=x⊕y
第二,根据逻辑距离d(x,y)选择对应逻辑距离的路由表进行更新操作。
如果节点y己经存在于这个路由表中,则该节点移到这个路由表的尾部, 表明这个节点最近被更新过;如果节点y没有记录在这个路由表中,则将它增 加到二叉树中,把节点y(节点地址、端口、节点标识)插入该路由表的队列尾 部。
每个节点周期性的发布全部自己存放数据资源索引,在离自己最近的邻居 需要核实资源内容是否更新,选择需要更新的资源进行更新,即使节点在之后 失效了,它存放的资源数据也已经被更新到其他新节点上,从而实现任何节点 失效,数据都不会丢失。
当有社交数据需要传播时,首先计算数据消息的SHA1散列值得到消息摘 要,在P2P网络上,这个消息至少需要存储在节点标识和消息摘要一致的节点 及靠近它的邻居节点上。具体步骤如下:
第一,计算x与消息摘要m的逻辑距离d(x,m)=x⊕m,其中,从节点 x的第log2d(x,m)个路由表中取出a个节点,如果这个距离的路由表中节点 少于a个,则从其他距离的表里选择最接近d(x,m)的节点,向这些节点转 发该消息摘要所代表的消息。
第二,每个接到转发消息的节点,如果在自己路由表里没有发现更接近消 息摘要的节点,则转发结束;否则,继续选择a个节点返回。
第三,节点x对收到的a节点都进行消息转发,直到每个分支都有最后回 复,则得到a个最接近消息摘要的节点。节点x根据自己建立的二叉树,排除 了己经进行消息转发的节点后,向其他节点传播定向消息,接到定向消息的其 他节点按照随机距离和随机节点数进行转发。
在获取到其他节点的地址之后,节点发送自己的版本信息给对端节点,以 尝试建立连接。该版本信息包括本节点的系统版本、已经同步的区块、节点的 当前系统时间。对端节点收到版本信息之后回复自己的版本信息。当双方都获 取到对方的版本信息之后,就会发送一个确认信息。尝试建立连接的两个节点 在收到对端发过来的版本信息之后,核对系统的时间,确认双方的系统时间是 同步的。如果在预设周期内都没有收到对端的心跳信息,则节点将这条链接断 开。
当一个节点首次加入社交网络区块链系统后,在进行初始化时,节点首先 下载网络中最长的区块链上的所有区块数据,本发明通过随机选择网络中的一 个节点的方式进行区块同步。被同步节点收到请求之后,按照信息内的请求回 复一个头信息。这个头信息包括从首个区块开始的区块链上的所有区块的头信 息HASH值。在收到被同步节点回复的头信息之后,新节点会根据共识机制和 目标数来判断头信息中头信息HASH值的正确性。之后新的节点再次发送请求 头信息去请求接下来的区块头信息HASH值。之后新节点向其他节点重复同样 的区块初始化过程。在确认了获取的头信息是属于当前网络中的最优区块链之 后,新节点会向网路中的完全节点发送请求数据信息以获取完整的区块信息。
所述共识模块用于维护全网数据一致性,每个节点独立地对新区块进行校 验并组装进区块链。对于社交网络,考虑到私有链的可信任性,采用基于会话 和用户数据的独立校验。具体地,首先根据各个终端发送的记录类型,按社交 网络数据记录的约定,写入本次会话内容;输入本节点最新区块HASH值、会 话信息属性、加密后的用户属性;验证提交数据更新的终端节点是有效节点; 如果验证没有通过,数据写入将被拒绝;每一个输入的解锁脚本必须依据相应 输出的锁定脚本来验证;记录本节点最新区块产生时间与验证完毕时间的差值。 在收到数据记录后,每一个节点都在全网广播前对这些交易进行校验,并以接 收时的相应顺序为有效的新数据块建立一个数据块池。
数据块被验证后,集群节点将这些数据块添加到自己的内存池中,用来暂 存尚未被加入到区块的记录。在这个过程中,集群节点收集、验证并中继新的 会话,并把这些会话整合到一个候选区块中。集群节点记录并校验交易的同时, 继续监听社交网络会话,在尝试挖掘新区块的同时,也监听由其他节点发现的 区块。
构建区块的过程可以分为:第一,集群节点初始化一个未注册候选区块; 第二,通过求解工作量证明算法获取记帐权;第三,写入已验证数据块,成为 注册正式区块。
当产生的新区块通过网络传播之后并在集群节点转发前,需要验证新区 块,包括数据结构是否有效,语法是否正确;然后验证新区块父块是否校验正 确;新区块的时间戳是否满足早于验证时刻未来的预设时间间隔;最后判断区 块内的数据是否满足合规性;如果上述条件均满足,则新区块验证成功,输出 校验结果。
最后,所述共识模块进行区块链的组装。集群节点在验证新区块后,将新 区块连接到当前主链上并组装,首先在区块链中寻找新区块父块;链接新区块, 如果当前有效区块未找到父块的,投放到独立区块序列中;从独立区块序列中 寻找以新链区块为父块的子块,直接将其链入链上;验证区块内的数据块;如 果验证成功,则组装完成。一旦收到了父区块并且将其连接到现有区块链上, 节点就从独立区块序列中取出,并且连接到它的父区块,作为区块链的一部分。
所述智能合约模块基于社交网络私有区块链,设计部署智能合约,即通过 代码的形式定义社交网络通信环节中用户与系统存在的交互的业务过程。编写 智能合约包括确认业务信息的格式、业务状态、业务状态变更的条件、业务状 态变更的触发方式、业务状态变更时需要更新的业务信息。代码的编写过程只 需要关注业务功能的处理。
通过编写的智能合约,用户可以查看和更改对所拥有的社交网络数据记录 的访问权限,实现了用户对隐私数据的访问控制;社交网络数据可以在不同节 点之间进行安全转移,实现了对隐私数据的保护;集群将对称加密密钥和用户 个人属性信息存储至区块链中,用户通过与区块链上的智能合约交互更改属性 信息的访问权限和获取加密密钥以解密属性信息。第三方社交平台通过区块链 获取用户的信息,使用投票算法决定第三方社交平台的新节点是否具有合法性, 基于决定结果实现添加节点、授予权限以及自动注册功能。
所述智能合约包括共识合约,共识合约定义了当第三方社交平台有节点发 起注册时,区域服务器集群的管理节点验证注册节点是否有效,若该注册节点 获得预设比例的区域服务器集群内普通节点的选票则可以加入到系统中,也可 以避免重复注册的情况发生。共识合约还可以对合法的节点进行分类,将分类 结果和节点地址存储于分类合约中。分类合约存储了所有节点的分类信息,当 新节点注册时可先查询分类合约中是否已经存储该节点信息,简化注册过程。
所述智能合约包括历史合约、所有关系合约以及访问权限合约。每个用户 节点均拥有历史合约,用于存储与本节点有社交联系的节点信息以及所有关系 合约的地址。所有关系合约则存储了属性信息拥有者以及访问权限合约的地址, 该合约的主要功能就是为了追踪集群存储的数据。用户可通过合约中存储的数 据库信息查看自己的数据是否存储在合法的位置,通过查看属性信息的HASH 值建立数据完整性。访问权限合约则存储了用户节点的权限信息,根据不同类 型的节点定义了相应的权限。初始情况下,所有节点具有密文权限,即只能查 看其他节点的属性信息密文。
所述智能合约还包括用于二次加密的加密合约,该二次加密用于将属性信 息的所有者用户通过集群节点产生针对第三方社交平台节点的转换密钥,该集 群节点利用该转换密钥能够将属性信息的所有者用户的公钥加密后的密文转换 为第三方社交平台节点用公钥加密后的密文。二次加密过程如下:加密合约首 先获取主密钥并向各集群节点发送接受者的公钥,假设有i个集群节点,每个集 群节点都生成一个随机数p,记作pi,分别用主密钥和公钥对pi加密生成pi密文 对,并将其发送给加密合约。加密合约利用同态乘法运算将加密的pi整合成随 机数p,返回给集群节点,集群节点从中解出转换后消息mp的值,再将消息 mp发送给加密合约,合约计算接收者即第三方社交平台节点的新密钥。
所述智能合约还包括自动注册合约,此合约中存储了由对称加密密钥加密 的用户个人属性信息具体HASH值。第三方社交平台通过访问注册合约中的数 值,使用私钥解密获取注册结果,将是否满足注册条件的结果返回给合约,若 符合条件则自动将用户以匿名方式注册到第三方社交平台。
具体地,第三方社交平台首先向用户发送添加请求,用户向分类合约发送 该第三方社交平台的地址,分类合约检索该节点是否已经存在于数据库中,若 不存在,将请求的地址和类型发送给共识合约,管理节点验证是否符合请求的 分类,投票完成后将结果返回给分类合约,分类合约确认授权,将该第三方社 交平台地址和分类结果存储至合约数据库中;若第三方社交平台地址已经存储 于分类合约中但存储的分类与要求的分类不一致,则再次对此节点进行投票验 证,将投票结果存储至合约中。
为保护用户敏感数据的隐私,第三方社交平台只具有读取属性数据记录密 文的权限。任何角色添加权限或更改权限都需获得用户同意。在第三方社交平 台具有密文权限之后,用户向历史合约获取所有关系合约的地址,再向所有关 系合约请求访问权限合约的地址,得到该属性数据记录的访问权限合约地址后 向其发送更改第三方社交平台权限请求,访问权限合约检索是否已经存储该节 点的信息,若不存在该节点信息则直接将该第三方社交平台节点的地址和请求 的权限添加进合约。当集群请求更改第三方社交平台权限时,集群通过访问自 己的历史合约找到访问权限合约的地址,访问权限合约检索是否已经存储节点 的地址及权限,在访问权限合约确认更改第三方社交平台权限时,首先询问用户是否同意更改,即用户仍拥有属性数据记录的所有权。
假设在注册之前第三方社交平台和社交网络区域服务器集群已经约定好 使用的加密算法Epk,公私密钥对为(Pk,Sk),私钥由第三方社交平台保存。自 动注册合约创建过程具体如下:
1、区域服务器集群将该用户的属性信息存储至分布式数据库。
2、集群向第三方社交平台请求该用户的跨平台注册信息;
3、第三方社交平台响应请求,将该用户的属性信息分别加密(形式为 E(M1),E(M2),…,E(Mn))发送给集群,Mi为第i项属性信息;
4、集群创建注册合约,计算由对称加密密钥加密的属性数据记录和用户 属性数据记录中所记录的属性M的HASH值;计算E(M1)×E(M)-1, E(M2)×E(M)-1,…,E(Mn)×E(M)-1,并将计算结果乱序放入属性加密数组中。将 用户地址、HASH值以及属性加密数组存储至自动注册合约。
此时,当用户发起注册请求时,用户不直接与第三方社交平台交互,而是 先向集群发起请求,集群收到请求向第三方社交平台发送自动注册合约的地址。 第三方社交平台访问注册合约,获取属性加密数组中的计算结果,使用私钥Sk进行解密。若解密的结果为0,证明2个明文相同,可进行注册;否则拒绝注册。 由于第三方社交平台无法辨别究竟是哪个明文与密文匹配,无法获取用户的任 何明文属性信息,保证了用户的隐私安全。
进一步地,用户地址是由用户公钥生成,通过地址不能推测出用户的身份 信息,当第三方社交平台访问注册合约时,并不能通过地址判断用户的身份, 即通过智能合约实现了隐藏用户身份信息的功能;其次在注册过程中,第三方 社交平台还可以向集群请求加密的属性信息以便与自动注册合约中的HASH值 比较,验证数据完整性。
综上所述,本发明提出了一种基于区块链的社交通信方法,实现了社交网 络中用户隐私数据的去中心化存储和认证,认证过程在区块链中完成,利用区 块链的不可篡改性确保用户身份的有效性,使用数据摘要代替用户个人信息明 文,根据数据摘要为用户匹配信息,即使恶意攻击者截取用户信息也无法查看 用户隐私信息明文,保护了用户的隐私。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以 用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多 个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码 来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发 明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本 发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围 的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围 之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或 者这种范围和边界的等同形式内的全部变化和修改例。

Claims (7)

1.一种基于区块链的社交通信方法,其特征在于,包括:
以社交平台区域服务器集群节点构建区块链,各集群节点将用户个人数据存储在区块链中;
使用私钥对加密用户信息的对称密钥进行加密,并使用公钥对加密后的对称密钥信息解密;
将明文通过伪随机映射生成密文,再将密文按照随机序列交由区块链上的区块进行加密存储,并将存储数据的区块号信息反馈至加密节点生成相应的权限,此后密文由区块链共同维护,只有许可证中具备相应权限的区块节点才拥有数据解密信息;
该方法还包括:
将明文通过伪随机映射生成密文,再将密文按照随机序列交由区块链上的区块进行加密存储,并将存储数据的区块号信息反馈至加密节点生成相应的权限;此后密文由区块链共同维护,只有许可证中具备相应权限的区块节点才拥有数据解密信息;
首先,使用两个伪随机映射,设置μ0和μ1分别为两个伪随机映射的密钥分支参数,x0和x1分别为两个密钥序列初始值,按照μ0,x0,μ1,x1分别产生m×n个随机数,其中μ0和μ1分别为两个伪随机映射的分支参数,x0和x1分别为两个伪随机映射的序列初始值,生成序列L1(k)、L2(k),并合成m×n大小的随机矩阵Z1(i,j)m×n,Z2(i,j)m×n;其中,i∈[1,m],j∈[l,n];
根据公式ai和bi分别抽取L1(k)、L2(k)相应位,并作为下一次抽取的初始位;
Figure FDA0003467077800000011
Figure FDA0003467077800000012
其中,初始位置b0根据明文数据的信息熵确定,信息熵值用h表示;
Figure FDA0003467077800000024
迭代计算ai和bi,使k=1,2,…,m×n,直到L1(k)、L2(k)遍历序列得到ak和bk
由序列ak和bk合成m×n的中间矩阵F(i,j),根据以下公式转换成二进制随机矩阵Z3(i,j)m×n
Figure FDA0003467077800000021
将Z3(i,j)m×n进行标准互补配对编码,得到对应的编码矩阵Z4(i,j)m×n
将原始明文数据转换成二进制的K(i,j)m×n矩阵,首先根据互补配对编码规则进行编码,然后选取置换规则生成乱序的编码Kdisorder(i,j)m×n
计算矩阵Z4(i,j)m×n+Kdisorder(i,j)m×n=Hdisorder(i,j)m×n,并将根据预先选取的所述置换规则进行相应解码,得到K1(i,j)m×n
选取随机矩阵Z1(i,j)m×n,Z2(i,j)m×n,根据下列公式对矩阵K1(i,j)m×n进行置乱:
temp=K1(i,j);
K1(i,j)=K(X(i,j),Y(i,j));
K(X(i,j),Y(i,j))=temp;
其中:
Figure FDA0003467077800000022
Figure FDA0003467077800000023
x和y分别为明文矩阵的行列值;
重复上述置乱步骤,直到将矩阵K1(i,j)m×n全部遍历w次,遍历次数w可根据加密强度进行选择,得到置乱后的加密矩阵并生成相应的信息数据,完成加密。
2.根据权利要求1所述的方法,其特征在于,所述区块链存储结构包括区块头和区块体,所述区块头包括当前区块所记录的社交网络数据的记录类型。
3.根据权利要求2所述的方法,其特征在于,所述记录类型包括用户身份信息、个人属性信息、用户状态信息、社交会话信息。
4.根据权利要求2所述的方法,其特征在于,所述区块体包含所述记录类型对应的社交网络数据记录,采用Merkle树进行存储。
5.根据权利要求4所述的方法,其特征在于,所述社交网络数据记录包括生成时间戳、HASH值、索引编号;每一个数据记录都对应一个Merkle节点值,所述HASH值是Merkle树的一部分,防止重复写入或伪造。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括,在区块链上设置权限限制,各集群节点通过协商,确定可以访问的社交网络通信内容。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括,区域服务器集群的每个节点进入P2P网络前,预设网络接入许可证,该许可证基于节点所属区域、节点类型、节点唯一标识、有效期信息而使用该区域私钥离线加密生成;当节点进入网络时,收到管理节点列表并管理节点建立通信连接后,管理节点验证该节点唯一标识是否使用过,如果使用过,该唯一标识对应的节点是否在线,如果在线,拒绝该节点连接;如果节点唯一标识有效,验证节点许可证是否有效,管理节点先确认许可证没有被纂改,然后使用公钥解密许可证,确认许可证中的节点唯一标识与目前节点上报的唯一标识一致,有效期可用,如果验证通过,则接受该节点。
CN201910331688.4A 2019-04-24 2019-04-24 基于区块链的社交通信方法 Active CN110191153B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910331688.4A CN110191153B (zh) 2019-04-24 2019-04-24 基于区块链的社交通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910331688.4A CN110191153B (zh) 2019-04-24 2019-04-24 基于区块链的社交通信方法

Publications (2)

Publication Number Publication Date
CN110191153A CN110191153A (zh) 2019-08-30
CN110191153B true CN110191153B (zh) 2022-03-22

Family

ID=67715058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910331688.4A Active CN110191153B (zh) 2019-04-24 2019-04-24 基于区块链的社交通信方法

Country Status (1)

Country Link
CN (1) CN110191153B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111091380B (zh) * 2019-10-25 2023-05-09 趣派(海南)信息科技有限公司 一种基于好友隐蔽验证的区块链资产管理方法
CN110798315B (zh) * 2019-11-11 2021-04-13 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置及终端
CN111177747B (zh) * 2019-12-13 2022-10-28 南京理工大学 一种基于区块链的社交网络隐私数据保护方法
CN111478908B (zh) * 2020-04-09 2022-05-03 杭州溪塔科技有限公司 一种p2p网络中用户建立通讯的方法、装置及电子设备
CN112311764B (zh) * 2020-09-28 2022-05-20 苏州浪潮智能科技有限公司 一种服务器数据交换网络安全系统
CN112560057B (zh) * 2020-12-16 2022-11-18 深圳市大中华区块链科技有限公司 一种基于区块链和ipfs技术的商业社交系统
CN114928835B (zh) * 2022-03-29 2024-07-12 山东大学 基于区块链与密钥管理的动态无线传感器网络构建方法
CN115277054B (zh) * 2022-06-08 2023-11-10 北京邮电大学 一种匿名网络中目录服务方法和系统
CN115550251B (zh) * 2022-12-01 2023-03-10 杭州蚂蚁酷爱科技有限公司 区块链网络、节点集合的维护方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107045650B (zh) * 2016-10-25 2021-06-11 罗轶 一种基于区块链的网约车系统
CN106910051B (zh) * 2017-01-11 2021-01-12 中国互联网络信息中心 一种基于联盟链的dns资源记录公证方法及系统
CN108390891A (zh) * 2018-03-28 2018-08-10 电子科技大学天府协同创新中心 基于私有区块链的信息保护方法
CN109327481B (zh) * 2018-12-17 2021-12-14 北京信息科技大学 一种基于区块链的全网统一在线认证方法及系统

Also Published As

Publication number Publication date
CN110191153A (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
CN110046521B (zh) 去中心化隐私保护方法
CN110059503B (zh) 可追溯的社交信息防泄露方法
CN110191153B (zh) 基于区块链的社交通信方法
CN108429759B (zh) 去中心化存储安全实现方法
CN111970129B (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN110493347B (zh) 基于区块链的大规模云存储中数据访问控制方法及系统
KR102307574B1 (ko) 블록체인을 기반으로 한 클라우드 데이터 저장 시스템 및 데이터 저장 방법
US20240244046A1 (en) Systems and methods for managing device association
KR102399667B1 (ko) 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법
US12052259B2 (en) Blockchain folding
US20100122082A1 (en) User identity validation system and method
CN108833385A (zh) 基于联盟链加密的用户数据匿名共享方法
CN109146479B (zh) 基于区块链的数据加密方法
CN110837491B (zh) 一种区块链金融大数据处理系统及方法
CN114329529A (zh) 一种基于区块链的资产数据管理方法及系统
CN101589591A (zh) 数据传递控制方法、内容传递控制方法、内容处理信息获取方法和内容传递系统
CN105659231A (zh) 实现对数据的访问
CN112801664B (zh) 基于区块链的智能合约供应链可信服务方法
CN113392430B (zh) 基于智能合约认证的数字资源管理方法及系统
CN109714170B (zh) 一种联盟链中数据隔离方法及相应的联盟链系统
CN113228560B (zh) 用于发行的发行设备和方法以及用于请求数字证书的请求设备和方法
KR102647433B1 (ko) 하이브리드블록체인 이용한 존재증명 방법
CN114389878B (zh) 一种区块链分片方法及区块链网络系统
CN105847009A (zh) 一种满足后向安全的rfid双向认证方法
EP3814971A1 (en) Decentralised data management

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