Hoja de ruta
Lo que no está hecho, más o menos en el orden en que importa. Está aquí, en vez de dejarlo para que alguien lo descubra en el código. Cada cosa pasa a las funciones cuando se publica, no cuando se empieza.
Cortar a una sola persona sin darle un nombre fijo
Bloquear a un remitente significaba cambiar la clave que usa todo el mundo y entregar la nueva a cada contacto del que sí querías seguir sabiendo, así que en la práctica nadie lo hacía nunca. En Android, ya disponible, cada contacto recibe su propio talonario de tiques de un solo uso, y cortar a una persona es romper su talonario. Nadie más lo nota, y el servidor ve un tique distinto cada vez en lugar de un nombre con el que seguirte.
Lo que falta es la parte que la especificación pide y esto no hace. Un servidor que anotara cuándo se entregó cada tique podría agrupar un talonario, y eso es un remitente; y romper un talonario le dice que esos tiques iban juntos. Cerrar ambas cosas necesita una pieza de matemáticas, la §21 la nombra, que demuestre que tienes permiso para escribir a alguien sin revelar qué permiso tienes. Querríamos que alguien que ya haya construido eso leyera lo nuestro antes de acercarlo a una conversación real, porque la forma de fallar es aceptarlo todo en silencio.
Auditoría externa
No se ha hecho ninguna auditoría independiente. Es el único punto de esta lista que no se cierra escribiendo código: hace falta una empresa y un presupuesto, que es para lo que sirven las donaciones.
Lo que sí está hecho es la preparación: un documento de alcance que fija los límites de confianza, los activos por orden de consecuencia, lo que queda fuera a propósito, y cinco afirmaciones comprobables que nos gustaría ver atacadas. Los auditores pasan sus primeras horas averiguando qué es un sistema; esa parte ya está regalada en vez de pagada dos veces.