El jueves, de madrugada, me quedé agachado junto a los tanques de fermentación del taller de cerveza artesanal, ayudando a un colega a armarle la "bóveda de cumplimiento" de @NewtonProtocol para hacer pagos transfronterizos. El documento decía "listo para usar", pero solo lograr que Rego corriera un combo de "lista blanca + límite" me tuvo entretenido toda la noche.
Rego se diseñó para que el área de IT de las empresas escriba políticas de recursos en la nube: sintaxis declarativa, por defecto deny y luego vas añadiendo allow una por una. #Newt lo quiso llevar on-chain como núcleo de autorización, porque dicen que es mejor que Solidity: más fácil de escribir y más flexible. ¿Pero quién paga el costo de esa flexibilidad? Intenté escribir una regla que al mismo tiempo evaluara identidad, límites, el riesgo del contraparte y el precio de la garantía; cuatro condiciones encajadas en otra, y el módulo se infló al instante hasta convertirse en una telaraña de referencias cruzadas. Cambiar un límite significaba seguir la cadena de imports hacia arriba tres niveles. Yo mismo no pude ni predecir todas las ramificaciones de la regla que escribí. Si aparece una vulnerabilidad, ¿a quién llamo? ¿Al operador? ¿Al autor de la estrategia? ¿O al equipo de Newton que solo vende humo?
Hablemos del mito de "sub-segundo". La intención se empaqueta como tarea, se la tiras a los operadores de restake en EigenLayer: cada uno ejecuta Rego, genera la prueba y firma en agregado con BLS, y al final se devuelve a la cadena. Suena sensual, sí, pero si revuelves los documentos, no encuentras datos de pruebas de carga. Cuanto más compleja es la estrategia, más tiempo tarda la evaluación de cada operador; y mientras más operadores haya, más impredecible se vuelve la latencia de esperar a que todos firmen. ¿Ese "sub-segundo" que aparece en los documentos es un dato de laboratorio con folio en blanco o es lo normal bajo estrategias reales y complejas?
La ventana de controversia también me deja muy incómodo. Si un operador se equivoca, hay que esperar a que termine el periodo de challenge y a que alguien envíe una prueba de fraude para corregir. ¿No es ejecutar primero y liquidar después? Tu dinero se transfiere antes, y luego el capital queda colgado en el aire a medias. ¿Eso se supone que es gestión de riesgos? Más bien es convertir al usuario en voluntario pagado.
Y la privacidad, ni se diga. $NEWT presume TEE + ZK para proteger la privacidad, pero en la estrategia la verificación de identidad, el puntaje de riesgo y el estado de KYC entran todo desde APIs de terceros. Cuanto más flexible sea la estrategia, menos podrá auditársela una persona común; al final, igual hay que confiar en la institución que te pone la nota. Se protege la privacidad, sí, pero solo para no hacer ruido: la confianza se traslada de la cadena a una caja negra fuera de ella.
Cierro el móvil: el frío del tanque de fermentación me deja los dedos entumidos. Otra vez, una historia compleja empaquetada como simple, solo que en el papel tapiz llevan el logo metalizado de TEE y ZKP. $BTC $ETH
Rego se diseñó para que el área de IT de las empresas escriba políticas de recursos en la nube: sintaxis declarativa, por defecto deny y luego vas añadiendo allow una por una. #Newt lo quiso llevar on-chain como núcleo de autorización, porque dicen que es mejor que Solidity: más fácil de escribir y más flexible. ¿Pero quién paga el costo de esa flexibilidad? Intenté escribir una regla que al mismo tiempo evaluara identidad, límites, el riesgo del contraparte y el precio de la garantía; cuatro condiciones encajadas en otra, y el módulo se infló al instante hasta convertirse en una telaraña de referencias cruzadas. Cambiar un límite significaba seguir la cadena de imports hacia arriba tres niveles. Yo mismo no pude ni predecir todas las ramificaciones de la regla que escribí. Si aparece una vulnerabilidad, ¿a quién llamo? ¿Al operador? ¿Al autor de la estrategia? ¿O al equipo de Newton que solo vende humo?
Hablemos del mito de "sub-segundo". La intención se empaqueta como tarea, se la tiras a los operadores de restake en EigenLayer: cada uno ejecuta Rego, genera la prueba y firma en agregado con BLS, y al final se devuelve a la cadena. Suena sensual, sí, pero si revuelves los documentos, no encuentras datos de pruebas de carga. Cuanto más compleja es la estrategia, más tiempo tarda la evaluación de cada operador; y mientras más operadores haya, más impredecible se vuelve la latencia de esperar a que todos firmen. ¿Ese "sub-segundo" que aparece en los documentos es un dato de laboratorio con folio en blanco o es lo normal bajo estrategias reales y complejas?
La ventana de controversia también me deja muy incómodo. Si un operador se equivoca, hay que esperar a que termine el periodo de challenge y a que alguien envíe una prueba de fraude para corregir. ¿No es ejecutar primero y liquidar después? Tu dinero se transfiere antes, y luego el capital queda colgado en el aire a medias. ¿Eso se supone que es gestión de riesgos? Más bien es convertir al usuario en voluntario pagado.
Y la privacidad, ni se diga. $NEWT presume TEE + ZK para proteger la privacidad, pero en la estrategia la verificación de identidad, el puntaje de riesgo y el estado de KYC entran todo desde APIs de terceros. Cuanto más flexible sea la estrategia, menos podrá auditársela una persona común; al final, igual hay que confiar en la institución que te pone la nota. Se protege la privacidad, sí, pero solo para no hacer ruido: la confianza se traslada de la cadena a una caja negra fuera de ella.
Cierro el móvil: el frío del tanque de fermentación me deja los dedos entumidos. Otra vez, una historia compleja empaquetada como simple, solo que en el papel tapiz llevan el logo metalizado de TEE y ZKP. $BTC $ETH