区块链技术之P2P网络

Posted 奔跑的蜗牛_Kieasar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链技术之P2P网络相关的知识,希望对你有一定的参考价值。

Gossip Protocol

        Gossip protocol 也叫 Epidemic Protocol (流行病协议)。Gossip protocol在1987年8月由施乐-帕洛阿尔托研究中心发表ACM上的论文

《Epidemic Algorithms for Replicated Database Maintenance》中被提出。原本用于分布式数据库中节点同步数据使用,后被广泛用于数据库复制、信息扩散、集群成员身份确认、故障探测等。

        Gossip Protocol和DHT(Distributed Hash Table)一样是P2P网络中的通信协议。

Gossip和P2P的区别

  • 每个节点都存全量的数据,本地检索
  • 每个节点从Peer拉取数据,达到和Peer数据一致
  • 节点收到或产生新数据的时候,会转发给Peer,最终经过Multi-hop之后到达全网

Gossip 的完整过程

为了表述清楚,我们先做一些前提设定

  1. Gossip 是周期性的散播消息,把周期限定为 1 秒
  2. 被感染节点随机选择 k 个邻接节点(fan-out)散播消息,这里把 fan-out 设置为 3,每次最多往 3 个节点散播。
  3. 每次散播消息都选择尚未发送过的节点进行散播
  4. 收到消息的节点不再往发送节点散播,比如 A -> B,那么 B 进行散播的时候,不再发给 A。

        注意:Gossip 过程是异步的,发消息的节点不会关注对方是否收到,即不等待响应;不管对方有没有收到,它都会每隔 1 秒向周围节点发消息。异步是它的优点,而消息冗余则是它的缺点。

优点

  • 享有P2P网络抗单点故障的优点
  • 相比DHT更不容易受到网络阻隔(partition)

缺点

  • Multi-hop造成消息的延迟。这也是区块链挖矿、浏览器经常需要解决的问题
  • 重复接收相同消息,造成了消息的冗余,也增加了收到消息的节点的处理压力

改进方向1:消息延迟

        1. 增加Peer数量

需要解决的问题:Peer数量不够,节点则容易失去同步

解决:

  • 在网络中设置一些固定的节点,与大量的Peer进行连接
  • 其他节点Peer数量不够的时候,从这些固定节点获取Peer列表

        2. 应对网络峰值

需要解决的问题:节点收到新数据后立刻转发给所有Peer,Peer多的情况下会造成瞬间的网络拥堵

解决:分批有序进行广播

        a. Diffusion:广播时候对各个Peer加随机的延时

        b. Fan-out:每秒随机选几个Peer发出消息

        3.应对数据不一致

需要解决的问题:网络中两个节点同时发出消息,网络中会对这两个消息顺序暂时无法达成一致

解决:Avalanche,多轮询问随机Peer并与其中多数Peer的数据保持一致

  • 以网络带宽为代价,换取更快达成一致
  • 网络层面而非共识层面的解决方案,矿工仍倾向于不遵守该机制而选择对其有利的数据

 

改进方向2:消息隐私性

需要解决的问题:当一个节点连上足够多的Peer后,就能知晓消息的生产者是哪个Peer

解决:

(1)改变消息的起点,例如Dandelion Protocol

  • 消息在前几Hop只发给一个Peer,之后开始Gossip
  • 消息发起者的地址不再暴露,增强隐私性

(2)改变消息的终点,例如Nym,异构网络,加入mix节点,即带加密功能的消息池

总结

  1. Gossip Protocol具有抗单点故障、抗网络阻隔的优点,适用于区块链场景
  2. Gossip Protocol中Multi-hop带来的延迟需要进一步改进,尤其在挖矿场景下

区块链与信息安全讨论之:浅谈网络隔离

点击蓝字,轻松关注

学技术,问问题,找专家,上区块链兄弟

本文约1000字+,阅读(观看)需要9分钟



此次分享是信息安全中的信息安全基础—安全政策解读之网络隔离,信息安全是一个交叉学科,知识点很多、很杂,很多东西需要整理,但其又是当今社会愈发重要的信息技术,其和区块链的联系也颇深。(于中阳 Mercina-zy)


国家保密局于1998年发布的《涉及国家秘密的通信、办公自动化和计算机信息系统审批暂行办法》和2000年1月1日正式实施的《计算机信息系统国际联网保密管理规定》都明确规定了,凡涉及国家秘密的计算机信息系统,不得直接或间接地与国际互联网或者其它公共信息网络连接,必须实行物理隔离。


目前国内外的趋势一般都是用网络隔离这个概念来代替物理隔离或安全隔离等。


首先,隔离的概念是基于网络来谈隔离的。


因为,没有联网的概念就没有隔离的必要。试想,两个独立的主机,根本就没有联网,就没必要搞隔离。两个完全独立的网络,完全不相关,也没有联网,也没有什么必要搞隔离。离开网络来谈隔离是没有意义的。


其次,没有信息交换或资源共亭的概念,也谈不上隔离。


两个完全独立的网络,一不需要信患交换,二不需要共享资源,本身就是完全不相关也没有联系的,既不需要联网也不需要踊离。


因此,隔离的本质是在需要交换信息甚至是共享资源的情况下才出现,既要信息交换或共享资源,也要隔离。


物理隔离和安全隔离无法给出一个技术上的精确定义。而网络隔离可以给出一个完整准确的技术定义。


网络隔离是一项网络安全技术,其消除了基于网络和基于协议的安全威胁,但需要说明的是网络隔离技术,其实也存在局限性,对非网络的威胁如内容安全,就无法从理论上彻成排除,就像人工拷盘一样,交换的数据本身可能带有病毒,即使查杀病毒也不一定可以查杀干净。但其不是网络安全问题,不存在攻击和入侵之类的威胁。


如果用户确定交换的内容是完全可信和可控的,那么网络隔离是用户解决网络安全问题的最佳选择。


网络隔离技术的目标是确保把有害的攻击踊离,在可信网络之外和保证可信网络内部信息不外泄的前提下,完成网间数据的安全交换。


网络隔离技术是在原有安全技术的基础上发展起来的,它弥补了原有安全技术的不足,突出了自己的优势。


而隔离这个概念,是在为了保护高安全度网络环境的情况下产生的。其中,隔离产品的大量出现,也是经历了几代隔离技术不断的实践和理论相结合后得来的。

现介绍一下隔离技术的发展历程:
第一代隔离技术,完全地隔离。


此方法使得网络处于信息孤岛状态,做到了完全的物理隔离,需要至少两套网络和系统,更重要的是信息交流的不便和成本的提高,这样给维护和使用带来了极大的不便。

第二代隔离技术,硬件卡隔离。


在客户端增加一块硬件卡,客户端硬盘或其他存储设备首先连接到该卡,然后再转接到主板上,通过该卡能控制客户端硬盘或其他存储设备。而在选择不同的硬盘时,同时选择了该卡上不同的网络接口,连接到不同的网络。


但是,这种隔离产品有的仍然需要网络布线为双网线结构,产品存在着较大的安全隐患。

第三代隔离技术,数据转播隔离。


利用转播系统分时复制文件的途径来实现隔离,切换时间非常之久,甚至需要手工完成,不仅明显地减缓了访问速度,更不支持常见的网络应用,失去了网络存在的意义。

第四代隔离技术,空气开关隔离。


它是通过使用单刀双掷开关,使得内外部网络分时访问临时缓存器来完成数据交换的,但在安全和性能上存在有许多问题。

第五代隔离技术,安全通道隔离。


此技术通过专用通信硬件和专有安全协议等安全机制,来实现内外部网络的隔离和数据交换,不仅解决了以前隔离技术存在的问题,并有效地把内外部网络隔离开来,而且高效地实现了内外网数据的安全交换,透明支持多种网络应用,成为当前隔离技术的发展方向。


文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。


热文推荐



点击“阅读原文”参与区块链问题讨论

以上是关于区块链技术之P2P网络的主要内容,如果未能解决你的问题,请参考以下文章

区块链简单实现之p2p网络多节点同步

区块链简单实现之p2p网络多节点同步

区块链简单实现之p2p网络多节点同步

区块链简单实现之p2p网络多节点同步

“P2P网络“在区块链当中扮演的角色

第10讲 | 深入区块链技术:P2P网络