He estado sentado con el único hallazgo de QA del token audit de OpenGradient durante un par de días, y lo que realmente destaca es lo pequeño que en la práctica es un “floating pragma”....
Aquí está el mecanismo. Un floating pragma significa que la versión de Solidity de un contrato inteligente no está bloqueada a una sola versión específica del compilador; permite un rango. El riesgo es sutil: diferentes versiones del compilador pueden introducir comportamientos distintos o correcciones de errores, así que un contrato que compila bien hoy podría, en teoría, compilar de forma diferente más tarde si se despliega de nuevo bajo otra versión del compilador dentro de ese rango permitido. OpenGradientToken.sol tenía esto marcado, y se corrigió antes de que se cerrara la auditoría....
pequeña alerta. totalmente resuelta....
Lo que creo que se pasa por alto es que este es exactamente el tipo de hallazgo que quieres que una auditoría detecte: no es una vulnerabilidad crítica, sino una brecha de buenas prácticas que podría importar algún día si se ignora. Son los hallazgos aburridos los que muestran que la auditoría fue realmente minuciosa, en lugar de solo un trámite....
me gusta que el informe de auditoría de OpenGradient ponga este detalle específico en nombre propio en lugar de afirmar de manera vaga “no se encontraron problemas” sin nada con qué verificar. Un problema menor nombrado y corregido es más creíble que un informe sospechosamente impecable....
pero no voy a fingir que un hallazgo resuelto de QA te dice todo sobre la seguridad del contrato a largo plazo. Una auditoría es una instantánea en un momento del tiempo; los otros contratos de OpenGradient y cualquier actualización futura necesitarían su propio análisis por separado....
Revisé una vez un contrato con un floating pragma que nadie detectó hasta que años después una actualización del compilador cambió el comportamiento en tiempo de ejecución de una forma que nadie esperaba.
Lo que aún no puedo resolver es si OpenGradient bloquea el pragma de aquí en adelante para cualquier contrato nuevo en el ecosistema, o si esto es una corrección única específica solo para el contrato del token??
@OpenGradient $OPG

#OPG