Aplicaciones descentralizadas 2.0 – The Power Official Blog

En este documento, nos gustaría informar al lector sobre el desarrollo más reciente de nuestro proyecto, que puede cambiar no solo el mercado de blockchain, sino también el mercado de aplicaciones en su conjunto: un nuevo tipo de aplicaciones descentralizadas (DApps): Dapps 2.0.

Contratos inteligentes – los primeros DApps

El ejemplo más simple de una aplicación descentralizada (sin la parte de la interfaz) es un contrato inteligente: el código que se ejecuta dentro de la cadena de bloques. Debido a que está verificado por todos los nodos, nadie puede falsificarlo. El resultado de la verificación debe ser el mismo que debe validarse por la red.
En el consenso de PoW, todos los nodos ejecutan un contrato inteligente al mismo tiempo, pero el nodo que calcula la combinación ganadora de una tarea o hash antes de que otros ganen. En un consenso de BFT asíncrono, un contrato inteligente se ejecuta completamente solo en un nodo, y todos los demás nodos pueden verificar el resultado de su ejecución. Teóricamente, simplemente pueden marcarse, sin realizar un contrato inteligente. Dado que la auditoría realizada por los otros nodos se produce después de la ejecución por el nodo principal, lleva más tiempo.
En nuestra cadena de bloques, la Resonancia de consenso es un algoritmo BFT síncrono, por lo que el contrato inteligente no solo se verifica, sino que se ejecuta simultáneamente por todos los nodos, lo que permite reducir el tiempo de ejecución y verificación.
Para que los contratos inteligentes se utilicen ampliamente, se han introducido estándares, por ejemplo, ERC-20. El token ERC-20 es simplemente una llamada a un contrato inteligente para transferirle algunos datos. Esto posibilitó la estandarización de interfaces gráficas y de programa para trabajar con campos y funciones. Gráfico: para crear una billetera que funciona con tokens ERC-20 y software, para poder crear intercambios automáticos.
Utilizamos contratos inteligentes para Wasm, porque Wasm se ejecuta en casi todos los dispositivos (con Javascript) y está optimizado para la cantidad de datos.
Pero, sin embargo, cuando nos referimos a "aplicaciones descentralizadas", la mayoría de las veces nos referimos a las aplicaciones con una parte del cliente, se analizarán a continuación.

Dapps

Prácticamente no hay Dapps reales que no interactúen con el mundo exterior, excepto el ERC-20. El resto utiliza una interfaz gráfica.
Veamos el Dapp con una interfaz gráfica en un ejemplo de libro de texto: Cryptokitties.
Esta aplicación tiene un lado del cliente (frontend) y un lado del servidor (backend). En las aplicaciones web, hay una interfaz y una interfaz gráfica (o interfaz gráfica de usuario, GUI), cuya función se realiza mediante las primitivas del navegador web. Y en el lado del servidor, una parte realiza los cálculos y la otra, el servidor web, envía y recibe solicitudes para la interfaz gráfica.
La aplicación Cryptokitties lanza su sitio web, que contiene imágenes, algunas lógicas, y el resto está "tirando" de la cadena de bloques Ethereum.
Para realizar cualquier acción dentro de este Dapp, debe usar el complemento de Metamask, donde el usuario almacena las claves de su cuenta de red Ethereum y firma las transacciones para administrar la cryptokitty. A través de Metamask, el usuario controla de forma inteligente los cambios que quiere hacer. Obtener información de la cadena de bloques de Ethereum solo es posible a través de su propio nodo.
Como podemos ver, dicha aplicación tiene una arquitectura bastante compleja. El backend consta de 2 partes: la primera es la cadena de bloques, almacena información y resultados de trabajo (procesamiento de datos), la segunda es el servidor web que envía la interfaz de la aplicación e interpreta los datos de la cadena de bloques a la interfaz.
La interfaz también consta de 2 partes: un navegador web y una billetera (por ejemplo, Metamask).
Intentemos describir el proceso de interacción del usuario con la aplicación y la lógica de los procesos.

Podemos destacar aquí 3 tipos de entidades:

Unos que pueden ser totalmente controlados por el usuario: navegador web y billetera (llaves) Objetos completamente descentralizados, lo que hace que los cambios sean casi imposibles: contrato inteligente y cadena de bloques. en propietarios específicos, la parte centralizada, el vector objetivo de ataque a la aplicación.

La principal desventaja de dicha arquitectura es un gran número de vectores de ataque: el servidor web puede ser pirateado (sustitución de DNS o físicamente), se cambia la dirección de transferencia de dinero, se puede hackear el nodo escribiendo un código especial, hackeando módulos adicionales al servidor web, scripts de Java.

Otra desventaja es la presencia de partes centralizadas, por ejemplo, un servidor web y una billetera. Ahora que lo pienso, “descentralizado” no es el nombre correcto para las aplicaciones DA existentes.

DApps 2.0. La simplicidad del genio.

Agregamos una nueva característica en la interfaz de contrato inteligente. Por lo tanto, estamos creando un nuevo estándar: una interfaz entre la parte del cliente (frontend) y la parte del servidor (backend). Debido a esto, sobre la base de nuestros contratos inteligentes, puede crear aplicaciones descentralizadas en toda regla, donde el frontend está conectado de manera segura a la parte del servidor, que es un contrato inteligente que se ingresa en el blockchain.

Actualmente, no podemos divulgar completamente el algoritmo de interacción entre el contrato inteligente y la parte del cliente de la aplicación. Sin embargo, señalamos que el contrato inteligente verifica la originalidad de la parte del cliente y su dirección de ubicación.
Los desarrolladores de Dapps 2.0 pueden centrarse en las aplicaciones del lado del cliente (o la interfaz del programa, si estamos hablando de Internet de las cosas, por ejemplo) y ejecutarlas en contratos inteligentes utilizando nuestro estándar DApp 2.0. No hay necesidad de crear middleware y backend, solo escriba una aplicación en Rust, C o C ++, será ejecutada por Wasm y compilada en un código binario que sea comprensible para el navegador, y tendrá una infraestructura de back-end. Por supuesto, la parte escrita por desarrolladores de terceros debe someterse a una cierta verificación para ser confiable.
Una vez que el usuario firma la transacción, cambia el estado del contrato inteligente en la cadena de bloques, y el cliente de DApp puede recibir y seleccionar este cambio inmediatamente sin involucrar servidores adicionales.

Por lo tanto, tal sistema puede ser llamado sin servidor.

Conclusión

Después de un tiempo, le presentaremos el primer DApp 2.0 y Power_Store (almacén de aplicaciones descentralizadas y otros productos y servicios descentralizados).
Si es un desarrollador activo, proyecto de inicio o innovador, y está interesado en contratos inteligentes o aplicaciones descentralizadas, estaremos encantados de colaborar, compartir experiencias y ofrecerle la oportunidad de diseñar su propia aplicación en el nuevo estándar. DApp 2.0.

Envíenos una solicitud al correo electrónico. [email protected], escriba sobre usted en la solicitud y describa brevemente la tarea o proyecto que desea implementar.

Únete a nuestra comunidad de desarrolladores: t.me/thepower_dev.