Análisis de investigación original de Web3.com Ventures

0xPescadosósofo

Introducción

Con el reciente lanzamiento de la red principal de Aptos y su lanzamiento de token en Binance y otros intercambios centralizados importantes, no hay mejor momento para escribir un análisis exploratorio de este proyecto de larga data. Aptos, hijo huérfano de los intentos de Meta de crear la criptomoneda Libra, continúa con el ideal de Libra de ser la cadena de bloques que incorporará al próximo millón de usuarios de criptomonedas.

El objetivo general de Aptos es ofrecer una cadena de bloques escalable, segura y confiable [1]. Para hacerlo, Aptos se basa en un nuevo lenguaje de contrato inteligente, Move, aparentemente un lenguaje "más seguro" que el actual "estándar de oro" de Solidity de Ethereum. Por supuesto, Aptos no es la primera cadena de bloques L1 que se comercializa como "escalable, segura y confiable". Otras cadenas, sobre todo Solana, también han intentado utilizar este eslogan en el pasado, con éxito desigual [2]. En este ensayo, me esforzaré por partir de los atributos básicos del lenguaje Move, analizar los fundamentos técnicos de Aptos en el contexto de otros proyectos similares y ofrecer una evaluación crítica sobre el potencial y las limitaciones de esta nueva cadena.

Mover idioma

No se puede hacer un análisis de Aptos sin un análisis del Move Language. De hecho, podría decirse que de aquí proviene la mayor parte del potencial de Aptos. Move fue desarrollado originalmente por el equipo Libra de Meta (ahora llamado Diem) para proporcionar un modelo de programación de contratos inteligentes paradigmáticamente diferente en comparación con otros lenguajes de contratos inteligentes; en lugar de adoptar un enfoque basado en transacciones, Move adopta un enfoque basado en recursos para definir modelos de contratos inteligentes [3].

Entonces, ¿Qué significa todo esto? Comenzando con Bitcoin, la gran mayoría de las cadenas de bloques notables han adoptado un enfoque de "primero la transacción", donde cada entrada en el bloque de una cadena de bloques es una transacción (por ejemplo, entre Alice y Bob). Una transacción es un objeto relativo; para que haya una transacción, es necesario que exista una dirección de Alice y Bob. Para garantizar que Alice no esté "gastando dos veces" una moneda en un enfoque de transacción primero, debemos verificar que no haya conflictos con todas las demás transacciones, una molestia que inevitablemente ralentiza las transacciones.

Por otro lado, el enfoque “basado en recursos” de Move es dramáticamente diferente. En lugar de registrar líneas de transacciones de A a B, Move registra el objeto (o recurso) que cambia de manos y simplemente actualiza los atributos en consecuencia. Es importante destacar que los recursos son entidades atómicas: un recurso X existente no depende de ningún otro recurso existente, a diferencia del caso de las transacciones, donde una transacción T depende de la existencia de dos agentes anteriores, A y B. Por lo tanto, tener un enfoque basado en recursos permite una estructura mucho más atómica e independiente optimizada para la ejecución paralela.

Los "recursos" en Move son esencialmente objetos que tienen ciertos atributos. En la jerga técnica, son estructuras implementadas (es decir, una estructura de datos contenedora) [4]. En este punto, las personas con experiencia en programación de Ethereum pueden plantear una pregunta: Solidity también tiene estructuras, así como otras estructuras de datos. ¿Qué hace que las estructuras de Move sean especiales? Creo que la diferencia más importante es que, mientras que las estructuras en Solidity tienen una parte relativamente periférica en el lenguaje (se usan principalmente para mayor claridad), las estructuras son la base de todo en Move. Además, las estructuras de Move tienen diferentes "habilidades", incluidas "copiar", "soltar", "almacenar" y "clave", que definen si un objeto es duplicable, almacenable, eliminable, etc. [5]. Este tipo de notación de estructura es completamente diferente de Solidity o, de hecho, de la gran mayoría de los lenguajes de programación comunes (por ejemplo, C/C++). Sin embargo, estas diferentes “habilidades” son profundamente intuitivas. Algunas cosas se pueden “copiar”, como una moneda o una ficha. Algunas cosas las puedes “dejar caer” o tirarlas. Es posible que otras cosas, como un activo digital único, no se puedan copiar. Ahora considere la siguiente definición oficial de "recurso" en Move:

"A menudo nos referimos a los valores de estructura como recursos si no se pueden copiar ni descartar". — Estructuras y recursos, documentación de Move Language [4]

Entonces, los "recursos" son esencialmente "estructuras" únicas que siempre estarán ahí para usted. Qué romántico.

La redefinición completa de una "estructura" por parte de Move le permite utilizar una estructura de datos para definir de manera sucinta tokens, NFT, contratos inteligentes y otros activos digitales en un enfoque modular y limpio [6]. Esto es algo que el EVM de Ethereum simplemente no puede comparar; Cualquiera con cierta experiencia en desarrollo usando EVM sabe lo frustrante que es lidiar con estructuras (y estructuras anidadas) en Solidity.

Fundamentalmente, el enfoque basado en recursos de Move respalda sus garantías de seguridad. Como menciona el documento técnico de Move, en muchos programas existe la representación indirecta de activos, lo que significa que la escasez y el control de acceso no son escalables. Por ejemplo, si bien la escasez de Ether está codificada y protegida por EVM, otros tokens ERC-20 "no heredan estas protecciones, deben tener cuidado de no introducir errores que permitan la duplicación, reutilización o pérdida de activos" [4]. Consideremos el clásico ataque de reentrada. Esto es algo que ha afectado durante mucho tiempo a los proyectos EVM, causándoles a menudo pérdidas de millones y millones de dólares [7]. Debido al enfoque basado en recursos de Move, el ataque de reentrada es imposible en Move. Por lo tanto, se puede decir que la barrera de entrada a la codificación Move es mucho más accesible que el EVM, un factor crucial para la adopción masiva.

Aptos — Principios Técnicos

Podría decirse que el mayor logro de Aptos es simplemente poner Move como lenguaje en el mercado. ****De hecho, gran parte del diseño de Aptos se tomó directamente de la cadena de bloques Diem (Libra) desarrollada por Meta. Recordemos que Aptos es una cadena que tiene énfasis en la escalabilidad y la seguridad. Hay dos implementaciones técnicas principales que se utilizan para lograr esto. El primero está en su capa de consenso, es decir, el mecanismo de consenso AptosBFT. El segundo es su capa de ejecución, o el motor de ejecución Block-STM. Examinémoslos en orden.

Primero, AptosBFT es un mecanismo de consenso bizantino tolerante a fallas, lo que esencialmente significa que puede continuar garantizando la seguridad siempre que no más de 1/3 de los nodos de la red sean actores maliciosos [8]. Esta es una práctica estándar: la prueba de trabajo de Bitcoin, la prueba de participación de Ethereum, etc., son todas tolerantes a fallas bizantinas. Entonces, ¿cómo implementa AptosBFT su mecanismo de consenso? Como todas las demás cadenas de prueba de participación, Aptos se basa en nodos de validación "participados". Implementa una variante del algoritmo de consenso HotStuff, un algoritmo PoS moderno que ofrece un protocolo de comunicación mucho más limpio entre nodos en comparación con modelos anteriores (por ejemplo, pBFT) al hacer que los nodos se comuniquen con un "líder giratorio" en lugar de con todos los demás nodos [9 ]. Si bien AptosBFT introduce varias optimizaciones además de HotStuff, en particular un "mecanismo de rotación de claves" (para mejorar la seguridad) y una reducción de los gastos generales (para mejorar la escalabilidad), no hay ningún cambio estructural importante en el diseño de PoS de HotStuff [10].

Por otro lado, el motor de ejecución paralela Block-STM es un diseño mucho más original y posiblemente el principal avance técnico del proyecto [11]. Recuerde que los recursos son atómicos: el cambio de manos de un determinado recurso X no depende de ningún otro recurso. Al agrupar las transacciones en bloques (como piezas de Lego), podemos aprovechar un paralelismo masivo en la ejecución de transacciones de recursos, obteniendo un aumento de 20 veces en la velocidad de cálculo en comparación con Ethereum [11].

Pero, ¿cómo se compara esto con Solana y otros motores de ejecución paralela? La principal innovación de Solana fue codificar todas sus dependencias de contratos inteligentes para permitirle realizar ejecuciones paralelas. Con todas las dependencias conocidas de antemano, el motor de ejecución de Solana puede bloquear las dependencias necesarias antes del tiempo de ejecución. Por otro lado, Aptos gestiona las dependencias sobre la marcha, primero ejecutando todas las transacciones de forma "optimista" y, en caso de fallo, volviendo a ejecutar aquellas transacciones específicas que han fallado [12].

Usemos una analogía simple para explicar lo anterior. Ethereum es una carretera de un solo carril donde todos los coches deben viajar en una sola línea, uno detrás del otro, mientras que tanto Solana como Aptos son autopistas de cuatro carriles. Obviamente esto acelera las cosas. Pero la pregunta es, ¿cómo circulan los coches por la autopista? En el caso de Solana, a cada coche se le asigna esencialmente un carril específico y siempre circulará por ese carril. Esto es muy rápido y eficiente en el mejor de los casos, pero si el proceso de asignación sale mal, el peor de los casos es muy malo. Por otro lado, en el caso de Aptos, a los coches primero se les asignan algunos carriles, pero si esto no funciona, se les permite desviarse hacia otros carriles para evitar accidentes. Por lo tanto, aunque Aptos puede no funcionar tan rápido como Solana en el mejor de los casos, es más confiable que Solana y tiene un mejor escenario en el peor de los casos [13].

Evaluación: potencial y limitaciones

Aptos es actualmente la primera y única cadena L1 importante basada en Move que ha lanzado una red principal. Como tal, el lanzamiento de Aptos en la red principal es un evento increíblemente simbólico; El dinero y la atención de los medios que Aptos ha atraído no son necesariamente proporcionales a su innovación técnica inherente.

Como se mencionó anteriormente, la principal innovación técnica que ha realizado Aptos está en su motor de ejecución paralela Block-STM. La mayoría de los demás aspectos técnicos, incluido su mecanismo de consenso y el uso del lenguaje Move, son productos heredados marginalmente mejorados heredados de Meta [14]. Con respecto al motor de ejecución paralela Block-STM, no está claro si esto causará una diferencia cualitativa entre la experiencia del usuario en Aptos y la experiencia del usuario en Solana; Si la experiencia del usuario es la misma, al usuario no le importará cómo se implemente a nivel técnico.

Como ocurre con cualquier proyecto de infraestructura, el éxito a largo plazo de Aptos depende de qué proyectos elijan construir sobre él. Actualmente, los proyectos en su ecosistema, como Liquidswap DEX, el mercado Topaz NFT y el servicio de dominio Aptos Names, si bien son productos necesarios en cualquier ecosistema blockchain, no son lo suficientemente exclusivos para el diseño de Aptos [15]. Estos proyectos son como la tienda de comestibles, una escuela y un hospital en un pequeño pueblo. Si bien son necesarios para el funcionamiento de la aldea, no le dan ningún carácter único que no se encuentre en ninguna otra aldea.

Mirando hacia atrás en el tiempo, parte del éxito de Solana puede atribuirse a proyectos como StepN que realmente pudieron aprovechar la ventaja del paralelismo de Solana. Estos proyectos GameFi y SocialFi a menudo implican grandes cantidades de datos paralelos que están relativamente aislados. Por lo tanto, estas aplicaciones son especialmente adecuadas para motores de ejecución paralela, como Aptos y Solana, y al mismo tiempo pueden atraer una gran base de consumidores y un alto volumen de transacciones. De hecho, en un momento, StepN por sí solo representó alrededor del 20% de los usuarios que pagaban por Solana [16].

Por lo tanto, para que Aptos tenga éxito como proyecto de infraestructura, es necesario que haya una variedad única de proyectos que aprovechen en gran medida el motor de ejecución paralela de Aptos, proyectos que no podrían realizarse en Ethereum o incluso en Solana. Con el novedoso diseño Block-STM de Aptos, estos podrían tomar forma en la forma de una nueva clase de proyectos SocialFi donde los usuarios interactúan en pequeños grupos (como chats grupales). Debido a que estos grupos pueden ser fluidos y dinámicos, y al mismo tiempo algo independientes entre sí, son mucho más adecuados para el motor de ejecución paralela de Aptos que para el de Solana o Ethereum. Pero, por supuesto, esto es sólo una especulación abstracta.

No obstante, el lanzamiento de la red principal de Aptos sigue siendo un evento increíblemente importante y simbólico en el mundo de las criptomonedas. Representa la culminación de años de esfuerzos de los ingenieros de Meta para dar vida a un paradigma cualitativamente diferente para resolver el cuello de botella de escalabilidad de Ethereum. Las características únicas del lenguaje de Move significan que inevitablemente habrá DApps que serán mucho mejores para implementarse en Move que en Solidity u otros lenguajes de contratos inteligentes. ¿Pero esos proyectos necesariamente se implementarán en el ecosistema de Aptos? Nadie sabe. Aptos puede disfrutar de algunas ventajas de ser pionero al poder llevar Move a producción y vincular su nombre con el lenguaje Move. Pero al mismo tiempo, bien podría sufrir el destino similar al de MySpace de ser el primero en actuar.

Al menos una cosa es segura: Aptos puede ser el primer experimento del mercado con Move, pero ciertamente no será el último [17].

🐦 @0xfishylosopher

📅 22 de octubre de 2022

Descargo de responsabilidad: esta investigación tiene fines informativos únicamente. No constituye un asesoramiento de inversión ni una recomendación para comprar o vender ninguna inversión y no debe utilizarse en la evaluación de los méritos de tomar ninguna decisión de inversión.

Referencias

[1] Ver la página principal de Aptos Labs: https://aptoslabs.com/

[2] Introducción a Solana: https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/

[3] Documento técnico sobre Move Language: https://diem-developers-components.netlify.app/papers/diem-move-a-language-with-programmable-resources/2020-05-26.pdf

[4] Mover documentación para desarrolladores para estructuras y recursos: https://github.com/move-language/move/blob/main/language/documentation/book/src/structs-and-resources.md

[5] Detalles sobre las habilidades de la estructura: https://move-language.github.io/move/abilities.html

[6] Consulte el tutorial de Move Language: https://101blockchains.com/move-programming-language-tutorial/

[7] https://blog.chain.link/reentrancy-attacks-and-the-dao-hack/

[8] Detalles de la tolerancia a fallas bizantinas: https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained

[9] Modelo de consenso de HotStuff: https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft

[10] Consenso de AptosBFT: https://blog.pontem.network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80

[11] Consulte el documento técnico de Block-STM: https://arxiv.org/abs/2203.06871

[12] Comparación del motor de ejecución de Aptos y Solana: https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1

[13] Análisis del peor de los casos de Aptos como O(n²), Solana como O(n⁴). Detalles: https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r

[14] Consulte el documento técnico de Aptos: https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf

[15] Ecosistema Aptos: https://coinmarketcap.com/alexandria/article/what-is-aptos-the-ultimate-guide-to-the-aptos-ecosystem

[16] Del Twitter de Messari Crypto: https://twitter.com/MessariCrypto/status/1567880625218019333

[17] Ver Sui, otro lenguaje basado en movimientos: https://sui.io/