**위스퍼(Whisper)**는 이더리움(Ethereum) 네트워크에서 안전한 피어 투 피어(P2P) 메시징을 위한 프로토콜입니다. 위스퍼는 이더리움(Ethereum) 네트워크의 탈중앙화 애플리케이션(dApps)과 사용자들에게 안전하고 프라이빗한 통신 채널을 제공하도록 설계되었습니다.[1][4]
위스퍼는 블록체인 기술을 지원하는 분산 원장(distributed ledger) 시스템상에서 탈중앙화 앱(DApps)을 구축하기 위한 프로토콜로, DApps 간의 메시징을 가능하게 합니다. 이는 이더리움(Ethereum) 블록체인을 통해 암호화된 메시지를 보내고 해시 키로 메시지를 수신 및 복호화하는 데 사용할 수 있는 간단한 API를 제공합니다.
위스퍼는 프로토콜로서 구축되고 있으며, 이는 그 위에 구축되는 상위 수준의 구현체인 DApps가 프로토콜의 다양한 기능과 설정을 사용하여 여러 변형을 만들 수 있는 토대를 마련함을 의미합니다. 위스퍼 프로토콜 구현은 노드 간 통신을 위해 이더리움(Ethereum) 내부에서 사용되는 RLPx 전송 프로토콜을 기반으로 구축됩니다. [4]
위스퍼는 Geth 및 Parity 클라이언트를 지원합니다. 이는 DApps의 발행-구독(publish-subscribe) 조정 신호 전달 및 안전하고 추적 불가능한 탈중앙화 통신 구축에 사용될 수 있습니다.[2][5]
위스퍼는 관찰자로부터 메시지 내용과 송수신자의 신원을 숨깁니다. 위스퍼의 메시지는 TTL(Time-to-Live) 타이머를 가지고 있어 일정 기간이 지나면 만료됩니다. 이 시스템은 데이터 암호화의 이중 계층에 의존합니다.[7]
이더리움(Ethereum) 위스퍼 통신 프로토콜의 전체 개념은 다음 세 가지 목표를 중심으로 전개됩니다.[3]
초기에 위스퍼는 탈중앙화 애플리케이션(DApps) 간의 프라이빗하고 안전한 메시징을 가능하게 하려는 이더리움의 광범위한 목표의 일부로 개발되었습니다. 그러나 시간이 지나면서 채택 속도가 느려졌고, 광범위한 구현을 달성하기보다는 주로 개념 증명(proof-of-concept) 단계에 머물러 있습니다. 위스퍼의 전체 기능은 여전히 사용 가능하지만, 현재 많은 개발자들은 대안적인 통신 프로토콜을 선호합니다.
가장 최근에 개빈 우드(Gavin Wood)는 'Dapps: Web 3.0의 모습'을 발표했습니다. 여기서 우리는 탈중앙화 및 암호화된 정보 게시 시스템, 가명 기반의 하위 수준 메시징 시스템, 그리고 합의 엔진에 의해 가능해진 "무신뢰 상호작용 시스템(zero-trust interaction system)"으로서의 인터넷을 소개받습니다.[6]
이더리움(Ethereum) 생태계에서 Web 3.0은 세 가지 기둥의 형태로 구현되며, 그중 하나가 이더리움(Ethereum) 위스퍼 프로토콜입니다. 위스퍼는 안전하고 탈중앙화된 메시징 프로토콜 역할을 함으로써 DApps의 출현과 나아가 Web 3.0의 등장을 가져오도록 설계되었습니다.
이더리움(Ethereum)에서 위스퍼 프로토콜은 안전한 오프체인 메시지 버스의 역할을 수행하도록 설계되었습니다.[4]
위스퍼 프로토콜은 공개 키 암호화와 분산 해시 테이블(DHT)의 조합을 사용하여 메시지의 보안과 프라이버시를 모두 보장합니다. 네트워크의 각 사용자에게는 고유한 공개 키가 할당되며, 이는 해당 사용자에게 전송되는 메시지를 암호화하는 데 사용됩니다. DHT는 이러한 암호화된 메시지를 안전하게 배포하고 저장하는 데 사용되어, 중앙 서버 없이도 피어 투 피어 통신을 가능하게 합니다.
위스퍼의 주요 기능 중 하나는 사용자가 특정 유형의 메시지나 대화를 구독할 수 있게 해주는 "토픽(topics)" 또는 "채널(channels)" 지원입니다. 이를 통해 dApps와 사용자는 이더리움(Ethereum) 네트워크에서 특정 커뮤니티나 그룹을 쉽게 만들고 참여할 수 있습니다.
위스퍼는 또한 가볍고 효율적으로 설계되어 모바일 기기 및 기타 리소스가 제한된 플랫폼에서 사용하기에 적합합니다. 이는 이동 중인 사용자에게 안전하고 프라이빗한 메시징 기능을 제공해야 하는 dApps 및 기타 프로젝트에 매력적인 솔루션이 됩니다.[1]
이 시스템은 데이터 암호화의 이중 계층에 의존합니다.[3]
위스퍼는 devp2p의 ssh 프로토콜 문자열을 사용합니다. 암호화된 메시지를 보낼 때 메시지 내용은 기본적으로 비대칭 또는 대칭 방식으로 암호화될 수 있습니다.
공개 키 암호화라고도 알려진 비대칭 암호화는 데이터를 암호화하고 복호화하는 데 공개 키와 개인 키를 사용합니다. 하나의 키는 공개되어 모든 사람과 공유됩니다. 다른 하나는 개인 키로, 소유자만이 개인 키 정보를 보거나 접근할 수 있습니다. 위스퍼 메시지를 암호화할 때, 메시지 암호화를 위해 SECP-256k1 공개 키와 함께 표준 타원 곡선(Elliptic Curve) 통합 암호화 체계를 사용하며, 다른 키는 복호화에 사용됩니다. 반면 대칭 암호화(비밀 키라고도 함)는 암호화와 복호화 모두에 임의의 96비트 논스(nonce)와 함께 AES GCM 알고리즘의 해시 키를 사용합니다. 이는 일반적으로 일대다 메시지를 용이하게 합니다. 송신자와 수신자는 동일한 대칭 키를 사용하여 메시지를 암호화하고 복호화합니다.[2]