首页 / 专利库 / 银行与财务事项 / 比特币地址 / 基于区块链技术的视频内容防篡改、防丢失及恢复的方法

基于链技术的视频内容防篡改、防丢失及恢复的方法

阅读:512发布:2020-05-12

专利汇可以提供基于链技术的视频内容防篡改、防丢失及恢复的方法专利检索,专利查询,专利分析的服务。并且本 发明 提出了一种采用 区 块 链 技术,依托视频监控P2P网络来防止视频内容被篡改、视频内容丢失等异常情况的发生,以及这些异常视频内容如何恢复的方法。本发明通过设计合理高效的防篡改数据结构,包括 节点 类型、 视频 帧 数据结构、视频区块结构和视频区块链结构等,并利用区块链原有的防篡改设计思路,结合本发明设计的防篡改方法,能有效的防止视频数据被篡改,而被篡改的视频数据能通过同步方法进行恢复。,下面是基于链技术的视频内容防篡改、防丢失及恢复的方法专利的具体信息内容。

1.基于链技术的视频内容防篡改、防丢失及恢复的方法,其特征在于包括以下步骤:
1、检验创世区块里的摄像机IP地址是否被篡改:
1.1、在每个视频区块链节点中,由最先的创世区块开始,其后紧跟着摄像机头区块,头区块所存储的创世区块哈希值指向创世区块,当创世区块里的摄像机IP地址被篡改,那么被篡改的创世区块的哈希值就与摄像机头区块里存储的创世区块哈希值不一致,说明创世区块被篡改;
1.2、如果篡改者有能把摄像机头区块里的创世区块哈希值也一并篡改,甚至连摄像机头区块后序所有视频区块里的前序区块哈希值一同篡改,但这也只是篡改了创世区块所挂接的若干视频区块链中的一条,而其他视频区块链仍然会检测到创世区块被篡改;视频区块链节点以接入同一个创世区块的链条构成主链组,而这些链条又以最长的作为对接特定IP的主链;
1.3、如果篡改者有能力将创世区块及其包含的所有视频区块链都篡改,那么可以采用将原始创世区块的哈希值存储到受限内存区域中,定时检测视频区块链节点所存有的创世区块的哈希值是否跟存储在受限内存区域中的哈希值是否一致,不一致则说明视频区块链节点的创世区块被篡改。
2、防止篡改者使用伪造视频数据来篡改视频区块链:
2.1、采用比特币使用的工作量证明机制PoW,各个视频区块链节点通过比拼算力来公平竞争视频区块记账权,算力竞争对于各个节点几乎都是平等的,因此篡改者在正常情况下很难持续获得记账权,从而避免了篡改者制造最长的伪链。
3、防止篡改者使用强算力来篡改视频区块链:
3.1、统计每次获得视频区块记账权的节点,如果在一个周期内,某个节点获得百分之五十以上的记账权,则产生告警。
4、验证视频数据的有效性,防止伪帧加入视频区块链,或视频帧数据有丢失:
4.1、验证视频帧数据存储的摄像机IP地址是否合法,防止伪帧;
4.2、验证视频帧数据存储的帧长度与实际接收到的帧长度,防止丢失。
5、验证视频区块的有效性,防止伪造视频区块加入区块链:
5.1、验证视频区块里存储的摄像机IP地址是否合法,防止伪数据;
5.2、验证视频区块是否符合工作量证明算法
5.3、验证视频区块的视频根节点哈希值是否与其下挂接的视频数据梅克尔树推算出的哈希值一致,防止视频数据被篡改;
5.4、验证视频数据梅克尔树里所有的视频数据是否合法有效。
6、视频帧数据的恢复:
6.1、对于数据不全的视频帧数据或者有未接收到的视频帧数据,需要通过从其他节点那里同步视频帧数据过来,这两种类型也就对应了告警池里的坏帧和丢帧两种情况,因此可以从告警信息得到它们所属的摄像机IP、帧编号以及时间戳,根据这三个参数结合就能从其他视频区块链节点那里定位到准确的视频数据,从而完成同步。

说明书全文

基于链技术的视频内容防篡改、防丢失及恢复的方法

技术领域

[0001] 本发明涉及区块链技术领域,具体涉及一种利用区块链技术实现视频内容的防篡改、防丢失及恢复的方法。

背景技术

[0002] 区块链技术是集数据分布式存储、点对点传输网络、共识机制以及加密算法等计算机技术融合在一起的新型应用模式。
[0003] 从狭义来讲,区块链是一种按照时间先后顺序,将由数据组成的区块借助哈希指针顺序相连,以此组合成一种链式数据结构,同时以密码学方式保证了区块里数据的不可篡改,而这种链式数据结构是独立存储于不同节点,共识机制保证了不同节点所存储数据的一致性和不可伪造性。
[0004] 从广义上来讲,区块链是利用块链式数据结构来验证并存储数据,利用共识机制让分布式节点生成数据,并让节点独立验证并更新数据,利用密码学方式保证数据传输和访问的安全,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构和计算方式。
[0005] 区块链是比特币使用的底层技术,而区块链技术最吸引人的就是它的去中心化思想,它摒弃了传统的由单一化中心机构来管理数据的方式,转而由全网所有的节点共同维护数据,实现安全地存储数据,具有不可伪造性、不可篡改性、可追溯性、匿名性等特点。由此可见,区块链是一个分布式账本,每个节点独立维护一份账本数据,每个账本数据包括了所有的历史数据,账本之间通过哈希指针连接。正常情况下,全网维护着共同的区块链数据,单个节点存储的数据与全网其他节点所维护的数据是一致的。一旦有攻击者试图篡改数据,那么区块链的共识机制和密码技术能保证攻击者很难得逞。
[0006] 近年来,国内接二连三的爆出诸如幼儿园虐童事件,甚至在治安条件最好的一线城市、收费昂贵的私立幼儿园也存在虐童现象。众所周知,视频监控资料一般都保存在园方,当执法部和家长要求查看视频监控时,相关责任人总会以摄像头损坏、视频存储的硬盘受损等原因导致监控视频丢失或者监控视频中一些关键画面的缺失来推脱,造成执法部门不能有效取证,进而不能快速、有效的惩戒罪犯。因此,我们可以利用区块链的去中心化技术、加密技术和分布式存储技术来防范视频数据被篡改,并实现视频数据丢失检测、以及视频内容的恢复,从而为后期调查取证提供强有支撑,为社会监管和监督提供有力保障。

发明内容

[0007] 本发明提出了一种采用区块链技术,依托视频监控P2P网络来防止视频内容被篡改、视频内容丢失等异常情况的发生,以及这些异常视频内容如何恢复的方法。
[0008] 为解决上述技术问题,本发明采用以下技术方案:
[0009] 本发明通过设计合理高效的防篡改数据结构,包括节点类型、视频数据结构、视频区块结构和视频区块链结构等,并利用区块链原有的防篡改设计思路,结合本发明设计的防篡改方法,能有效的防止视频数据被篡改,而被篡改的视频数据能通过同步方法进行恢复。
[0010] 上述方法通过下列步骤得以实现:
[0011] 设计视频监控P2P网络:
[0012] 视频监控P2P网络包含两种不同类型的节点:数据源节点和视频区块链节点,前者由摄像头组成,主要负责视频数据的生成与传播;后者负责接收、验证和转发视频区块,视频区块记账权的竞争以及视频区块链的存储与更新。
[0013] 设计防篡改数据类型和结构,包括如下:
[0014] 1、包含所有摄像机IP信息的创世区块;
[0015] 2、包含创世区块哈希值、摄像机IP等信息组成的摄像机头区块;
[0016] 3、视频数据按时间先后顺序两两结合组成梅克尔树结构;
[0017] 4、包含梅克尔树树根、帧总数、前序区块哈希值、摄像机IP等信息组成的视频区块;
[0018] 5、包含视频帧数据、时间戳、摄像机IP等信息组成的视频数据;
[0019] 6、由创世区块、摄像机头区块和视频区块组成视频区块链;
[0020] 7、每一路摄像机产生的视频单独对应有一条视频区块链,由对应的摄像机头区块指向同一个创世区块,那么有几台摄像机就有几个摄像机头区块及其后挂接的视频区块,它们都指向相同的创世区块;
[0021] 8、视频帧池存放经过有效性检查的视频帧数据,孤儿池存放着暂时没有前序视频帧数据到来的视频帧数据;
[0022] 9、告警池里存储各种告警信息。
[0023] 视频内容防篡改步骤如下所示:
[0024] 1、检验创世区块里的摄像机IP地址是否被篡改:
[0025] 1.1)在每个视频区块链节点中,由最先的创世区块开始,其后紧跟着摄像机头区块,头区块所存储的创世区块哈希值指向创世区块,当创世区块里的摄像机IP地址被篡改,那么被篡改的创世区块的哈希值就与摄像机头区块里存储的创世区块哈希值不一致,说明创世区块被篡改;
[0026] 1.2)如果篡改者有能力把摄像机头区块里的创世区块哈希值也一并篡改,甚至连摄像机头区块后序所有视频区块里的前序区块哈希值一同篡改,但这也只是篡改了创世区块所挂接的若干视频区块链中的一条,而其他视频区块链仍然会检测到创世区块被篡改;视频区块链节点以接入同一个创世区块的链条构成主链组,而这些链条又以最长的作为对接特定IP的主链;
[0027] 1.3)如果篡改者有能力将创世区块及其包含的所有视频区块链都篡改,那么可以采用将原始创世区块的哈希值存储到受限内存区域中,定时检测视频区块链节点所存有的创世区块的哈希值是否跟存储在受限内存区域中的哈希值是否一致,不一致则说明视频区块链节点的创世区块被篡改;
[0028] 2、防止篡改者使用伪造视频数据来篡改视频区块链
[0029] 2.1)采用比特币使用的工作量证明机制PoW,各个视频区块链节点通过比拼算力来公平竞争视频区块记账权,算力竞争对于各个节点几乎都是平等的,因此篡改者在正常情况下很难持续获得记账权,从而避免了篡改者制造最长的伪链;
[0030] 3、防止篡改者使用强算力来篡改视频区块链
[0031] 3.1)统计每次获得视频区块记账权的节点,如果在一个周期内,某个节点获得百分之五十以上的记账权,则产生告警;
[0032] 4、验证视频数据帧的有效性,防止伪帧加入视频区块链,或视频帧数据有丢失[0033] 4.1)验证视频帧数据存储的摄像机IP地址是否合法,防止伪帧;
[0034] 4.2)验证视频帧数据存储的帧长度与实际接收到的帧长度,防止丢失;
[0035] 5、验证视频区块的有效性,防止伪造视频区块加入区块链
[0036] 5.1)验证视频区块里存储的摄像机IP地址是否合法,防止伪数据;
[0037] 5.2)验证视频区块是否符合工作量证明算法;
[0038] 5.3)验证视频区块的视频根节点哈希值是否与其下挂接的视频数据梅克尔树推算出的哈希值一致,防止视频数据被篡改;
[0039] 5.4)验证视频数据梅克尔树里所有的视频数据是否合法有效;
[0040] 6、视频帧数据的恢复
[0041] 6.1)对于数据不全的视频帧数据或者有未接收到的视频帧数据,需要通过从其他节点那里同步视频帧数据,这两种类型也就对应了告警池里的坏帧和丢帧两种情况,因此可以从告警信息得到它们所属的摄像机IP、帧编号以及时间戳,根据这三个参数结合就能从其他视频区块链节点那里定位到准确的视频数据,从而完成同步。
[0042] 本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0043] 1、设计了有效合理的视频监控P2P网络,依托此网络,视频内容不再掌握在唯一的所有者手里;
[0044] 2、能够有效防止视频内容被篡改;
[0045] 3、快速检测到视频内容的异常,能迅速的对异常数据进行恢复。附图说明
[0046] 图1为基于区块链技术的视频监控P2P网络示意图;
[0047] 图2为视频区块链结构示意图;
[0048] 图3为不同节点类型网络连接示意图;
[0049] 图4为视频区块链创世区块的示意图;
[0050] 图5为摄像机头区块数据结构示意图;
[0051] 图6为视频区块头部数据结构示意图;
[0052] 图7为视频数据梅克尔树结构示意图;
[0053] 图8为由视频区块组成的链式结构示意图;
[0054] 图9为视频数据结构示意图;
[0055] 图10为创世区块、摄像机头区块和视频区块关系示意图;
[0056] 图11为视频帧池和孤儿池示意图;
[0057] 图12为告警池示意图;
[0058] 图13为检测摄像机IP地址示意图;
[0059] 图14为篡改视频区块链方法一示意图;
[0060] 图15为防篡改视频区块链示意图;
[0061] 图16为创世区块哈希值比对防篡改方法示意图;
[0062] 图17为篡改视频区块链方法二示意图;
[0063] 图18为防强算力篡改方法示意图;
[0064] 图19为视频帧数据防篡改和防丢失流程示意图;
[0065] 图20为数据帧数据恢复流程示意图;
[0066] 图21为视频区块链节点组装的视频区块结构示意图;
[0067] 图22为验证视频区块有效性流程示意图;

具体实施方式

[0068] 下面结合附图对本发明的技术方案做进一步的详细说明:
[0069] 如图1所示,假设有节点camera、节点1、节点2、节点3和节点4五个独立、对等的节点,它们一起构成P2P视频监控网络。视频数据源来自于节点camera,节点camera里的摄像机产生的数据发送给P2P网络中与它相邻的节点(节点1和节点2),再由这些相邻节点转发给其他与它们相邻的节点(节点3和节点4),这样在短时间内整个P2P网络中的除节点camera之外的其他所有节点都会接收到视频数据。除节点camera之外的四个节点每次收到视频帧数据后,首先要检测视频帧数据的完整性,防止有视频帧数据丢失或损坏,检测通过的视频帧数据,节点会将它放入本地的视频帧池,同时会从视频帧池里面按照视频产生的时间先后顺序提取若干视频帧来构建视频区块,并等待被记入视频区块链。另外,这四个节点采用区块链所使用的工作量证明算法(PoW)来竞争记账权,获得记账权的节点有权提议自己构建的视频区块写入视频区块链中,同时将这个视频区块广播给其他节点,由其他节点验证通过后同步到各自本地的视频区块链上,从而实现全网视频数据的同步。
[0070] 视频区块链的结构如图2所示,由创世区块、摄像机头区块和若干视频区块构成,视频区块里面则包含着完整的视频帧数据。下面对本发明所涉及的视频区块链数据结构模型作详细的说明:
[0071] 1、在图1中,节点camera虽然与其他四个节点在P2P视频监控网络中属于对等节点,但是它们之间的功能却不相同。节点camera属于数据源节点,它是由多路摄像机组成,节点camera只负责产生视频帧数据,并不参与视频帧数据的存储,也不参与视频区块记账权的竞争,所以该节点不存储视频区块链,也不会接收其他节点转发的数据区块;其他四个节点不产生视频帧数据,但参与视频区块记账权竞争,同时维护本地的视频区块链,所以这些节点属于视频区块链节点。因此,本发明设计的视频监控P2P网络包含数据源节点和视频区块链节点这两种不同类型的节点,这一点与区块链的节点概念是完全不同的。不同的节点camera之间不需要建立网络连接关系,因为它们只负责发送视频帧数据,所以它们需要与至少一个视频区块链节点相连,如图3所示。
[0072] 假设图1中节点camera中的摄像机采集的都是节点1里的图像视频帧数据,那么节点camera和节点1虽然地理位置上重叠,但它们在P2P网路中属于对等的不同节点。
[0073] 2、在摄像机视频数据生成之前,首先要产生一个视频区块链的创世区块,其数据结构如图4所示。创世区块是由各路摄像机的IP地址组成,即IP1、…、IPN,标识当前接入的摄像机IP信息。创世区块创建成功之后会同步到P2P网络中的各个节点。
[0074] 3、创世区块之后的第一个后序区块为摄像机头区块,本发明设计视频区块链里并不只包含一条主区块链,而是为每路摄像机都创建一条属于它们自己的视频区块链作为主区块链,这有别于比特币区块链只有一条主区块链的设计理念。根据不同的摄像机IP地址,分别创建对应的视频区块链。摄像机头区块数据结构如图5所示,由四部分组成:
[0075] (1)创世区块哈希值Hash_initblock指向视频区块链的创世区块,创世区块相当于摄像机头区块的前序区块,本发明采用比特币使用的密码哈希算法双重SHA256计算出创世区块哈希值,利用密码哈希算法的单向性来保证创世区块数据完整性,由此得到创世区块哈希值,即Hash_initblock=sha256(sha256(IP1||IP2||...||IPN));
[0076] (2)摄像机IP地址camera_ip,体现地理位置信息,用于标识采集视频内容的摄像机,也用于帮助后序视频区块找到自己所属的视频区块链;
[0077] (3)时间戳timestamp标识该区块生成的时间,在摄像机头区块中该时间戳为0;
[0078] 摄像机头区块创建成功后会自动通过P2P网络同步到各个节点,并指向创世区块。
[0079] 4、摄像机头区块之后的后序区块就是视频区块,视频区块是由摄像机产生的一定数量的视频数据构成,视频区块的数据结构由视频区块头部数据结构和视频数据梅克尔树结构组成。
[0080] 视频区块头部数据结构如图6所示,由六部分组成:
[0081] (1)临时随机数nonce:用于工作量证明算法(PoW)的临时随机数;
[0082] (2)前序区块哈希值pre_H:指向前序区块的哈希指针,第一个视频区块的前序区块指向的是摄像机头区块,以后的前序区块都指向已经挂链的视频区块;
[0083] (3)摄像机IP地址:简写为camera_ip。体现地理位置信息,用于标识采集视频数据的摄像机,也用于帮助后序视频区块找到自己所属的视频区块链;
[0084] (4)时间戳:简写为timestamp,视频区块生成的时间;
[0085] (5)帧总数:简写为frameCount,标识该视频区块中视频数据梅克尔树下面挂接的视频帧数据的总量;
[0086] (6)视频树树根:简写为root_hash,该哈希值指向对应的视频数据梅克尔树,它能有效的检测到挂接在梅克尔树下的视频数据是否被篡改;
[0087] 视频数据梅克尔树,如图7所示。将一定数量的视频数据使用双重SHA256算法(用DHash()来表示)分别计算哈希值,构成梅克尔树的第一层叶子节点,然后将这些哈希值两两分组,每组中两个哈希值结合起来再次进行哈希计算,其计算结果形成了上一层的叶子节点,将上一层的叶子节点再次两两分组,每一组的上一层是该组两个哈希值成员结合起来进行哈希计算的结果,以此类推,直到得到单一哈希值,即树根节点,这样的树形结构就叫梅克尔树结构。
[0088] 视频区块的完整数据结构及其组成的链式结构如图8所示。
[0089] 5、视频数据结构除了包含一帧完整数据外,还包含摄像机IP地址、时间戳和帧数据长度。如图9所示。
[0090] (1)摄像机IP地址,简写为camera_ip,标识该视频数据是由哪台摄像机生成,后序每个摄像机产生的视频区块可以根据摄像机IP地址来挂到相应的视频区块链上;
[0091] (2)时间戳,简写为timestamp,标识视频数据生成的时间;
[0092] (3)帧数据长度,标识视频数据大小;
[0093] (4)帧数据,标识一帧完整的视频数据;
[0094] 6、创世区块、摄像机头区块和视频区块关系如图10所示。本发明设计根据不同的摄像机IP地址,分别创建对应的视频区块链,若干视频区块按照时间先后顺序依次挂接在各自对应的视频区块链上,每条视频区块链都指向同一个创世区块。
[0095] 7、视频帧池和孤儿池
[0096] 摄像机监控一旦启动后,节点camera就会源源不断地往视频监控P2P网络推送视频数据,这些视频数据被节点接收到后,并非立刻挂入视频区块链中,而是要通过防篡改和完整性检测,接着放入接收节点本地的视频帧池里,并严格按照时间戳先后顺序存放。视频帧池就是一段临时存放视频数据的内存区域,只有完成工作量证明的节点才能将自己从本地视频帧池里提取的若干视频数据所组装的视频区块挂接到本地的视频区块链上,以此完成更新本地视频区块链的工作。除此之外,还要将视频区块广播到邻近节点,直到整个P2P网络中的所有节点都收到该视频区块,同时让其他节点验证并更新它们自己本地的视频区块链。
[0097] 另外,P2P网络可能存在延时,导致后序时间的视频数据可能先到达节点,那么就将这些没有前序视频数据关联的后序视频数据临时存放在孤儿池,等到前序视频数据达到节点后再从孤儿池里提取出来放入视频帧池,所以孤儿池也是一段临时存放视频数据的内存区域,只不过跟视频帧池相比,前者里面存放的是按时间戳顺序链接的视频数据,而孤儿池里的视频数据则是等待前序时间视频数据到来的数据,一旦前序视频数据到达本节点,则后序视频数据就从孤儿池里面提取出来并挂接到前序视频数据之后。视频帧池和孤儿池如图11所示。
[0098] 8、告警池
[0099] 告警池主要存放本节点发出的告警信息,比如节点收到包含坏帧的视频帧数据或一定时间内没有收到视频帧数据时,就将告警信息写入告警池。告警池也是一段内存区域,如图12所示。告警信息如表1所示。
[0100] 表1告警信息类型与参数
[0101]
[0102] 其中帧编号=摄像机IP+时间戳,时间戳是该帧数据生成的时间。
[0103] 视频内容防篡改、防丢失检测及恢复机制如下步骤:
[0104] 1、篡改者有可能从视频源头来篡改视频内容,即把摄像机直接更换为另一台摄像机,因此伪造一条全新的视频区块链,所以需要篡改创世区块中摄像机的IP地址,假设将创世区块里的IP2地址改动为IP2′地址,并在其后创建伪造的摄像机头区块,这样后序伪造的视频区块就能够顺利地挂接到这条伪链上。但是在前面介绍摄像机头区块的数据结构里,有标识为创世区块哈希值的字段,该字段存储的是创世区块哈希值Hash_initblock,即sha256(sha256(IP1||IP2||...||IPN))计算所得,当篡改者将创世区块里的IP2地址改动为IP2′地址,那么计算sha256(sha256(IP1||IP2′||...||IPN))所得哈希值必然与篡改之前创建的摄像机头区块里该字段存储的哈希值不一致,从而能够检测到篡改行为,如图13所示。
[0105] 虽然区块里的前序区块哈希值有助于我们检测到前序区块数据被篡改,但是如果篡改者把后序区块里的前序区块哈希值一起篡改,一直篡改到视频区块链最新的区块,那么就无法检测到创世区块的篡改行为。实际上,篡改者可以按照这个思路把本地存储的视频区块链全部篡改,如图14所示。虽然篡改者有能力篡改本地数据,但是要让P2P网络里的其他节点都认同并同步更新区块链,只有这样才能真正实现数据的篡改。由于采用比特币的PoW机制,只要篡改者有足够的算力获得视频区块记账权,那么它就能持续制造伪视频区块,直到超过原摄像头IP2生成的视频区块链长度,那么其他节点就会认可这个最长的链作为主链,也就是说原先摄像机IP2产生的视频区块链将不会再增长,因为创世区块里面已经不存在摄像机IP2的字段,所以IP2地址产生的视频不会再挂接到原来IP2的视频区块链上,随着时间流逝,摄像机IP2′的视频区块链将会越来越长,其他节点就会认可这条伪链,包括认可伪造的创世区块。
[0106] 针对上面可能的篡改方式,本发明使用一种巧妙的设计,即设计不止一条视频区块链,每个摄像机都对应一条属于自己的视频区块链,节点不但认可最长的视频区块链为主链,而且以最多的视频区块链作为主链组。如图15所示,假设有三路摄像机1、2、3组成一组视频区块链,篡改者将创世区块里的摄像机1改为摄像机4并生成伪造的创世区块,然后在此基础上生成摄像机4的创视频区块链,但是摄像机2和3的摄像机头区块能检测到创世区块已经被篡改,所以不会把摄像机2和3生成的视频区块链挂到伪造创世区块上,因此伪造的创世区块上只有摄像机4生成的伪造视频区块链,按照发明设计的原则,原创世区块有三路视频区块链,而伪造创世区块只有一路视频区块链,所以节点不会认可伪造创世区块及其挂接的视频区块链。
[0107] 2、如果篡改者拥有的算力足以将创世区块下面链接的所有视频区块链都篡改,那么提到的以最长视频区块链为主链、以最多视频区块链为主链组的方法就会失效,本发明采用一种方法可以检测到篡改,将创世区块的哈希值保存在受限访问区域,杜绝非授权用户访问并修改Hash_initblock值。当视频区块链创世区块生成完成后,就设置防篡改定时器定时检测视频区块链的创世区块,通过重新计算创世区块哈希值得到Hash_initblock′,并将其与受限访问区域保存的哈希值Hash_initblock进行比对,如果这两个哈希值比对失败,即Hash_initblock≠Hash_initblock′,则说明创世区块中至少有一台摄像机的IP地址被篡改,节点不会认可该创世区块及其挂接的视频区块链。当创世区块哈希值比对失败,则产生告警信息。流程见图16所示。
[0108] 3、前面介绍的都是篡改者篡改摄像机IP地址,然后挂接篡改后的摄像机视频数据。如果篡改者不改变摄像机IP地址,仍然沿用以前的IP地址,只是把摄像机采集的视频换成其他画面或视频源,这又如何防止?这种情况下,篡改者就没必要篡改创世区块,只需要从篡改的起始时间开始,重新制造一条伪视频区块链,并超过原来的视频区块链成为主链,这样其他节点按照最长视频区块链为主链的原则接纳该伪链,如图17所示。针对这类篡改,本发明采用的方法是沿用比特币所采用的区块链技术中的去中心化设计思想,即PoW机制,各个节点通过算力竞争视频区块记账权,算力竞争对于各个节点几乎都是平等的,因此篡改者在正常情况下很难持续获得记账权,从而成功制造最长的伪链。
[0109] 但是篡改者可以通过提高自身算力的方式在最短时间内最大程度的获得记账权,这样就能不断延伸伪造的视频区块链以期成为最长的链,理论上如果篡改者获得超过全网50%的算力,那么它就有可能连续获得记账权并成功实现篡改。比特币的区块链技术能保证在每隔一段时间全网就重新调整记账权获取难度,使得记账权的获取时间保持在十分钟左右。但是篡改者可以持续增加算力来企图持续获得记账权,那么针对篡改者算力强劲导致的篡改,本发明采用的方法是:判断在一个小时时间内某个节点是否获取了超过三次的记账权,超过三次则会发出告警信息。因为记账权获取间隔为10分钟,所以一个小时内大约会有6次记账权机会,如果某个节点获得百分之五十以上的记账机会,那么就有可能是篡改者。针对这个方法设计一套防强算力篡改的流程,如图18所示,首先各个节点保存每一次竞争记账权成功的节点信息;然后每6次记账权生成之后,各个节点统计哪一个节点获取成功次数超过3次;如果有节点获取成功次数超过3次,则产生告警。
[0110] 4、节点camera产生的视频帧数据通过P2P网络传播到与之相连的视频区块链节点,节点接收到视频帧数据后,首先检查数据帧是否为伪帧,防止伪造视频数据进入视频区块链;其次视频数据在网络中传播时,难免会存在一帧数据里部分数据丢失的情况,那么在后期通过视频数据还原视频时就会出现错误,所以要检查数据帧的完整性,防止数据部分丢失。视频帧数据结构如图9所示,接收数据的视频区块链节点首先提取视频帧里的摄像机IP信息,检查该IP是否属于创世区块里保存的摄像机IP群组中的一个,如果不一致,则说明该视频帧不属于合法摄像机生成的,这时就产生告警信息,帧数据同时丢弃,不再进行转发,从而避免网络泛洪;通过前者检查后,接着就判断接收到的数据长度是否与数据结构里帧数据长度一致,如果不一致,说明帧数据不完整有丢失,节点把坏帧信息记录到本地告警池里,同时将产生告警信息并向邻居节点广播,并将数据丢弃,不再进行转发,从而避免网络泛洪。数据帧的检查流程如图19所示。
[0111] 通过上述检查的视频帧数据会被接收节点放置到本地的视频帧池里面,并按照时间戳先后顺序依次放置在同属一个摄像机IP的队列里面,等待后续组装成视频区块。
[0112] 5、本发明在视频帧数据结构里设计时间戳这个字段就是为了能够及时检测到是否有丢失的数据,防止后期无法恢复视频,特别是丢失了关键帧。因此,在本地节点的视频帧池里存放的都是按照时间戳先后顺序排列的视频数据,如果时间戳不连续则说明有丢帧。由于P2P网络可能存在延时,所以可能出现后序时间的视频数据先到节点,如果有些视频数据没有前序视频数据到来就暂时放入孤儿池。本发明假设等待某个时间段,如果超过这个时间段还没有收到前序视频数据,则说明数据帧可能丢失了,那么就向邻居节点广播告警信息。
[0113] 同时,时间戳结合摄像机IP地址就能唯一标识视频帧数据,根据这个标识就能迅速定位到视频帧数据。
[0114] 6、视频帧数据恢复的方法:从步骤4和5知道,节点收到坏帧或丢失帧的情况下,都会向邻居节点发送告警信息,邻居节点收到告警信息后,会根据时间戳和ip地址在本地视频帧池里定位该视频数据,如果在池里定位到该数据,则说明本节点已经验证通过了这个视频帧的有效性和完整性检测,这时就把该视频数据发送给告警节点,告警节点根据该数据重新恢复帧数据;如果没有定位到该视频数据,可能有两个原因,一是本节点收到的也是坏帧,没有通过节点检查,二是该视频数据还没有到达本节点。对于前者,节点在接收到坏帧时同样会记录进告警池,收到邻居节点的告警后,在本地视频帧池里面没有找到视频数据就去查看告警池,如果告警池里存在则不需要再次转发该告警信息给其他邻居节点,但是会将告警节点记录下来,同时回复告警节点:该视频数据在我这边也是坏帧,等我收到正确帧后会转发给你;对于后者,节点会将告警信息转发给邻居节点,同时回复告警节点:该视频数据在我这边也没收到,已转发给其他节点。只要网络中有节点存有该视频数据,就会将视频数据传给告警节点。告警节点收到其他节点回复的正确视频数据后,会再次检测完整性,检测通过则从告警池里将告警信息删除。需要注意的是,告警节点需要接收多个节点回复的数据,只要多个节点的回复数据如果都一致则基本确认恢复的数据是正确可靠的,以防恶意节点回复错误帧。视频数据恢复流程图如图20所示。
[0115] 告警节点重新同步视频数据后,会将告警信息从告警池中删除。
[0116] 7、视频区块链节点会从本地视频帧池里面提取若干视频帧数据组装成视频区块,视频区块链节点通过工作量证明机制PoW来竞争视频区块记账权,获得记账权的节点就能把自己主张的区块挂到本节点的视频区块链上,如图21所示。节点同时把自己主张的区块通过P2P网络广播给它的邻居节点,邻居节点检验通过该视频区块后,会将它转发给它相邻的节点,直到网络中所有节点都接收到该视频区块,每个节点都会独立的检验视频区块,检验通过的将会挂接到本地视频区块链上,这样保证了各个节点的数据同步和数据内容的高度一致性。
[0117] 邻居节点收到视频区块后,开始第一步检验,即验证收到的视频区块有效性,主要是验证区块头部是否符合工作量证明要求,其次验证区块里的视频数据里的摄像头IP是否与区块头部里的摄像头IP一致、帧总数是否一致、包含的视频数据时间戳是否连续、帧数据是否正确完整,帧数据是否为本地视频帧池里的数据。
[0118] 通过第一步有效性检验的视频区块,开始第二步检验,即检验能否找到自己所属的视频区块链,方法是:通过区块头部数据结构中摄像头IP找到对应的区块链挂链,如果没有找到对应的区块链,则丢弃并产生告警信息,提示系统摄像头IP可能被篡改。
[0119] 最后把通过验证的区块挂入本地的视频区块链,同时更新自己的视频帧池,把里面已经挂链的视频数据删除,并停止当前正在进行的工作量证明计算。
[0120] 通过上述视频区块检验,能够防止伪造视频区块篡改视频区块链。流程如图22所示。
[0121] 8、本发明设计一个集中处理告警的中心进程,该进程会定时去检测每个节点的告警池,如果全网所有节点都收到坏帧或没有收到视频数据,且持续一段时间,则说明整个P2P网络出现问题。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈