安全与系统架构
四层架构与跨平台解决方案
🏗 系统架构设计
Butterfly 协议采用模块化的四层架构设计,确保了系统的可扩展性、安全性以及对未来技术升级的适应性。
🥞 协议堆栈详解
应用与 DeSoc 层
ButterflyMessage, 频道
处理消息生成、确认、公共频道和私密聊天的逻辑。DID 身份管理。
会话层
Packet, TTL
负责数据包封装、定义消息 TTL、序列化。集成 Nostr 协议 (NIP-17) 实现隐私保护。
传输层
BLE, 连接管理
核心传输控制。管理 BLE 广播/接收。物理介质抽象层。
加密安全层
Noise, Ed25519
协议基石。提供端到端安全保障。
🕵️ 加密与安全层:Noise 协议栈
在一个基于广播的网络中,所有信号在物理上都是公开的。Butterfly 集成了 Noise 协议栈。
握手模式 (Handshake): 使用 Noise XX 或 IK 模式。这种模式提供了双向身份认证 (Mutual Authentication) 和前向保密 (Forward Secrecy)。
密码学原语:
密钥交换: X25519 (Elliptic Curve Diffie-Hellman)。
身份认证: Ed25519 数字签名。
对称加密: AES-256-GCM 或 ChaCha20-Poly1305。
🕶 隐私保护设计
1. 零知识证明 (ZKP)
为了在验证连接的同时不暴露用户具体的行动轨迹,我们引入 ZK-SNARKs。用户只需证明其拥有符合 条件的数据(如 RSSI 和时间戳),而无需在链上公开原始的和精确。
2. 匿名性与假名系统
MAC 地址随机化: 防止物理追踪。
Ephemeral ID 轮换: 应用层广播的 ID 每 15 分钟更换一次。对于陌生人,每个用户看起来都是一个新的、不相关的节点,直到握手发生。
📱 跨平台挑战:iOS 与 Android
在智能手机上实现持续的 Mesh 网络面临巨大的操作系统限制。
后台限制
iOS:倾向于杀死后台高功耗进程,并限制广播频率。
Android:限制短时间内的扫描次数。
💡 我们的解决方案
混合唤醒机制:利用 Location Updates 或 Audio Background Mode 辅助保活。
受限广播 (Duty Cycling):后台模式下切换到低频广播,仅发送最小化信标。
本地通知激励:检测到附近节点时,通过推送通知唤醒用户打开 App。
最后更新于
