Fondo
La red de computadoras de Internet que vemos emerger hoy no existiría sin la inspiración que proporcionó Ethereum, que introdujo el concepto de una “computadora mundial” y “contratos inteligentes”, por lo que todos los involucrados con DFINITY están inmensamente agradecidos. Estamos sobre los hombros de gigantes, y somos amigos de Ethereum, y siempre lo hemos sido. Ethereum y la computadora de Internet son bestias diferentes, que se derivan de sus respectivos enfoques. No se puede transformar uno en otro debido a consideraciones técnicas. Son diferentes por diseño, pero muy complementarios, no competitivos. La computadora de Internet está alojada en máquinas de nodos especiales ejecutadas por proveedores de nodos independientes en centros de datos independientes en todo el mundo. Por el contrario, cualquiera puede crear un nodo Ethereum de creación de bloques utilizando una tarjeta gráfica y ejecutarlo desde casa. Necesitas ambas arquitecturas en el mundo, por razones técnicas no entraré aquí, y producen propiedades diferentes y complementarias. La Computadora de Internet no es, y nunca tuvo la intención de ser, ni se ha vendido como, un “Ethereum Killer”. ”, Que es un concepto erróneo frustrante con el que lucho incluso hoy. Cuando se proporcionan ejemplos de propiedades contrastantes, como los costos relativos de la computación de contratos inteligentes, el propósito es ilustrar el papel aditivo que desempeña la computadora de Internet, no reclamar deficiencias con Ethereum. Las redes son más fuertes juntas Sigo siendo un gran partidario de Ethereum y mantengo muchas amistades que se formaron en los primeros días del proyecto. Basta de charla.
Para que esto sea sencillo de usar para los desarrolladores, crearemos un contrato inteligente “proxy” especial en la computadora de Internet, lo que hará que la creación de transacciones de Bitcoin y Ethereum sea tan fácil como llamar a una función. Eso significa que los contratos inteligentes en la computadora de Internet podrán llamar a las funciones de los contratos inteligentes en Ethereum.
En esta etapa, debemos tener en cuenta que el umbral ECDSA no es en absoluto eficiente y sería completamente inadecuado para el uso general dentro de los protocolos de la cadena de bloques de Internet Computer. Sin embargo, la cadena de bloques de Internet Computer funciona de manera eficiente, y el costo en ciclos consumidos involucrados en la creación de transacciones en Bitcoin y Ethereum seguirá siendo relativamente pequeño en comparación con las tarifas de transacción que deben pagarse en esas redes. Por lo tanto, aunque construir las firmas en las transacciones de Ethereum será muy costoso computacionalmente, el costo no será una preocupación.
Ahora, debemos considerar cómo se devolverán los resultados de las llamadas desde la computadora de Internet a Ethereum, y cómo los contratos inteligentes en Ethereum llamarán a los contratos inteligentes en la computadora de Internet.
Permitir que los contratos inteligentes de Ethereum invoquen contratos inteligentes de computadoras de Internet y que Ethereum devuelva resultados
No podemos utilizar una criptografía sofisticada para resolver este problema, pero afortunadamente se puede proporcionar una solución sólida de Stage I con relativa facilidad.
Dado el conocimiento del hashrate actual de la red Ethereum, se puede ver qué bloques son válidos simplemente verificando qué tan integrados están por "pruebas de trabajo". Es decir, si los retransmisores de la comunidad copian nuevos bloques de Ethereum en el contrato de proxy en la computadora de Internet, ese contrato podrá detectar cuándo se ha finalizado un bloque con suficiente probabilidad al observar la cantidad de trabajo que lo integra dentro de la cadena. Una vez que el contrato puede ver que se ha finalizado un bloque, puede escanear el bloque en busca de llamadas desde contratos inteligentes de Ethereum a contratos inteligentes de computadoras de Internet, y los resultados de llamadas anteriores en la otra dirección. Luego, el proxy invocará contratos inteligentes en la computadora de Internet y devolverá los valores a los contratos inteligentes que anteriormente llamaron a Ethereum. Naturalmente, por supuesto, los contratos inteligentes en Ethereum también requerirán contratos inteligentes en la computadora de Internet a través de otro contrato de proxy en Ethereum. ¡Sencillo!
¿Qué etapa puedo y no puedo hacer?
Esta arquitectura relativamente simple, que está habilitada por Chain Key, ya es muy poderosa. Los usuarios finales que interactúan con experiencias web ofrecidas por contratos inteligentes en la computadora de Internet pueden activar llamadas a Ethereum, y los resultados se les pueden devolver. Además, los contratos inteligentes en Ethereum pueden realizar llamadas a contratos inteligentes en la computadora de Internet, que pueden realizar tareas computacionalmente complejas para ellos y mantener y procesar grandes volúmenes de datos en su nombre. Esto se logra sin necesidad de un hub de blockchain, oráculo u otro intermediario. Todo tipo de cosas serán posibles.
Sin embargo, hay un área que deberá mejorarse. Los contratos inteligentes en la computadora de Internet solo podrán mostrar a los usuarios finales los datos de Ethereum que los contratos inteligentes de Ethereum les han enviado a través de llamadas de función invocadas a través del proxy. Si bien esto es factible, sigue siendo cierto que realizar cualquier llamada de función en Ethereum es muy costoso, en decenas de dólares, mientras que hacer una llamada en la computadora de Internet cuesta solo pequeñas fracciones de un centavo. Esto no otorga a los contratos inteligentes de Ethereum todos los beneficios que puede proporcionar la eficiencia de la computadora de Internet en todos los casos. Para abordar esta última pieza, debemos avanzar a la Etapa II.
Para que los datos y la funcionalidad de los contratos inteligentes de Ethereum estén disponibles para los contratos inteligentes de computadoras de Internet a un costo casi nulo, debemos mantener una copia del estado actual de Ethereum dentro de los contratos de proxy. Es decir, el contrato de proxy no solo debe escanear los bloques de Ethereum finalizados en busca de datos de transacciones, sino también usar los bloques recibidos para mantener y actualizar una copia del estado completo de Ethereum. Una vez hecho esto, los contratos inteligentes de Internet Computer podrán realizar llamadas a los contratos inteligentes de Ethereum que no modifican su estado (como una llamada a un captador de contratos inteligentes de Ethereum que solo devuelve información o realiza algún análisis estadístico, por ejemplo) en costo cercano a cero. En esencia, ejecutará un nodo Ethereum dentro de los contratos, de la misma manera que los nodos Infura que se ejecutan en AWS mantienen copias del estado de Ethereum en la actualidad.
La etapa II es una empresa más compleja y llevará mucho más tiempo, entre otras cosas porque los contratos inteligentes de computadoras de Internet ("botes") actualmente solo pueden contener un máximo de 4 GB de páginas de memoria, por lo que el estado de Ethereum tendrá que dividirse en múltiples Contratos. No obstante, las ventajas proporcionadas serán enormes, por lo que ciertamente debería hacerse si es posible: algunos desarrolladores de Ethereum ya han estado considerando implementar esto y han hecho algunos avances en el código.
Una última nota es que es posible un atajo desordenado, lo que implicaría permitir que los nodos de computadoras de Internet se comuniquen con los nodos de Ethereum, de modo que puedan proporcionar un puente de bajo costo para consultar el estado de Ethereum. El desafío aquí es que esto implicaría confiar en quien ejecutara los nodos de Ethereum con los que interoperaba la red, lo que proporciona mucha menos seguridad que cuando solo se trata de contratos inteligentes. Sin embargo, si alguien puede pensar en una forma de mejorar la seguridad, esto podría proporcionar una solución de Fase 1.5.
Muchos de nosotros ya hemos entregado nuestras vidas a blockchain. Pero este esfuerzo aún es joven, y no podemos descansar en nuestra búsqueda para hacer que blockchain sea más poderoso y resolver los desafíos que se interponen en el camino de la adopción masiva. blockchain es la nueva Internet. Debemos permitir que todos los sistemas y servicios se reconstruyan y reinventen en blockchain. Esto impulsará una ola de innovación, crecimiento, oportunidades y libertades sociales, y proporcionará nuevas formas de hacer las cosas, muchas de las cuales son difíciles de imaginar incluso ahora, que serán comparables, o incluso superarán con creces, las resultantes de una adopción generalizada. de internet, una red pública que nos une a todos. Debemos superar los desafíos de la usabilidad y el costo, y desatar efectos de red similares que rara vez se ven a escala global. Un gran primer paso será garantizar que Internet Computer y Ethereum puedan funcionar de manera similar a una sola red, proporcionando los beneficios de sus fortalezas relativas dentro de ambas redes, una integración que podría resultar transformadora.