架构设计图

分析

  • 为了保障档案数据的安全性和隐私性,存储档案附件和档案属性存储加密存储在私有IPFS集群,档案的IPFS地址和数字指纹存储在私有区块链上。公有区块链定期存储和检查私有区块链最新不可逆区块的高度和哈希值,以保障私有区块链上数据的真实性。(私有链上的数据准确无误之后,才会将区块的哈希信息定期存储到公有链上,虽然引入了公有链保障了数据的安全性和可靠性,但是往公有链上记录数据需要花费手续费,因此可改用联盟链,但是联盟链的安全性相对于公有链很差,是一个半中心化的平台,需要进一步优化)
  • MongoDB则用于存储区块链数据管理平台中的用户信息、档案统计信息和档案属性的最新信息,用于档案的模糊查询。

智能合约架构设计

分析

  • 区块链保护子系统中的智能合约架构如上图所示,私有链保护合约(PfivNeChain Protection Contract,PCPC)是运行在公有链上的智能合约,用于存储私有链区块的高度和哈希值等信息,实现私有区块链的保护。
  • 档案保护控制合约(Archive Protection Controller Contract,APCC)、自我保护合约(Self ProtectionContract,SPC)、工厂类合约(Factory ClassContract,FCC)是运行在私有链上的全局合约,其中SPC合约用于记录智能合约写入数据的次数,并定期与公有区块链进行锚定;FCC合约会在新增档案时,为每个档案创建对应的档案信息存储合约(AISC),AISC合约存储了档案的所有历史版本的摘要信息,包括档案对象哈希值和IPFS地址等;APCC合约存储了档案编号和AISC合约的对应关系。

区块链结构图

具体的流程图(区块链+IPFS)

如何防篡改

  • 该系统是信任数字档案管理子系统的权限控制和发出的RESTful调用请求操作的,并且通过存储档案多个历史版本的方式,实现了档案修改历史的追溯和档案信息的恢复。
  • 数字据档案管理系统具有自己的权限管理机制,只有具备相应权限的管理员才能执行新增或修改电子档案的操作,并通过RESTful接口调用的方式更新区块链和智能合约中的内容。
  • 即使档案管理系统的管理员账户和密码被黑客获取,以该管理员的身份更新本地数据库和区块链中档案信息。IPFS中存储了数字档案每个更新后的版本的完整信息,区块链中存储了每个版本档案的IPFS地址,通过RESTful接口依然可以查询到该档案的修改历史,并且恢复到某个历史状态。RESTful接口的设计非常关注数据传输的安全性和可靠性,在使用https协议的基础上,还对档案信息进行了AES加密传输,并通过时间戳、随机数、数字签名参数解决了重放攻击和数据篡改的问题。
  • 即使https被黑客攻击,只要没有获得区块链数据保护子系统的私有密钥就不能解密得到档案的原始信息,并且只要没有获得档案馆的私有密钥就不能重新计算数字签名,也就不能篡改加密后的档案数据、时间戳和随机数参数,不能对RESTful接口发起重放攻击。
  • IPFS是基于内容存储的文件系统,它以内容的哈希值作为地址,取出内容时还会验证哈希值是否与地址一致,因此使用IPFS存储档案数据具有很强的防篡改性。此外,智能合约在存储了档案IPFS地址的同时,也存储了档案的哈希值,在从IPFS取出数据之后,还能够再次验证档案数据的真实性。智能合约的数据存储在区块上,而区块一旦生成内容就不能够被篡改,只能通过“分叉”的方式来替换已有区块的内容,并且生成越早的区块,被替换的难度就越大。以太坊公有链主要使用PoW共识机制,因此存在51%攻击的可能性,它是指如果某个节点拥有了全网51%的计算能力之后,就能够比其他节点更快的生成区块,使现有区块链的主链分叉,形成更长的一条区块链并最终被其他所有节点接受,成为新的主链。但由于整个以太坊区块链的计算能力是非常巨大的,某个个体或组织很难拥有全网51%的计算能力,因此可以被认为是安全的。本地的私有链环境则使用了PoA共识机制,它兼具了区块链的不可篡改性和本地环境的可管理性,即区块只能由授权节点产生而与节点的计算能力无关,因此能够免51%攻击的问题。并且私有链区块的高度和哈希值也会一定频率存储到公有链上进行保护,如果私有链出现了分叉的情况,必然会导致已生成区块哈希值的变化,通过与公有链存储的区块高度和哈希值的对比也能够及时发现。该方案基于区块链和IPFS技术实现了一种链式保护机制,即通过公有链智能合约存储私有链区块摘要信息的方式实现对私有链上数据的保护与验证,通过私有链智能合约存储档案对象IPFS地址和哈希值的方式实现对IPFS中档案对象的保护与验证,通过IPFS中的档案对象实现了对本地数据库中的档案信息的保护与验证。每次档案馆通过RESTful接口获取档案时,RESTful服务器都会在后台对数据的真实性进行验证,能够及时地发现并定位私有区块链、IPFS的数据篡改行为,档案馆自身也可以通过本地数据库与档案对象的比对,发现本地的数据篡改行为并进行处理。

目前基于区块链的档案防篡改系统的设计如何实现防篡改相关推荐

  1. 基于区块链构建的农产品溯源系统开发

    在农业产业中,产品的存储与管理一直是重中之重,而区块链能够创新地解决这些问题. 基于区块链构建的农产品溯源系统,将农产品从采购原材料.种植.加工.物流运输.零售商到消费者餐桌的整个流程中产生的相关信息 ...

  2. 基于区块链与IPFS的数据共享系统搭建步骤

    购买专栏前请认真阅读:<基于区块链与IPFS的数据共享系统>专栏简介 视频演示: https://www.bilibili.com/video/BV1y24y1v7RX 系统简介: 本系统 ...

  3. 【案例】中国银联、光大银行基于区块链的可信电子凭证系统

    近年来,包括银行.证券.保险等在内的众多金融行业成为区块链发展和研究的重要倡导者和参与者,这使得区块链技术在交易结算.贸易金融.股权.票据.金融衍生品.信贷.反洗钱/反诈骗.供应链金融等多个领域的应用 ...

  4. 中国央行已初步完成基于区块链技术的数字化票据系统(GBCAX)

    gbcax链交所 中国央行已初步完成基于区块链技术的数字化票据系统 中国央行近日披露了一套以区块链为基础的票据数字化系统,该系统旨在打击金融欺诈,并减少打印发票的费用.

  5. 《基于区块链与IPFS的数据共享系统》专栏简介

    本专栏包含了"基于区块链与IPFS的数据共享系统"的全部源码与从0开始的搭建视频(订阅专栏后请站内私信).搭建教程与系统设计分析.对专栏内文章有疑问可以评论,一般一天内回复. 演示 ...

  6. 区块链系统之《基于区块链的PKI数字证书系统》

    摘要 本文提出了一种基于区块链技术构建PKI数字证书系统的方法,利用区块链去中心化.不可篡改等特点,解决了传统PKI技术中存在的单点失败问题以及多CA互信难等问题,可降低传统PKI技术中CA中心建设. ...

  7. 阿里云基于区块链服务构建企业业务系统实践总结

    笔者注:本文是在2018年8月19日由InfoQ主办的BCCon全球区块链生态技术大会的演讲内容基础上整理而成,从技术上对阿里云区块链服务解决企业落地问题的思路以及设计理念进行了解读. 大家好!很高兴 ...

  8. 《基于区块链的新型身份验证系统》毕业设计开题报告

    摘要 身份认证技术的应用范围越来越广,但是传统的身份认证却有严重依赖三方.安全性较差.共同信任的成本高.认证步骤繁琐等问题,因此本系统设计了基于区块链技术的新型身份认证系统的方案,设计并实现了采用RS ...

  9. 【专利学习】基于区块链的审计方法和系统

    [背景] 1.审计需要资金对比.交叉.回溯等数据分析,使得审计疑点确认和取证变得麻烦,效率低 2.需要可信第三方,存在单点风险 [内容] 1.构建联盟链,存储业务数据,获取审计信息,获取业务数据,生成 ...

最新文章

  1. 基于SSM实现在校学生考试系统
  2. libsvm中tools(easy.py,subset.py,grid.py,checkdata.py)的使用
  3. 备忘录——通过RVA计算文件位置
  4. 自动事务_JDBC进阶(二)事务编程
  5. python与sap_Python结合SAP GUI Script操作sap的简易教程
  6. localToGlobal 本地转换全局
  7. 荣耀赵明反讽雷军:有些话不适合知识分子讲
  8. C#函数学习及常用的类
  9. 数据结构与算法(四)-线性表之循环链表
  10. 【iOS】屏幕适配之NSLayoutConstraint
  11. 换把人体工学椅,缓解久坐写代码的老腰吧~
  12. godaddy 服务器位置,Godaddy DNS服务器列表
  13. 本地的手机号码归属地查询-oracle数据
  14. 黑客白皮书:如何成为一名黑客(附FAQ)
  15. vuex中的actions
  16. 《大数据时代》读书总结
  17. zabbix模板使用
  18. 【Linux】资源查看top显示信息说明|top、iftop、iotop、htop、atop工具
  19. 什么是openshift
  20. AndroidStudio启动app时闪退问题解决过程

热门文章

  1. git 代码回滚_能提交到远程的Git回滚
  2. python linux运维教程 推荐_Linux运维人员成长之路学习书籍推荐
  3. qt 添加依赖库lib_在QT中添加LIB的方法
  4. 动漫的python语言代码大全_下载动漫壁纸-Python代码
  5. python语言单行注释符_云计算开发学习笔记:Python3注释
  6. C#的变迁史07 - C# 4.0 之线程安全集合篇
  7. python设置默认密码_使用Python生成随机密码的示例分享
  8. python医学数据挖掘_GitHub - SSSzhangSSS/Python-Data-mining-Tutorial: Python数据挖掘教程
  9. 计算机维修案例分析题,14-15年春季高考信息技术题(组装维修部分)
  10. 【牛客 - 1080D】tokitsukaze and Event(最短路,思维)