基于区块链的数据存储方法、电子设备及存储介质与流程

文档序号:17211903发布日期:2019-03-27 10:52阅读:197来源:国知局
基于区块链的数据存储方法、电子设备及存储介质与流程

本申请涉及区块链技术领域,特别是涉及一种基于区块链的数据存储方法、电子设备及存储介质。



背景技术:

区块链技术是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用技术集合。从数据角度来看,区块链按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,所述数据结构通过密码学方式保证其不可篡改和不可伪造。从技术角度来看,区块链技术整合了多种不同的技术,通过构建区块链网络,使得网络内的每个节点都允许获得一份完整的数据块拷贝,并基于共识机制以及竞争计算来维持基于区块链的数据块的更新。由此,通过多节点沟通构成的端到端网络实现数据存储和管理的去中心化和去信任。

随着云计算平台的不断成熟,审计业务也由传统的审计方式逐步向云审计的审计方式进行转变,云审计改变了传统审计对经济活动发生的事后审计弊端,更加关注审计结果产生的原因。在云计算平台的环境下,不同地域的审计机构可跨时间、跨空间实施审计业务,审计人员可随时随地通过互联网来进行审计业务的操作。云计算平台的审计程序由专门的云软件供应商提供、维护与升级,具有同源性,能够提升审计数据的标准化与规范化,加速数据筛选与处理,降低数据分析难度和审计难度。

然而,云审计在为审计业务带来便捷的同时,也面临着来自审计数据内外部安全问题的挑战。首先,目前审计数据先由各派驻机构去审计对象采集,然后统一上传到的中央云端数据库进行集中管理,这种管理模式下,一旦发生软硬件单点故障,会导致数据丢失,且数据恢复耗时长、成本高。另外,审计数据在上传到云端数据库,以及被多方机构调用时,其传输并非高度加密,易被黑客破解,导致数据泄露,出现未经授权私自滥用、复制、甚至出售审计数据的情况。



技术实现要素:

本申请主要解决的技术问题是提供一种基于区块链的数据存储方法、电子设备及存储介质,该数据存储方法能够提高数据存储的安全性。

为了解决上述问题,本申请第一方面提供了一种基于区块链的数据存储方法,所述数据存储方法包括:

第一用户节点根据数据结构类型将待存储的敏感数据划分为第一类敏感数据和第二类敏感数据;

对所述第一类敏感数据进行加密后存储于区块链中;

对所述第二类敏感数据生成相应的数字指纹,将所述数字指纹进行加密后存储于所述区块链中。

为了解决上述问题,本申请第二方面提供了一种电子设备,该电子设备包括相互连接的存储器和处理器,其中,

所述存储器用于存储所述处理器执行的计算机指令;

所述处理器用于运行所述存储器存储的所述计算机指令,以实现上述数据存储方法。

为了解决上述问题,本申请第三方面提供了一种存储介质,该存储介质存储计算机指令,所述计算机指令能够被处理器运行,以实现上述数据存储方法。

上述方案中,基于区块链的数据存储方法将用户节点需要存储的敏感数据基于数据结构划分为第一类敏感数据和第二类敏感数据,对其中部分敏感数据直接加密存储于区块链中,另一部分敏感数据转换为数字指纹,将数字指纹加密后存储于区块链中。通过区块链的分布式存储特性提高了数据存储的安全性,同时对于另一部分敏感数据转换为数字指纹上链,减小了数据存储于区块链中对区块链处理能力的影响。

附图说明

图1是本申请区块链平台基础架构的架构示意图;

图2是本申请一实施例中采用的区块链的区块的结构示意图;

图3是本申请数据处理网络一实施例的结构示意图;

图4是本申请数据处理方法第一实施例的流程示意图;

图5是图4中步骤s12的一实施方式的流程示意图;

图6是本申请区块链云审计平台基础架构的架构示意图;

图7是本申请数据存储网络一实施例的结构示意图;

图8是本申请数据存储方法第一实施例的流程示意图;

图9是图8中步骤s21的一实施方式的流程示意图;

图10是本申请数据存储方法第二实施例的流程示意图;

图11是本申请数据共享方法第一实施例的流程示意图;

图12是图11中步骤s42的一实施方式的流程示意图;

图13是图11中步骤s44的一实施方式的流程示意图;

图14是图13中步骤s444的一实施方式的流程示意图;

图15是本申请数据共享方法第二实施例的流程示意图;

图16是本申请电子设备一实施例的结构示意图;

图17是本申请存储介质一实施例的结构示意图。

具体实施方式

下面结合说明书附图,对本申请实施例的方案进行详细说明。

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。

本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

区块链技术是随比特币等数字加密货币而兴起的一种新型的分布式数据组织方法及运算方式。其最大特点是:去中心化,这使得数据能够实现分布式集体维护,极大提高数据运算、管理、维护效率;共识节点间基于一套共识机制,通过竞争计算共同维护整个区块链,任一节点失效,其余节点仍能正常工作。同时搭载非对称加密技术的区块链具备高安全性、可追溯性,能有效防止数据泄露或非法篡改。本申请提出利用区块链技术结合云计算平台来实现数据存储、处理和共享,该数据可以是审计数据、会计数据、交易数据等,本申请以审计数据为例进行说明。

为便于理解本申请区块链网络,先对本申请采用的区块链技术进行举例说明。在一具体应用中,电子设备运行该区块链技术以成为该区块链网络的节点,该区块链平台基础架构如图1所示,包括区块链的数据层、网络层、共识层、合约层、服务层、应用层和呈现层。

其中,区块链数据层用于封装底层数据区块以及相关的数据加密和时间戳等技术。并且,可利用不可逆加密算法(如sha256算法)对文件数据进行至少一次(如两次)计算,生成唯一的区块链id,即哈希(hash)值。具体地,该区块链可为区块私有链,以保证该区块链并非完全公开,只有注册的会员节点才可访问。

网络层,封装了区块链网络系统的p2p组网方式、消息传播协议和数据验证机制等要素,使各节点地位对等且以扁平式拓扑结构相互连通和相互,拥有分布式、自治性、开放可自由进出等特性。区块链网络中每一个节点都能参与区块数据的校验和记账过程,仅当区块数据通过全网大部分节点验证后,才能记入区块链。区块链这种去中心化设计保证文件数据不可篡改、不可伪造。

共识层,封装了在决策权高度分散的拓扑网络中快速完成共识的方法,以参与区块链网络的共识机制。

合约层,封装有数据访问策略的合约代码,合约代码中的条件被触发时,自动执行相应交易,同时可通过合约内容规定相应的访问条件对相应的数据进行访问等。

服务层,用于通过分布式服务器对应用相关功能进行有效的整合和管理,例如用户注册、用户身份管理、加解密服务、分布式账本服务、智能合约服务、数据管理服务等。

应用层,用于展示区块链网络的具体功能,是对数据存储和共享的重要环节,按功能的不同可划分为用户管理、权限控制、资源目录管理等。

呈现层,用于将系统功能通过门户网站等方式进行展示,进而与用户交互,各个数据主体可通过系统客户端登陆相应呈现层显示的界面访问应用层并以获取信息资源,包括注册界面、操作执行界面、查询界面、应用管理界面、管理员界面等。

区块链网络用一种去中心化的方式来收集,打包且安全保护档案文件的相关标识、档案文件的借出信息、归还信息等与档案文件相关的信息数据,并把这些信息数据锚定到区块链上。具体的,区块链可以采用区块联盟链或区块链私有链的网络来实现。区块链的节点不断变换在网络系统中所承担的责任,永远不会只有一个节点在控制整个网络系统,即不会只有一个记账节点进行记账。每个节点都只是网络系统中的一部分。区块链的节点定时如每一分钟变换一次角色,没有节点会永久控制网络系统的任何一部分。

在一实施例中,区块链的数据层的区块封装可如图2所示。该区块链的区块包括区块头21(header)和区块体22(body)。该区块体22存储有至少一条对执行业务相关的数据进行设定哈希运算得到的哈希值(hash)。该区块头21可以封装有当前版本号211、前一区块地址212、当前区块的目标哈希值213、当前区块pow(工作量证明)共识过程的解随机数214、merkle根215(merkle-root)以及时间戳216等信息。其中,该当前版本号211,用于标示软件及协议的相关版本信息;该前一区块地址212,也可称为前一区块哈希值,通过该值才可将每个区块首尾相连组成了区块链;该解随机数214为记录解密该区块相关数学题的答案的值;该merkle根215是由区块体22中所有数据哈希值计算出来的,用于检验相关数据是否存在于该区块中;该时间戳216用于记录该区块20产生的时间。可以理解的是,该区块的结构可根据采用的区块链技术的不同进行调整,例如共识过程不采用pow共识机制,则不存在上述的解随机数。

在一具体应用中,该区块链底层系统可由分层结构的区块(block)组成。根部是目录区块(directoryblock)。这些区块构成了一个微型链,链上存储着压缩过的引用(reference)。为了避免数据规模过大,目录区块(directoryblock)中的引用只是记录区块(entryblock)的哈希值。

目录区块对应这个系统的第一分层,是记录该记录区块完整性(hash值)证明的区块。目录区块是由所有服务器中定义的所有记录区块组合到一起建造而生成的。因此,每个服务器都拥有所有的记录区块,所有的目录区块,和所有记录(entry)。

记录区块(entryblock)对应这个系统的第二分层,是记录entry完整性(hash值)证明的区块。在寻找记录的应用会需要记录区块,可以从一个数字指纹搜索到所有可能相关的数据的存储、处理、共享、访问等记录。记录区块包含着电子记录的哈希值。电子记录的哈希值同时证明了数据的存在和在分布式散列表(dht)网络中找到记录的钥匙。

记录区块(entryblock)包含了和一个链id有关的全部entry。如果某个entry是关联到某个记录区块(entryblock)的话,那么可以认为这个entry并不存在。这样的设计能让应用程序很容易的证伪,方便的识别哪些entry是真实可靠的。

请参阅图3,图3是本申请基于区块链的数据处理网络一实施例的结构示意图。如图3所示,本实施例的数据处理网络30为区块链网络31,其中数据处理网络30至少包括用户节点311、记账节点312和提交节点313。

本申请以审计数据为例进行说明,在一实施例中,用户节点可对应于审计机构、被审计单位、税务机构、银行等与审计活动相关的各类机构节点。其中,被审计单位对应的用户节点可基于自身的经济活动产生相应的审计数据,并将该审计数据存储于区块链中;审计单位对应的用户节点即可从区块链中获取该审计数据,并对其执行相应的审计操作,进而生成对被审计单位进行审计的审计评价报告、审计意见书、审计工作底稿等新的审计数据,并将这些新的审计数据存储与区块链中;税务机构、银行等其他用户节点可基于区块链对审计机构和被审计机构产生的各类审计数据进行访问查看等操作。由此,本申请根据用户节点311的具体身份信息将用户节点311分为对应于审计机构的第一用户节点311a和对应于被审计单位的第二用户节点311b。

进一步,财政机构、监管机构等具有权威性的机构节点可作为记账节点312加入到区块链中。记账节点312可进行区块链网络的记账,每个记账节点312为具有竞争记账能力的节点,以将用户节点发生的与审计数据相关的存储、处理、添加、修改、访问等交易的相关信息和数据进行存储,每个记账节点312均保存用户节点产生的与审计数据相关的交易信息,实现各个用户节点产生的与审计数据相关的交易信息的分布式存储。进一步,本实施例中审计机构和被审计单位对应的用户节点311也可复用为区块链网络31中的记账节点312,执行上述记账操作。

区块链网络31中还可包括管理节点314,用于用户节点311、记账节点312和提交节点313进行身份注册,管理用户节点311、记账节点312和提交节点313的身份信息、数据共享策略等各种审计业务功能。本申请中管理节点314可设置为对应于与证书授权中心(certificateauthority),用户节点311、记账节点312和提交节点313在加入区块链网络31时,向证书授权中心发起注册请求,证书授权中心基于注册请求向对应的节点提供能够表明该节点身份信息的数字证书,其中,数据证书可包括向该节点分配的公钥和私钥。申请注册的节点获取到分配的公钥和私钥后,将私钥存储在自身本地,将公钥广播至区块链网络31。

上述用户节点311、记账节点312、提交节点313和管理节点314具体可以为任意电子设备,例如服务器、手机、计算机、平板电脑等,在一实施例,该记账节点312为区块链服务器、管理节点314为具有业务处理能力的应用服务器,且可作为基于区块链网络的存证系统。可以理解的是,上述用户节点311、记账节点312、提交节点313和管理节点314可通信,本实施例中的用户节点311和管理节点314作为区块链节点,例如为区块链的轻量记账节点,但在其他实施例中,用户节点311和管理节点314不限定为区块链节点,即该用户节点311和管理节点314的至少部分未必参与区块链。另外,上述节点的区分均是根据通过该节点登录的身份信息确定的。故上述节点的相应主体如审计机构、被审计单位、税务机构、银行、财政机构、监管机构等,都需要事先在区块链平台上完成注册(在一应用中,该区块链为区块私有链或区块联盟链,故事先在区块链平台上完成身份注册),并获取相应的公钥和私钥,确定其身份可信后,允许开展如下的数据处理业务。

本实施例的区块链网络以联盟链网络或私有链网络为例,即节点加入区块链网络时需要进行身份信息注册,只有注册的身份信息的会员节点才能对该区块链网络进行访问。

请参阅图4,图4是本申请基于区块链的数据处理方法第一实施例的流程示意图。本实施例的数据处理方法可应用于图3所示的区块链网络,如图4所示,本实施例的数据处理方法可包括如下步骤:

在步骤s11中,第一用户节点根据数据内容将其产生的数据划分为第一类数据和第二类数据;将第一类数据存储于区块链中;利用自身的私钥加密第二类数据形成相应的第二类数据密文,并向第二用户节点发送第二类数据密文。

本实施例中以数据为审计数据为例进行说明,结合图3所示的区块链网络30,对应于审计机构的用户节点和对应于被审计单位的用户节点均统称为用户节点,根据其身份不同,将对应于审计机构的用户节点作为第一用户节点,对应于被审计单位的用户节点作为第二用户节点。

第二用户节点发生经济活动时会随之产生相应的包括财务报告、财务报表等需要被审计的审计数据,在审计过程中,第二用户节点利用自身的私钥加密其产生的审计数据后将加密后的审计数据上传至区块链进行存储;此时,作为第一用户节点的审计单位和/或其他用户节点想要访问上述审计数据时,需要经过第二用户节点的核准。换言之,上述审计数据的所有权为第二用户节点,第二用户节点可对其上传的上述审计数据设置相应的数据访问策略,当第一用户节点和/或其他用户节点需要访问上述审计数据时,需向第二用户节点发起访问请求,经过第二用户节点的核准后即可根据第二用户节点设置的数据访问策略访问上述审计数据。进一步,第一用户节点可从区块链中获取上述审计数据,并对其执行相应的审计操作,进而产生包括审计评价报告、审计意见书、审计工作底稿等新的审计数据。上述新的审计数据均是由第一用户节点产生,当第一用户节点将上述新的审计数据传输至区块链存储时,是利用自身的私钥对上述新的审计数据进行加密,换言之,此时上述新的审计数据的所有权均为第一用户节点。然而,上述新的审计数据中基于第二用户节点产生的审计数据而生成的审计评价报告、审计意见书等新的审计数据的数据内容对应于第二用户节点,即这部分数据的访问需要基于第二用户节点设置的数据访问策略的进行策略,但由需要经过第一用户节点的核准,使得其他用户节点对这部分数据的访问十分不便。

本实施例中,第一用户节点产生包括审计评价报告、审计意见书、审计工作底稿等新的审计数据后,根据数据内容将其产生的上述新的审计数据划分为第一类数据和第二类数据;其中,第一类数据为审计工作底稿等数据内容对应于第一用户节点的审计数据,其他用户节点对第一类数据的访问仅需要第一用户节点的核准即可进行访问;第二类数据为审计评价报告、审计意见书等数据内容对应于第二用户节点的审计数据,这部分审核数据需要基于第二用户节点设置的数据访问策略来完成访问。

本实施例中,第一用户节点利用自身的私钥加密数据内容对应于自身的第一类数据,并将加密后的第一类数据存储至区块链中。而对于第二类数据,第一用户节点利用自身的私钥加密第二类数据后,形成相应的第二类数据密文,并向第二用户节点发送第二类数据密文。

在步骤s12中,第二用户节点基于第二类数据密文将第二类数据的所有权从第一用户节点转移至第二用户节点。

本实施例中,第二用户节点接收第二类数据密文,即可相应的利用第一用户节点的公钥对第二类数据密文进行解密,进而获取相应的第二类数据,进而将第二类数据的所有权转移至第二用户节点自身。

进一步,请参阅图5,如图5所示,步骤s12可包括如下步骤:

在步骤s121中,第二用户节点利用第一用户节点的公钥解密第二类数据密文,得到第二类数据。

第一用户节点的公钥是广播至区块链的,即区块链中的任意节点均可获取第一用户节点的公钥。本实施例中,第二用户节点接收到第二类数据密文后,即可利用获取到的第一用户节点的公钥对第二类数据密文解密,由此获得相应的第二类数据。

在步骤s122中,利用自身的私钥再次加密第二类数据,并将再次经过加密的第二类数据存储于区块链中。

第二用户节点进一步利用自身的私钥对第二类数据再次进行加密,并将经过自身的私钥加密后的第二类数据存储与区块链中。可以理解的是,此时第二类数据由第二用户节点的私钥加密,换言之,其他用户节点需要利用第二用户节点的公钥解密得到相应的第二类数据,即将第二类数据的所有权转移至了第二用户节点。此时,当其他用户节点需要访问第二类数据时,则需向第二用户节点发起访问请求,经过第二用户节点的核准后即可根据相应的数据访问策略访问第二类数据。

本实施例通过对第二类数据私钥加密的转移完成第二类数据的所有权的转移,进而令其他用户节点需要访问第二类数据时仅需向其对应的具有所有权的用户节点发起访问请求即可,简化了其他用户节点对第二类数据进行访问的流程。

进一步,本申请结合云端技术,基于在图1所示的区块链平台基础结构,还提出了区块链云审计平台基础架构,如图6所示,本申请的区块链云审计平台基础架构在图1所示的区块链平台基础架构的基础上结合了云计算平台的基础服务模式,即基础设施即服务(iaas,infrastructureasaservice)、平台即服务(paas,platformasaservice)、软件即服务(saas,softwareasaservice);其中,iaas服务通过标准数据接口、离线上传等多种方式将各地被审计单位的海量审计数据不断地采集到云端数据库,根据不同的审计口径,将数据进行初步地统一分类、筛选、存储和访问控制;结构化数据和非结构化数据均被封装于硬件设备,以便审计机构来远程访问;paas服务用于对iaas层中存储的审计数据实施精细化管理,根据具体的审计业务需求,封装各种分析和可视化组件,有助于审计机构自主架构各类审计业务流程,提高审计效率;saas服务用于对iaas服务和paas服务审计输出的进一步封装、存储,不仅将审计数据的采集、分析、交换等功能完全部署于云端,并将已经形成的审计方法与模型、审计案例、审计实训等资源进一步存储,实现更准确的价值挖掘。

此外,本申请的区块链云审计平台基础架构中的区块链平台的基础架构与图1所示的区块链平台基础架构基本相同,区别在于数据层还包括云端数据库,云端数据库用于存储海量的审计数据,以便捷的进行多维度的数据处理和实施逻辑复杂的数据业务。

进一步,请参阅图7,图7是本申请基于图3所示的区块链网络提出的区块链云审计系统,以构成基于区块链的数据存储网络40,即在图3所示的区块链网络31的基础上,还包括云端数据库32,区块链网络31侧的各个节点如图3所示,此处不再赘述。其中,区块链网络31与云端数据库32之间可相互进行数据交互,且用户节点311可将其产生或获取的数据直接存储于云端数据库32中。

可以理解的是,图4至图5所示的数据处理方法第一实施例也可应用于上述图7所示的区块链云审计系统,此时各个节点配置有图6所示的区块链云审计平台基础架构。

请参阅图8,图8是本申请基于区块链的数据存储方法第一实施例的流程示意图,本实施例的数据存储方法可应用于图7所示的基于区块链的数据存储网络40,各个节点配置有图6所示的区块链云审计平台基础架构。本实施例以上述第一用户节点将第一类数据存储与区块链中为例进行说明。如图8所示,本实施例的数据存储方法至少可包括如下步骤:

在步骤s21中,第一用户节点利用预设敏感字段从第一类数据中筛选出敏感数据,将敏感数据存储于区块链中。

第一用户节点获取数据内容对应于自身,可经过自身的私钥加密后存储于区块链中的第一类数据,进一步,根据用户设置的敏感字段从第一类数据中筛选出相应的敏感数据,将筛选出的敏感数据存储于区块链中。

本实施例中,敏感字段可由有用户根据需求进行设置,本实施例中第一类数据为审计数据,则可根据审计部分或被审计单位、审计数据关键词等设置包括金额、经济活动名称、重要财务报表等设置相应的敏感字段,将第一类数据中与敏感字段匹配的数据筛选出来作为敏感数据存储与区块链中。

进一步,参阅图9,步骤s21中执行的将敏感数据存储于区块链中可包括如下步骤:

在步骤s211中,第一用户节点根据数据结构类型将敏感数据划分为第一类敏感数据和第二类敏感数据。

本实施例中,根据数据结构类型将敏感数据划分为第一类敏感数据和第二类敏感数据,具体的,第一类敏感数据的数据结构类型为结构化数据,第二类敏感数据的数据结构类型为非结构化数据。可理解的是,结构化数据通常有被审计单位、审计机构等审计数据产生的用户节点的财务管理系统生成的结构化数据,通常为能够通过相应数据结构进行表示的文字、表格等数据,结构化数据的数据容量相对较小,相对易于整理和处理。非结构化数据则是在大数据发展下基于大数据平台进行经济活动而产生的具有规模庞大冗杂、随时增长、价值密度低等特定的审计数据,可包括图片、视频、网页信息、各类报表等数据,数据容量相对较大。

在步骤s212中,对第一类敏感数据进行加密后存储于区块链中对第一类敏感数据进行加密后存储于区块链中。

第一类敏感数据为结构化数据,因此,第一类敏感数据的数据量较小,且本身易于整理和处理,因此,可对其直接加密后存储于区块链中。本实施例中,可利用椭圆曲线算法对第一类敏感数据进行加密,进一步,第一用户节点利用自身的私钥采用椭圆曲线算法对第一类敏感数据进行加密。

在其他实施例中,也可采用其他非对称加密算法对第一类敏感数据进行加密,本实施例不做具体限定。

在步骤s213中,对第二类敏感数据生成相应的数字指纹,将数字指纹进行加密后存储于区块链中。

第二类敏感数据为非结构化数据,因此,第二类敏感数据的数据量较大,且格式不统一,若第二类敏感数据直接加密存储于区块链中会很大程度上增加区块链的存储压力,影响区块链的整体处理效率和速度。由此,对于第二类敏感数据,对其生成相应的数字指纹,将数字指纹进行加密后存储于区块链中。

本实施例中,对第二类敏感数据进行哈希计算生成相应的数字指纹,对数据指纹进行加密后存储于区块链中;进一步,第一用户节点利用自身的私钥加密第二类敏感数据。

在步骤s22中,将第一类数据中剩余的数据作为非敏感数据存储于云端数据库。

进一步,将第一类数据中经过筛选后剩余的数据作为非敏感数据,对于这部分数据则存储与云端数据库,可以理解的是,将非敏感数据存储与云端数据库时,也可对非敏感数据进行加密,加密后存储于云端数据库。采用的加密算法可以为rsa算法等非对称加密算法,本实施例不做具体限定。

本实施例将用户节点需要存储的数据利用敏感字段划分为敏感数据和非敏感数据,且进一步将敏感数据根据数据结构类型划分为第一类敏感数据和第二类敏感数据,将非敏感数据存储于云端数据库,敏感数据中属于结构化的数据直接存储与区块链,属于非结构化的数据计算为数字指纹存储与区块链,提高了敏感数据存储的安全性,同时相对减小了区块链的数据存储和数据处理压力。

进一步,请参阅图10,图10是本申请基于区块链的数据存储方法第二实施例的流程示意图,如图10所示,本实施例的的数据存储方法可包括如下步骤:

在步骤s31中,第一用户节点将第一类数据存储于云端数据库。

本实施例中,第一用户节点对第一类数据进行敏感数据的筛选前,将第一类数据完全存储于云端数据库中。

在步骤s32中,利用预设敏感字段从第一类数据中筛选出敏感数据,将敏感数据存储于区块链中。

进一步,根据用户设置的敏感字段从第一类数据中筛选出相应的敏感数据,将筛选出的敏感数据存储于区块链中。本实施例中步骤s32与图8所示的步骤s21相同,此处不再赘述。

本实施例对于敏感数据而言,即将其存储与云端数据库,又存储于区块链中;可以理解的是,在将敏感数据同时存储于云端数据库和区块链中时,可建立两者之间的数据索引,即根据数据索引可从区块链中查找到与云端数据库存储的敏感数据相同的敏感数据,数据索引可为数据指引标签。此时,当第一用户节点或其他需要访问敏感数据的用户节点确定存储于云端数据库中的敏感数据出现缺失时,可根据数据索引从区块链中查找到相同的敏感数据,进而将查找到相同的敏感数据再次存储于云端数据库中,进而快速的对云端数据库中的存储数据进行恢复,进而维护区块链云审计系统的长期稳定运行。

可以理解的是,图8至图10所示的基于区块链的数据存储方法第一实施例和第二实施例可应用于区块链网络中的任意用户节点,即任意用户节点对于要存储的数据均可通过设置敏感字段筛选敏感数据,将敏感数据即存储于区块链中,又存储于云端数据库;且进一步对敏感数据中结构化数据采用直接加密存储的方式进行存储,而非结构化数据采用计算数字指纹的方式进行存储。

进一步,请参阅图11,图11是本申请基于区块链的数据共享方法第一实施例。本实施例的数据共享方法可应用于图3所示的区块链网络,也可应用于图7所示的区块链云审计系统,本实施例不做具体限制。如图11所示,本实施例的数据共享方法至少可包括如下步骤:

在步骤s41中,第一用户节点向区块链广播对应于待访问数据的第一访问请求。

本实施例以待访问数据是由第二用户节点产生的,所有权归于第二用户节点的数据为例进行说明。为便于理解,可将审计机构对应的用户节点作为第一用户节点,被审计单位对应的用户节点作为第二用户节点;待访问数据为第二用户节点基于其自身的经济活动产生的审计数据,或与其对应的审计评价报告、审计意见书等审计数据。

第一用户节点根据自身的访问需求,可基于共享数据资源目录进行检索,根据检索结果得到与待访问数据对应的第二用户节点,待访问数据的存储地址等相关信息。由此,基于上述检索结果即可创建第一访问请求,并向区块链广播第一访问请求。其中,第一访问请求中可包括第一用户节点的公钥。

在步骤s42中,提交节点基于第一访问请求生成相应的共享令牌,并将共享令牌反馈回第一用户节点。

区块链中的提交节点可获取第一访问请求,并根据第一访问请求对第一用户节点进行身份认证。对第一用户节点的身份进行确认后,即可生成相应的共享令牌,并将生成的共享令牌反馈回第一用户节点,此时,共享令牌可以认为是对于第一访问请求的确认信息,即确认第一用户节点能够向待访问数据的所有方的用户节点发起数据访问。其中,共享令牌至少可包括经过第二用户节点的公钥加密的第一用户节点的公钥。

本实施例中可将第一用户节点广播第一访问请求的行为看做是一次交易请求,提交节点为与本次交易请求对应的交易方,提交节点生成的共享令牌可看作是响应交易请求而创建的交易确认信息,由此,基于本次交易请求可产生一交易随机数。本实施例的共享令牌即可包括经过第二用户节点的公钥加密的与第一访问请求对应的交易随机数。

进一步,如图12所示,步骤s42至少可包括如下步骤:

在步骤s421中,提交节点基于第一访问请求匹配得到相应的数据访问策略。

提交节点根据第一访问请求对第一用户节点进行身份认证,并且可进一步获取第一用户节点的身份信息,由此可根据第一用户节点的身份信息匹配得到相应的数据访问策略。本实施例中,数据访问策略可以是智能合约,为部署于区块链的可设置预置触发条件进而自动执行的数据脚本。数据访问策略规定了与用户节点的身份信息相关的数据访问条件和相关规定,并设置有预置条件。

在步骤s422中,令所述第一访问请求触发所述数据共享策略的预置条件,生成所述共享令牌,并将共享令牌反馈回第一用户节点。

进一步,提交节点将第一访问请求与数据共享策略的进行匹配,以使第一访问请求中包含的请求信息触发数据共享策略的预置条件,预置条件被触发即说明第一用户节点能够利用第一访问请求,并基于数据共享策略发起对待访问数据的第二访问请求,此时生成相应的共享令牌。

在步骤s43中,第一用户节点利用共享令牌和访问授权合约向与待访问数据对应的第二用户节点发起第二访问请求。

第一用户节点接收到提交节点反馈的共享令牌后,即确认其可以向第二用户节点发起数据访问,共享令牌作为对应于第一访问请求的确认信息。此时,第一用户节点还可根据自身对待访问数据的访问需求生成的访问授权策略,并利用自身的私钥加密该访问授权策略形成访问授权合约。由此,第一用户节点即可携带共享令牌和访问授权合约向第二用户节点发起第二访问请求。

其中,访问授权策略是由第一用户节点根据自身对待访问数据的访问需求生成的,其中,包含了第一用户节点想要对待访问数据的访问时间段、访问时长、是否需要下载、是否需要增添新的内容等访问需求。

在步骤s44中,第二用户节点基于共享令牌对第一访问请求进行验证,并对访问授权合约进行评估,得到评估结果。

第二用户节点接收携带有共享令牌和访问授权合约的第二访问请求,其中,共享令牌包含有经过第二用户节点的公钥加密的第一用户节点的公钥和交易随机数。由此,第二用户节点可基于交易随机数、第一用户节点的公钥和访问授权合约对第一访问请求进行验证,并对访问授权合约进行评估。

进一步,如图13所示,步骤s44可包括如下步骤:

在步骤s441中,第二用户节点利用自身的私钥解密共享令牌,获取其包含的第一用户节点的公钥和交易随机数,并获取第一用户节点的身份信息。

由于共享令牌包含有经过第二用户节点的公钥加密的第一用户节点的公钥和交易随机数,由此,第二用户节点即可利用自身的私钥对共享令牌进行解密,进而获取其中包含的第一用户节点的公钥和交易随机数。其中,交易随机数是基于第一访问请求产生的随机数,用于防止请求重复进行。

在步骤s442中,根据交易随机数对第一访问请求进行验证,得到验证结果。

第二用户节点利用交易随机数对第一访问请求进行验证。具体的,区块链中产生第一访问请求时,将第一访问请求看做一次交易请求,由此产生一交易随机数(nonce),交易随机数的数值是随着交易次数的增加从0开始递增的,交易次数每增加一次,交易随机数的数值也随之加1,在区块链中,只有当前面数值较小的交易随机数对应的交易处理完成之后才会处理后面的数值较大的交易随机数对应的交易。由此,即可判断此时与第一访问请求对应的交易随机数的数值是否大于之前处理过的访问请求对应的交易随机数的数值,或者交易随机数的数值是否出现跳跃间隔,进而对第一访问请求进行验证,若交易随机数的数值大于之前处理过的访问请求对应的交易随机数的数值,且交易随机数的数值未出现跳跃间隔,则对第一访问请求进行验证的验证结果为验证通过,可继续基于第一访问请求执行后续步骤s443,否则对第一访问请求进行验证的验证结果为验证通过为第一访问请求验证不通过,进而不再基于第一访问请求进行执行后续步骤。

在步骤s443中,利用获取到的第一用户节点的公钥解密访问授权合约,得到相应的访问授权策越。

当步骤s442得到的验证结果为验证通过时,第二用户节点进一步利用步骤s441中得到的第一用户节点的公钥解密访问授权合约,获取相应的访问授权策略;并基于访问授权策略继续执行步骤s444。

在步骤s444中,利用第一用户节点的身份信息和访问授权策略对的访问授权合约进行评估,得到评估结果。

第二用户节点利用步骤s441中得到的第一用户节点的身份信息和步骤s443中得到的访问授权策略对的访问授权合约进行评估,得到评估结果。

进一步,如图14所示,步骤s444可包括如下步骤:

在步骤s4441中,根据第一用户节点的身份信息确认区块链对第一用户节点规定的数据访问权限。

区块链中根据用户节点的不用身份信息规定有相应的数据访问权限,例如,身份信息为审计部分的用户节点可具有较大的数据访问权限,能够对待访问数据的访问时间段可以任意时间段,访问时长可以是半个月甚至一个月等,且能够下载待访问数据,以及能够添加新的内容;而身份信息为普通数据用户的用户节点对待访问数据的访问时间段只能是规定的某一时间段,访问时长可以是数天或者一周等,不能下载待访问数据,以及不能添加新的内容等。

由此,第二用户节点可根据第一用户节点的身份信息从区块链中获取规定的第一用户节点的数据访问权限。

在步骤s4442中,判断访问授权策略中包含的对待访问数据的访问需求与数据访问权限是否匹配。

进一步,判断第一用户节点根据自身访问需求形成的访问授权策略是否在规定的第一用户节点的数据访问权限内,例如,访问授权策略中记载的访问时间段是否在数据访问权限中规定的时间段内,访问授权策略中记载的访问时长是否不超过在数据访问权限中规定的访问时长等,进而判断访问授权策略与数据访问权限是否匹配。若访问授权策略中记载的访问请求在规定的第一用户节点的数据访问权限内,则继续执行步骤s4443;否则,执行步骤s4444。

在步骤s4443中,确定评估结果为访问授权合约通过评估。

若访问授权策略中记载的访问请求在规定的第一用户节点的数据访问权限内,则说明第一用户节点的访问请求未超出规定的数据访问权限,则评估结果为访问授权合约通过评估,即可继续执行步骤s35。

在步骤s4444中,确定评估结果为访问授权合约未通过评估。

若访问授权策略中记载的访问请求超出规定的第一用户节点的数据访问权限,则评估结果为访问授权合约未通过评估,则停止执行后续步骤,并可向第一用户节点反馈其访问请求不符合规定的信息。

在步骤s45中,第一用户节点在评估结果为访问授权合约通过评估时,根据访问授权合约访问待访问数据。

当评估结果为访问授权合约通过评估时,即说明第二用户节点完成了对第一用户节点的身份认证,以及访问请求的核准,由此,第一用户节点即可根据访问授权合约中规定的访问需求对待访问数据进行访问,可相应对待访问数据进行共享、下载、添加内容等操作。

进一步,本实施例中第二用户节点对其需要存储的数据可采用图8至图10所示的基于区块链的数据存储方法第一实施例和第二实施例所述的方式进行存储,即第二用户节点的所有数据均存储与云端数据库中,进一步,敏感数据还存储与区块链中,且第一类敏感数据直接加密存储于区块链中,第二类敏感数据通过数字指纹的方式存储与区块链中。相应的,第一用户节点在对第二用户节点进行数据访问时,可优先从云端数据库中获取需要的数据,可简化数据获取流程;若云端数据库中的数据出现缺失,则可进一步从区块链中获取数据,并将获取的数据再次存储于云端数据库中。

本实施例中,第一用户节点需要向全网广播其数据访问对应的交易,提交节点根据该交易对第一用户节点进行认证后,生成共享令牌;第一用户节点需在获得共享令牌后才能基于共享令牌向第二用户节点发起数据访问请求,且要在第二用户节点进行验证和评估后才能进行数据访问,提高了区块链网络中数据流通的安全性和合规性。

进一步,请参阅图15,图15是本申请基于区块链的数据共享方法第二实施例的流程示意图。本实施例的数据共享方法是在图11至图14所示的数据共享方法的基础上提出的,如图15所示,本实施例可包括如下步骤:

在步骤s51中,第一用户节点向区块链广播对应于待访问数据的第一访问请求。

在步骤s52中,提交节点基于第一访问请求生成相应的共享令牌,并将共享令牌反馈回第一用户节点。

在步骤s53中,第一用户节点利用共享令牌和访问授权合约向与待访问数据对应的第二用户节点发起第二访问请求。

在步骤s54中,第二用户节点基于共享令牌对第一访问请求进行验证,并对访问授权合约进行评估,向提交节点发送评估结果。

本实施例中步骤s51至步骤s53与图11至图13所示的数据共享方法第一实施例中的步骤s41至步骤s43相同,此处不再赘述。进一步,步骤s54与图11至图14所示的步骤44类似,区别在于得到评估结果后,第二用户节点向提交节点发送该评估结果,由提交节点根据评估结果允许或不允许第一用户节点对待访问数据进行访问。

在步骤s55中,提交节点放行第一用户节点对待访问数据的数据共享接口。

提交节点获取第二用户节点发送的评估结果后,若评估结果为访问授权合约通过评估,则放行第一用户节点对待访问数据的数据共享接口,由此继续步骤s56。

在步骤s56中,第一用户节点根据访问授权合约访问待访问数据。

提交节点放行第一用户节点对待访问数据的数据共享接口后,第一用户节点即可通过该数据共享接口根据访问授权合约访问待访问数据。

在步骤s57中,提交节点阻断第一用户节点对待访问数据的数据共享接口。

提交节点获取第二用户节点发送的评估结果后,若评估结果为访问授权合约未通过评估,则阻断第一用户节点对待访问数据的数据共享接口,结束流程。

进一步,请参阅图16,图16是本申请电子设备一实施例的结构示意图。如图16所示,本实施例的电子设备160可以为图3或图7中所示的用户节点411、记账节点412、提交节点313或管理节点314。电子设备160可具体为与用户节点411、记账节点412、提交节点313或管理节点314对应的电脑、手机、平板电脑等终端。本实施例的电子设备160中部署有如图1所示的区块链平台基础架构或如图6所示的区块链云审计基础架构,能作为区块链网络中的节点加入区块链网络中。

进一步,本实施例的电子设备160可包括通过设在电子设备160内部的处理器1601和存储器1602,处理器1601和存储器1602通过总线连接。该存储器1602存储有处理器1601可执行的计算机指令,处理器1601执行该计算机指令以实现上述图4至图5所示的基于区块链的数据处理方法第一实施例,图8至图10所示的基于区块链的数据存储方法第一实施例和第二实施例,以及图11至图15所示的基于区块链的数据共享方法第一实施例和第二实施例中的任意一个或多个实施例。

进一步,请参阅图17,图17是本申请存储介质一实施例的结构示意图。如图17所示,本实施例中的存储介质170中存储有能够被执行的计算机指令1701,该计算机指令1701被执行能够实现上述图4至图5所示的基于区块链的数据处理方法第一实施例,图8至图10所示的基于区块链的数据存储方法第一实施例和第二实施例,以及图11至图15所示的基于区块链的数据共享方法第一实施例和第二实施例中的任意一个或多个实施例。

本实施例中,该存储介质170可以是智能终端的存储模块、移动存储装置(如移动硬盘、u盘等)、网络云盘、应用存储平台或服务器等具备存储功能的介质。此外,该存储介质还可以为上述图3或图7中所示的用户节点311对应终端的存储装置,或记账节点312、提交节点313、管理节点314对应的服务器;又或为图16中所示的存储器1602。

上述方案可实现以下有益效果:

(1)通过将审计数据在流通过程中利用非对称加密算法进行加密,只有授权节点的私钥才能解密得到相应的审计数据,且部分审计数据采用数字指纹的方式进行上链存储,进一步加大了数据解密难度,强化了数据安全性,提高数据可行度。

(2)利用敏感字段将关键的财务凭证、单据、重大合同等作为数字资产上链存储,并根据审计主体的职责设置不同的查阅权限,在保护审计数据隐私同时拉通数据跨时间、空间的多方安全共享,且共享日志不可篡改、可追溯,此外,将审计结果计入区块链,与被审计单位进行关联,实现数字化留存,为利益相关者提供实时决策依据,从而降低数据流通负荷、节约审计时间。

(3)审计数据的摘要内容经共识后记账于区块链上,通过交叉检查对审计数据源进行真实性核验,同时对异常记录进行自动标记与处理,完成实时审计;利用高度可编程的脚本将审计模型代码化,针对特定的审计对象和预置的时间周期来自动执行相关审计数据清洗和数据分析,消除审计人员的主观化审计数据有效性判断,使整个审计流程和结果更加公正、客观、可靠。

(4)区块链云审计系统的分布式存储,每个节点均拥有一致的数据账本,不仅解决传统审计在进行该频率数据处理时,系统负载高、运行速度慢等问题,还可以通过将审计工作量分摊至不同节点,提高审计速度、降低服务器的高额运维费。

(5)链上审计数据与其生产者相关联,并由审计主体制定可编程的数据访问策略,数据交易发起时,需要向全网广播,并得一定数量节点的认可,才允许其有效访问,确保了审计数据使用合规、安全。

以上描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

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