区块链通常是由若干个区块构成区块链网络的出块方法
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
其中,去中心化程度最高的是公有链。加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于链外产生的数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对该交易进行共识,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
其中,区块链中支持的共识算法可以包括:
第一类共识算法,即节点设备需要争夺每一轮的记账周期的记账权的共识算法;例如,工作量证明(Proof of Work, POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法;
第二类共识算法,即预先为每一轮记账周期选举记账节点(不需要争夺记账权)的共识算法;例如,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等共识算法。
在采用第一类共识算法的区块链网络中,争夺记账权的节点设备,都可以在接收到交易后执行该笔交易。争夺记账权的节点设备中可能有一个节点设备在本轮争夺记账权的过程中胜出,成为记账节点。记账节点可以将收到的交易与其它交易一起打包以生成候选区块,并将生成的候选区块或者该候选区块的区块头发送至其它节点设备进行共识。
在采用第二类共识算法的区块链网络中,具有记账权的节点设备在本轮记账前已经商定好。因此,节点设备在接收到交易后,如果自身不是本轮的记账节点,则可以将该交易发送至记账节点。对于本轮的记账节点,在将该交易与其它交易一起打包以生成候选区块的过程中或者之前,可以执行该交易。记账节点在生成候选区块后,可以将该候选区块或者该候选区块的区块头发送至其它节点设备进行共识。
如上所述,无论区块链采用以上示出的哪种共识算法,本轮的记账节点都可以将接收到的交易打包以生成候选区块,并将生成的候选区块或者该候选区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到候选区块或者该候选区块的区块头后,经验证没有问题,可以将该候选区块作为最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
区块链技术可以使得其存储的数据难以被篡改,因而可以用于满足数据存证需求。
目前,一种数据存证业务模式为,构建包含两个区块链网络(本文称之为第一区块链网络与第二区块链网络)的数据存证系统,其中,第一区块链网络用于注册用户身份,也就是说,用户可以向第一区块链网络提交用于证明自己身份的相关信息,由第一区块链网络对这些信息进行存储,也就实现了第一区块链网络对用户身份的注册。需要说明的是,第一区块链网络可以注册多个用户身份。还需要说明的是,用户可以是个人,也可以是机构。
所述第二区块链网络用于:存储注册于第一区块链网络的用户身份所提交的数据存证交易。某个用户想要将自己产生的数据提交给第二区块链网络进行存证,则需要构建数据存证交易,数据存证交易一方面包含待存证数据(或者待存证数据的哈希值),另一方面包含用户身份信息(用于证明提交数据存证交易的用户身份)。通常,为了确保提交数据存证交易的用户身份是可信的,该用户身份需要预先在第一区块链网络中进行注册。
第二区块链网络的各节点通常会按照一定的节奏(例如周期性,或者每当累积到一定量的交易时)进行共识,确定本轮共识对应的待写入区块链中(也称为待出块)的区块,该区块包含一批数据存证交易。第二区块链网络的各节点将区块写入区块链(对区块执行出块操作),意味着该区块中的各数据存证交易被写入了区块链。
然而,有时第二区块链网络会受理不可信的用户身份(未在第一区块链网络中注册)提交的数据存证交易,并有可能将这样的数据存证交易打包进区块。因此,如何有效防止第二区块链网络将不可信的用户身份所提交的数据存证交易写入区块链,是亟待解决的技术问题。
为此,在本说明书提供的一个或多个实施例中,考虑到数据存证场景下,需要确保第二区块链网络存储的数据存证交易必须是注册于第一区块链网络的用户身份所提交的,为此,在数据存证系统中部署独立于第一区块链网络与第二区块链网络的出块控制设备,出块控制设备对第二区块链网络中各节点的出块操作进行控制。具体而言,出块控制设备对于第二区块链网络中待出块的区块,需要逐个查询该区块中的每个数据存证交易对应的用户身份是否已经注册到第一区块链网络中,并且通过向第二区块链网络的各节点发送控制指令的方式,使得第二区块链网络的各节点将查询结果为否的数据存证交易从该区块中取出,之后才能进行出块操作。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。