基于区块链技术的溯源系统-总结

主要工作

  • 设计了一个基于区块链技术的新型的溯源系统, 并实现一个原型系统。该溯源系统同时使用公有链与许可链两条区块链。上述溯源系统在具有高吞吐量的同时,能够利用比特币或以太坊等公有链来保证溯源信息的安全性。
  • 研究了比特币和以太坊的数据组织形式,并以此为基础设计并实现了一种将具有高吞吐量的许可链与具有高安全性的公有链相关联的方式。通过该方式,溯源系统能够利用公有链中存储的许可链的验证信息确保许可链的安全性。
  • 研究了经典的共识算法以及各种改进的共识算法,并以此为基础设计了一种基于 VRF 的 PoS 算法,并进行实验。
  • 对现有区块链的结构进行了改进,以增大区块链的吞吐量,使得溯源系统能够存储条目更多的溯源信息

第三章 许可链设计

3.1 解决区块链吞吐量的几种方式
  • 如果将交易分片, 每个分片中的挖矿节点只需要处理一部分交易而不是所有交易, 随着参与区块链网络的节点增加, 区块链网络中可以存在更多的子链或分片,从而能够处理更多的交易。
3.2 区块链总体架构设计
  • 在本节设计的区块链中,会将挖矿节点与交易进行分组,用多个分组的节点打包不同的交易,再将不同分组打包的交易进行整合, 组成一个完整的区块。
  • 在本章所描述的区块链中,对于每一个分片, 其他分片的节点将随机的被选为验证者对分片的合法性进行检查,且攻击者不能预知将要检查特定分片的是哪些节点
  • 每个分片的节点分片会将打包一个 MPT 树的子树而不是一个完整的区块
3.3 P2P 网络设计
  • 在该网络中,所有节点都需要一个中心节点授权以加入一个分为两层的区块链网络。其中,下层网络由二级节点与少量一级节点组成, 用以打包属于不同分片的交易。上层网络由一级节点构成,负责将不同分片的节点打包的交易组成新的区块加入到区块链中。 此外一级节点还会随机的检查其处于其他分组的节点打包交易的合法性
3.4 数据存储
3.5 共识机制
  • 在本章所描述的区块链中,各分片将采用 2.3.3 节所设计的 PoS 共识机制作为共识机制。
  • 在下层网络中各节点会收集交易并将收集到的交易打包并用 PoS 机制,组成区块链, 该区块链的区块头是整个区块链 MPT 树的一棵子树。在上层网络即目录分片中,将上述 MPT 子树的根节点看做交易, 并将这些交易组织成为新的区块。
  • 此外上层网络中的节点将随机的检查下层网络分片打包区块的合法性。。。。

第四章 使用双链的溯源系统设计

4.1 溯源系统设计
4.1.1 系统需求分析
  • 本论文将结合公有链与许可链设计一种使用双链的溯源方案
  • 溯源系统需要能够完成责任人定位的功能,即需要能够找到每条溯源信息的录入者。在本文所述的溯源系统中, 溯源信息的录入者通过在区块链中使用自己的账户发布存储溯源信息的交易来记录溯源信息。因为在区块链中发布交易需要账户的签名,所以, 在许可链中, 只需要找到记录某一条溯源记录是由哪个账户发布的, 就可以知道溯源信息是谁录入溯源系统的,
4.1.2 总体设计
  • 为了使溯源系统能够处理大量的溯源信息, 在本论文所述溯源系统中, 将使用一条具有高吞吐量的许可链来存储溯源信息。为提高上述许可链的安全性保障,需要在公有链存储许可链区块头的验证信息,用于验证许可链中数据是否被修改。公有链将采用公认可信度较高的区块链,如以太坊、比特币。
  • 溯源节点的各个节点会依次将溯源信息加入到许可链中。 连续的若干个许可链的区块头的哈希将会组织成默克尔树的形式存储在数据库中,并将上述默克尔树的根存储在公有链中。
4.1.3 许可链设计
  • 在本文所述溯源系统中,溯源信息将通过交易存储在许可链中。
  • 一条溯源信息包括:某溯源节点记录的信息、 许可链中记录上一条溯源信息的交易的交易号。为定位相关责任人,溯源信息还将包括相关负责人对上述所有信息的签名和包括相关负责人的公钥的相关负责人的信息。
  • 在本文所述的许可链中,存在两棵 MPT 树,一棵树用于存储记录溯源信息的交易。另一棵树用于存储产品 id 与存储该产品最后一条溯源信息的交易的交易号之间的对应关系,通过该对应关系,能够快速地在许可链中找到记录某产品最后一条溯源信息的交易。
4.1.4 公有链设计
  • 为在保证溯源系统存储信息的响应速度下减少成本。本文中的溯源系统将若干个连续的许可链的区块头组织成为默克树的形式, 并在公有链中存储这些默克尔树的根。
4.2 溯源系统原型系统实现
4.2.2 许可链的实现
  • 在本论文中, 搭建以太坊的私有链作为原型系统中存储溯源信息的区块链。
  • 在原型系统中,为节省以太坊私有链的空间,不直接使用以太坊私有链存储溯源信息,而是使用以太坊私有链存溯源信息的摘要信息,上述摘要信息包括溯源信息的哈希与该溯源信息在数据库中的链接。
  • 在原型系统中, 通过在以太坊私有链中交易的“input”字段将存储在一个 json
    字符串来将溯源信息的验证信息存储到以太坊私有链中,这个 json 字符串将包括溯源信息的哈希、溯源信息在数据库中的链接以及存储前一条溯源信息的交易的地址。
4.2.3 公有链的实现
  • 本文中的溯源系统将许可链(在本论文中为以太坊私有链)的区块头组织成为
    默克树的形式,
  • 在上述默克尔树中, 每个叶子节点都存储许可链一个区块的哈希值,且默克尔树的根节点被存储于公有链中。
  • 许可链区块头被连续的放置在数据库中,数据库为 key-value 形式, key 值为节点编号, value 节点的哈希值。
6.1 全文总结
  • 为解决上述问题,本论文在分析当前的区块链技术后, 设计了一种基于区块链技术的去中心化的溯源系统。 该系统可以由多个组织共同维护,管理,并且该溯源系统在具有高吞吐量的同时, 能够保证其存储的溯源信息不能被篡改。
  • 在本论文提出的溯源系统中,使用一条具有高吞吐量的许可链来存储溯源信息。在该许可链中,只有经过系统授权的节点才能进行挖矿,且发布溯源信息时需要账户的签名,利用该签名,溯源系统可以实现责任人定位的功能
  • 本论文还设计了一种分层的网络结构以提高许可链的吞吐量。 在许可链中,属于一个区块的交易会按照交易号进行分片,由属于不同分片的节点打包不同的区块分片
  • 为保障每个分片的安全,本论文还设计了一种跨分片检查的方式,部分节点会
    随机的检查其他分片以防止一个分片中大多数节点被攻击者俘获。
  • 为减少许可链在安全方面的开销,本论文设计了一种方式,可以将许可链的验证信息存储到诸如以太坊一类具有极大算力保障其安全性的公有链中,并利用默克尔验证来验证许可链区块的合法性。

你可能感兴趣的:(论文,区块链)