Las contraseñas son un enfoque seguro y amigable para la autenticación que también se puede utilizar para crear y almacenar de forma segura billeteras de criptomonedas, gracias a su uso de la criptografía de curva elíptica.
En esta publicación, cubriremos cómo funcionan las contraseñas de paso, exploraremos los riesgos de usar contraseñas de paso para billeteras de criptomonedas y nos adentraremos en cómo la abstracción de cuentas permite que las contraseñas de paso se utilicen cuando se combinan con contratos inteligentes.
Las contraseñas son una forma simple y segura para que los usuarios inicien sesión en una aplicación sin necesidad de almacenar contraseñas sensibles o recordar detalles de inicio de sesión. En su lugar, los usuarios crean y acceden a cuentas utilizando métodos familiares como la biometría, como Face ID o Touch ID.
Esto permite a los usuarios iniciar sesión y interactuar fácilmente con aplicaciones de manera autorizada sin almacenar nunca credenciales sensibles; proporcionando una experiencia sin problemas y seguridad adicional contra violaciones de datos y vectores de ataque comunes como el phishing.
En la mayoría de los dispositivos, como el iPhone, las claves de acceso se almacenan dentro de hardware especializado llamado el Secure Enclave; un entorno dedicado y aislado diseñado para proteger datos sensibles incluso si el procesador principal está comprometido.
Las contraseñas de acceso utilizan criptografía de clave públicagenerar un par de claves público-privadas en el dispositivo del usuario, compuesto por dos claves:
Like billeteras blockchain, la clave privada de una clave de acceso puede ser utilizada para firmar mensajes y transacciones que pueden ser enviadas para realizar cambios de estado en una cadena de bloques.
Para firmar una transacción con la clave privada de una contraseña, la transacción se envía al hardware seguro, donde se firma y luego se emite la firma resultante. A lo largo de este proceso, ni el propietario ni el desarrollador de la aplicación tienen acceso a la clave privada; solo reciben las firmas generadas.
Esto proporciona una seguridad mejorada para el usuario, ya que la clave privada generalmente no se carga en la memoria de la aplicación, reduciendo el riesgo de exposición a posibles ataques. Por ejemplo, en el iPhone, el usuario ni siquiera puede acceder al valor de la contraseña dentro de su configuración, ya que la clave se genera y se almacena en hardware especializado al que no tiene acceso la interfaz.
Las claves de acceso y las carteras de criptomonedas comparten la misma tecnología subyacente de criptografía de curva elíptica para generar pares de claves pública-privada. Los desarrolladores de aplicaciones blockchain pueden hacer uso de las claves de acceso para crear carteras seguras en la aplicación para los usuarios con una experiencia de usuario potente.
Sin embargo, hay una diferencia importante que introduce complejidad al usar claves de paso para cuentas de blockchain; las claves de paso utilizan una curva elíptica diferente a las cuentas de blockchain.
Si bien Apple, Android y WebAuthn utilizan la curva secp256r1 (también conocida como P-256) para las contraseñas, las cuentas de blockchain utilizan la curva elíptica secp256k1.
Esto significa que las transacciones firmadas por la clave privada de un pase no son entendidas (y por lo tanto rechazadas) por cadenas de bloques como Ethereum o Abstract. La expectativa predeterminada de las cadenas de bloques es que la transacción esté firmada por un par de claves generado en la curva secp256k1.
Dado que las billeteras regulares (EOA) se generan en la curva k1, por lo tanto se requieren billeteras de contratos inteligentes, ya que pueden incluir lógica personalizada que verifica las transacciones firmadas por claves privadas generadas por contraseñas antes de autorizar la ejecución de la transacción.
Bitcoin fue el primero en adoptar la curva secp256k1 para operaciones criptográficas, lo que estableció el estándar para que Ethereum y otras cadenas basadas en EVM utilicen la variación k1 de la curva para las cuentas.
La variación k1 de la curva también carece de ciertas características como coeficientes adicionales que hacen que secp256r1 sea ligeramente más complejo, lo que significa que secp256k1 es más eficiente computacionalmente para la generación de claves, la creación y verificación de firmas.
Aunque no se han encontrado vulnerabilidades directas, también existen teorías de conspiración que afirman que Bitcoin eligió utilizar la curva k1 en lugar de la curva r1 más adoptada para evitar cualquier posibilidad de una puerta trasera que pudiera haber sido introducida secretamente por agencias gubernamentales como la NSA, dada su participación en el desarrollo de estándares criptográficos respaldados por NIST.
Carteras de contratos inteligentes (como las admitidas por Abstracción de cuenta nativa de Abstractpuede contener lógica arbitraria para que la EVM la ejecute; incluida la verificación de la firma para los mensajes que recibe firmados por una clave privada creada en la curva r1.
Bibliotecas de código abierto como Verificador P256 de código abierto de Daimose han construido para verificar firmas en la curva secp256r1 dentro de contratos inteligentes escritos en Solidity.
En Ethereum, esto significa que puedes usar contratos inteligentes construidos con el Estándar de abstracción de cuenta ERC-4337para verificar la firma r1 de la Operación del Usuario dentro de la validateUserOp
función de la billetera de contrato inteligente.
En Gate.io, abstracción de cuenta nativapermite que las billeteras de contrato inteligente envíen transacciones con el campo de firma establecido como el mensaje firmado por la clave privada de la clave de paso. Si la cuenta que envió la transacción es un contrato inteligente que incluye lógica para verificar las firmas r1 (en elvalidarTransacción
Cuando la transacción es aceptada (es decir, función), la transacción es aceptada.
Las carteras de contratos inteligentes utilizan código (en forma de un contrato inteligente) para gestionar y controlar su funcionalidad, lo que significa que pueden tener cualquier característica personalizada; incluyendo módulos de recuperación, múltiples firmantes aprobados, límites de gasto, claves de sesión y más.
Las carteras de contratos inteligentes ofrecen más flexibilidad que las carteras tradicionales de EOA (Cuentas de Propiedad Externa) y, dado que pueden incluir código EVM arbitrario, tienen el poder de verificar firmas (es decir, autorizar transacciones) de pares de claves creados en la curva elíptica r1.
Al verificar firmas en la curva r1 no es nativo de blockchains como Ethereum o Abstract, es computacionalmente costoso realizar esta verificación; lo que lleva a un aumento drástico en los costos de gas para verificar firmas r1 en lugar de firmas k1 (aproximadamente 100 veces más caro).
RIP-7212 (Propuesta de Mejora de Rollup) propone la adición de un contrato inteligente precompilado a los L2 de Ethereum para una verificación de firma más eficiente en gas en la curva r1. Aunque esto aún no está incluido en Ethereum, soluciones de escalabilidad compatibles con EVM como Abstract ya lo han implementado y proporcionan una reducción de gas de 100x para verificaciones de firmas r1.
La desventaja de las billeteras de contraseña es el hecho de que están vinculadas a un solo dominio. Por ejemplo, si creas una billetera en some-domain.com, tu contraseña (y por lo tanto tu billetera) solo puede conectarse a ese dominio específico.
Esta es una elección de diseño intencional para evitar ataques de phishing, sin embargo, plantea una gran falla para los usuarios que valoran la autogestión, ya que su billetera está vinculada directamente a una aplicación; lo que significa:
Por estas razones, las billeteras de passkey son más adecuadas para sumas pequeñas de dinero o para integrar a usuarios principiantes en sus primeras experiencias criptográficas hasta que adquieran más conocimientos sobre las billeteras de auto custodia.
Esto depende de cómo elija hacer una copia de seguridad de su contraseña. Hay varias opciones para hacer una copia de seguridad de su contraseña en la Nube (como Apple Keychain) para que sea accesible en otros dispositivos incluso si pierde el original.
La clave privada no se puede leer en el dispositivo en ningún momento ya que está en el Secure Enclave. Sin embargo, si tienen acceso a sus datos biométricos, pueden realizar operaciones como si tuvieran control de su clave de acceso/monedero.
No. Tus biometrías no se envían a ninguna parte; se quedan en tu dispositivo. Tus datos biométricos simplemente se utilizan para "desbloquear" la clave de acceso.
Las contraseñas son un enfoque seguro y amigable para la autenticación que también se puede utilizar para crear y almacenar de forma segura billeteras de criptomonedas, gracias a su uso de la criptografía de curva elíptica.
En esta publicación, cubriremos cómo funcionan las contraseñas de paso, exploraremos los riesgos de usar contraseñas de paso para billeteras de criptomonedas y nos adentraremos en cómo la abstracción de cuentas permite que las contraseñas de paso se utilicen cuando se combinan con contratos inteligentes.
Las contraseñas son una forma simple y segura para que los usuarios inicien sesión en una aplicación sin necesidad de almacenar contraseñas sensibles o recordar detalles de inicio de sesión. En su lugar, los usuarios crean y acceden a cuentas utilizando métodos familiares como la biometría, como Face ID o Touch ID.
Esto permite a los usuarios iniciar sesión y interactuar fácilmente con aplicaciones de manera autorizada sin almacenar nunca credenciales sensibles; proporcionando una experiencia sin problemas y seguridad adicional contra violaciones de datos y vectores de ataque comunes como el phishing.
En la mayoría de los dispositivos, como el iPhone, las claves de acceso se almacenan dentro de hardware especializado llamado el Secure Enclave; un entorno dedicado y aislado diseñado para proteger datos sensibles incluso si el procesador principal está comprometido.
Las contraseñas de acceso utilizan criptografía de clave públicagenerar un par de claves público-privadas en el dispositivo del usuario, compuesto por dos claves:
Like billeteras blockchain, la clave privada de una clave de acceso puede ser utilizada para firmar mensajes y transacciones que pueden ser enviadas para realizar cambios de estado en una cadena de bloques.
Para firmar una transacción con la clave privada de una contraseña, la transacción se envía al hardware seguro, donde se firma y luego se emite la firma resultante. A lo largo de este proceso, ni el propietario ni el desarrollador de la aplicación tienen acceso a la clave privada; solo reciben las firmas generadas.
Esto proporciona una seguridad mejorada para el usuario, ya que la clave privada generalmente no se carga en la memoria de la aplicación, reduciendo el riesgo de exposición a posibles ataques. Por ejemplo, en el iPhone, el usuario ni siquiera puede acceder al valor de la contraseña dentro de su configuración, ya que la clave se genera y se almacena en hardware especializado al que no tiene acceso la interfaz.
Las claves de acceso y las carteras de criptomonedas comparten la misma tecnología subyacente de criptografía de curva elíptica para generar pares de claves pública-privada. Los desarrolladores de aplicaciones blockchain pueden hacer uso de las claves de acceso para crear carteras seguras en la aplicación para los usuarios con una experiencia de usuario potente.
Sin embargo, hay una diferencia importante que introduce complejidad al usar claves de paso para cuentas de blockchain; las claves de paso utilizan una curva elíptica diferente a las cuentas de blockchain.
Si bien Apple, Android y WebAuthn utilizan la curva secp256r1 (también conocida como P-256) para las contraseñas, las cuentas de blockchain utilizan la curva elíptica secp256k1.
Esto significa que las transacciones firmadas por la clave privada de un pase no son entendidas (y por lo tanto rechazadas) por cadenas de bloques como Ethereum o Abstract. La expectativa predeterminada de las cadenas de bloques es que la transacción esté firmada por un par de claves generado en la curva secp256k1.
Dado que las billeteras regulares (EOA) se generan en la curva k1, por lo tanto se requieren billeteras de contratos inteligentes, ya que pueden incluir lógica personalizada que verifica las transacciones firmadas por claves privadas generadas por contraseñas antes de autorizar la ejecución de la transacción.
Bitcoin fue el primero en adoptar la curva secp256k1 para operaciones criptográficas, lo que estableció el estándar para que Ethereum y otras cadenas basadas en EVM utilicen la variación k1 de la curva para las cuentas.
La variación k1 de la curva también carece de ciertas características como coeficientes adicionales que hacen que secp256r1 sea ligeramente más complejo, lo que significa que secp256k1 es más eficiente computacionalmente para la generación de claves, la creación y verificación de firmas.
Aunque no se han encontrado vulnerabilidades directas, también existen teorías de conspiración que afirman que Bitcoin eligió utilizar la curva k1 en lugar de la curva r1 más adoptada para evitar cualquier posibilidad de una puerta trasera que pudiera haber sido introducida secretamente por agencias gubernamentales como la NSA, dada su participación en el desarrollo de estándares criptográficos respaldados por NIST.
Carteras de contratos inteligentes (como las admitidas por Abstracción de cuenta nativa de Abstractpuede contener lógica arbitraria para que la EVM la ejecute; incluida la verificación de la firma para los mensajes que recibe firmados por una clave privada creada en la curva r1.
Bibliotecas de código abierto como Verificador P256 de código abierto de Daimose han construido para verificar firmas en la curva secp256r1 dentro de contratos inteligentes escritos en Solidity.
En Ethereum, esto significa que puedes usar contratos inteligentes construidos con el Estándar de abstracción de cuenta ERC-4337para verificar la firma r1 de la Operación del Usuario dentro de la validateUserOp
función de la billetera de contrato inteligente.
En Gate.io, abstracción de cuenta nativapermite que las billeteras de contrato inteligente envíen transacciones con el campo de firma establecido como el mensaje firmado por la clave privada de la clave de paso. Si la cuenta que envió la transacción es un contrato inteligente que incluye lógica para verificar las firmas r1 (en elvalidarTransacción
Cuando la transacción es aceptada (es decir, función), la transacción es aceptada.
Las carteras de contratos inteligentes utilizan código (en forma de un contrato inteligente) para gestionar y controlar su funcionalidad, lo que significa que pueden tener cualquier característica personalizada; incluyendo módulos de recuperación, múltiples firmantes aprobados, límites de gasto, claves de sesión y más.
Las carteras de contratos inteligentes ofrecen más flexibilidad que las carteras tradicionales de EOA (Cuentas de Propiedad Externa) y, dado que pueden incluir código EVM arbitrario, tienen el poder de verificar firmas (es decir, autorizar transacciones) de pares de claves creados en la curva elíptica r1.
Al verificar firmas en la curva r1 no es nativo de blockchains como Ethereum o Abstract, es computacionalmente costoso realizar esta verificación; lo que lleva a un aumento drástico en los costos de gas para verificar firmas r1 en lugar de firmas k1 (aproximadamente 100 veces más caro).
RIP-7212 (Propuesta de Mejora de Rollup) propone la adición de un contrato inteligente precompilado a los L2 de Ethereum para una verificación de firma más eficiente en gas en la curva r1. Aunque esto aún no está incluido en Ethereum, soluciones de escalabilidad compatibles con EVM como Abstract ya lo han implementado y proporcionan una reducción de gas de 100x para verificaciones de firmas r1.
La desventaja de las billeteras de contraseña es el hecho de que están vinculadas a un solo dominio. Por ejemplo, si creas una billetera en some-domain.com, tu contraseña (y por lo tanto tu billetera) solo puede conectarse a ese dominio específico.
Esta es una elección de diseño intencional para evitar ataques de phishing, sin embargo, plantea una gran falla para los usuarios que valoran la autogestión, ya que su billetera está vinculada directamente a una aplicación; lo que significa:
Por estas razones, las billeteras de passkey son más adecuadas para sumas pequeñas de dinero o para integrar a usuarios principiantes en sus primeras experiencias criptográficas hasta que adquieran más conocimientos sobre las billeteras de auto custodia.
Esto depende de cómo elija hacer una copia de seguridad de su contraseña. Hay varias opciones para hacer una copia de seguridad de su contraseña en la Nube (como Apple Keychain) para que sea accesible en otros dispositivos incluso si pierde el original.
La clave privada no se puede leer en el dispositivo en ningún momento ya que está en el Secure Enclave. Sin embargo, si tienen acceso a sus datos biométricos, pueden realizar operaciones como si tuvieran control de su clave de acceso/monedero.
No. Tus biometrías no se envían a ninguna parte; se quedan en tu dispositivo. Tus datos biométricos simplemente se utilizan para "desbloquear" la clave de acceso.