Annchain深度:以太坊系列-以太坊p2p网络RLPx传输协议

作者:买提,Annchain核心开发成员,中科大毕业。负责annchain高性能p2p网络、通信与编码、基于DAG的高效交易同步、交易执行逻辑、wasm虚拟机智能合约平台、rpc等模块的研发以及系统优化。

 

RLPx为基于TCP 的传输协议,用于以太坊节点之间的安全加密通信。

以太坊p2p网络可以分为三层,从下到上依次分别为:基于udp的邻居发现层、基于tcp的加密通信层和核心协议层。基于udp的邻居发现层使用Kad (Kademlia p2p网络协议)节点发现机制,与网络中的其他节点进行ping pong握手、交换邻居的方式发现邻居,计算节点之间的距离,动态维护邻居表。基于tcp的加密通信层与节点发现层发现的节点进行握手建立安全加密连接,负责对核心层协议提供的数据进行编解码与加解密、安全传输,rlpx为该层实际使用的协议。核心协议层负责将需要发送的业务数据传入加密通信层,并处理从加密通信层收到的业务数据。

RLPx使用了完全前向保密技术(perfect forward secrecy),通信双方生成随机公私钥对,交换各自的公钥,使用自己的随机私钥和对方的公钥生成共享秘密(shared-secret)。后续使用这个共享秘密对称加密传输的数据,即使一方的私钥被泄露,过去的通信还是安全的。

 

完全前向保密

完全前向保密(perfect forward secrecy)技术是一种秘钥协商协议,保证即使服务器的私钥被泄露,会话秘钥也不会被泄露。前向保密保护过去的会话抵抗秘钥或密码在未来泄露的威胁。为每一次会话产生唯一的会话秘钥,一个会话秘钥的泄露不会影响其它会话中传输的数据安全性。

Diffie-Hellman秘钥交换协议

Diffie-Hellman 秘钥交换 是一种在公共信道中安全交换秘钥的方法,由Whitfield Diffie 与Martin Hellman 在1976年提出。 双方在没有对方任何预先信息的情况下,能够在不安全的信道上建立共享的私钥。该私钥作为对称秘钥用于加密后续的通信数据。Diffie-Hellman 秘钥交换是一种非认证 秘钥交换协议,但为很多认证协议提供了基础,在传输层临时安全中用于前向保密。

ECDH :Elliptic Curve Diffie-Hellman 椭圆曲线Diffie-Hellman 秘钥交换协议

ECDHE:(Ephemeral Elliptic Curve Diffie-Hellman)临时椭圆曲线Diffie-Hellman 秘钥交换协议 

ECIES加密

ECIES(Elliptic Curve Integrated Encryption Scheme,椭圆曲线综合加密方案) 作为非对称秘钥 用于RLPx协议握手。在RLPx协议中用到EXIES的以下几个点:

1. 图片1.png高级加密标准 (Advanced Encryption Standard)AES-128 CTR模式

2.图片2.png:基于SHA-256哈希函数的哈希消息认证码(Hashed Message  Authentication Code)

3.图片3.png:NIST SP 800-56 级联秘钥导出函数 (Concatenation Key Derivation Function)

4.椭圆曲线 secp256k1 生成元 G。所有椭圆曲线密码学操作都基于secp256k1椭圆曲线。

Alice 想发送一份只有Bob能通过静态私钥

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值