La pila Web3

Kyle Samani
10 de julio de 2018 | 10 Minute Read

Todavía no he visto una ilustración real de la pila Web3. Así que esto es un intento. Dado lo extenso que es el ecosistema de Web3, este diagrama seguramente está incompleto y probablemente tenga algunas inexactitudes.

Pila Web3

En lo que queda de este artículo, destacaré algunas de las observaciones más interesantes que he realizado con base en este diagrama.

La pila nuclear

¿Qué tiene que ofrecer realmente la pila de desarrollo nuclear para los desarrolladores de las aplicaciones descentralizadas ("dApps")?

Debe proporcionar un registro canónico y único de transacciones válidas y ordenadas.

Las capas de punto a punto (P2P, por sus siglas en inglés), de consenso y de máquinas de transición de estados proporcionan en conjunto estas funciones. Tanto Ethereum como Bitcoin realizan actualmente solo esas funciones, aunque el protocolo básico de Ethereum se ampliará con el tiempo para incluir la fragmentación.

En relación con el número de equipos que crean los componentes opcionales que se encuentran en el lado derecho del diagrama, hay un pequeño número de equipos que crean los componentes en el lado izquierdo del diagrama. Incluyendo los componentes opcionales y excluyendo el Protocolo de Internet (IP, por sus siglas en inglés), desde la parte inferior de la pila, avanzando hacia arriba:

  • Oasis Labs está creando Ekiden, una plataforma neutral que permitirá a muchas cadenas soportar la computación privada, fuera de la cadena y basada en TEE.
  • Handshake está creando un sistema de nombres de dominio (DNS, por sus siglas en inglés) descentralizado. Conseguir su adopción será muy difícil, ya que el sistema operativo está predeterminado para el DNS.
  • Monero está creando Kovri para permitir el enrutamiento de paquetes con protección de la privacidad entre los nodos que garanticen la privacidad en el ámbito de IP. Kovri se está creando para soportar muchas cadenas.
  • BloxRoute está trabajando en una red de distribución de bloques independiente de la cadena.
  • La Fundación Ethereum creó DevP2P, y Protocol Labs creó LibP2P. La mayoría de las nuevas cadenas están adoptando uno de esos dos marcos, e incluso hay rumores de que Ethereum se está trasladando a LibP2P.
  • Ethereum y Polkadot están trabajando en la fragmentación del estado completo.
  • Hay más de una docena de equipos que experimentan en la capa de consenso:
  • Consenso de la cadena de bloques basada en líderes
  • Bitcoin y Bitcoin Cash: prueba de trabajo (PoW, por sus siglas en inglés) optimizada para ASIC
  • Ethereum 1.0, Monero, Zcash, otros: PoW resistente a ASIC
  • Kadena: PoW trenzada
  • Chia: prueba de espacio y tiempo (POST, por sus siglas en inglés) y prueba de tiempo transcurrido (POET, por sus siglas en inglés)
  • Filecoin: POST con datos útiles
  • Ethereum 2.0: prueba de participación (PoS, por sus siglas en inglés) de Casper TFG
  • Thunder: PoS con sistema de soporte PoW
  • Decred: PoW y PoS híbridas
  • Polkadot: PoS de Honeybadger
  • EOS: prueba de participación delegada (DPOS, por sus siglas en inglés)
  • Tezos: otra variante de DPOS
  • Tendermint: otra variante de DPOS
  • Solana: prueba de historia (POH, por sus siglas en inglés)
  • Dfinity: transmisor de umbral + consenso probabilístico de intervalos
  • Algorand: acuerdo bizantino con las elecciones de líder (BA⋆) concenso de cadena de bloques sin líder
  • Protocolo de consenso Ripple
  • Protocolo de consenso Stellar
  • Avalanche DAG de bloques
  • Byteball: consenso de la cadena principal de Byteball
  • Hashgraph: protocolo de consenso de Hashgrah
  • DAGlabs: Spectre
  • Blink: protocolo de consenso de Blink
  • Spacemesh: POST para la selección del comité, luego tortuga + liebre

Hay algunas máquinas de transición de estado importantes: Máquina virtual de Ethereum (EVM, por sus siglas en inglés): Ethereum 1.0, Ethermint, Hashgraph, WANchain, otros; Máquina virtual de WebAssembly (WASM, por sus siglas en inglés): Dfinity, EOS, Polkadot, Ethereum 2.0; Exposición directa a LLVM: Cardano, Solana

Máquinas de transición de estado personalizadas: Kadena, Tezos, Rchain y Coda

Esta lista plantea la pregunta: En relación con las otras capas de la pila nuclear, ¿por qué hay tantos equipos que trabajan en la capa de consenso?

La respuesta obvia es que ahí es donde está el dinero.

Esto lleva por supuesto a la pregunta: ¿Por qué todo el valor se acumula en la capa de consenso?

La capa de consenso es el mayor atasco en las cadenas de bloques, y los esquemas de consenso están limitados por las compensaciones fundamentales. Además, los esquemas de consenso son mutuamente exclusivos: una sola cadena no puede emplear dos esquemas de consenso simultáneamente. Los diseñadores de protocolo líderes en el mundo reconocen los límites de la PoW de Bitcoin, y ven la oportunidad de crear un activo de reserva digital masivo y global, y como tal compiten racionalmente en un mercado que valdrá decenas de billones.

Hasta la fecha, se puede argumentar razonablemente que nadie ha creado un algoritmo de consenso que ofrezca una mejora fundamental de Pareto, dada la dinámica del trilema de escalabilidad. La mayoría de los equipos que innovan en la capa de consenso apuestan principalmente por haber elegido el mejor conjunto de compensaciones para algún subconjunto.

Si un equipo llegara a idear un mecanismo que representara una mejora fundamental de Pareto, ¿cómo lo sabríamos? La respuesta simple sería cuantificar el rendimiento para un nivel determinado de descentralización de la producción de bloques. Los equipos de Dfinity, Algorand, Solana y otros equipos creen que esto es posible, aunque Vitalik no.

Es razonable argumentar que los algoritmos de consenso se pueden copiar. Aunque esto es técnicamente manejable (véase Cosmos con el EVM en Tendermint), es posible que no sea políticamente factible cambiar los algoritmos de consenso en las cadenas existentes, especialmente en los sistemas con una gobernanza fuertemente acoplada en la cadena. Cuanto más fuertemente acoplada esté la gobernanza en la cadena, más difícil será convencer a los intereses arraigados de que cambien (trata de convencer a uno de los 21 productores de bloques de EOS de que cambie uno de esos codiciados puntos por un sistema teórico más descentralizado y que ofrezca un rendimiento equivalente). Esta es exactamente la razón por la que Ethereum puede prescindir de PoW para trasladarse a PoS, mientras que es poco probable que las cadenas nativas de PoS estén dispuestas a realizar un cambio de magnitud similar.

La otra capa de la pila nuclear en la que estamos viendo un poco de experimentación es la capa de la máquina de transición de estados. Los equipos que no están creando sobre WASM tienden a tener puntos de vista muy precisos sobre lo que una máquina de transición de estado de la cadena de bloques debe y no debe hacer:

  • Kadena cree que los contratos inteligentes deben ser legibles para las personas.
  • Tezos cree que todos los contratos inteligentes se deben verificar formalmente.
  • Rchain cree que los contratos inteligentes se deben ejecutar simultáneamente a través de las cadenas de las aplicaciones descentralizadas y ser verificados formalmente.
  • Coda cree que todo se debe ejecutar a través de SNARK, para garantizar que incluso los nodos pequeños puedan verificar la integridad de las cadenas, lo que maximiza la probabilidad de mantener la descentralización máxima en la perpetuidad.

Las observaciones más interesantes en la capa de la máquina de transición de estados son: 1) el hecho de que muchos proyectos importantes han llegado a un consenso para usar WASM (a pesar de que WASM nunca se pensó para ser utilizado por las cadenas de bloques); y 2) el grado de idiosincrasia en las apuestas que están realizando Kadena, Tezos, Rchain y Coda.

Como todo en el ámbito de la criptografía es de código abierto, los efectos de la red se podrían considerar en relación con cada capa de la pila. Por ejemplo, la EVM ha logrado una masa crítica, y ahora tiene un efecto de red debido a las herramientas, la educación de los desarrolladores, las bibliotecas, etc. construidas para la EVM. Es por eso que muchos otros proyectos, como Hashgraph, Cosmos Ethermint, Wanchain, RSK, Blink, y otros, han decidido adoptar la EVM, a pesar de que Ethereum quiere salir de la EVM.

En la práctica, tengo mis dudas sobre la idea de que las máquinas de transición de estados sean portables entre las cadenas. En el caso de la EVM, ni siquiera la Fundación Ethereum quiere mantenerla alrededor. Mi impresión es que los desarrolladores no quieren codificar en solidez, sino que solo lo hacen porque son ideólogos de Ethereum con respecto a la descentralización de la producción de bloques y el desarrollo de software de código abierto. Si mi hipótesis es correcta, las cadenas que no son de Ethereum que adopten la EVM no se beneficiarán del “efecto de red de la EVM”.

Sin embargo, la situación podría ser diferente en el caso de WASM. Debido a que la mayoría de los equipos principales de criptomonedas quieren estar a la altura de los gigantes que están construyendo y manteniendo WASM, puede haber, de hecho, un efecto de red portátil y de cadena cruzada que se construya alrededor de WASM como la máquina de transición de estado para las cadenas de bloques.

Si este efecto de red en torno a WASM se manifiesta, será difícil para los equipos que están desarrollando máquinas de transición de estado únicas competir a largo plazo.

La pila nuclear ampliada

Hay algunos elementos que no son ni deberían ser parte de la cadena de la capa base y que aún no se consideran esenciales para el desarrollo de las aplicaciones descentralizadas, pero creo que se convertirán en un componente básico de la pila de desarrollo. Avanzando en la pila:

  • Muchos equipos están creando cadenas laterales. Las implementaciones más notables en Bitcoin son las cadenas de segunda capa (drivechains) y la cadena líquida (Liquid). En el universo de Ethereum, las implementaciones más importantes son SKALE, dentro de la estructura de plasma, y las cadenas Ethermint de Cosmos, como cadenas de aplicaciones descentralizadas soberanas.
  • Hay varios equipos que trabajan en las redes de canales de pago y canales de estado en Bitcoin, especialmente Lightning Labs y Blockstream. En el ecosistema de Ethereum, son Raiden y Celer. Muchos, especialmente los que están dentro de la comunidad de Bitcoin, consideran que este enfoque es la única manera de escalar.
  • El Protocolo Interledger (ILP, por sus siglas en inglés) se finalizó hace unos meses. Algunos equipos están trabajando con él para permitir la interoperabilidad entre las cadenas. La mayoría de los desarrolladores e inversionistas, incluido yo mismo hasta hace poco, no han prestado suficiente atención al ILP. No obstante, es totalmente plausible que ILP se convierta en la capa más importante en la pila Web3 (análoga a esta), ya que el valor se acumula en cadenas seguras, como BTC, mientras que el comercio ocurre en cadenas más funcionales, como Ethereum.
  • Hasta donde sé, The Graph es el único equipo que crea una capa de consulta descentralizada para Ethereum. Anteriormente, todos los equipos que creaban aplicaciones descentralizadas en Ethereum tenían que construir una infraestructura de indexación propia.
  • Varios equipos, como BigchainDB, OrbitDB y Bluezelle, están creando bases de datos estructuradas e inmutables (en la parte inferior derecha del diagrama Web3) como cadenas libres y sin permisos. Dado el aumento de rendimiento que puede derivar del uso de bases de datos estructuradas, será interesante ver si los desarrolladores optan por utilizar estos sistemas de forma nativa, o si equipos como SKALE implementan estos sistemas de código abierto como cadenas de plasma.

En general, la pila nuclear ampliada es mucho menos madura que la pila nuclear. Básicamente, ninguno de estos componentes está en producción a ninguna escala significativa. Por eso, los desarrolladores de las aplicaciones descentralizadas no han podido utilizar estos componentes por ahora.

A medida que la pila nuclear ampliada madure, espero que la tasa de desarrollo de las aplicaciones descentralizadas se acelere sustancialmente. Los desarrolladores de las aplicaciones descentralizadas no deberían pensar en ninguno de los problemas que estos componentes pretenden resolver, pero dado el estado actual de la pila, se ven obligados a construir sus propios componentes de la pila, lo que es ineficiente en el mejor de los casos.

Componentes opcionales

Así como hay API en la nube para todo, desde el envío de correos electrónicos (Sendgrid) hasta SMS (Twilio) o cartografía (Google Maps), habrá una amplia gama de “bibliotecas descentralizadas” en la forma de componentes descentralizados opcionales. Cada una de ellos llevará a cabo un conjunto único de funciones que los desarrolladores de las aplicaciones descentralizadas pueden optar por incorporar.

Solo algunos de estos servicios de componentes opcionales están activos en la red principal. Algunos ejemplos incluyen: Livepeer, 0x, Kyber, Storj, Sia, Oraclize y Civic. Sin embargo, la mayoría de los equipos que crean estos componentes aún no han lanzado las herramientas listas para la producción.

Esto explica, al menos parcialmente, la falta de aplicaciones descentralizadas: Es difícil crear aplicaciones descentralizadas útiles sin bibliotecas utilizables. Sin las bibliotecas utilizables, todas las aplicaciones descentralizadas tienen que volver a inventar la rueda.

También es interesante reconocer que una gran mayoría de estos componentes se están creando para el ecosistema de Ethereum. Algunos equipos, por ejemplo, Keep y Truebit, han discutido públicamente el apoyo a Dfinity como servicios entre las cadenas. Pero la abrumadora mayoría de las infraestructuras en el ecosistema de criptomonedas se está creando para apoyar la EVM, como mínimo, y el ecosistema de Ethereum, más en general.

A lo largo del próximo año, a medida que EOS, Tezos, Kadena, Dfinity, Solana, Tari, Hashgraph y otros lancen y maduren sus cadenas, competirán por la atención de los equipos que crean los componentes de la infraestructura de las aplicaciones descentralizadas. Las herramientas necesarias para apoyar sin problemas el desarrollo entre las cadenas no existen hoy en día, así que los equipos que crean las cadenas nucleares tendrán que competir para conseguir que estos proveedores de infraestructura de aplicaciones descentralizadas apoyen a sus respectivas cadenas.

Como se señaló anteriormente, los efectos de la red de una máquina de transición de estados como WASM probablemente sean en gran medida portables entre las cadenas, pero no es probable que sean 100 % portables sin ningún esfuerzo de los desarrolladores. Será interesante ver si los equipos de la cadena de la capa base pueden hacer que el proceso de portar la infraestructura a través de las cadenas sea fluido para atraer la primera ola de desarrolladores de la infraestructura que están creando para Ethereum.

La parte superior de la pila

En la mayoría de los diagramas de pilas, la aplicación es la parte superior de la pila. Pero básicamente, todo el desarrollo criptográfico está centrado en el lado del servidor, no en la interfaz del usuario. Por lo tanto, hay algunos elementos que viven por encima de la aplicación descentralizada en la pila Web3.

Curiosamente, casi nadie en el ámbito criptográfico habla de descentralizar el alojamiento de las aplicaciones. Esto es particularmente curioso porque esta capa se centraliza en prácticamente todas las aplicaciones descentralizadas de hoy. Está centralizado porque el servidor web que aloja la aplicación está centralizado, o porque hay un único enlace de descarga para descargar la aplicación e instalarla en el dispositivo del cliente, empujando el ecosistema hacia el modelo de jardín amurallado ("walled garden"), que es, por definición, centralizado. En un mundo ideal, el anfitrión de las aplicaciones estaría descentralizado y se entregaría justo a tiempo, como las aplicaciones web modernas.

¿Por qué básicamente no hay soluciones que apunten al alojamiento descentralizado de las aplicaciones? Puedo identificar dos razones: o bien no importa que esta capa esté descentralizada, o bien es un problema tan difícil que nadie se ha molestado en abordarlo. Sospecho que la respuesta es un poco de ambas.

En cualquier aplicación descentralizada, siempre que la base de datos y el almacenamiento de activos estén suficientemente descentralizados, no importa realmente si el anfitrión de la aplicación está centralizado. Si un gobierno censura una aplicación descentralizada al cerrar el anfitrión de esta, el autor de la aplicación descentralizada puede, simplemente, abrir el código de la interfaz del usuario y permitir que otra persona cree un nuevo anfitrión que proporcione un portal al mismo lado del servidor de la aplicación. Es probable que ocurra lo mismo que con los rastreadores de torrent en los años 2000: si se cierra uno, aparecerán cinco más en otro lugar.

Pero, ¿y si se pudiera descentralizar un anfitrión de la aplicación? Codius, un proyecto de código abierto que inició Ripple, intentó hacerlo antes de que Ripple dejara de asignarle recursos en 2015. Recientemente, Stefan Thomas, exdirector de tecnología de Ripple, dejó Ripple para iniciar Coil, que está retomando donde Codius lo dejó. Será interesante ver cómo funciona esta capa de la pila en la práctica, y las implicaciones de la integración en el DNS existente, que asume los anfitriones de aplicaciones centralizados y confiables.

Por último, la parte superior de la pila es con la que el usuario final realmente interactúa: el navegador de las aplicaciones descentralizadas. Esto incluye Metamask y Toshi para Ethereum, y Scatter para EOS.

Soluciones de escala de la capa 2

Ya he hablado de estas capas en este ensayo, pero creo que vale la pena volver a revisarlas estrictamente en el contexto del escalamiento de las cadenas de bloques.

La primera es la fragmentación. Teniendo en cuenta los contratiempos a los que se han enfrentado los equipos de Ethereum y Polkadot, la fragmentación parece ser la solución de escalamiento más desafiante técnicamente para implementar. Incluso si funciona, no está claro que será el santo grial que muchos, entre los que me incluyo, esperan que sea. El mayor problema de la fragmentación es la latencia entre los fragmentos, que probablemente estará en el orden de minutos en Ethereum. Esto puede limitar gravemente la eficacia de la fragmentación en entornos prácticos. Además, la fragmentación crea todo tipo de problemas posteriores; por ejemplo, los clientes pueden no saber qué fragmentos debe leer dependiendo de la consulta de un usuario.

Las soluciones de escala de la capa 2, es decir, las cadenas laterales, las redes de los canales de pagos y de los canales de estados y el ILP, sufren los mismos problemas generales. A medida que proliferen las cadenas laterales, la situación se volverá confusa, ya que los usuarios olvidarán en qué cadenas están sus activos. Las redes de los canales de pago y de los canales de estados tienen importantes problemas de latencia y crean todo tipo de problemas nuevos relacionados con el enrutamiento de la liquidez, la transferencia de dinero y la privacidad. Y el ILP estará sujeto a problemas de latencia reales, dada la cadena de almacenamiento de valor, Bitcoin, tiene tiempos de bloques de 10 minutos.

Para hacer todo esto aún más confuso, imagina que un usuario tiene fondos en un canal de pago que existe en un fragmento y que quiere mover esos activos a una cadena lateral en un fragmento diferente.

La situación se volverá mucho más confusa antes de que se aclare.

Metaobservaciones

Tal vez la parte más fascinante de la pila Web3 sea lo descentralizada que está. La mayoría de las pilas tradicionales de desarrollo de aplicaciones, como Windows, iOS y Android, están casi totalmente centralizadas, con solo un grupo de bibliotecas y servicios de desarrolladores de terceros que han logrado una masa crítica. Esto contrasta fuertemente con la pila Web3, que está siendo construida por cientos de equipos en todo el mundo simultáneamente. Aunque en teoría, no se necesita nada más allá de lo que proporciona el protocolo básico de Ethereum para crear aplicaciones descentralizadas, en la práctica, los desarrolladores de las aplicaciones descentralizadas necesitan todo tipo de herramientas que la Fundación Ethereum no ha construido ni construirá. Este es la prueba definitiva de que la criptografía es la cúspide del bazar.

Teniendo en cuenta que gran parte de la pila Web3 todavía está en desarrollo, no es de extrañar que el uso de las aplicaciones descentralizadas sea abismal: es prácticamente imposible crear aplicaciones descentralizadas utilizables dado el estado de la pila Web3 hoy en día. Como muchas otras tecnologías, la pila Web3 progresará lentamente y luego rápidamente, después de superar algún punto de inflexión.

La revolución de las aplicaciones descentralizadas ocurrirá poco después de que la pila Web3 logre algún nivel de usabilidad, estabilidad e integridad de las funciones. Sospecho que para esto faltan entre 2 y 3 años.

Reflexiones finales

Multicoin ha invertido en más de una docena de protocolos en muchas capas de la pila Web3. Y continuamos evaluando proyectos que están creando la infraestructura de Web3. Si estás creando parte de la pila Web3, no dudes en contactarnos. Nos encantaría saber más.

Escribí este artículo en busca de comentarios. Estoy seguro de que el diagrama Web3 que representé no está completo. Si tienes alguna idea, comentario u opinión, envíame un correo electrónico a research@multicoin.capital.

Gracias a Albert Wenger, Nick Grossman y Josh Nussbaum por proporcionar comentarios sobre este artículo.

Actualización: Después de publicar este ensayo, me enteré de que la Fundación Web3, Trent McConaghy y Stephen Taul han escrito sobre la pila Web3.

Emblem
Stay up to date
Next Article

/Podcast: Tushar y Kyle en el podcast "Invest Like the Best" con Patrick O'Shaughnessy

Multicoin Capital
by Multicoin Capital
19 de junio de 2018 | 1 Minute Read

Kyle y yo recientemente participamos junto a Patrick O’Shaughnessy en el podcast "Invest Like the Best". Patrick es un gran entrevistador que aborda este espacio con la mentalidad de un inversionista escéptico.

Multicoin Capital
by Multicoin Capital
19 de junio de 2018 | 1 Minute Read

Disclosure: Unless otherwise indicated, the views expressed in this post are solely those of the author(s) in their individual capacity and are not the views of Multicoin Capital Management, LLC or its affiliates (together with its affiliates, “Multicoin”). Certain information contained herein may have been obtained from third-party sources, including from portfolio companies of funds managed by Multicoin. Multicoin believes that the information provided is reliable and makes no representations about the enduring accuracy of the information or its appropriateness for a given situation. This post may contain links to third-party websites (“External Websites”). The existence of any such link does not constitute an endorsement of such websites, the content of the websites, or the operators of the websites.These links are provided solely as a convenience to you and not as an endorsement by us of the content on such External Websites. The content of such External Websites is developed and provided by others and Multicoin takes no responsibility for any content therein. Charts and graphs provided within are for informational purposes solely and should not be relied upon when making any investment decision. Any projections, estimates, forecasts, targets, prospects, and/or opinions expressed in this blog are subject to change without notice and may differ or be contrary to opinions expressed by others.

The content is provided for informational purposes only, and should not be relied upon as the basis for an investment decision, and is not, and should not be assumed to be, complete. The contents herein are not to be construed as legal, business, or tax advice. You should consult your own advisors for those matters. References to any securities or digital assets are for illustrative purposes only, and do not constitute an investment recommendation or offer to provide investment advisory services. Any investments or portfolio companies mentioned, referred to, or described are not representative of all investments in vehicles managed by Multicoin, and there can be no assurance that the investments will be profitable or that other investments made in the future will have similar characteristics or results. A list of investments made by venture funds managed by Multicoin is available here: https://multicoin.capital/portfolio/. Excluded from this list are investments that have not yet been announced due to coordination with the development team(s) or issuer(s) on the timing and nature of public disclosure. Separately, for strategic reasons, Multicoin Capital’s hedge fund does not disclose positions in publicly traded digital assets.

This blog does not constitute investment advice or an offer to sell or a solicitation of an offer to purchase any limited partner interests in any investment vehicle managed by Multicoin. An offer or solicitation of an investment in any Multicoin investment vehicle will only be made pursuant to an offering memorandum, limited partnership agreement and subscription documents, and only the information in such documents should be relied upon when making a decision to invest.

Past performance does not guarantee future results. There can be no guarantee that any Multicoin investment vehicle’s investment objectives will be achieved, and the investment results may vary substantially from year to year or even from month to month. As a result, an investor could lose all or a substantial amount of its investment. Investments or products referenced in this blog may not be suitable for you or any other party. Valuations provided are based upon detailed assumptions at the time they are included in the post and such assumptions may no longer be relevant after the date of the post. Our target price or valuation and any base or bull-case scenarios which are relied upon to arrive at that target price or valuation may not be achieved.

Multicoin has established, maintains and enforces written policies and procedures reasonably designed to identify and effectively manage conflicts of interest related to its investment activities. For more important disclosures, please see the Disclosures and Terms of Use available at https://multicoin.capital/disclosures and https://multicoin.capital/terms.