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.
Anota lo que espera antes de que empieces. Antes de cada sesión deja sellada una predicción por ejercicio: el rango en el que espera que caiga tu máximo estimado, 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. Cuando termina la sesión compara lo que hiciste con cada predicción, anota el resultado frente a ella, y el algoritmo usa ese registro cuando hace la siguiente predicción. La tasa de precisión publicada va en la página del registro a medida que se califica cada mes completo, el día 2 del mes siguiente.
Especificación técnica
PlataformaiPhone (iOS 18 o posterior)
CómputoEn el dispositivo
Cuenta requeridaNinguna
Envío de tu historialNo. Ver la política de privacidad
Esquema de compromisoSHA-256
Nonce32 bytes al azar, del generador seguro del propio teléfono
Ancla diariaUna huella combinada por cada día en que llegan sellos, 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, es decir, dos predicciones distintas que den la misma huella. 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: la huella sellada no revela nada sobre la predicción. La predicción se mezcla con un número aleatorio de 32 bytes, el nonce, así que nadie puede deducirla probando todas las predicciones posibles.
Marca de tiempo: se publica una raíz de Merkle por cada día en que llegan sellos, en un repositorio público, mediante un proceso automático que se ejecuta 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 ya existía cuando ese día se cerró, y la evidencia es el propio registro de GitHub de cuándo ocurrió esa subida, no el nuestro. Pone fecha a cada predicción, con precisión de día, no de hora. El sello y la serie suelen caer dentro del mismo día, así que por sí solo no dice cuál de los dos fue primero; un sello reenviado y publicado en un día posterior no puede mostrar que fue antes del resultado.
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 de valor 0 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 de valor 1 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 tres implementaciones independientes de esto, en la app, en el servidor y en el proceso que publica. La app y el servidor se prueban contra la misma raíz fija, y el publicador se niega a publicar un día cuya raíz no coincida con sus propias cuentas.
Contacto y estado
Sitio webwww.orderedstrength.com
Registro de precisiónorderedstrength.com/es/record/
EstadoEn beta
Soporteorderedstrength.com/es/support/
Créditos
Los teléfonos de las imágenes de la página de inicio son un modelo 3D: Apple iPhone 15 Pro Max Black, de polyman Studio, con licencia CC BY 4.0. Las pantallas que muestran son capturas reales de la app.