#opg $OPG Hay algo que siempre no he entendido. Cuando llega una solicitud de IA, ¿quién la agarra entre varios nodos?

Si el que tiene la mano rápida se la queda, los que tienen buena velocidad de conexión siempre tendrán trabajo, mientras que los lentos jamás tendrán nada. Al final, solo quedarán un par de grandes jugadores, y los demás nodos se quedarán en la miseria. ¿Eso es descentralización?

OpenGradient presentó una solución en su whitepaper: lotería.

No es una lotería al azar. El sistema toma el hash del bloque actual y lo combina con el ID de la solicitud, lo lanza a un mecanismo llamado VRF y calcula un número aleatorio. Luego, con ese número aleatorio, clasifica todos los nodos en línea. El nodo que esté en primer lugar tiene la prioridad para recibir la orden. Debe entregar el resultado y la prueba dentro del tiempo estipulado. Si se pasa de tiempo o hace trampa, se le pasa al segundo en la lista, y así sucesivamente.

Lo clave es que este número aleatorio es verificable. Los nodos no pueden hacer trampa, ya que la lógica de ordenación es pública, cualquiera puede recalcularlo. En el whitepaper se menciona que se utiliza prueba de conocimiento cero para asegurar que el número aleatorio se genere conforme a las reglas. ¿Quieres saber de antemano quién será la siguiente solicitud? No hay manera.

Antes vi otro proyecto que también usaba VRF, pero la ordenación fue corrida. Luego descubrí que el nodo había adivinado la semilla aleatoria por anticipado. OpenGradient ató la semilla y el hash del bloque, haciendo que el hash del bloque sea impredecible, tapando así esa fuga.

Pero este diseño tiene un inconveniente molesto. Si un nodo deliberadamente se pasa de tiempo, no será penalizado de inmediato, solo será temporalmente expulsado de la cola. Se necesita una serie de retrasos para activar la penalización. El whitepaper lo llama "penalización suave". Lo entiendo, todos pueden tener problemas de conexión, penalizar con una falta sería demasiado severo. Pero esto también da espacio para que algunos molesten: alguien podría intencionalmente retrasar el proceso, afectando la eficiencia general. No puedes hacer nada al respecto, porque no ha alcanzado el umbral de penalización.

El whitepaper no especifica cuántas veces se puede pasar de tiempo ni cuál es el umbral de penalización, probablemente lo ajustarán después del lanzamiento de la mainnet según la situación real.

De todos modos, creo que este mecanismo de lotería va en buena dirección, pero no protege contra los que tienen malas intenciones. Si alguien intenta hacer trampa, probablemente dependeremos de la comunidad para denunciarlo.

¿Qué opinas? ¿Crees que este método de ordenación es justo? Bienvenido a criticar. @OpenGradient