传输协议
为了提供机密性并防止网络中断,ÐΞVp2p*节点使用*RLPx*消息,一种加密且经过身份验证的_transport协议。 *RLPx*使用类似于*Kademlia*的路由算法,*Kademlia*是用于分散的对等计算机网络的分布式哈希表( DHT )。 *RLPx,作为底层传输协议,允许_“节点发现和网络形成”。 \RLPx*的另一个显著特征是通过单个连接支持_多个协议*。
当*ÐΞVp2p*节点通过Internet进行通信时(通常情况下),它们使用TCP,它提供面向连接的介质,但实际上*ÐΞVp2p*节点通过使用底层传输协议*RLPx*所提供的所谓设施(或消息),以数据包通信,允许它们通信发送和接收数据包。
数据包是 动态构建 dynamicically framed,前缀为_RLP_编码标头,经过加密和验证。通过帧头实现多路复用,帧头指定分组的目的协议。
加密握手
通过握手建立连接,并且一旦建立,就将数据包加密并封装为帧。
此握手将分两个阶段进行,第一阶段涉及密钥交换,第二阶段将执行身份验证,作为*DEVp2p*的一部分,还将交换每个节点的功能。
安全 - 基本考虑因素
所有加密操作都基于*secp256k1*,并且每个节点都应该维护一个静态私钥,该私钥在会话之间保存和恢复。
在实施加密之前,数据包具有时间戳属性,以减少执行重放攻击的时间窗口。 建议接收方只接受最近3秒内创建的数据包。
数据包被签名。通过从签名中恢复公钥并检查它是否与预期值匹配来执行验证。
当前内容版权归 inoutcode 译 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 inoutcode 译 .