Especificación
OrderedStrength.
Qué es, cómo funciona y qué prueba. Una página, diseñada para imprimir.
Qué es
Un coach de fuerza para iPhone que cambia tu sesión mientras la estás haciendo, según cómo se comparan las series que ya hiciste con lo que esperaba.
Lo anota todo antes de que levantes. Antes de cada serie sella una predicción: la carga que espera que seas capaz de manejar, dado todo lo que sabe sobre ti. Esa predicción queda sellada con una huella criptográfica. Después puedes comprobar que nada cambió.
Se califica a sí mismo. Después de cada serie compara el resultado con la predicción, anota el resultado frente a ella, y el algoritmo lee de ese registro cuando hace la siguiente predicción. La tasa de precisión publicada va en la página del registro una vez que se califiquen meses completos, y todavía no se ha calificado ninguno.
Especificación técnica
PlataformaiPhone (iOS 17 o posterior)
CómputoEn el dispositivo
Cuenta requeridaNinguna
El registro de entrenamiento sale del dispositivoNunca
Esquema de compromisoSHA-256
Nonce32 bytes al azar, del generador seguro del propio teléfono
Ancla diariaUna huella combinada por día, una raíz de Merkle
Prueba de tiempoFecha de commit en GitHub
Qué prueba
Vinculante: cambiar una predicción después de sellarla requiere una colisión SHA-256. Eso son unas 2128 operaciones, un número de 39 dígitos, que es otra forma de decir que nadie lo ha hecho nunca y que ninguna máquina que exista podría.
Ocultamiento: el compromiso no revela nada sobre la predicción. Un nonce criptográfico de 32 bytes impide explorar el espacio de predicciones por fuerza bruta.
Marca de tiempo: se publica una raíz de Merkle por día en un repositorio público, mediante un trabajo que corre dentro de ese repositorio y no en nuestro servidor, así que un token robado de nuestro servidor no puede escribir ahí. Una huella dentro de un día publicado existía a más tardar en el momento en que ese día se cerró, y la evidencia es el propio registro de GitHub de cuándo ocurrió esa subida, no el nuestro. Fecha una predicción al día. El sello y la serie caen dentro del mismo día, así que por sí solo no ordena uno contra el otro.
Verificación abierta: el verificador en orderedstrength.com/es/verify/ no requiere cuenta y no almacena nada. Cualquiera puede verificar cualquier comprobante.
Cómo reconstruir la raíz de un día
Cada día publicado nombra un esquema, os-merkle-v1-sha256, y el archivo que está a su lado lista las huellas de ese día. Estas cuatro reglas convierten esa lista de vuelta en la raíz publicada, y no hace falta nada más.
1. Ordena las huellas como texto, para que la raíz no dependa del orden en que llegaron.
2. Una hoja es SHA-256 de un solo byte cero seguido del texto ascii de esa huella de 64 caracteres en minúsculas. El texto, no los bytes que representa.
3. Un padre es SHA-256 de un solo byte uno seguido de su hijo izquierdo y después el derecho. Los dos bytes iniciales distintos son lo que impide hacer pasar una hoja por un padre.
4. Un nodo impar sube sin cambios. Nunca se duplica para formar pareja. Duplicarlo es el atajo común y es el que permite que dos listas distintas produzcan una misma raíz.
Repite las reglas 3 y 4 hasta que quede un solo nodo. Ese nodo es la raíz impresa en orderedstrength.com/es/record/. Se mantienen a propósito cuatro implementaciones independientes de esto, en la app, en el servidor, en el trabajo que publica y en una comprobación cruzada, y el publicador se niega a publicar un día cuya raíz no coincida con su propia aritmética.
Contacto y estado
Sitio webwww.orderedstrength.com
Registro de precisiónorderedstrength.com/es/record/
EstadoEn pruebas
Soporteorderedstrength.com/es/support/