DApp es el acrónimo de “aplicación descentralizada”cuyo funcionamiento no depende de puntos de control o servidores centrales, sino que funciona de forma descentralizada como todo el universo blockchain. Estas pueden ser ejecutadas desde computadores personales, Smartphone o vía web.
¿Cuál fue su origen?
El concepto de DApps no es nuevo, de hecho tenéis ejemplos con protocolos anteriormente existentes como Bit Torrent a través del cual se compartían archivos sin punto de control a través de sistemas peer-to-peer.
La primera DApp del mercado fue la usada en el blokchain del mismísimo Bitcoin. Pero no fue hasta 2014 con la aparición de Ethereum, el lenguaje solidity y lossmart contracts que estas apps se masificaron. Gracias a su uso sobre el blockchain es que empezaron a popularizarse y llevar a la adopción masiva de la misma permitiendo nuevas formas de interacción entre los usuarios en el mundo real y virtual.
¿Cuáles son las diferencias entre una DApp y una APP?
Si bien ambas tienen elementos en común, la diferencia radica entre cómo estas interactúan:
- Frontend: Esta viene a ser la interfaz del usuario para interactuar con la aplicación. Ambas pueden utilizar los recursos gráficos disponibles
- Backend: Aquí se marca la lógica principal de la app, que en el caso de una aplicación tradicional es centralizada y en una DApp es descentralizada. En estas últimas, el backend hace referencia al smart contract que se ejecuta sobre el blockchain. Este garantiza el correcto funcionamiento de la DApp. Además que estos son visibles, transparentes y seguros
- Otro punto a destacar es que también están soportados por API o interfaz de programación de aplicaciones y capacidades en el blockchain. Por ejemplo, en Ethereum existen diversas API para controlar la interacción del usuario con las capas de almacenamiento o autenticación.
- Almacenamiento de datos: En una app tradicional esta capa es centralizada donde los datos del usuario son almacenados en el ordenador o servidores controlados por terceros. En una DApp esta información está descentralizada y cada usuario almacena un historial completo de las acciones que se realizan en la red DApp, además de estarlo en la red blockchain
La gran diferencia también se encuentra en los riegos:
- El usuario de una app puede perder la información si el ordenador se daña o sufrir ataques de piratas informáticos
- En el caso de las DApps esto se aloja critpográficamente, por lo que si se daña el dispositivo móvil la información estará a salvo
¿Cómo funciona?
Funciona de manera similar que un blockchain, cada usuario es un nodo de la red y debe velar por el correcto funcionamiento de la misma.
El blockchain es el canal y cada operación queda registrada a través del smart contract que controla la DApp. La aceptación o no de las operaciones está supeditada a la programación del smart contract. Por lo que, en este caso, es un punto intermedio que corrobora la validez de las operaciones que se vuelcan al blockchain. Con cada nueva operación, la información se actualiza cada nodo, quedando almacenado en el mismo.
Cada usuario contribuye a mantener en pié la DApp en su ordenador, permitiendo que esté siempre online gracias a la imposibilidad de dar de baja a todos los nodos de la red al mismo tiempo.
Gracias a ejecutarse sobre el blockchain ofrece al usuario seguridad, privacidad y anonimato. La información generada por cada usuario es solo visible a cada uno, manteniendo el control de la información en manos de los usuarios.
¿Cuáles son sus características?
Entre sus características podéis encontrar las habituales a cualquier entorno blockchain:
- Seguridad: Gracias a que funciona sobre un blockchain que encripta toda la información. Solo puede ser vista por el usuario y el resto solo debe verificar si es veraz o no. Las DApps no guardan información en la nube o servidores externos
- Descentralización: No funciona con servidores centrales. Cada usuario tiene acceso a un historial de sus acciones. Solo basta un usuario conectado para que esté funcionando
- Código abierto: Esto garantiza un alto nivel de transparencia y la comunidad puede saber en todo momento cómo funciona. Así como realizar auditorías comunitarias para revisar el código fuente y editarlo si fuera necesario
- Herencia blockchain: La DApp interactúa en el blockchain gracias al smart contract y genera una entrada de datos en el mismo. Estos son almacenados criptográficamente para brindar transparencia y seguridad. Cualquier usuario puede revisar a través de un explorador de bloques del blockchain. Cada interacción se realiza a través de protocolos de consenso como Prueba de Trabajo (PoW) o Prueba de Participación (PoS)
¿Cómo se clasifican?
Las podéis dividir en tres tipos:
- Tipo 1: Las que poseen su propio blockchain, ej. Bitcoin, Ethereum, etc.
- Tipo 2: Aquellas que dependen del blockchain de un tercero utilizando su propio token o del blockchain donde reside, ej. Golem
- Tipo 3: No tienen propio blockain, funciona sobre uno ya existente y utilizan el tokens de terceros que operan sobre la misma blockchain, ej. Safe Network
¿Cuáles son sus limitaciones?
Algunas de las limitaciones más importantes que podréis encontrar son:
- Dificultad para aprovechar el hardware de los dispositivos del usuario, principalmente cuando funciona en formato web debido a la cantidad de capas de abstracción y el altísimo nivel de ejecución de los lenguajes de programación utilizados
- La complejidad de la aplicación que hace difícil su depuración y revisión de seguridad, una limitación crítica en la programación de los smart contracts
- El crecimiento y mejora está atado al enriquecimiento dentro de las estructuras blockchain si el desarrollo del mismo es pobre o inexistente. Ambas partes, DApp y blockchain deben evolucionar a la par para mejorar y evolucionar
- Dificultad para implementar funcionalidades necesarias para el correcto funcionamiento de las DApps. Un ejemplo de ello lo podemos encontrar en Golem que su dificultad de proyectos es orquestar el almacenamiento de datos procesados y por procesar dentro de la red
¿Qué ejemplo podéis encontrar de una DApp?
Un ejemplo de lo que hemos estado hablando es CryptoKitties. Esta DApp va de coleccionar “gatitos virtuales únicos”. Cada uno de estos tiene características y propiedades que los hacen distintos al resto. Es precisamente su extrema rareza lo que les da valor y vendría a ser la criptomoneda del juego. Estos pueden ser comprados y vendidos, obteniendo así su propiedad de forma virtual.
También podéis hacer “cría” de gatitos. Unir a dos gatitos para obtener una descendencia genética única. La cual podréis mantener, criar más adelante o vender para hacer negocio. CryptoKitties se ejecuta sobre la blockchain de Ethereum, es una DApp del tipo II.
JavierMolina: “el PoP viene a ser una especie de club cerrado de nodos mineros que se llama el Node Registry”
Le preguntamos a nuestro experto del curso de inversión en criptomonedas, Javier Molina, algunos detalles sobre las funcionalidades de las DApss
-¿Qué es una Prueba de Participación (PoS)?
De similar forma a cómo funciona un algoritmo de consenso federado, el PoP viene a ser una especie de club cerrado de nodos mineros que se llama el “Node Registry” donde a sus componentes se les permite crear bloques. Lo interesante del sistema radica en la forma de acceso a dicho club que, sin intervención humana, depende del código.
-¿Los blockchain de estructura como Ethereum están evolucionando a la par de las necesidades que las DApps van requiriendo?
Correcto. Prueba de ello y en el caso de Ethreum tenemos la actualización 2.0 que cambiará el mecanismo de consenso primero y la propuesta EIP 1559 que tiene como objetivo el reducir los costes del gas para que, justamente, todas estas DApps puedan seguir progresando y ganando usuarios.
-¿Hay desarrolladores españoles realizando DApps, podrías darnos un ejemplo?
El equipo de EthicHub está trabajando en su versión 2.0 donde se contará con mayor grado de descentralización con respecto a la versión actual. En la página daap.com puede verse el ranking de aplicaciones por usuarios y demás detalles