Go Ethereum P2P : 实现[2] RLPX EIP-8 详解

Ethereum 网络协议栈、

上一节, 我们分析了基本的Ethereum 网络通信的控制流程。 这一节, 我们将更为细致深入的分析一些细节

如上图所示, 在底层的golang的网络通信类库Tcp socket接口与 上层的核心协议之间, 存在一个中间层
被称之为transport, 这一层的主要工作就是对于上层消息的编解码/加解密从而使得通信高效而安全。
在thereum 中 这一层的实现是通过rlpx 协议来完成。

第一阶段 密码学 握手协议

这一阶段主要用于协商后续所用共享secret

Rlpx 协议详解

rlpx 协议之中又可以分为3个层次:

  1. 首先是对上层协议的原始消息的编解码.编解码的协议是RLP。
    • 主要目的是使得数据类型在传输中编解码的结果与平台无关.
  2. 其次是针对RLP编解码的结果进行压缩或者解压缩。这里采用的是snappy压缩算法
  3. ECIES(Elliptic Curve Integrated Encryption Scheme) 加/解密算法
    • 对于压缩后的数据进行加密
    • 或者对于网络栈上传的数据进行解密而后解压缩。

ECIES 加密算法

ECIES 算法是一种基于椭圆曲线的集成了密钥交换+对称加密+消息验证码的一套算法体系。
假设Alice 想和Bob建立安全的链路,同时Alice 知道 Bob的公钥。
基本流程&#x

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值