zoukankan      html  css  js  c++  java
  • 阅读《基于区块链技术的溯源系统 》总结(硕士论文)

    MPT树

    Sybil Attac 女巫攻击

    • 利用P2P网络的分布式特性,将一个节点伪装成多个节点,并将这多个伪装节点(也叫做Sybil 节点)广播到整个P2P网络中,从而做一些莫可名状的事情,比如获得网络控制权,拒绝响应,干扰查询等事情。
    • 当使用拜赞庭容错时,如果发生了女巫攻击,一个节点可以伪装成多个有效节点,这样只要伪装的节点突破n/3的限制,就能控制整个网络。而实际上,恶意节点可能只有一个。
    • 为应对女巫攻击,通常有以下三种手段:
      • 限制能够参与挖矿的节点数目,只有可信的节点才能参与挖矿(联邦链)。
      • 让参与挖矿的节点证明自己拥有某种资源,如计算力、存储容量,拥有越多资源的节点,获得挖矿权的概率越大。这样,由于攻击者实施女巫攻击将会付出巨大的代价。其代表共识算法为 pow。
      • 人为的赋予一些节点权重,或让节点去争取到一定权重(PoS)拥有更多权重的节点,获得挖矿权的概率越大。

    Algorand

    • 意为algorithm+random,其本质是一个基于随机算法的共识协议。Algorand 的核心在于一种新的拜占庭协议BA,BA使 Algorand 具有低延迟,不分叉等优点。
    • Algorand是一个公有链系统,在 Algorand 中存在两种虚拟货币,其中一种和比特币相似,作为区块链的挖矿奖励,用以进行交易。另外一种虚拟货币类似于 PoS 中的货币,挖矿节点拥有这种虚拟货币越多,被选中进行挖矿的概率越大,可以将其称为权限币。与 PoS 不同,Algorand 在打包一个区块的过程中需要进行多次选举并进行多次共识。
    • 过程:
      1.从所有节点中选出潜在记账者。
      2.多个潜在记账者打包并提出自己的区块。
      3.重新选出一些新的验证节点,对最合适的记账者提出的区块进行拜占庭共识,这一步将反复执行多轮。在这一步中,每一个进行拜占庭共识的节点都会被赋予一个权重,如果进行共识的节点发现拥有足够权重的节点都同意某一区块的提案,则该节点也认同该区块提案。拥有足够的权重是指,同意某区块提案的所有节点拥有权重总和超过网络所有节点权重和的期望的三分之一。

    区块链结构

    子母链
    为了解决区块链的吞吐量问题,相关科技公司如沃顿链、Nuls 提出了使用跨链共识的区块链结构。在这些区块链中同时使用有子链与母链,通常在子链上部署相关应用,而母链由相关科技公司维护,相比子链,母链通常具有比较高的可信程度。子链中的部分节点通常也是母链的节点,这些节点负责将子链的区块头通常会被放入母链中,将子链与母链相关联并由母链来保证子链的安全性。
    (这里还没有查到具体的结构的内容)

    许可链
    是指参与到区块链系统中的每个节点都是经过许可的。未经许可的节点是不可接入系统中。因此,私有链和联盟链都属于许可链。

    zilliqa
    区块链网络中的节点被分为多个分片,每个分片处理不同的交易,并利用 PBFT 算法达到共识。之后由一个称为目录分片的节点分片将不同分片处理的交易进行聚合,随后将区块的状态发送给每个分片。
    尽管 zilliqa 使用了一些手段来确保每个分片的安全性,比如增大节点加入的难度以及随机地将节点分配到各个分片中以防止攻击者在单个分片中加入过多节点。但上述方案不能应对攻击者针对一组已经加入某一分片的节点进行攻击以俘获特定分片中绝大多数节点的问题。


    方案设计

    • 所述的区块链中,采用与 zilliqa 不同的方式来解决分片的安全问题。在本章所描述的区块链中,对于每一个分片,其他分片的节点将随机的被选为验证者对分片的合法性进行检查,且攻击者不能预知将要检查特定分片的是哪些节点。
    • 在该网络中,所有节点都需要一个中心节点授权以加入一个分为两层的区块链网络。其中,下层网络由二级节点与少量一级节点组成,用以打包属于不同分片的交易。上层网络由一级节点构成,负责将不同分片的节点打包的交易组成新的区块加入到区块链中。此外一级节点还会随机的检查其处于其他分组的节点打包交易的合法性。区块链中的节点通过 P2P 网络相互连接。
    • 溯源节点的各个节点会依次将溯源信息加入到许可链中。连续的若干个许可链的区块头的哈希将会组织成默克尔树的形式存储在数据库中,并将上述默克尔树的根存储在公有链中
    • 厂商能够对各个产品生成一个标签。用户能够通过该标签找到存储该产品对应最后一条溯源信息的位置,并由这条溯源信息在许可链中找到更早的溯源信息。对于每条存储在许可链中的溯源信息,用户能够在许可链中获得许可链对应的区块头并通过默克尔验证来验证该溯源信息是否真的存储在许可链中。对于许可链中的区块头,用户能够对比该区块头与公有链中存储的信息,利用默克尔验证验证该区块是否被篡改。


    参考文献

    女巫攻击及其防范

  • 相关阅读:
    CSS伪元素
    leetcode
    软件镜像下载
    VUE项目问题
    js定时操作
    div 禁止点击
    JS String 与 Object 转换
    实用类
    XML文件的应用
    Socket编程
  • 原文地址:https://www.cnblogs.com/20199321zjy/p/13311272.html
Copyright © 2011-2022 走看看