Artículo de Blog
Autor
Leigh McCulloch
Fecha de publicación
Gestión de claves
La primera publicación de esta serie señaló que la gestión de claves es un gran desafío para cualquier aplicación basada en blockchain. Los usuarios a menudo pierden sus claves, y la recuperación de cuentas tiende a ser un proceso difícil, si no imposible. Para construir un sistema de gestión de claves mejor, primero necesitamos entender los enfoques actuales. En esta publicación, echaremos un vistazo a cómo funcionan las claves, a las estrategias típicas de gestión de claves y a cómo esas estrategias limitan las soluciones de recuperación de cuentas.
En su núcleo, poseer una cuenta Stellar significa poseer una clave para esa cuenta. Esa clave se compone de dos partes: la clave pública, que compartes con otros, y la clave secreta, que guardas para ti mismo. Así es como se ve una clave pública en la red Stellar:
Empieza con una G, y sirve como la dirección de la cuenta: la gente envía fondos a ella, y esos fondos aparecen en tu saldo.
Así es como se ve la clave secreta. Empieza con una S:
En la red Stellar, la clave secreta que define tu dirección de cuenta se llama la clave maestra. Por defecto, cuando creas una nueva cuenta en la red, la clave maestra es el único firmante en esa cuenta: es la única clave que puede autorizar transacciones. Ser un firmante en una cuenta Stellar es algo así como ser un firmante en una cuenta bancaria: puedes firmar cheques, y el banco los aceptará como válidos.
Sin embargo, también puedes añadir firmantes a una cuenta Stellar además de, o en lugar de, la clave maestra.
Una vez que has añadido firmantes a una cuenta, puedes configurarla para permitir que los firmantes autoricen transacciones individualmente o juntos. En Stellar, la configuración de firmantes requeridos para autorizar transacciones se controla estableciendo un umbral en la cuenta y pesos para cada firmante.
Si una cuenta tiene un umbral de 20 y firmantes de peso 10, al menos dos firmantes necesitan firmar una transacción para que sea válida. Si una cuenta tiene un umbral de 1 y firmantes de peso 1, cualquier firmante puede firmar una transacción. El término multi-firma es frecuentemente usado para referirse a cuentas que usan múltiples firmantes, y SEP-30, que es la solución de gestión de claves que cubriremos en la próxima publicación, aprovecha las capacidades de multi-firma integradas en Stellar para ofrecer un nuevo método para la gestión de claves amigable para el usuario.
Sin embargo, la mayoría de las cuentas en la red solo usan la clave maestra, lo que significa que solo tienen un firmante. Mientras que algunas billeteras añaden un firmante adicional para 2FA, el control de la cuenta todavía tiende a depender de la posesión de la clave maestra, y por lo tanto, actualmente, cuando las billeteras idean soluciones de gestión de claves, prevenir la pérdida de la clave maestra es típicamente su única preocupación.
La mayoría de las billeteras almacenan la clave maestra de una cuenta en el dispositivo del usuario, y luego dependen de un par de estrategias para prevenir que el usuario pierda acceso a su cuenta.
A menudo, le piden al usuario que escriba o imprima su clave, y que dependa de la copia en papel si pierden su dispositivo. Esto es simple y directo de implementar, pero presenta algunos desafíos reales:
En lugar de depender de claves de papel, algunas billeteras almacenan una copia de la clave maestra en su servidor. Para que eso funcione, el usuario tiene que confiar completamente en el servidor de la billetera porque el servidor tiene acceso a la clave, y por lo tanto control sobre la cuenta. En algunos casos, una billetera encripta la clave con una contraseña generada por el usuario que nunca se comparte con el servidor de la billetera, y dado que la billetera no puede desencriptar la clave, el servidor de la billetera no tiene acceso a la cuenta del usuario. Sin embargo, dado que la billetera no puede desencriptar la clave, la billetera también no puede ayudar a los usuarios que olvidan su contraseña, y perder claves y olvidar contraseñas a menudo van de la mano.
Más allá de eso, no hay mucho que una billetera que depende de la clave maestra pueda hacer para ayudar con la recuperación de la cuenta, y esos enfoques no han demostrado ser del todo amigables para el usuario. Sin embargo, puede haber un enfoque mejor.
Para saber más, consulta la siguiente publicación en la serie detallando SEP-30, y explicando cómo la aplicación Vibrant la utiliza hoy para mejorar la gestión de claves y la recuperación de cuentas.