Incidente MyAlgo: guia para realizar rekeying desde Pera Wallet y Defly

Rekey MyAlgo Wallet Exploit

Desde Interchaiment lamentamos enormemente la situación que están padeciendo los usuarios de MyAlgo debido a una vulnerabilidad detectada recientemente, por la cual varias cuentas se están viendo afectadas y se está recomendando realizar un proceso de rekeying para resguardar los activos de las mismas. En base a ello, y a falta de información clara en español al respecto, hemos decidido confeccionar esta guía paso a paso para realizar rekeying (cambio de clave) desde Pera Wallet y Defly.

Cómo hacer un rekeying desde Pera Wallet

Proteger tus activos de Algorand es crucial, y volver a ingresar una clave es una forma efectiva de hacerlo. Con esta característica única, disponible en Algorand Blockchain, puedes asignar una nueva clave privada a una cuenta sin transferir ni eliminar tus activos.

Estos son los puntos clave a tener en cuenta:

El cambio de clave (rekeying) es una herramienta poderosa para mejorar la seguridad de tus activos de Algorand. Puedes usar rekeying para asignar una nueva clave privada a una cuenta que crees que se ha visto comprometida.

Para usar la función de rekeying en Pera Wallet, debes tener tanto la cuenta que deseas realizar el proceso, como la nueva cuenta agregada a la wallet.

Después de completar el proceso de rekeying, asegúrate de mantener en tu wallet tanto la cuenta original (desde la cual estás cambiando la clave) como la cuenta de cambio de clave (ahora será la que tiene el poder de firmar cualquier transacción).

A TRAVES DE LA WEB APP DE PERA WALLET (EXTENSIÓN)

Para ingresar en una cuenta con Pera Web realizando un proceso de rekeying, debes tener tanto la cuenta original como la nueva cuenta agregadas en el panel. Puedes agregar estas cuentas usando las frases de recuperación de contraseña de 25 palabras, o importarlas desde «Pera App» (aplicación móvil)

Paso 1: Selecciona la cuenta a la cual se le va a volver a generar la contraseña (la cuenta que ya no estará autorizada para firmar transacciones) y desde el ícono de «los tres puntos» selecciona «Rekey Account»:

Rekey Pera Web App

Paso 2: Lee la información que muestra la aplicación y confírmala.

Paso 3: Selecciona la cuenta a la que deseas asignar los permisos de la anterior llave pública (es decir, la cuenta que firmará todas las transacciones futuras) y haz clic en «Finalize Rekeying» para ejecutar el proceso.

Asignar permisos a nueva cuenta (rekeying)

Paso 4: Cuando se complete el rekeying, verás un mensaje de éxito en la parte superior de la pantalla, y en la pantalla de inicio las cuentas se actualizarán en consecuencia para mostrar el estado de cambio de clave:

Rekeying Pera Web App – Ver Cuentas

Paso 5: Después del proceso de rekeying, asegúrate de mantener tanto la cuenta original como la nueva en tu wallet; deberás tener ambas cuentas en la misma billetera para poder firmar transacciones desde tu cuenta original.

Cómo funcionan las cuentas reconfiguradas mediante rekeying

La mayor parte de las funcionalidades están disponibles con normalidad, siempre y cuando, tanto la cuenta con clave nueva como la cuenta original estén presentes en tu wallet. 

Si estás conectado a dApps con una cuenta que ahora has modificado mediante el proceso de rekeying, puedes continuar usándola, siempre que la cuenta nueva a la que se le asignaron los permisos para firmar transacciones esté también en tu wallet. Si intentas firmar una transacción con una cuenta con clave nueva sin tu cuenta autorizada en la wallet la transacción fallará.

Algunas funciones están restringidas

  • No puedes eliminar una cuenta a la que se le hayan vuelto a ingresar claves mediante rekeying con otras cuentas, a menos que primero se eliminen las cuentas a las que se les realizó el proceso.
  • Al importar, debes importar la cuenta con clave nueva junto con la cuenta delegada, o importar primero la cuenta delegada y luego la cuenta con clave nueva.

¿Cómo se relaciona el proceso de rekeying con las cuentas Ledger?

Un caso de uso tradicional para la funcionalidad de rekeying es cuando un usuario tiene fondos en una cuenta «regular» y luego compra un billetera física (Ledger por ej.) para usar con dicha cuenta. En este caso, el usuario cambiará la clave de su cuenta «regular» a una de las cuentas Ledger precargadas, lo que significa que las claves de la cuenta «regular» se anularán y el dispositivo Ledger controlará todas las transacciones en el futuro, pero convenientemente, el usuario no necesitará mover ninguno de sus  activos.

Actualmente, Pera Web solo admite rekeying entre cuentas regulares y Pera Mobile solo admite el proceso desde cuentas regulares a una cuenta Ledger. Sin embargo, pronto tanto la wallet móvil como la web admitirán el cambio de clave (rekeying) a cualquier cuenta de hardware o software.

¿Se puede revertir la clave?

Sí, puedes deshacer una nueva clave simplemente volviendo a ingresar a la cuenta original (de la Cuenta B a la Cuenta A). Sin embargo, esto actualmente no es compatible con Pera Wallet. Se está trabajando para agregar la funcionalidad de deshacer la clave, y esto estará disponible pronto.

Realizar rekeying desde Defly

El proceso de rekeying en Defly es una poderosa función del protocolo Algorand que permite a los titulares de cuentas mantener una dirección pública pero asignar diferentes claves privadas de otra cuenta.

Los casos de uso comunes son:

  • Cambiar la titularidad de una cuenta
  • Proteger una cuenta potencialmente comprometida con nuevas claves para firmar transacciones.
  • Asegurar una cuenta activa mediante un dispositivo de hardware Ledger.

Pasos para cambiar la clave de una cuenta en Defly

Paso 1: Identifica la cuenta a la que deseas asignarle el rol para firmar transacciones . Puede ser una cuenta nueva o una existente que consideres segura.

Paso 2: Edita la cuenta original, es decir a la que deseas realizar el rekeying. Desliza tu dedo hacia la izquierda para desplegar el menú de edición.

Paso 3:  En la vista de edición, toca el campo «Rekeyed to».

Paso 4: Selecciona la cuenta que firmará las transacciones de ahora en más.

Paso 5: Toca «Rekey», luego verifica dos veces la solicitud en la vista previa y confírmala.

Paso 6:  Listo, ahora deberías ver un pequeño símbolo de cambio de clave (rekeying)  junto a la cuenta original en la lista de cuentas. El campo «Rekey to» también debe estar completo y apuntar a la cuenta de clave reingresada.

Una vez que se ha vuelto a introducir la clave, la nueva cuenta tendrá control total sobre la original. Solo la cuenta de rekeying puede deshacer la operación. Sin acceso a la cuenta de rekeying , tu cuenta original se vuelve inaccesible.

Para hacer una copia de seguridad y restaurar una cuenta con nueva clave mediante rekeying, debes guardar el mnemotécnico (frase inicial) de ambas cuentas.

¿Se puede revertir completamente una operación de rekeying?

Sí. Para revertir completamente el proceso de rekeying, sigue el mismo procedimiento y usa la cuenta original como la cuenta de rekeying. En otras palabras, simplemente vuelve a introducir la cuenta original.

No elimines la cuenta de rekeying antes de haber revertido con éxito el cambio de clave. Solo la cuenta de rekeying puede firmar la transacción para revertir dicha operación.

Detalles técnicos

Para obtener más información, consulta: https://developer.algorand.org/docs/get-details/accounts/rekey/

No entiendo el proceso de rekeying o no quiero hacerlo ¿Existe alguna otra manera de asegurar mis activos?

¡Si! Puedes mantenerte a salvo sin hacer rekeying. Simplemente deberás crear una cuenta nueva (fuera de MyAlgo) y transferir todos tus fondos allí manualmente, ya sea el token nativo $ALGO, como ASAs, NFTs, entre otros.

NOTA IMPORTANTE: Importar tu cuenta desde MyAlgo hacia otra billetera no te protegerá de las vulnerabilidades, ya que tus frases de recuperación serán las mismas. Únicamente puedes hacer esto si creas una nueva cuenta desde una app segura (por ej. Pera Wallet) y a partir de allí realizar el proceso nombrado en el anterior párrafo.

Esta tarea parece ser más sencilla, pero si estás vinculado a la gobernanza de Algorand perderás los intereses generados en este periodo ya que moverás el saldo comprometido. Puedes sacar un balance de «costos / beneficios» y tomar la decisión que más se adecúe a tu caso. Si no te preocupa mucho perder los intereses generados en este último trimestre y no posees demasiados tipos de activos en tu cuenta, tal vez esta sea la opción más práctica.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *