Whisper
Whisper 是 以太坊 网络上的一种安全点对点消息传递协议。Whisper 旨在为 以太坊 网络上的 去中心化应用程序 (dApps) 和用户提供安全且私密的通信通道。[1][4]
概述
Whisper 是一种用于在支持区块链技术的 分布式账本 系统上构建 去中心化应用 (Dapps) 的协议,它允许 DApps 之间进行消息传递。它提供了一个简单的 API,我们可以使用它通过 以太坊 区块链发送加密消息,并使用哈希密钥接收和解密消息。
Whisper 被构建为一个协议,这意味着它为在其上构建的更高级别实现、DApps 奠定了基础,这些应用具有不同的变体,使用协议的不同功能和不同的设置。Whisper 协议实现建立在 RLPx 传输协议之上,该协议在内部被 以太坊 用于节点之间的通信。[4]
Whisper 支持 Geth 和 Parity 客户端。它可以用于 DApps 的发布-订阅协调信号,以及构建安全、不可追踪的去中心化通信。[2][5]
Whisper 向观察者隐藏了消息内容以及发送者和接收者的身份。Whisper 上的消息具有生存时间 (TTL) 计时器,这意味着它们会在一段时间后过期。该系统依赖于双层数据加密。[7]
以太坊 Whisper 通信协议的整个概念围绕三个目标展开:[3]
- 为用户提供一个灵活的系统
- 在 以太坊 上启动一个安全的通信通道
- 最重要的是,保证用户的在线匿名性。
最初,Whisper 是作为以太坊实现去中心化应用程序 (DApps) 之间私密和安全消息传递这一更广泛目标的一部分而开发的。然而,随着时间的推移,其采用速度有所放缓,并且大多处于概念验证阶段,而非实现广泛应用。尽管许多开发人员现在更倾向于替代通信协议,但 Whisper 的完整功能仍然可用。
Whisper 作为以太坊 Web 3.0 的三大支柱之一
最近,Gavin Wood 发表了《Dapps: Web 3.0 的样子》。在这里,我们被介绍到互联网是一个“零信任交互系统”,这由去中心化且加密的信息发布系统、匿名低级消息传递系统和共识引擎共同实现。[6]
在 以太坊 生态系统中,Web 3.0 以三大支柱的形式实现,其中之一就是 以太坊 Whisper 协议,它旨在通过充当安全且去中心化的消息传递协议,促进 DApps 以及延伸出的 Web 3.0 的出现。
- 第一大支柱是 智能合约 技术,它在 以太坊 区块链上运行,作为一个可信的不可变后端。通过智能合约,去中心化应用程序 的代码在可信的点对点 (P2P) 协议之上执行,而不是在 Web 服务器上。
- 第二大支柱是去中心化存储,以 Swarm 的形式存在。这允许 DApps 的链外部分(如 Web 界面和较大数据块)以去中心化的方式存储,从而消除了对中心化文件存储或数据库的需求。
- Web 3.0 愿景的第三个要素涉及专注于隐私的安全消息传递。在许多情况下,DApps 需要在区块链交易上下文之外通过消息总线进行通信。消息总线允许应用程序或用户以点对点或广播方式交换消息。传统上,这是通过中心化消息服务器实现的。DApps 保持链外通信的原因包括:
- 隐私
- 消息有效性的临时限制(生存时间属性)
- 链上交易的成本
在 以太坊 中,Whisper 协议旨在承担安全链外消息总线的角色。[4]
技术
Whisper 协议结合使用公钥密码学和分布式哈希表 (DHT) 来确保消息既安全又私密。网络上的每个用户都被分配了一个唯一的公钥,用于加密发送给他们的消息。DHT 用于安全地分发和存储这些加密消息,从而在不需要中心化服务器的情况下实现点对点通信。
Whisper 的关键功能之一是它对“主题”或“频道”的支持,这允许用户订阅特定类型的消息或对话。这使得 dApps 和用户能够轻松地在 以太坊 网络上创建和参与特定的社区或团体。
Whisper 还被设计为轻量级且高效,使其非常适合在移动设备和其他资源受限的平台上使用。对于需要在移动中为用户提供安全、私密消息传递功能的 dApps 和其他项目来说,这是一个极具吸引力的解决方案。[1]
该系统依赖于双层数据加密:[3]
- 对称加密 允许使用单个加密和解密密钥传输一对多通信。消息的接收者可以解密发送给他们的消息。
- 非对称加密 使用公钥进行加密,使用私钥进行解密。在与另一个人通信时,系统使用这种类型的加密。
Whisper 使用 devp2p 的 ssh 协议字符串。发送加密消息时,消息内容默认可以进行非对称或对称加密。
非对称加密(也称为公钥加密)使用公钥和私钥来加密和解密数据。一个密钥是公开的,与所有人共享。另一个是私钥;只有所有者可以查看或访问私钥信息。在加密 Whisper 消息时,它使用标准的 椭圆曲线 集成加密方案和 SECP-256k1 公钥来加密消息;另一个密钥用于解密。另一方面,对称加密(也称为密钥加密)使用哈希密钥和 AES GCM 算法以及随机 96 位随机数进行加密和解密。它通常促进一对多消息。发送者和接收者使用相同的对称密钥来加密和解密消息。[2]


