Aplicación descentralizada

tipo de aplicación informática

Una aplicación descentralizada (también conocida por su acrónimo DApp) es una aplicación informática que funciona en un sistema de computación distribuido.

Una plataforma de minería de Bitcoin compuesta por docenas de unidades de procesamiento de gráficos.

Las aplicaciones descentralizadas han proliferado gracias a la creciente pujanza de tecnologías DLT (Distributed Ledger Technologies) como blockchain o Ethereum, donde las "DApps" sirven habitualmente para implementar contratos inteligentes.[1]

Características editar

Según el libro blanco The General Theory of Decentralized Applications, una aplicación puede considerarse una "DApp" cuando cumple 4 criterios:[2]

  • La aplicación debe ser de código abierto y operar de forma autónoma, de modo que ninguna entidad controle la mayoría de los tokens.
  • Los datos de la aplicación deben almacenarse en una cadena de bloques (blockchain) pública.
  • La aplicación utiliza algún token criptográfico, necesario para obtener acceso a la DApp y para recompensar las contribuciones de sus usuarios.
  • La aplicación debe generar tokens, mediante algún algoritmo criptográfico, que certifiquen el valor de las contribuciones de los usuarios del sistema.

El modelo de descentralización de las DApps ofrece ciertas ventajas sobre las aplicaciones centralizadas tradicionales. Por ejemplo, su funcionamiento no depende de entidades centrales, por lo que es menos vulnerable ante posibles fallos en servidores o centros de datos, y dado que los elementos de la aplicación se hallan distribuidos en una blockchain, los propios usuarios tienen acceso a su contenido de forma transparente y pueden participar en el proceso de verificación de su autenticidad, dificultando que cualquier agente malicioso pueda atacar la red. Asimismo, la descentralización del sistema hace extremadamente difícil que su contenido sea censurado o restringido por las empresas o el gobierno.[3]

No obstante, el desarrollo de DApps exige conocimientos avanzados sobre cifrado y blockchain, lo que constituye una barrera de entrada a la creación de nuevas aplicaciones. Además, las DApps heredan una serie de problemas y limitaciones de la tecnología blockchain, como el costo que conlleva realizar operaciones en la cadena, la necesidad de una red lo suficientemente grande y robusta para que la aplicación funcione correctamente, y el problema de la escalabilidad, por el que la cadena se ralentiza y aumenta el costo de las operaciones cuando la red crece más de lo previsto. Las aplicaciones descentralizadas también son vulnerables al llamado «ataque del 51%», que se produce cuando alguna entidad o grupo toma el control de más de la mitad de los nodos encargados de verificar la autenticidad de las transacciones en la blockchain, lo que permitiría realizar operaciones fraudulentas en la red.[4]

Terminología técnica editar

Blockchain editar

La cadena de bloques o blockchain es una tecnología que organiza los datos en una estructura llamada bloque y emplea técnicas criptográficas para conectar los bloques entre sí, formando una "cadena".[5]​ Antes de añadir un bloque a la cadena, este debe propagarse a través de la red de blockchain para ser validado por los propios usuarios del sistema. Este proceso, denominado "minería", es el que acredita la alta fiabilidad de esta tecnología. El contenido de la cadena de bloques es público y los usuarios mantienen una copia íntegra de la cadena, de modo que su integridad y mantenimiento no dependen de un servidor o entidad central.

Las aplicaciones descentralizadas utilizan mecanismos de consenso como la prueba de trabajo y la prueba de participación para garantizar la autenticidad de los datos introducidos en la cadena de bloques. A través del mecanismo de prueba de trabajo, los usuarios que participan en el proceso de minería de la cadena intentan resolver un problema criptográfico que verifica la autenticidad de un bloque, donde el primer usuario en resolver el problema es premiado con un valor de la criptomoneda asociada a la blockchain. Este proceso es repetitivo, lento y muy costoso computacionalmente. El mecanismo de prueba de participación delega la tarea de minería en los usuarios con una probabilidad relativa a la cantidad de criptomonedas que posean.

Contrato inteligente editar

Las aplicaciones descentralizadas interactúan con la blockchain a través de contratos inteligentes, protocolos autoejecutables codificados directamente en la blockchain que establecen un conjunto de reglas para que la interacción se produzca de forma autónoma y transparente. Protocolos como Ethereum y EOS cuentan con una implementación de contratos inteligentes que permiten el desarrollo de sofisticados programas que operan en sus respectivas blockchains, funcionando como plataformas que abren espacio para que los desarrolladores produzcan DApps que operen sobre la blockchain del protocolo.

Referencias editar

  1. Popper, Nathaniel (1 de octubre de 2017). «Understanding Ethereum, Bitcoin’s Virtual Cousin (Published 2017)». The New York Times (en inglés estadounidense). ISSN 0362-4331. Consultado el 26 de enero de 2021. 
  2. Johnston, David (25 de enero de 2021), DavidJohnstonCEO/DecentralizedApplications, consultado el 26 de enero de 2021 .
  3. Antonopoulos, Andreas M; Wood, Gavin (2018). Mastering Ethereum: building smart contracts and DApps (en inglés). ISBN 978-1-4919-7191-8. OCLC 1065523021. Consultado el 26 de enero de 2021. 
  4. «Qué es el ataque del 51% | Seguridad y Blockchain | Hackers blockchain». El CriptoBlog de Tutellus. 18 de diciembre de 2018. Consultado el 27 de enero de 2021. 
  5. Narayanan, Arvind (2016). Bitcoin and cryptocurrency technologies: a comprehensive introduction (en inglés). ISBN 978-0-691-17169-2. OCLC 948878724. Consultado el 29 de enero de 2021.