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