Saltar al contenido principal
Change page

Introducción técnica a las dapps

Una aplicación descentralizada (dapp) es una aplicación construida sobre una red descentralizada que combina un contrato inteligente y una interfaz de usuario frontend. En Ethereum, los contratos inteligentes son accesibles y transparentes (como las API abiertas), por lo que su dapp puede incluso incluir un contrato inteligente que otra persona haya escrito.

Requisitos previos

Antes de aprender sobre las dapps, debería repasar los conceptos básicos de la cadena de bloques y leer sobre la red Ethereum y cómo está descentralizada.

Definición de una dapp

Una dapp tiene su código backend ejecutándose en una red descentralizada entre pares. Contraste esto con una aplicación donde el código backend se ejecuta en servidores centralizados.

Una dapp puede tener código frontend e interfaces de usuario escritas en cualquier lenguaje (al igual que una aplicación) para realizar llamadas a su backend. Además, su frontend puede alojarse en un almacenamiento descentralizado como IPFS (opens in a new tab).

  • Descentralizada: las dapps operan en Ethereum, una plataforma pública abierta y descentralizada donde ninguna persona o grupo tiene el control.
  • Determinista: las dapps realizan la misma función independientemente del entorno en el que se ejecuten.
  • Turing completo: las dapps pueden realizar cualquier acción dados los recursos necesarios.
  • Aislada: las dapps se ejecutan en un entorno virtual conocido como la Máquina Virtual de Ethereum (EVM), de modo que si el contrato inteligente tiene un error, no obstaculizará el funcionamiento normal de la red de la cadena de bloques.

Sobre los contratos inteligentes

Para presentar las dapps, necesitamos presentar los contratos inteligentes: el backend de una dapp, a falta de un término mejor. Para obtener una descripción detallada, diríjase a nuestra sección sobre contratos inteligentes.

Un contrato inteligente es un código que vive en la cadena de bloques de Ethereum y se ejecuta exactamente como fue programado. Una vez que los contratos inteligentes se despliegan en la red, no se pueden cambiar. Las dapps pueden ser descentralizadas porque están controladas por la lógica escrita en el contrato, no por un individuo o empresa. Esto también significa que debe diseñar sus contratos con mucho cuidado y probarlos a fondo.

Beneficios del desarrollo de dapps

  • Cero tiempo de inactividad: una vez que el contrato inteligente se despliega en la cadena de bloques, la red en su conjunto siempre podrá atender a los clientes que busquen interactuar con el contrato. Por lo tanto, los actores malintencionados no pueden lanzar ataques de denegación de servicio dirigidos a dapps individuales.
  • Privacidad: no necesita proporcionar una identidad del mundo real para desplegar o interactuar con una dapp.
  • Resistencia a la censura: ninguna entidad en la red puede impedir que los usuarios envíen transacciones, desplieguen dapps o lean datos de la cadena de bloques.
  • Integridad completa de los datos: los datos almacenados en la cadena de bloques son inmutables e indiscutibles, gracias a las primitivas criptográficas. Los actores malintencionados no pueden falsificar transacciones u otros datos que ya se han hecho públicos.
  • Computación sin necesidad de confianza/comportamiento verificable: los contratos inteligentes se pueden analizar y se garantiza que se ejecutarán de manera predecible, sin la necesidad de confiar en una autoridad central. Esto no es cierto en los modelos tradicionales; por ejemplo, cuando usamos sistemas bancarios en línea, debemos confiar en que las instituciones financieras no harán un mal uso de nuestros datos financieros, no alterarán los registros ni serán hackeadas.

Inconvenientes del desarrollo de dapps

  • Mantenimiento: las dapps pueden ser más difíciles de mantener porque el código y los datos publicados en la cadena de bloques son más difíciles de modificar. Es difícil para los desarrolladores realizar actualizaciones en sus dapps (o en los datos subyacentes almacenados por una dapp) una vez que se despliegan, incluso si se identifican errores o riesgos de seguridad en una versión antigua.
  • Sobrecarga de rendimiento: existe una enorme sobrecarga de rendimiento y el escalado es realmente difícil. Para lograr el nivel de seguridad, integridad, transparencia y confiabilidad al que aspira Ethereum, cada nodo ejecuta y almacena cada transacción. Además de esto, el consenso de prueba de participación (PoS) también lleva tiempo.
  • Congestión de la red: cuando una dapp utiliza demasiados recursos computacionales, toda la red se atasca. Actualmente, la red solo puede procesar entre 10 y 15 transacciones por segundo; si las transacciones se envían más rápido que esto, el grupo de transacciones no confirmadas puede aumentar rápidamente.
  • Experiencia de usuario: puede ser más difícil diseñar experiencias fáciles de usar porque al usuario final promedio le puede resultar demasiado difícil configurar un conjunto de herramientas necesario para interactuar con la cadena de bloques de una manera verdaderamente segura.
  • Centralización: las soluciones fáciles de usar y amigables para los desarrolladores construidas sobre la capa base de Ethereum podrían terminar pareciendo servicios centralizados de todos modos. Por ejemplo, dichos servicios pueden almacenar claves u otra información confidencial en el lado del servidor, servir un frontend utilizando un servidor centralizado o ejecutar una lógica de negocio importante en un servidor centralizado antes de escribir en la cadena de bloques. La centralización elimina muchas (si no todas) las ventajas de la cadena de bloques sobre el modelo tradicional.

¿Aprende mejor de forma visual?

What is a dapp? Decentralized application on the blockchain

An introduction to decentralized applications (dapps) and how they differ from traditional apps.

Ver con transcripción 

Herramientas para crear dapps

Scaffold-ETH - Experimente rápidamente con Solidity utilizando un frontend que se adapta a su contrato inteligente.

Create Eth App - Cree aplicaciones impulsadas por Ethereum con un solo comando.

One Click Dapp - Herramienta FOSS para generar frontends de dapps a partir de una .

Etherflow - Herramienta FOSS para que los desarrolladores de Ethereum prueben su nodo, y compongan y depuren llamadas RPC desde el navegador.

thirdweb - SDK en todos los lenguajes, contratos inteligentes, herramientas e infraestructura para el desarrollo de la Web3.

Crossmint - Plataforma de desarrollo Web3 de nivel empresarial para desplegar contratos inteligentes, habilitar pagos con tarjeta de crédito y entre cadenas, y usar API para crear, distribuir, vender, almacenar y editar NFT.

Lecturas adicionales

¿Conoce algún recurso de la comunidad que le haya ayudado? ¡Edite esta página y agréguelo!

Tutoriales: Construir aplicaciones y frontends en Ethereum