Revolucionando el Desarrollo Web3: Cómo la Abstracción de Cadenas en el Protocolo NEAR Transforman la Programación Blockchain
Autor: América Castro. Publicado 22 de Mayo de 2024
El desarrollo web está en constante evolución, y con la aparición de la tecnología blockchain, los desarrolladores tienen la oportunidad de explorar nuevas fronteras.
Este artículo desglosa conceptos clave como la abstracción de cadenas en el contexto del Protocolo NEAR y los servicios que ofrece para facilitar el desarrollo blockchain y la usabilidad en usuarios finales.
Introducción a la Abstracción de Cadenas
La abstracción de cadenas permite que las aplicaciones interactúen con múltiples blockchains sin necesidad de que los desarrolladores gestionen las complejidades de cada una de ella. NEAR Protocol ha implementado esta técnica para simplificar el proceso de creación de aplicaciones descentralizadas (dApps).
¿Qué es la Abstracción de Cadenas?
En términos simples, la abstracción de cadenas es una capa de middleware que facilita la interacción con varias blockchains a través de una interfaz unificada. Esto significa que los desarrolladores pueden construir aplicaciones que funcionen de manera eficiente en diferentes blockchains sin tener que escribir código específico para cada una.
Beneficios:
- Simplificación del desarrollo: Los desarrolladores pueden concentrarse en la lógica de su aplicación sin preocuparse por las diferencias entre blockchains.
- Interoperabilidad: Permite a las dApps interactuar con múltiples blockchains, ampliando su alcance y funcionalidad.
- Reducción de costos: Al usar una única interfaz para múltiples blockchains, se reducen los costos de desarrollo y mantenimiento.
2. Meta Transaction Relayer
Las meta-transacciones permiten a los usuarios interactuar con la blockchain sin necesidad de tener tokens nativos, eliminando una barrera significativa para los nuevos usuarios.
¿Cómo Funcionan?
En las meta-transacciones, un servicio intermedio paga las tarifas de gas en nombre del usuario, lo que permite realizar transacciones sin que el usuario posea tokens nativos de la blockchain. Esto es particularmente útil para aplicaciones que desean ofrecer una experiencia de usuario más fluida y accesible.
Beneficios:
- Facilidad de uso: Los usuarios pueden interactuar con la blockchain sin necesidad de adquirir tokens primero.
- Adopción masiva: Reduce las barreras de entrada para nuevos usuarios, facilitando la adopción de aplicaciones descentralizadas.
- Mejor experiencia de usuario: Al eliminar la necesidad de tokens nativos, las dApps pueden ofrecer una experiencia más similar a las aplicaciones tradicionales.
Ejemplo del servidor Relayer. A continuación se muestra un simple endpoint express usando near-api-js
app.post('/', async (req: Request, res: Response) => {
const serializedTx: Buffer = req.body;
const deserializedTx: SignedDelegate = deserialize(SCHEMA.SignedDelegate, Buffer.from(serializedTx)) as SignedDelegate;
const relayerAccount: Account = await getAccount(NETWORK_ID, RELAYER_ID, RELAYER_PRIVATE_KEY);
const receipt = await relayerAccount.signAndSendTransaction({
actions: [actionCreators.signedDelegate(deserializedTx)],
receiverId: deserializedTx.delegateAction.senderId
});
res.json({ message: 'Relayed', data: receipt });
});
Recuerda que debes conectar una billetera NEAR en Testnt o Mainnet para hacer la pruebas. Visita GitHub para ver el código completo.
Si ya te animas a ejecutar tu propio Relayer, puedes acceder una implementación completa de código abierto del servidor Rust Relayer aquí.
3. FastAuth SDK
El FastAuth SDK permite a los usuarios registrarse y autenticarse rápidamente en dApps sin necesidad de extensiones de navegador.
Implementación
El SDK simplifica la integración de soluciones de autenticación rápidas y seguras, permitiendo que los usuarios se registren e inicien sesión con pocos clics.
Beneficios:
- Autenticación rápida: Facilita el registro y la autenticación de usuarios, mejorando la retención.
- Seguridad: Proporciona métodos de autenticación seguros sin comprometer la facilidad de uso.
- Compatibilidad: Funciona sin necesidad de extensiones de navegador, ampliando su uso en diferentes dispositivos y plataformas.
4. Firmas de Cadena
Las firmas de cadena son un componente crucial para asegurar que las transacciones sean autorizadas de manera segura y eficiente.
¿Qué Son?
Las firmas de cadena permiten la validación de transacciones a través de múltiples blockchains, asegurando que las transacciones sean legítimas y seguras.
Beneficios:
- Seguridad: Garantiza que solo los usuarios autorizados puedan realizar transacciones.
- Interoperabilidad: Facilita la validación de transacciones en diferentes blockchains.
- Eficiencia: Optimiza el proceso de validación de transacciones, mejorando la velocidad y la confiabilidad.
Para crear tu primer Chain Signature por favor revisa este paso a paso.
5. Wallet Chain Key Rules
Es un conjunto de directrices y prácticas diseñadas para gestionar de manera segura y eficiente las transacciones en múltiples blockchains.
Estas reglas permiten a los usuarios tomar decisiones informadas sobre sus activos, minimizando la cantidad de veces que deben dar su consentimiento para las transacciones y asegurando que las firmas realizadas en una cadena no puedan ser mal utilizadas en otra.
Wallet Chain Key Rules proporciona las bases para que los desarrolladores web interesados en Web3 y blockchain puedan gestionar de manera segura y eficiente las claves y transacciones en múltiples blockchains, asegurando una experiencia de usuario más segura y simplificada.
Principales conceptos:
- Derivación de claves:
Cada cuenta puede tener múltiples claves derivadas del nombre de la cuenta y una extensión.
Ejemplos:
- “david.near”: clave sin extensión.
- “david.near, “: clave con extensión vacía.
- “david.near,cold_wallet”: clave con extensión “cold_wallet”.
Las claves no idénticas no están relacionadas entre sí.
2. Firmas ambiguas:
- Diferentes blockchains tienen maneras distintas de serializar y firmar transacciones.
- Algunas cadenas, como las basadas en EVM, usan un ChainID para evitar firmas ambiguas. Sin embargo, no todas las cadenas lo implementan.
- Problema potencial: una transacción que parece inofensiva en una cadena podría ser mal interpretada en otra, causando acciones no deseadas.
- Solución: usar claves distintas para cada cadena para evitar que una firma válida en una cadena sea utilizada en otra.
3. Formato de serialización:
- Se utiliza un formato específico para las rutas de derivación de claves, codificado en JSON canónico (RFC 8785).
{
"chain": número, // Tipo de moneda SLIP-44
"domain": "cadena", // Dominio propietario de la clave
"meta": cualquier // Datos adicionales
}
Beneficios:
- Seguridad: Evita el uso indebido de firmas entre diferentes cadenas.
- Usabilidad: Reduce la necesidad de repetidos consentimientos por parte del usuario.
- Flexibilidad: Permite personalizar datos según las necesidades específicas.
Ejemplos:
- Clave de Bitcoin usada en “near.org”:
{ "chain": 0, "domain": "near.org" }
La abstracción de cadenas en el Protocolo NEAR presentan oportunidades emocionantes para los desarrolladores web que desean adentrarse en el mundo de web3 y blockchain. Estas tecnologías simplifican la creación de dApps seguras y accesibles, ofreciendo una interfaz unificada y herramientas robustas para la gestión de transacciones y autenticación.
Al aprovechar estas innovaciones, los desarrolladores pueden crear aplicaciones más eficientes y amigables para el usuario, impulsando la adopción masiva de blockchain. ¡Es hora de explorar las posibilidades y transformar el desarrollo web con NEAR!
Recursos educativos:
What is Chain Abstraction?
Uso de la API de JavaScript para interactuar con NEAR