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 的完整功能仍然可用。
最近,Gavin Wood 发表了《Dapps: Web 3.0 的样子》。在这里,我们被介绍到互联网是一个“零信任交互系统”,这由去中心化且加密的信息发布系统、匿名低级消息传递系统和共识引擎共同实现。[6]
在 以太坊 生态系统中,Web 3.0 以三大支柱的形式实现,其中之一就是 以太坊 Whisper 协议,它旨在通过充当安全且去中心化的消息传递协议,促进 DApps 以及延伸出的 Web 3.0 的出现。
在 以太坊 中,Whisper 协议旨在承担安全链外消息总线的角色。[4]
Whisper 协议结合使用公钥密码学和分布式哈希表 (DHT) 来确保消息既安全又私密。网络上的每个用户都被分配了一个唯一的公钥,用于加密发送给他们的消息。DHT 用于安全地分发和存储这些加密消息,从而在不需要中心化服务器的情况下实现点对点通信。
Whisper 的关键功能之一是它对“主题”或“频道”的支持,这允许用户订阅特定类型的消息或对话。这使得 dApps 和用户能够轻松地在 以太坊 网络上创建和参与特定的社区或团体。
Whisper 还被设计为轻量级且高效,使其非常适合在移动设备和其他资源受限的平台上使用。对于需要在移动中为用户提供安全、私密消息传递功能的 dApps 和其他项目来说,这是一个极具吸引力的解决方案。[1]
该系统依赖于双层数据加密:[3]
Whisper 使用 devp2p 的 ssh 协议字符串。发送加密消息时,消息内容默认可以进行非对称或对称加密。
非对称加密(也称为公钥加密)使用公钥和私钥来加密和解密数据。一个密钥是公开的,与所有人共享。另一个是私钥;只有所有者可以查看或访问私钥信息。在加密 Whisper 消息时,它使用标准的 椭圆曲线 集成加密方案和 SECP-256k1 公钥来加密消息;另一个密钥用于解密。另一方面,对称加密(也称为密钥加密)使用哈希密钥和 AES GCM 算法以及随机 96 位随机数进行加密和解密。它通常促进一对多消息。发送者和接收者使用相同的对称密钥来加密和解密消息。[2]