掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链的刑事案件证据流转记录的管理方法及系统

文献发布时间:2023-06-19 09:27:35


基于区块链的刑事案件证据流转记录的管理方法及系统

技术领域

本发明属于信息安全领域,具体涉及一种基于区块链的刑事案件证据流转记录的管理方法及系统。

背景技术

证据问题是诉讼的核心问题,在任何案件的审判过程中,都需要通过证据和证据链再现还原事件的本来面目,充足有效的证据是公正裁决的关键。在刑事案件办理过程中,证据从采集到庭审需要在司法系统的多个部门之间进行流转,在证据流转过程中,如何避免证据被篡改或销毁,确保证据转移记录的真实、一致及不可否认,是提高司法公正性所面临的重大问题。

现有的司法系统证据电子化流转管理多采用“一中心(即政法委)、四平台(即公安局、检察院、法院、司法局)”的总体架构,四平台之间无法进行直接通信,司法系统内跨部门的证据流转均需通过中心服务器,各平台分别生成证据流转日志来记录相关的证据流转事件。这种中心化的架构难以保证各部门间证据流转记录的不可篡改性和一致性,证据流转记录被篡改后难确责,存在着极大的安全威胁。

区块链是由多方参与共同维护的一个持续增长的分布式数据库,也被称为分布式共享账本,其核心在于通过分布式网络、时序不可篡改的密码学账本以及分布式共识机制建立区块链网络中各节点之间彼此之间的信任关系,利用自动化脚本组成的智能合约来执行具体的业务,最终实现上链信息的不可篡改性和一致性。

现有的区块链技术在司法系统中的主要应用为案件取证及存证,以杭州华泰一媒诉深圳道同科技侵犯作品信息网络传播权一案为例,原告华泰一媒借助第三方区块链平台取证存证,将证据上交法院,保证了证据存取过程中的完整性。然而,此存证系统仅实现了单一的证据存取业务,未实现司法系统跨部门之间的证据流转,无法适用于案件处理过程中存在的证据流转、驳回、再提交等事件的记录与管理。同时,现有的存证系统需要借助于第三方存取证平台,无法应用于具有更高保密等级的司法系统部门间的证据流转管理。

发明内容

本发明的目的在于针对上述现有技术中司法系统在处理刑事案件过程中证据流转记录可篡改、篡改后难确责的问题,提供一种基于区块链的刑事案件证据流转记录的管理方法及系统,将刑事案件证据的流转记录存放在司法系统联盟区块链中,确保证据流转记录不可篡改,且各部门拥有的流转记录保持一致,同时还实现证据跨部门流转的全程可控、可管。

为了实现上述目的,本发明有如下的技术方案:

一种基于区块链的刑事案件证据流转记录的管理方法,包括以下步骤:利用Hyperledger Fabric平台搭建司法系统联盟区块链网络,在联盟区块链网络中部署相应节点以及在司法系统各机构部署客户端,政法委作为监管机构对司法系统中的所有证据流转进行监管,其他机构作为业务处理机构通过客户端发起证据流转业务的相关交易;各客户端首先进行用户注册,客户端发起的交易包括证据转移、证据驳回及证据查询;节点包括对等节点(peer节点)、背书节点、排序服务节点、主节点与记账节点,每个peer节点都是记账节点,也可以充当背书节点、排序服务节点及主节点,客户端发起的交易提案首先通过背书节点进行验证并模拟交易执行,然后将背书后的签名文件作为响应发送给客户端,客户端收集到满足交易背书策略的背书结果后,生成交易发送给排序服务节点,排序服务节点运行排序服务、共识算法后生成区块并广播给所有主节点,同时在所有记账节点中进行区块同步,完成证据流转记录上链。

优选的,司法系统各机构包括政法委、公安局、检察院、法院与司法局,在每个机构均部署CA(Certificate Authority),司法系统各机构均含有两个peer节点,司法系统各机构能够按需部署排序服务节点,属于同一个机构的节点均属于同一个local MSP,各机构的local MSP均包含在区块链网络中唯一的通道MSP中(channel MSP)。

优选的,用户注册的具体步骤包括:

司法系统各机构中的用户在本地采用椭圆曲线数字签名算法生成公私钥对,秘密存储私钥,然后通过CA客户端向CA服务器发起用户注册请求;CA服务器在接收到用户注册请求后,为其设置公私钥存储路径,然后检查该用户是否已经存在,若存在则停止对该用户的注册;若不存在,则寻找注册员对该用户进行注册;当用户注册成功后,注册员将获得注册密码,然后发起用户登记,若注册密码正确,则身份验证成功,给予登记,否则注册失败;用户登记成功后,CA服务器设置并保存User Context信息用于执行交易并查询区块链网络;最后CA服务器向用户返回注册成功信息,到此,用户注册成功。

优选的,在证据流转记录上链过程中,司法系统各机构采用RAFT共识机制来完成共识,在区块链网络中各节点达成共识的过程中,区块链网络中的每个节点处于三种状态之一,分别为Follower、Candidate或Leader;最初,每个节点都处于Follower状态并拥有一个随机计时器,当计时器超时后,节点便到达Candidate状态,这时节点向其他处于Follower状态的节点发送选举请求,当网络中某个Candidate节点获得了网络中半数以上节点的支持,该节点便被选举成为Leader,拥有记账权;若同时有多个Candidate获得了相同票数,则这些Candidate便重启一个计数器,进行新一轮选举请求,当Candidate节点发现已产生Leader时,便回到Follower状态,当Leader节点发现存在更高级的Leader节点时,便回到Follower状态;客户端发送的交易将被传输到Leader节点,当Leader节点处的交易足够形成区块后,该节点将提交给其他节点进行同步数据更新,当Leader节点收到半数以上RAFT节点的更新日志完成消息后,该区块便可以写入区块链中并复制到各节点的本地分类账中。

优选的,证据转移、证据驳回及证据查询分别对应区块链中的send操作、revoke操作及inquire操作;send操作只能由公安局、检察院发起,由检察院、法院接收,该操作不得跨级发起,优先级按公安局、检察院、法院的顺序依次提高;revoke操作只能由检察院、法院两部门主动发起,若下级想撤回已提交给上级的证据,要向上级申请,上级批准后由上级发起该操作,进行该操作时,交易中的receiver字段为相应接收方;inquire操作由政法委、公安局、检察院、法院以及司法局均能够发起;在进行证据流转时,发送方和接收方处分别设置一个待确认缓冲区。

优选的,send操作的处理流程如下:

Step1:证据发送方通过填写客户端表单并附上自己的签名,向接收方发送待转移证据,表单包含案件ID、证据ID、证据hash、证据文件、交易ID及接收方ID;客户端会把发送方填写的证据hash按照填写顺序进行Merkel树排列,并将根hash一并发送,将这些交易放入待确认缓冲区,而在接收方处,这些交易则被收入待确认缓冲区;

Step2:接收方接收到待审核证据后,检查签名的正确性、证据文件的正确性及重复性,初步断定这些证据均无误后,对交易ID及根hash进行签名,将该签名消息发送给证据发送方,表明接收该笔交易,同时该笔交易被移除待确认缓冲区;若发现存在错误证据,则先接收该笔交易,并将有误证据按照驳回操作进行驳回;

Step3:若发送方收到对交易ID的签名,则将交易里包含的证据移出待确认缓冲区,然后发送方通过客户端向背书节点发送交易提案,背书节点在验证签名无误后,检查交易内ack字段的签名确为接收方后予以背书。

优选的,revoke操作的处理流程如下:在客户端填写表单;若法院想发起驳回操作,则其在客户端填写相应驳回信息即能够直接发起交易提案;当法院客户端的驳回交易成功上链后,向驳回接收方反馈该驳回信息;若检察院想发起驳回操作,则其客户端首先检查需驳回的证据是否存在于发送方的待确认缓冲区中,若存在则该笔驳回交易不得发起,若不存在,则客户端需等待一段时间,至少为一笔交易从发起到上链的时长之后发起交易提案;只有在交易提案上链后才可将驳回信息反馈给接收方,若交易上链失败,则该笔驳回交易发动失败。

优选的,驳回交易的背书链码逻辑如下:

Step1:针对驳回交易中包含的每项证据,从状态数据库查询该证据的信息;如果状态数据库中不存在该证据,则不予背书,转入Step9;若存在该证据,则转入Step2;

Step2:检查该证据驳回方对应的flag取值是否为1,若为1,则转入Step3;否则,不予背书,转入Step9;

Step3:检查比该证据驳回方优先级高的机构对应的flag的值是否均为0,若均为0,则转入Step5;否则,记录下对应flag为1的上级ID,并转入Step4;

Step4:检查Step3中所记录的比该证据驳回方优先级高的机构对应的valid值是否为0,若为0,转入Step5;否则,不予背书,转入Step9;

Step5:检查该证据接收方对应的flag值是否为1,若为1,则转入Step6;否则,不予背书,转入Step9;

Step6:检查该证据接收方对应的valid值是否为1,若为1,则转入Step7;否则,不予背书,转入Step9;

Step7:检查状态数据库内该证据驳回方客户端ID是否存在于该证据对应的拥有者列表中,若存在,则转入Step8;否则,不予背书,转入Step9;

Step8:按照Step1~Step7依次检查交易中的所有证据,若均检验合格,则给予背书,否则,不予背书,转入Step9;

Step9:结束;

当驳回交易提交给排序服务打包上链时,将状态数据库中该笔交易中所有被驳回证据的驳回方及接收方对应的valid值的取值修改为0,以防止重复驳回。

优选的,所述的状态数据库以键-值对的形式存放证据交易状态,键对应证据ID,值对应该证据的一系列状态,通过查询该状态数据库可以查找该证据的流转详情。

本发明还提出一种基于区块链的刑事案件证据流转记录的管理系统,包括:

联盟区块链网络搭建模块,用于搭建司法系统联盟区块链网络并部署节点,节点包括对等节点(peer节点)、背书节点、排序服务节点、主节点与记账节点,每个peer节点都是记账节点或同时充当背书节点、排序服务节点及主节点,客户端发起的交易提案首先通过背书节点进行验证并模拟交易执行,然后将背书后的签名文件作为响应发送给客户端,客户端收集到满足交易背书策略的背书结果后,生成交易发送给排序服务节点,排序服务节点进行排序服务及共识后生成区块并广播给所有主节点,同时在所有记账节点中进行区块同步,完成证据流转记录上链;

客户端,部署在司法系统的各机构,政法委作为监管机构对司法系统中的所有证据流转进行监管,其他机构作为业务处理机构通过客户端发起证据流转业务的相关交易;所述的客户端能够进行用户注册以及发起交易,交易包括证据转移、证据驳回及证据查询;

客户端根据需要部署对应节点。

相较于现有技术,本发明具有如下的有益效果:通过将刑事案件证据的流转记录存放在司法系统联盟区块链中,确保证据流转记录不可篡改,且各部门拥有的流转记录保持一致。本发明所提出的管理方法及系统在无可信第三方的情况下,能够保证司法系统间的证据流转记录的不可篡改性和一致性,同时还实现了证据跨部门流转的全程可控、可管。

附图说明

图1是司法系统证据流转记录联盟区块链网络架构图;

图2是节点注册流程图;

图3是用户注册及身份验证流程图;

图4是证据发送时客户端状态流程图;

图5是证据驳回时背书链码逻辑流程图;

图6是共识流程图(采用RAFT共识机制)。

具体实施方式

下面结合附图对本发明做进一步的详细说明。

参见图1,本发明的管理方法利用Hyperledger Fabric平台搭建司法系统联盟区块链网络,该联盟区块链主要由公安局(org1)、检察院(org2)、法院(org3)、司法局(org4)和政法委(org5)五个机构成员组成。每个成员均含有两个peer节点,各成员可以按需部署排序节点(Orderer)。在证据流转记录上链过程中,各机构采用RAFT共识机制来完成共识。此外,在每个机构署认证权威(CA)负责联盟链网络内所有成员的身份注册及认证。

参见图2,本发明将排序节点(Orderer)部署于检察院和法院,那么整个联盟区块链网络中的节点注册流程如图2所示。首先,各机构启动CA产生各自的初始化管理员admin。之后,admin注册各结构内的两个peer节点。同一个结构中的节点隶属于同一个的MSP(共5个local MSP)。我们将五个MSP分别命名为org1、org2、org3、org4与org5,分别代表公、检、法、司与政法委。最后,admin再注册两个Orderer节点,分别隶属于org2和org3。五个localMSP均包含于该区块链网络中唯一通道的通道MSP(channel MSP)中。

参见图3,当司法系统各机构按图1所示的架构在联盟链中进行注册后,各机构中的用户在本地采用ECDSA(椭圆曲线数字签名算法)生成公私钥对,秘密存储私钥,随后通过CA客户端向CA服务器发起用户注册请求。CA服务器在接收到用户注册请求后,为其设置公私钥存储路径,然后检查该用户是否已经存在,若存在则停止对该用户的注册;若不存在,则寻找注册员(已成功注册的用户,与待注册用户存在一定隶属关系)对该用户进行注册。当用户注册成功后,注册员将获得注册密码,然后发起用户登记,若注册密码正确,则身份验证成功,给予登记,否则注册失败。用户登记成功后,CA服务器设置并保存User Context(包含该用户的签名标识信息)用于执行交易并查询区块链网络。最后,CA服务器向用户返回注册成功信息,到此,用户注册成功。

参见图6,本发明采用了RAFT算法作为共识机制,在区块链网络中各节点达成共识的过程中,区块链网络中的每个节点可以处于三种状态之一,分别为Follower、Candidate或Leader。最初,每个节点都处于Follower状态并拥有一个随机计时器,当计时器超时后,节点便到达Candidate状态,这时节点向其他处于Follower状态的节点发送选举请求,当网络中某个Candidate节点获得了网络中半数以上节点(包括它自己)的支持,该节点便被选举成为Leader,拥有了记账权。若同时有多个Candidate获得了相同票数,则这些Candidate便重启一个计数器,进行新一轮选举请求。当Candidate节点发现已产生Leader时,便回到Follower状态。当Leader节点发现存在更高级的Leader节点时,便回到Follower状态。客户端发送的交易将被传输到Leader节点,当Leader节点处的交易足够形成区块后,该节点将提交给其他节点进行同步数据更新,当Leader节点收到网络中半数以上节点的更新日志完成消息后,该区块便可以写入区块链中并复制到各节点的本地分类账中。

本发明基于区块链的刑事案件证据流转记录的管理方法分为系统部署、用户注册、证据流转记录管理3个阶段,各阶段的具体操作过程如下:

阶段一:系统部署;

系统部署包括搭建联盟区块链网络、在区块链网络中部署相应节点以及在司法系统各机构部署客户端。区块链中节点部署过程的具体实现如下:在每个机构处部署CA,启动CA产生初始化管理员admin。之后,每个admin注册两个peer节点,隶属于不同的MSP,并将五个MSP分别命名为org1至org5,代表公、检、法、司、政法委。最后,admin再注册两个orderer节点,分别隶属于org2和org3。在部署区块链网络的同时,在各机构所拥有的业务部门部署客户端系统,使各机构的相关人员可以通过客户端系统发起证据流转业务的相关交易。

阶段二:用户注册;

区块链系统部署完毕后,各客户端进行用户注册,用户注册的具体流程如下:客户端在本地利用ECDSA秘密产生公、私钥,然后通过RESTful接口发起用户注册请求,CA服务器在接收到注册请求后检查该用户是否已经存在,若存在则注册失败,否则CA服务器注册、登记用户。随后,CA服务器设置User Context并返回用户,到此,用户注册成功。

阶段三:证据流转记录管理;

客户端可以发起的证据流转业务相关的交易主要包括证据转移、证据驳回及证据查询三个功能,分别对应于区块链系统中的send操作、revoke操作及inquire操作。

区块链系统中的交易数据结构及区块数据结构定义如下:

1)交易的数据结构:

2)区块的数据结构:

a.block header:

type bh struct{

version int//版本号

prehash int//前一区块头的hash值

mrhs int//merkle tree的根哈希值

}

b.block body:以merkle tree存储每笔交易

c.Block Matadata:包括区块创建时间、区块写入者的证书及签名

现对交易ID即txID做如下说明:

txID在区块链全局内唯一标识一笔交易(证据流转记录),由案件ID、发送方ID及交易编号组成,其中发送方ID为客户端机构ID,交易编号在同一案件内唯一标识该交易。

证据ID类似,同样是全局内唯一标识一个证据,由案件ID和证据编号组成,其中证据编号在同一案件内唯一标识该证据。

在上述数据结构的基础上,现对上述三种操作做如下说明:

send操作:

该操作只能由公、检发起,由检、法接收;

该操作不得跨级发起,即公安机关不得发送证据给法院;

revoke操作:

该操作只能由检、法两部门主动发起;

若下级想撤回已提交给上级的证据,需向上级申请,上级批准后由上级发起该操作;

进行该操作时,交易中的receiver字段为相应接收方;

inquire操作:

公、检、法、司及政法委五大机构均可发起该操作;

结合实际情况,定义公、检、法三者之间优先级如下:P

为方便的实现各项交易操作,设计如下状态数据库:

状态数据库中的键为证据ID,值包含该证据的hash值、TBC值(取值为1表明该证据已被检察院发出等待法院确认,为0表明其他状态)、公检法三个机构对应的valid值(取值为0表明该证据当前处于无效状态,为1表明该证据当前处于有效状态)、公检法三个机构对应的flag值(取值为0表明不拥有该证据,为1表明拥有该证据)及拥有者列表(存储拥有该证据的客户端ID)等。

参见图4,对于send操作,设计如下处理流程:

Step1:证据发送方通过填写客户端表单(包含案件ID、证据ID、证据hash、证据文件、交易ID及接收方ID等)并附上自己的签名,向接收方发送待转移证据。客户端会把发送方填写的证据hash按照填写顺序进行Merkel树排列,并将根hash一并发送。同时,将这些交易放入待确认缓冲区buf

Step2:接收方接收到待审核证据后,检查签名的正确性、证据文件的正确性及重复性等。若初步断定这些证据均无误后,对交易ID及根hash进行签名,将该签名消息发送给证据发送方,表明接收该笔交易,同时该笔交易被移除待确认缓冲区buf

Step3:若发送方收到对交易ID的签名,则将交易里包含的证据移出待确认缓冲区buf

对于revoke操作,设计如下处理流程:

若想发起驳回操作,同样需要在客户端填写表单。

若法院想发起驳回操作,则其只需在客户端填写相应驳回信息即可直接发起交易提案。当法院客户端的驳回交易成功上链后,需向驳回接收方反馈该驳回信息。

若检察院想发起驳回操作,则其客户端首先检查需驳回的证据是否存在于buf

参见图5,flag

flag

flag

valid

valid

valid

处理驳回交易的背书链码逻辑如下:

Step1:针对驳回交易中包含的每项证据,从状态数据库查询该证据的信息。若状态数据库中不存在该证据,则不予背书,转入Step9;若存在该证据,则转入Step2;

Step2:检查该证据驳回方对应的flag取值是否为1,若为1,则转入Step3;否则,不予背书,转入Step9;

Step3:检查比该证据驳回方优先级高的机构对应的flag的值是否均为0,若均为0,则转入Step5;否则,记录下对应flag为1的上级ID,并转入Step4;

Step4:检查Step3中所记录的比该证据驳回方优先级高的机构对应的valid值是否为0,若为0,转入Step5;否则,不予背书,转入Step9;

Step5:检查该证据接收方对应的flag值是否为1,若为1,则转入Step6;否则,不予背书,转入Step9;

Step6:检查该证据接收方对应的valid值是否为1,若为1,则转入Step7;否则,不予背书,转入Step9;

Step7:检查状态数据库内该证据驳回方客户端ID是否存在于该证据对应的拥有者列表中,若存在,则转入Step8;否则,不予背书,转入Step9;

Step8:按照Step1~7依次检查交易中的所有证据,若均检验合格,则给予背书,并转入Step8;否则,不予背书,转入Step9;

Step9:结束。

当驳回交易提交给排序服务打包上链时,需将状态数据库中该笔交易的驳回方及接收方对应的valid值的取值修改为0,以防止重复驳回。

对于inquire操作,设计如下处理流程:

证据查询请求可以通过所有机构的客户端发起。

区块链系统中存有状态数据库,以键(证据ID)-值(证据状态)对的形式存放证据交易,用户通过查询状态数据库即可查找该证据的部分流转详情。如果状态数据库中为包含客户端请求查询的信息,则可通过查询本地账本向客户端返回与请求信息相关的所有交易。

本发明一种基于区块链的刑事案件证据流转记录的管理方法及系统的安全性分析:

1、对篡改攻击的抵御;

在本发明所提的基于区块链的证据流转管理系统中,区块链上的每个区块包含的交易都以Merkle树的形式组织,Merkle树的叶子为每一笔交易,非叶子节点均为交易的hash值,逐层向上取hash,Merkle树的根节点也为一个hash值,涵盖了该区块中所有交易的信息。假设敌手篡改了该区块中的某个交易,则根据Merkle树的特点可知Merkle树的根hash值将发生变动,进而导致整个区块的hash值发生变动。由于区块链系统中每个区块都存储着前一区块的hash值,通过验证区块存储的前一区块的hash则很容易发现被篡改的区块及交易。

由此可知,若想篡改不被发现,则需要篡改整个链条,这种篡改难度使得篡改攻击的成功率可以忽略不计。

2、各机构流转记录一致性;

当某个交易提案(即证据流转记录)通过背书后,客户端将生产交易发送给排序服务,排序节点便会将这些交易打包成区块,通过共识机制后,广播给区块链中所有的记账节点,在该过程中,排序服务提供的是原子广播,可以保证同一区块链上的节点接收到相同的消息,并且有相同的逻辑顺序,从而保证了流转记录在各机构端的一致性。

3、证据流转过程的可管可控性;

在系统部署阶段,所有节点与客户端均需要通过注册加入区块链系统,在进行证据流转记录上链过程中,所有交易均需通过合法客户端发起,在背书节点处,背书节点需要对交易的合法性与完整性进行校验,通过背书的交易才会被发送至排序服务进行排序、打包、共识、上链过程。此外,政法委作为监管部门可以随时通过inquire操作查询区块链上的所有交易,对司法系统中的证据流转情况进行监管。

以上所述的仅仅是本发明的较佳实施例,并不用以对本发明的技术方案进行任何限制,本领域技术人员应当理解的是,在不脱离本发明精神和原则的前提下,该技术方案还可以进行若干简单的修改和替换,这些修改和替换也均会属于权利要求书所涵盖的保护范围之内。

技术分类

06120112170671