WalletConnect funciona como un protocolo de mensajería peer-to-peer de código abierto que establece un canal de comunicación seguro y cifrado entre una billetera de criptomonedas (móvil o de escritorio) y una aplicación descentralizada (dApp). Nunca expone las claves privadas del usuario a la dApp.
Su arquitectura se basa en la seguridad de cifrado de extremo a extremo y un sistema de nodos de retransmisión (Relay) para garantizar la privacidad y la interoperabilidad en múltiples cadenas de bloques (cross-chain).
El Flujo Técnico de Conexión
El proceso de conexión, ya sea a través de un código QR o un deep link (enlace profundo), establece el canal de comunicación en tres pasos principales:
1. Inicio y Negociación de la Sesión
Generación de URI: La dApp (por ejemplo, un exchange descentralizado en un navegador de escritorio) genera una WalletConnect URI. Esta URI contiene información esencial, como un tema de negociación (handshake topic) y una clave simétrica para el cifrado.
Escaneo/Clic: El usuario escanea el código QR con su billetera móvil o hace clic en el deep link. La billetera lee la URI y extrae la información cifrada.
Intercambio de Claves: La billetera y la dApp utilizan un protocolo de intercambio de claves (como Diffie-Hellman) para crear una clave secreta compartida única para esa sesión.
2. Establecimiento del Canal Cifrado
Servicio de Retransmisión (Relay Service): WalletConnect utiliza una red descentralizada de nodos (el Relay Service o Servicio de Retransmisión) que actúa como un simple intermediario. Una vez que la billetera y la dApp tienen la clave secreta compartida, todas las comunicaciones se cifran con esa clave.
Cifrado de Extremo a Extremo: Los mensajes enviados entre la dApp y la billetera están cifrados de extremo a extremo. Esto es crucial: el Servicio de Retransmisión solo enruta los mensajes; no puede leer su contenido, garantizando la privacidad.
Persistencia del Mensaje: Los Nodos de Servicio (Service Nodes) almacenan temporalmente los mensajes cifrados, actuando como un sistema de "buzón". Si la billetera está sin conexión, el mensaje espera allí hasta que el usuario se reconecte.
3. Ejecución de la Transacción
Solicitud de RPC: Cuando el usuario inicia una acción en la dApp (por ejemplo, un swap o una firma), la dApp envía una solicitud JSON-RPC cifrada a la billetera a través del Servicio de Retransmisión.
Firma Local: La billetera recibe, descifra y muestra la solicitud de la transacción al usuario. La firma de la transacción ocurre localmente y de forma segura dentro de la billetera misma. La clave privada nunca sale de la billetera ni se expone a la dApp.
Respuesta: El usuario aprueba o rechaza la transacción. La billetera cifra la transacción firmada y la envía de vuelta a la dApp. La dApp toma el dato firmado y lo transmite a la blockchain.
Arquitectura de Componentes Clave (WalletConnect v2.0+)
La arquitectura moderna de WalletConnect se ha movido hacia una mayor modularidad y descentralización:
1. Protocolo de Comunicación (Core API)
Es el módulo base que gestiona la configuración de la conexión, el intercambio de claves criptográficas y las funciones de suscripción/publicación (pub/sub) para asegurar que dos partes puedan encontrarse y hablar de forma segura.
2. Servicios de Red (Nodos)
Servicio de Retransmisión (Relay Service): La columna vertebral del enrutamiento de mensajes. Utiliza el cifrado de extremo a extremo para garantizar que solo las partes que poseen la clave secreta (la dApp y la billetera) puedan leer la carga útil (payload).
Nodos de Servicio (Service Nodes): Componentes de base de datos distribuidos (basados en consistent hashing) que garantizan la persistencia de los mensajes. Esto asegura que la conexión no se pierda si una de las partes se desconecta brevemente.
3. Interoperabilidad Cross-Chain
A diferencia de las versiones anteriores, la arquitectura actual es agnóstica a la cadena de bloques. Esto significa que WalletConnect no está vinculado a una blockchain específica (como Ethereum), sino que proporciona un estándar que funciona para EVM, Solana, Cosmos y otras redes, permitiendo conexiones multi-cadena y multi-sesión.
En resumen, WalletConnect funciona como una capa de mensajería segura que delega la custodia y la firma de los activos enteramente al lado de la billetera del usuario, garantizando que el usuario tenga el control total sobre sus claves privadas mientras interactúa con cualquier dApp.