Los desarrolladores de NEAR llevaron a cabo una de las operaciones más arriesgadas y técnicamente complejas en la cadena de bloques moderna: reemplazaron la máquina virtual que ejecuta todos los contratos inteligentes directamente en la red principal en funcionamiento. Y lo más sorprendente es que la gran mayoría de usuarios y desarrolladores ni siquiera lo notaron.
Durante mucho tiempo, el corazón de NEAR fue una máquina virtual personalizada, NearVM, una bifurcación del motor Wasmer. Este "compilador privado" era un verdadero "impuesto" a la innovación: cada actualización de Rust, cada nueva función de seguridad recaía únicamente sobre el equipo del proyecto. El proyecto tuvo una suerte increíble en una ocasión: accidentalmente omitió la sincronización con el upstream justo antes de que se descubriera una vulnerabilidad crítica en el Wasmer original. Pero depender de la suerte en la cadena de bloques es un lujo imperdonable.
La elección recayó en Wasmtime, un estándar industrial respaldado por Bytecode Alliance. Para demostrar la seguridad de la transición, los nodos de la red ejecutaron en paralelo tráfico real a través de ambas máquinas virtuales, verificando cada resultado. Los resultados fueron impresionantes: coincidencia total de resultados, una diferencia en las comisiones de menos del 0,002% y una velocidad de ejecución aproximadamente cuatro veces mayor.
Solución prohibida e ingenio técnico
Sin embargo, la principal dificultad no estaba en la ejecución. En la red NEAR, la implementación de un contrato se compila directamente dentro de un bloque de 600 milisegundos de duración. El compilador optimizador no tiene un límite superior de tiempo de ejecución, lo que abría la puerta a un ataque. El equipo creó un contrato de prueba de 128 KB cuya compilación tomaba unos 7 segundos, suficiente para "fallar" el bloque y ralentizar toda la red.
La solución obvia parecía ser establecer un límite de tiempo estricto para la compilación. Pero esto resultó estar prohibido: diferentes validadores tardan tiempos distintos en compilar, y un contrato límite sería aceptado por unos nodos y rechazado por otros, lo que provocaría una división de la red. El consenso requiere una previsibilidad total, incluso a nivel de tiempo de compilación.
El equipo encontró una salida elegante. Implementaron Winch, un backend de un solo paso de Wasmtime, y le agregaron las funciones faltantes. El resultado superó las expectativas: el "peor caso de compilación" se redujo de 7,6 segundos a 36 milisegundos. El trabajo fuera de la cadena de bloques proporcionó el "lujo inaccesible para el protocolo": la compilación se puede trasladar a un tipo separado de procesadores no vinculados a los nodos ejecutores.
El lanzamiento de Nearcore 2.12 migró el entorno de ejecución de NEAR de NearVM a Wasmtime. Para desarrolladores y usuarios, nada cambió, y ese es el punto. El equipo eliminó una deuda técnica crítica sin romper nada. Este es el nivel de cultura de ingeniería que rara vez aparece en los titulares, pero es precisamente lo que distingue a las redes de cadena de bloques maduras de los proyectos experimentales.
Opinión del analista: La migración a Wasmtime no es una simple actualización. Es un movimiento estratégico que libera al equipo de NEAR de la carga de mantener una bifurcación y conecta el proyecto con los estándares de seguridad de toda la industria. La aceleración de 4 veces es un bono agradable, pero lo principal aquí es eliminar el vector de ataque a través de la "ralentización de la compilación" y garantizar la sostenibilidad a largo plazo de la red. Este es un caso en el que el trabajo "silencioso" habla de la madurez del proyecto más fuerte que cualquier declaración ruidosa.