No, lanzar una aplicación descentralizada (dapp) en la blockchain no conducirá a un negocio exitoso. De hecho, la mayoría de los usuarios ni siquiera se preocupa por si la aplicación funciona en la blockchain; simplemente eligen un producto que es más barato, más rápido y más simple.
Desafortunadamente, incluso si la blockchain tiene sus características y ventajas únicas, la mayoría de las aplicaciones que funcionan en ella son mucho más caras, más lentas y menos comprensibles que sus competidores centralizados.

A menudo en los whitepapers de las aplicaciones construidas sobre blockchain, se puede encontrar un párrafo que dice: "la blockchain es cara y no puede soportar el número necesario de transacciones por segundo. Afortunadamente, muchas personas inteligentes están trabajando en la escalabilidad de la blockchain y para cuando nuestro aplicativo sea lanzado, será lo suficientemente escalable".
En un simple párrafo, el desarrollador de la dapp puede eludir una discusión más profunda sobre los problemas de escalabilidad y las soluciones alternativas a los problemas. Esto a menudo conduce a una arquitectura ineficiente, donde los contratos inteligentes que funcionan en la blockchain sirven como backend y núcleo de la aplicación.
Sin embargo, existen enfoques aún no probados en la arquitectura de aplicaciones descentralizadas que permiten una mejor escalabilidad, al reducir la dependencia de la blockchain. Por ejemplo, Blockstack está trabajando en una arquitectura donde la mayor parte de los datos y la lógica de la aplicación se almacenan fuera de la blockchain.
Primero, echemos un vistazo a un enfoque más tradicional, donde la blockchain se utiliza como intermediario directo entre los usuarios de la aplicación, y que no escala muy bien.
Enfoque #1: Blockchain como backend
Para ilustrarlo, tomemos la industria hotelera como ejemplo. Es una industria enorme, donde intermediarios como Booking.com por conectar huéspedes y hoteles.
En cualquier situación en la que queramos superar a un intermediario de este tipo utilizando este enfoque, intentaremos replicar su lógica de negocio usando contratos inteligentes en una blockchain como, por ejemplo, Ethereum.
Los contratos inteligentes de código abierto, ejecutados en la "computadora mundial", pueden conectar a vendedores con consumidores sin una empresa intermediaria, reduciendo en última instancia las tarifas y comisiones cobradas por los intermediarios.
Como se muestra en la imagen a continuación, los hoteles utilizan una aplicación descentralizada para almacenar en la blockchain la información sobre habitaciones, su disponibilidad y precios en días hábiles o fines de semana, e incluso descripciones de las habitaciones con toda la información adicional relevante.

Cualquiera que desee reservar una habitación utiliza esta aplicación para buscar hoteles y habitaciones alojadas en la blockchain. Una vez que el usuario elige una habitación, la reserva se realiza enviando la cantidad necesaria de tokens al hotel como depósito. A cambio, el contrato inteligente actualiza la información en la blockchain, indicando que la habitación ya no está disponible.
Este enfoque presenta dos aspectos del problema de escalabilidad. En primer lugar, el máximo número de transacciones por segundo. En segundo lugar, la cantidad de datos que se pueden almacenar en la blockchain.
Hagamos algunos cálculos aproximados. Booking.com afirma tener casi 2 millones de hoteles registrados. Supongamos que, en promedio, cada hotel tiene 10 habitaciones y cada una se reserva solo 20 veces al año, lo que nos da un promedio de 13 reservas por segundo.
Para estimar este número, vale la pena señalar que Ethereum puede procesar aproximadamente 15 transacciones por segundo.
Además, es importante considerar que en nuestra aplicación también habrá transacciones de los hoteles, para cargar y actualizar constantemente la información sobre sus habitaciones. Los hoteles actualizan los precios de las habitaciones con mucha frecuencia, a veces incluso a diario, y cada cambio de precio o descripción requiere una transacción en la blockchain.
Aquí también hay un problema de tamaño: el peso de la blockchain de Ethereum recientemente superó los 2 TB. Si aplicaciones con un enfoque similar se volvieran realmente populares, la red Ethereum se volvería extremadamente inestable.
Un sistema basado en blockchain puede excluir a terceros debido a su imparcialidad y falta de centralización, que son las principales ventajas de la tecnología blockchain. Pero la blockchain también tiene otras características: es distribuida e inmutable, características excelentes, pero a cambio se paga con la velocidad y las comisiones de las transacciones.
Por lo tanto, los desarrolladores de dapps deben evaluar cuidadosamente si cada característica que utiliza blockchain realmente necesita descentralización y permanencia.
Por ejemplo: ¿cuál es la ventaja de distribuir los datos de cada hotel en cientos de máquinas en todo el mundo y almacenarlos allí de forma permanente? ¿Es realmente importante que los datos históricos sobre precios y disponibilidad de habitaciones siempre estén incluidos en la blockchain? Probablemente no.
Si comenzamos a plantear tales preguntas, empezaremos a ver que no necesitamos todas las características costosas del blockchain para todas nuestras funciones. Entonces, ¿cuál es la alternativa?
Enfoque #2: Arquitectura inspirada en Blockstack
Aunque el enfoque principal se centra en aplicaciones donde los usuarios son propietarios de sus datos (por ejemplo, como , , o ), Blockstack también tiene una filosofía de uso limitado de blockchain: solo cuando es absolutamente necesario. Su argumento principal es que el blockchain es lento y costoso, por lo que debe usarse solo para operaciones únicas o poco frecuentes. El resto de la interacción con las aplicaciones debe realizarse a través de peer-to-peer, es decir, los usuarios de aplicaciones descentralizadas deben compartir datos directamente entre sí, y no a través de blockchain. Después de todo, las aplicaciones descentralizadas más antiguas y exitosas, como BitTorrent, el correo electrónico y Tor, fueron creadas antes de que existiera el concepto de blockchain.

A la izquierda: el primer enfoque, en el que los usuarios interactúan a través de blockchain. A la derecha: los usuarios interactúan directamente entre sí, y blockchain se utiliza solo para identificación y cosas similares..
Volvamos al ejemplo de la reserva de hoteles. Queremos un protocolo imparcial, independiente y abierto para conectar a los huéspedes con los hoteles. En otras palabras, queremos eliminar al intermediario centralizado. No tenemos necesidad, por ejemplo, de almacenar constantemente los precios de las habitaciones en un registro distribuido general.
¿Por qué no permitir que los huéspedes y los hoteles se conecten directamente, en lugar de a través de blockchain? Los hoteles pueden almacenar sus precios, disponibilidad de habitaciones y cualquier otra información en cualquier lugar donde sea accesible para todos, como IPFS, Amazon S3 o incluso su propio servidor local. Esto es precisamente lo que ofrece el sistema de almacenamiento descentralizado de Blockstack llamado . Permite a los usuarios elegir dónde quieren almacenar sus datos y controlar quién puede acceder a ellos mediante un enfoque llamado .
Para establecer confianza, todos los datos del hotel son firmados criptográficamente por el propio hotel. No importa dónde se almacenen esos datos, su integridad puede ser verificada utilizando claves públicas asociadas con la información de identificación de ese hotel, que está almacenada en la blockchain.
En el caso de Blockstack, solo se almacena en la blockchain su información de identificación. La información sobre cómo obtener los datos de cada usuario se almacena en archivos de zona y se distribuye a través de una red de pares usando nodos. Y una vez más, no necesita confiar en los datos que ofrecen los nodos, porque puede verificar su autenticidad comparándolos con los hashes que están almacenados en la blockchain y en otros usuarios.
En una versión simplificada del sistema, los huéspedes utilizarán la red de pares de Blockstack para buscar hoteles y obtener información sobre sus habitaciones. La autenticidad e integridad de todos los datos que reciba puede ser verificada usando claves públicas y hashes almacenados en Blockstack.
Esta arquitectura es más compleja que el primer enfoque y requiere una infraestructura más amplia. De hecho, es precisamente aquí donde entra Blockstack, proporcionando todos los componentes necesarios para crear un sistema descentralizado así.

Con esta arquitectura, solo almacenamos en la blockchain aquellos datos que realmente deben ser distribuidos y no sobrescribibles. En el caso de Blockstack, solo necesita transacciones en la blockchain para registrarse y especificar dónde deben almacenarse sus datos. Puede que necesite más transacciones si desea cambiar algo de esta información, pero esto no es un evento recurrente.
Además, la lógica de la aplicación, a diferencia del primer enfoque, opera del lado del cliente en lugar de en contratos inteligentes. Esto permite al desarrollador modificar esta lógica sin costosas o a veces incluso imposibles actualizaciones del contrato inteligente. Al mantener los datos y la lógica de la aplicación fuera de la blockchain, las aplicaciones descentralizadas pueden alcanzar niveles de rendimiento y escalabilidad comparables a los de los sistemas centralizados tradicionales.
Conclusión
Las aplicaciones que funcionan en Blockstack pueden escalar mucho mejor que las aplicaciones blockchain convencionales, pero este es un enfoque más joven con sus propios problemas y preguntas sin respuesta.
Por ejemplo, si una aplicación descentralizada no funciona con contratos inteligentes, esto reduce la necesidad de tokens de utilidad. Esto puede generar problemas para las empresas, considerando que las ICO han sido una fuente principal de financiación para aplicaciones descentralizadas (incluido el mismo Blockstack).
También hay problemas técnicos. Por ejemplo, implementar una función de reserva de hoteles en un contrato inteligente es relativamente sencillo, donde en una operación atómica se reservan habitaciones a cambio de tokens. No está claro cómo funcionará la reserva en una aplicación de Blockstack sin contratos inteligentes.
Las aplicaciones que apuntan a mercados globales con un potencial de millones de usuarios deben escalar muy bien para tener éxito. Es un error depender exclusivamente de las blockchain para lograr ese nivel de escalabilidad en un futuro cercano. Para poder competir con grandes jugadores centralizados del mercado, como Booking.com, los desarrolladores de aplicaciones descentralizadas deben considerar enfoques alternativos para diseñar sus aplicaciones, como el que ofrece Blockstack.
Fuente: habr.com
