DApp es la abreviatura de aplicación descentralizada.
Un dApp tiene su propio código de back-end que se ejecuta en una red punto a punto descentralizada, que lo diferencia de las aplicaciones más comunes cuyo código de back-end se ejecuta en servidores centralizados.
Centralizado, distribuido y descentralizado: las diferencias
El software y los sistemas centralizados son actualmente los más frecuentes.
En cada red, los componentes interactúan entre sí para lograr un objetivo común.
En los sistemas centralizados, las decisiones para lograr un objetivo son tomadas por una entidad central y fija y luego transmitidas a los diversos componentes.
En un sistema distribuido, los datos no residen en un solo nodo central, sino que se distribuyen en varios nodos.
Un sistema centralizado podría diseñarse para ser distribuido también. En este caso, todos los nodos serán controlados por una autoridad central que puede decidir y garantizar el correcto funcionamiento.
En un sistema descentralizado, por otro lado, cada nodo tiene la misma relevancia y no existe una entidad central dominante con poderes de toma de decisiones.
Las aplicaciones descentralizadas son aplicaciones que se ejecutan en una red informática de igual a igual, en lugar de en una sola computadora. Pueden considerarse una forma de software diseñada para funcionar en Internet sin ser controlada por una sola entidad.
Las dApps en la cadena de bloques
Las aplicaciones descentralizadas no necesariamente tienen que ejecutarse en una red blockchain. Por ejemplo, BitTorrent y Tor son dApps tradicionales que se ejecutan en una red punto a punto, pero no en una red blockchain.
Las aplicaciones descentralizadas de blockchain deben cumplir con los siguientes criterios derivados del documento de David Johnston, CEO de Dapps Fund:
- Aplicación de código abierto completo;
- Datos y registros de operaciones almacenados en una blockchain pública;
- Uso de un token criptográfico;
- Generación de tokens por la aplicación.
Johnston en su documento técnico no solo identifica las características principales de una dApp, sino que las clasifica de acuerdo con el uso o no de una cadena de bloques patentada.
David identifica tres tipos de dApps:
- Tipo 1: dApps con su propia cadena de bloques, como Ethereum;
- Tipo 2: dApp que utiliza la cadena de bloques de una dApp tipo 1, pero con tokens patentados para su funcionamiento;
- Tipo 3: dApp que utiliza el protocolo de una dApp de tipo 2.
La plataforma Ethereum
La plataforma Ethereum ha sido el verdadero precursor de las aplicaciones descentralizadas. Proporciona una máquina virtual descentralizada completa de Turing, la máquina virtual Ethereum (EVM), que ejecuta scripts utilizando una red de nodos públicos.
La característica principal es el código descentralizado, es decir, el código alojado en miles de computadoras y luego ejecutado en paralelo.
En el desafortunado caso de un nodo de red que falla o se niega a ejecutar el código, el mismo código se ejecuta en todas las otras computadoras (nodos) en la red.
Por lo tanto, las DApps se consideran más flexibles, transparentes, distribuidas y resistentes.
Hasta la fecha, Ethereum tiene una gran cantidad de dApps en el mercado, sin embargo, con el tiempo se han desarrollado plataformas alternativas exitosas, como TRON y EOS.