-
Según Vitalik, este cambio reduciría los tiempos de procesamiento y los costos para los usuarios.
-
En la red Polkadot, el empleo de RISC-V habría conducido a mejoras de ejecución de transacciones.
El 20 de abril Vitalik Buterin, cofundador de Ethereum (ETH), presentó una propuesta que podría transformar el núcleo técnico de la red: reemplazar la Máquina Virtual de Ethereum (EVM) por RISC-V, una arquitectura de máquina virtual diseñada para usarse en un contexto más general y no específicamente en redes de criptomonedas.
Esta modificación, descrita por el propio Buterin como una solución a largo plazo para los desafíos de escalabilidad y simplicidad de Ethereum, busca optimizar la ejecución de contratos inteligentes y mejorar la eficiencia de la red.
Un precedente de la propuesta realizada por Buterin se halla en la red Polkadot (DOT). De acuerdo con el usuario que en X se hace llamar ‘Dragomyst’ y con el desarrollador de Polkadot, ‘Fabsverse’ en X, el empleo de RISC-V en esa red permitió una «ejecución más rápida (de transacciones) y mejoras de 100 veces en el rendimiento de pruebas de conocimiento cero (ZK-proofs), críticas para la privacidad y escalabilidad».
¿Qué es la EVM y por qué es tan importante para Ethereum?
La Máquina Virtual de Ethereum es el entorno en el que se ejecutan los contratos inteligentes de la red, programas informáticos que automatizan acuerdos o transacciones cuando se cumplen ciertas condiciones. La EVM actúa como un «computador virtual» que procesa el código de estos contratos, garantizando que todas las operaciones se realicen de manera uniforme en todos los nodos de la red Ethereum, lo que da confianza y seguridad a los usuarios.
La EVM utiliza un lenguaje conocido como ‘opcodes‘ (instrucciones básicas como sumar, almacenar datos o hacer una llamada a otro contrato). Procesar transacciones y contratos inteligentes en este entorno requiere muchos recursos computacionales, lo que genera cuellos de botella en la escalabilidad, es decir, en la capacidad de la red para manejar un volumen creciente de operaciones sin que los costos o los tiempos de procesamiento se disparen.
Adicionalmente, EVM es tanto el entorno de ejecución de los contratos inteligentes en ese ecosistema como el componente que define su lenguaje de bajo nivel, el bytecode, al que se compilan lenguajes de alto nivel como Solidity o Vyper. La EVM no solo ejecuta ese bytecode (legible para los humanos, pero más eficiente para la ejecución por parte de la EVM) de manera determinística en todos los nodos, sino que también establece las reglas y opcodes que determinan cómo se estructuran y programan los contratos, interactuando con el estado de la red. Por lo tanto, su rol abarca tanto la ejecución como la definición del formato programático de los contratos.
¿Qué es RISC-V y cómo se diferencia de la EVM?
RISC-V, por otro lado, es una arquitectura de conjunto de instrucciones de código abierto (al igual que la EVM), lo que significa que cualquiera puede usarla y modificarla sin restricciones. A diferencia de la EVM, que fue diseñada específicamente para Ethereum, RISC-V es un estándar más general que se utiliza en una variedad de aplicaciones, desde microprocesadores en dispositivos electrónicos hasta sistemas embebidos (dispositivos o sistemas informáticos integrados que están diseñados para realizar funciones específicas dentro de una red).
Las siglas RISC-V provienen de ‘Reduced Instruction Set Computer’ (Computadora con Conjunto de Instrucciones Reducido), lo que indicaría que, su enfoque de operar bajo instrucciones simples, permitirían un procesamiento más rápido y un menor consumo de recursos.
En el contexto de Ethereum, RISC-V sería utilizada como una máquina virtual alternativa para ejecutar contratos inteligentes. La propuesta de Buterin sugiere que los desarrolladores podrían seguir escribiendo contratos en lenguajes populares como Solidity, pero estos se compilarían directamente a instrucciones RISC-V en lugar de a los opcodes de la EVM. Esto reduciría la complejidad intermedia que supone la EVM y, según Buterin, mejoraría drásticamente la eficiencia del procesamiento.
Los objetivos de reemplazar la EVM por RISC-V
Buterin identifica que en el largo plazo los cuellos de botella estarán relacionados con la capacidad de probar y ejecutar contratos de manera eficiente.
Un aspecto clave de la propuesta es la optimización de las pruebas de conocimiento cero (ZK-proofs), un tipo de tecnología que permite verificar transacciones sin revelar todos los datos subyacentes, algo esencial para mantener la privacidad y reducir el tamaño de los datos que los nodos deben procesar.
La siguiente tabla presentada por Buterin, que detalla los ciclos necesarios para probar diferentes partes de la ejecución en la EVM, muestra que cuatro circunstancias consumen la mayor parte del tiempo de procesamiento:
- la deserialización de datos de entrada (‘deserialize_inputs’).
- la inicialización de la base de datos de testigos (‘initialize_witness_db’).
- el cálculo de la raíz del estado (‘state_root_computation’).
- la ejecución de bloques (‘block_execution’).
Estos datos indican que alrededor del 50% del tiempo de procesamiento se dedica a la ejecución de bloques, lo que incluye interpretar y procesar las instrucciones de los contratos inteligentes. Buterin argumenta que, al reemplazar la EVM por RISC-V, se podría reducir significativamente este tiempo, ya que los contratos se ejecutarían directamente en un entorno más eficiente, eliminando la capa intermedia que representa la EVM.
Además, la propuesta busca simplificar el protocolo de Ethereum. La EVM, con sus opcodes y reglas específicas, ha acumulado complejidad con el tiempo, lo que dificulta realizar cambios o mejoras sin romper la compatibilidad con contratos existentes.
Al adoptar RISC-V, Buterin sugiere que el protocolo podría reducirse a una especificación mucho más simple, facilitando el mantenimiento de la red e implementando más fácilmente nuevas funcionalidades en el futuro.
¿Beneficios en eficiencia? El objetivo de Buterin
Uno de los argumentos más contundentes de la propuesta es el potencial de mejora en la eficiencia de las pruebas de conocimiento cero. Actualmente, las pruebas ZK-EVM funcionan compilando el código de la EVM a RISC-V para luego verificarlo, un proceso que añade una capa de complejidad. Al permitir que los contratos se escriban y ejecuten directamente en RISC-V, se eliminaría ese paso intermedio.
Buterin presenta datos que comparan el rendimiento de diferentes intérpretes (softwares) al ejecutar operaciones matemáticas intensivas, como el cálculo de números de Fibonacci, una tarea común para medir la eficiencia computacional.
Los resultados del cofundador de Ethereum muestran que los programas basados en RISC-V (como Revm) son mucho más rápidos que los basados en la EVM tradicional o en otras tecnologías como WebAssembly (WASM).
Estos datos sugieren que la eficiencia de procesamiento podría aumentar, generando un impacto en la capacidad de Ethereum para manejar transacciones complejas.
Sin embargo, Buterin aclara que las ganancias reales dependerán de cómo se ajusten los costos de gas (la tarifa que los usuarios pagan por ejecutar operaciones en Ethereum) para reflejar los tiempos de prueba en RISC-V, lo que podría desincentivar el uso de operaciones más costosas, como ciertos cálculos precompilados que hoy consumen muchos recursos.
¿Cómo se implementaría este cambio?
La transición de la EVM a RISC-V no sería inmediata ni sencilla, pero Buterin propone varias estrategias para hacerla viable. La opción menos disruptiva sería permitir que ambos entornos coexistan: los contratos podrían escribirse en la EVM o en RISC-V, y ambos tipos serían interoperables.
Una alternativa más radical sería convertir todos los contratos existentes de la EVM en contratos que utilicen un intérprete de EVM escrito en RISC-V. En este escenario, cuando un contrato EVM recibe una llamada, un programa en RISC-V ejecutaría su código original y devolvería el resultado.
Una tercera opción intermedia sería establecer un mecanismo formal en el protocolo para soportar múltiples máquinas virtuales, empezando por la EVM y RISC-V, pero dejando la puerta abierta a otras, como Move, utilizada en otras redes.
Los costos actuales de la EVM: un obstáculo para la escalabilidad
Para entender por qué este cambio es necesario, Buterin también proporciona datos sobre el costo computacional de las operaciones más comunes en la EVM, medido en ‘gas’, la unidad que representa el esfuerzo computacional en Ethereum.
La siguiente imagen refleja que operaciones como copiar datos (‘calldatacopy’) o hacer una llamada a otro contrato (‘caller’) consumen una cantidad significativa de ciclos (‘average cycle’), lo que se traduce en mayores costos para los usuarios y una menor capacidad de la red para procesar transacciones.
Esos costos son un reflejo de las limitaciones inherentes a la arquitectura de la EVM. Al adoptar RISC-V, y conforme a la propuesta de Buterin, Ethereum podría optimizar estas operaciones, reduciendo tanto los tiempos de procesamiento como los costos para los usuarios, lo que a su vez permitiría a la red manejar un mayor volumen de transacciones.