Saltar al contenido
0%

¿Qué es RIP-7212? Precompilado para soporte de la curva secp256r1

Dogan Alpaslan headshot

Escrito por Dogan Alpaslan

Publicado el 11 de marzo de 20247 min de lectura

banner explicativo del precompile RIP-7212 secp256r1

Account Abstraction introdujo una característica importante para las cuentas de Ethereum: la programabilidad de cuentas. Esto permite a los desarrolladores crear miles de nuevas funcionalidades, como límites de gasto diarios, uso de distintos firmantes y pago de comisiones con cualquier token. En este texto, nos enfocaremos en cómo los desarrolladores pueden mejorar la experiencia del usuario con la próxima integración de RIP-7212 (antes conocido como EIP-7212) en rollups, al permitir el uso de firmantes biométricos.

Las firmas de Ethereum hoy

En las redes EVM, donde la mayoría de las cuentas por defecto son cuentas de propiedad externa (EOA), la propiedad se demuestra mediante criptografía de curva elíptica (ECC), que es la forma trustless de probar que se tiene una clave y que el mensaje fue firmado con esa clave sin revelarla.

Actualmente, los usuarios administran sus fondos con billeteras autocustodiadas (por ejemplo, almacenando sus claves como frases semilla) o con soluciones custodiadas (por ejemplo, confiando en terceros para la gestión de claves).

En paralelo, décadas de investigación en seguridad de la web2 han dado como resultado un stack de hardware, software y prácticas sociales, probado en producción, para la gestión de claves privadas. Como resultado, los dispositivos modernos cuentan con elementos de hardware seguro diseñados para proteger las claves de los usuarios. Sin embargo, estos no admiten la curva elíptica secp256k1 que actualmente usa Ethereum. Por lo tanto, no hay forma de incorporar estas mejores prácticas de seguridad con las EOA.

Las cuentas de contrato inteligente habilitan distintos mecanismos de autenticación, incluido el uso de curvas elípticas distintas de secp256k1 (la única curva nativa de Ethereum). Usar mecanismos de autenticación diferentes, como los firmantes biométricos, mejora la experiencia del usuario y aumenta la seguridad. En esta sección explicaremos cómo funcionan esos enclaves seguros y cómo se ven al combinarse con cuentas inteligentes.

Enclaves seguros en dispositivos cotidianos: una billetera de hardware en tu teléfono

Casi todos los dispositivos modernos incorporan en el diseño de su chip lo que se conoce como un Trusted Execution Environment (TEE), un elemento de hardware avanzado diseñado específicamente para actuar como una barrera de protección alrededor de los datos más sensibles de los usuarios.

Por ejemplo, todos los productos de Apple han incluido desde 2013 un TEE llamado Secure Enclave. A diferencia de otras partes del dispositivo, que pueden manejar desde procesos de aplicaciones hasta notificaciones, el TEE es un microchip separado, aislado del resto de los componentes del dispositivo. Esta separación garantiza que los datos sensibles, como la información biométrica y las claves criptográficas, estén aislados de posibles amenazas que puedan comprometer otras partes del dispositivo. Aprovechar los TEE es la forma más segura de almacenar claves en los dispositivos modernos, lo que convierte efectivamente a los dispositivos cotidianos en billeteras de hardware a las que solo se puede acceder mediante autenticación biométrica.

¿Cómo podemos usar los TEE con cuentas inteligentes?

Los enclaves seguros permiten a los usuarios crear una clave dentro del TEE y firmar mensajes arbitrarios con esas claves. Esto es exactamente lo que necesitamos para verificarlas onchain. Podemos crear una cuenta inteligente con un propietario derivado de una clave privada que vive dentro del TEE. Estas claves nunca salen del dispositivo y solo pueden ser accedidas por el propietario del dispositivo (gracias a la autenticación biométrica).

diagrama de cómo funcionan los entornos de ejecución confiables

Passkeys: un camino hacia una web sin contraseñas

Aproximadamente el 81% de las brechas relacionadas con hackeos involucran el uso de contraseñas robadas o débiles. Como resultado, los investigadores se han enfocado en el protocolo WebAuthn, desarrollado por la FIDO Alliance y el W3C, para abordar este problema ofreciendo un sistema de gestión de claves más seguro mediante criptografía de clave pública, lo que mejora tanto la seguridad como la experiencia del usuario. WebAuthn, hasta la fecha, ha sido adoptado para autenticación por grandes empresas como Google, Amazon, Microsoft y Coinbase, y su adopción sigue creciendo rápidamente.

WebAuthn busca superar las debilidades e inconvenientes de los sistemas tradicionales de contraseñas mediante el uso de criptografía de clave pública específica por dominio para la autenticación de usuarios. Este enfoque elimina las contraseñas, los olvidos de contraseñas, los bloqueos de cuenta y reduce los riesgos de seguridad comunes.

¿Cómo funcionan las passkeys?

Passkey es una implementación del estándar WebAuthn y funciona en casi todos los dispositivos modernos. Cuando un usuario se registra en una cuenta, el sistema operativo genera un par de claves único, vinculado a su cuenta y exclusivo de la aplicación o el sitio web. Estas claves se cifran usando Secure Enclaves, a menudo con autenticación biométrica, y se sincronizan entre dispositivos a través de iCloud Keychain u otros administradores de contraseñas.

Las passkeys tienen muchos casos de uso en blockchains para la gestión de cuentas. Para usarlas en la blockchain, los desarrolladores pueden colocar la clave pública de la passkey en un contrato inteligente y usarla como método de autenticación.

diagrama de cómo funcionan las passkeys

Lamentablemente, casi todos los enclaves seguros y las passkeys admiten la curva secp256r1 (P256), desarrollada por el NIST, mientras que Ethereum solo admite nativamente la curva secp256k1. Entonces, debemos verificarlas onchain para demostrar la propiedad a nuestros pares, pero ¿cómo podemos hacerlo?

La respuesta es RIP-7212.

Qué es RIP-7212: un contrato precompilado para soportar la curva secp256r1

RIP-7212 es un cambio central en el protocolo de Ethereum que abre un camino para verificar la curva P256 de forma barata, segura y rápida mediante un contrato precompilado. Es la primera Rollup Improvement Proposal que fue propuesta y aceptada exitosamente por blockchains de Layer 2.

¿Qué son los contratos precompilados?

Los contratos precompilados no son "contratos" en el sentido tradicional, sino funciones nativas predefinidas que están "precompiladas" porque están disponibles de forma nativa en el protocolo de Ethereum.

Los contratos precompilados están optimizados en cuanto a rendimiento y bajo costo de gas para ciertas operaciones, como cálculos criptográficos (por ejemplo, verificación de firmas para secp256k1 y secp256r1) o funciones de hash. Sin los contratos precompilados, realizar estas operaciones en la Ethereum Virtual Machine requeriría más código y un poder computacional significativamente mayor, lo que se traduciría en comisiones de gas más altas. Puedes ver una lista de precompiles en Ethereum en el sitio evm.codes.

¿Cómo se compara RIP-7212 con otras soluciones?

Con RIP-7212, verificar P256 cuesta solo 3450 gas, una reducción de 100 veces respecto a la mejor opción sin cambios en el protocolo. RIP-7212 es la forma más eficiente en gas, más segura y más rápida de verificar P256 en cadenas EVM.

Como explicamos antes, usar firmantes biométricos (por ejemplo, basados en Passkeys y Secure Enclave) solo es posible si contamos con una forma de verificar la curva P256 onchain. Existen varias opciones disponibles para verificar la curva P256 onchain, pero ninguna es barata.

Verifier
Gas Consumption (Account Creation)
Gas Consumption (Single Transaction)
Proving Time
Type

Obvious' Solidity Verifier

330k

330k

Instant

Smart Contract Verifier

Alembic's Solidity Verifier

2M

375k

Instant

Smart Contract Verifier

FCL's Solidity Verifier w/o precomputation

205k

205k

Instant

Smart Contract Verifier

FCL's Solidity Verifier with precomputation

3.2M

69k

Instant

Smart Contract Verifier

Risc0 Verifier

250k

250k

Nearly instant

Zero Knowledge Verifier

KnowNothingLab's Verifier

520k

520k

~4 seconds

Zero Knowledge Verifier

Circom

230k

300k

Nearly instant

Zero Knowledge Verifier

A Verifier with EVMMAX

73k

73k

Instant

Core Protocol Change

EIP-7212 Precomiler Contract for P256

3450

3450

Instant

Core Protocol Change

El estado de RIP-7212 y sus casos de uso

Las especificaciones de RIP-7212 ya están finalizadas y algunos equipos (Kakarot, Polygon, Optimism, zkSync y Arbitrum) ya se han comprometido a implementar este precompile en sus ecosistemas de rollup. Polygon recientemente publicó RIP-7212 en su testnet y los desarrolladores ya están comenzando a probarlo.

Los casos de uso de RIP-7212 no se limitan a las cuentas inteligentes. RIP-7212 también puede usarse para verificar atestaciones remotas de Trusted Execution Environments, que se han utilizado para la construcción descentralizada de bloques (SUAVE), 2FA para rollups (Taiko y Scroll), ¡y mucho más!

Cómo construir un contrato validador de P256 compatible con ERC-6900 que use RIP-7212

Una vez que RIP-7212 esté activo, el siguiente paso es hacer que sea lo más simple posible para los desarrolladores usarlo y así mejorar la experiencia de sus usuarios finales. Integrar código nuevo en cuentas inteligentes es una tarea de alta fricción y alto riesgo, y hasta los flujos muy simplificados como los que ofrece RIP-7212 aún necesitan diseñarse, probarse y auditarse con cuidado.

Aquí es donde entra ERC-6900.

ERC-6900: Modular Smart Contract Accounts and Plugins es un estándar EVM diseñado para permitir a los desarrolladores capturar piezas lógicas como plugins, que cualquier otro desarrollador de cuentas puede usar. Los desarrolladores pueden entonces apoyarse en plugins probados en producción para mejorar la experiencia de sus usuarios finales, en lugar de tener que construir sus propios plugins.

Combinar RIP-7212 y ERC-6900 da como resultado un plugin de cuenta simple para una validación eficiente de P256, que habilita autenticación biométrica barata y segura para los usuarios con una carga mínima para el desarrollador. Nos entusiasma lanzar este plugin en los rollups que lo soporten a medida que se acelera la adopción de RIP-7212 en mainnet.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.