mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-19 19:30:44 +00:00
Clarify bidirectional admission control (inbound + outbound)
- Add explanation of passive admission (inbound control) - Add explanation of active admission (outbound control) - Add bidirectional admission control diagram - Add three scenarios demonstrating bidirectional verification - Add security significance table for both directions Co-Authored-By: mccoy <hbzgzr@gmail.com>
This commit is contained in:
parent
ca90666d92
commit
9cff3fe39f
1 changed files with 46 additions and 1 deletions
|
|
@ -760,11 +760,56 @@ func (s *SGXConsensus) VerifyNetworkConsistency(peer *Peer) error {
|
|||
|
||||
### 6.1 节点连接准入控制
|
||||
|
||||
节点是否接受其他节点的连接和数据同步,取决于命令行配置的参数。只有满足以下条件的节点才能建立连接:
|
||||
准入控制是**双向的**,同时控制入站和出站连接:
|
||||
|
||||
1. **被动准入(入站控制)**:控制允许谁连接到我 - 验证入站连接的度量值
|
||||
2. **主动准入(出站控制)**:控制我只主动连接谁 - 验证出站连接的度量值
|
||||
|
||||
只有满足以下条件的节点才能建立连接:
|
||||
|
||||
1. **度量值匹配**:对方节点的 MRENCLAVE/MRSIGNER 必须在允许列表中
|
||||
2. **Chain ID 匹配**:对方节点的 Chain ID 必须与本节点一致
|
||||
|
||||
**双向准入控制示意图:**
|
||||
|
||||
```
|
||||
+------------------+ +------------------+
|
||||
| 节点 A | | 节点 B |
|
||||
| 白名单: [B, C] | | 白名单: [A, C] |
|
||||
+------------------+ +------------------+
|
||||
| |
|
||||
| 主动连接 (出站) |
|
||||
| A 验证 B 的度量值是否在 A 的白名单 |
|
||||
|-------------------------------------->|
|
||||
| |
|
||||
| 被动接受 (入站) |
|
||||
| B 验证 A 的度量值是否在 B 的白名单
|
||||
| |
|
||||
| 双向验证通过,连接建立 |
|
||||
|<------------------------------------->|
|
||||
| |
|
||||
|
||||
场景 1: A 主动连接 B
|
||||
- A 检查 B 的 MRENCLAVE 是否在 A 的白名单中 (主动准入)
|
||||
- B 检查 A 的 MRENCLAVE 是否在 B 的白名单中 (被动准入)
|
||||
- 两者都通过才能建立连接
|
||||
|
||||
场景 2: 恶意节点 X 尝试连接 A
|
||||
- X 的 MRENCLAVE 不在 A 的白名单中
|
||||
- A 拒绝连接 (被动准入失败)
|
||||
|
||||
场景 3: A 尝试连接未知节点 Y
|
||||
- Y 的 MRENCLAVE 不在 A 的白名单中
|
||||
- A 主动放弃连接 (主动准入失败)
|
||||
```
|
||||
|
||||
**双向准入的安全意义:**
|
||||
|
||||
| 控制方向 | 作用 | 防护场景 |
|
||||
|----------|------|----------|
|
||||
| 被动准入 | 防止恶意节点连接 | 阻止未授权节点接入网络 |
|
||||
| 主动准入 | 防止连接到恶意节点 | 避免同步到被篡改的数据 |
|
||||
|
||||
#### 6.1.0 设计目的:支持硬分叉升级
|
||||
|
||||
准入控制的核心目的是**支持硬分叉升级**,类似于以太坊的 EIP 实现机制。当需要发布新版代码实现新特性时,通过更新 MRENCLAVE 白名单来控制网络升级。
|
||||
|
|
|
|||
Loading…
Reference in a new issue