As probas de mecanografía detectan as trampas revisando o rexistro de teclas que hai detrás de cada puntuación. A nosa recalcula cada resultado a partir do seu rexistro de teclas, comproba un hash, analiza a estrutura e o ritmo do rexistro, e deixa fóra das clasificacións públicas calquera resultado cronometrado de máis de 130 WPM cuxo ritmo pareza ademais inusual, ata que superes unha nova proba. As comprobacións de ritmo pillan os bots descoidados; a nova proba obriga a un bot coidadoso a facelo todo outra vez.
O primeiro bot que superou as nosas comprobacións de ritmo foi o noso.
O noso asistente de probas de extremo a extremo premía as teclas cun intervalo fixo de 40 ms, porque iso é o que fai un script de probas. O servidor recalculou o resultado, confirmou o hash e puntuou a tirada como sospeitosa: varianza cero entre pulsacións, solapamento cero, tempos de pulsación idénticos. Tivemos que engadir unha variación aleatoria por palabra e algunhas pausas de «reflexión» de 80 a 300 ms antes de que a nosa propia batería de probas puidese enviar un resultado con aparencia humana. A opción segue no código, co nome humanLike.
As comprobacións funcionan contra todo o que non o intenta, e todo o que o intenta pode superalas, así que o deseño pon o peso real nunha nova proba.
Primeiro paso: recalculalo todo
O teu navegador non nos envía unhas WPM. Envía o rexistro de teclas (cada evento keydown, keyup, input e de composición, con marca de tempo do reloxo monótono performance.now()), as métricas que calculou e un hash SHA-256 do resultado canónico.
O servidor executa o mesmo código de métricas sobre o rexistro e compara. Se algún número difire en máis de 0,01, o resultado rexéitase como metrics_mismatch. Se o hash non coincide, rexéitase como hash_mismatch. Unha extensión do navegador que edita o campo das WPM, a trampa máis común nos sitios que se fían do cliente, falla aquí. As mesmas funcións producen o número da túa pantalla e o da base de datos, e por iso a nosa páxina de métricas pode prometer que o seu exemplo resolto se reproduce ata o segundo decimal.
Por que non cronometrar a proba no servidor? Porque entón a túa puntuación incluiría a rede. Cada pulsación chegaríanos un pouco tarde, nunha cantidade que varía coa túa conexión, e un mecanógrafo rápido cunha liña lenta perdería velocidade que tiña de verdade. O rexistro dános o reloxo do cliente para a exactitude e o recálculo do servidor para a honestidade.
Segundo paso: ten sentido o rexistro?
Antes de calquera análise do ritmo, comprobacións simples da forma do envío:
- A proba ten que durar polo menos 15 segundos ou 10 palabras. As tiradas máis curtas teñen demasiado ruído para clasificalas e son as máis fáciles de inflar.
- Un resultado non pode chegar antes de que a proba puidese rematar: o seu inicio máis a súa propia duración. Un resultado de 60 segundos que chega vinte segundos despois de empezar non aconteceu.
- O número de eventos ten que encaixar cos caracteres escritos.
- No ordenador, cada evento input ten que seguir a un keydown nun máximo de 50 ms. Isto pilla o texto pegado, os eventos input xerados por script e a maioría das ferramentas de inxección de pulsacións, que introducen texto sen unha tecla física. Escribir a través dun editor de métodos de entrada (composición IME) está exento, e os resultados en móbil quedan fóra das clasificacións públicas.
- Un rexistro sen inicio, sen fin ou con marcas de tempo que non sexan monótonas está mal formado e rexéitase directamente.
Nada disto é enxeñoso, pero elimina a maior parte do volume.
Terceiro paso: que pode revelar o ritmo das pulsacións?
Esta é a parte que deliberadamente non documentamos por completo: a lista de trazos é pública, os limiares e os pesos non. Un limiar publicado é un obxectivo. Se dixésemos «márcase unha desviación típica de menos de N milisegundos», a seguinte versión de cada script engadiría N máis un. Os trazos que puntuamos:
O intervalo medio entre teclas e canto varía. A escritura humana é irregular. No estudo de Dhakal e colaboradores de 2018 con 168.960 mecanógrafos, o intervalo medio entre teclas foi duns 239 ms cunha desviación típica duns 112 ms. Un script que escribe cun intervalo fixo case non ten variación; un estudo de arXiv de 2025 sobre un CAPTCHA baseado en pulsacións viu exactamente iso no seu bot de proba, que escribía cun atraso fixo de 50 ms. Este é o noso sinal máis forte, e o que fixo tropezar o noso asistente.
A proporción de intervalos de menos de 40 ms. Un intervalo de 40 ms mantido son 1.500 caracteres por minuto, ou 300 WPM a cinco caracteres por palabra. Os dedos si producen intervalos soltos tan curtos cando solapan teclas, así que un intervalo curto non significa nada. Un rexistro no que unha gran parte dos intervalos son tan curtos non é escritura.
Os tempos de pulsación das teclas. Os dedos reais varían en decenas de milisegundos; os eventos sintéticos adoitan ter tempos de pulsación idénticos ou case nulos, porque a ferramenta dispara keydown e keyup un detrás do outro.
A proporción de solapamento. Con que frecuencia baixa a seguinte tecla antes de que suba a anterior. Dhakal mediu unha proporción media de solapamento do 25 %, coa maioría dos mecanógrafos rápidos solapando no 40 ao 70 % das pulsacións, e as teclas coincidindo 30 ms de media. Os mecanógrafos lentos case non solapan, así que un resultado rápido sen solapamento chama a atención. Os bots raramente solapan teclas.
A pausa máis longa, as oscilacións de velocidade dun segundo a outro e a proporción de intervalos de máis dun segundo. A xente dubida de xeitos que hai que indicarlle a un script que imite.
Un modelo de puntuación combina estes trazos e pode marcar un resultado como sospeitoso. Por debaixo de 130 WPM, unha marca non rexeita nada por si soa. O teu resultado nunca se che oculta; estas comprobacións só deciden se entra nas clasificacións.
Poden as trampas superar as comprobacións de ritmo?
Si, se a trampa está feita con coidado. Un artigo de arXiv de xaneiro de 2026 de David Condrey puxo a proba detectores de ritmo de pulsacións pensados para distinguir o texto escrito por persoas do xerado por IA. Separaron perfectamente a inxección totalmente automatizada, pero os ataques con ritmo humano (unha persoa volvendo escribir un texto de IA, ou un programa que toma atrasos de datos reais de escritura humana) esquivaron os cinco clasificadores en taxas de polo menos o 99,8 %. O artigo trata da detección de autoría, non das probas de mecanografía, pero a lección vale igual: o terceiro paso pilla os descoidados e pouco máis.
O noso propio asistente de probas demostra o mesmo a pequena escala: unha variación aleatoria e unhas poucas pausas levárono de obviamente sintético a plausible.
Así que o terceiro paso é un filtro. O veredicto sae do cuarto.
Cuarto paso: a nova proba de verificación
Se un resultado cronometrado supera as 130 WPM e o seu ritmo parece ademais inusual, ves o resultado e gárdase, pero queda fóra das clasificacións públicas ata que superes unha nova proba de verificación. É unha proba nova de 30 segundos, e tes que chegar polo menos ao 75 % da velocidade que reclamaches. Unha casualidade puntual ou un rexistro prestado non sobreviven a unha segunda tirada.
Por que 130 WPM? É unhas dúas veces e media a media de 51,56 WPM dos datos de Dhakal, moi por riba da maioría dos mecanógrafos, e quen escribe de verdade tan rápido pode facelo dúas veces. Un resultado rápido repentino cun ritmo raro é a forma que produce un rexistro prestado ou un script, e se é honesto, unha proba de máis é un prezo pequeno.
A nova proba é unha proba de mecanografía corrente, con texto corrente, non unha imaxe deformada nin unha páxina de símbolos raros. O texto difícil de ler fai ir máis amodo a todo o mundo, e a quen máis frea é aos mecanógrafos rápidos honestos que a nova proba existe para validar. Unha verificación que suspenden os mecanógrafos rápidos honestos é peor ca ningunha. O texto corrente fai ademais que a comprobación sexa xusta: o rexistro da propia nova proba pasa polas mesmas comprobacións de ritmo ca calquera outro resultado.
Límites de envíos e bloqueos
Os envíos teñen un límite: trinta por minuto por usuario con sesión iniciada, sesenta por enderezo IP. Unha conta que segue disparando as comprobacións recibe un bloqueo na sombra (shadow ban), é dicir, ocúltase sen avisar das clasificacións, e tres incidentes antitrampas graves en 24 horas activan isto automaticamente. Contar os incidentes dentro dunha xanela de tempo significa que un resultado raro nunca che custa a conta, mentres que un script que falla unha e outra vez detense axiña.
As clasificacións históricas esixen ademais 30 minutos de escritura na conta, así que unha conta nova cunha tirada perfecta non pode encabezalas.
O que fai que te marquen por accidente
A maioría dos resultados marcados non son trampas. Os xeitos honestos de disparar unha comprobación:
O autocorrector no móbil. Unha substitución chega como un único evento input que cambia varios caracteres. Contámola como unha pulsación, márcamola e deixamos o resultado fóra das clasificacións públicas cunha nota, non cun rexeitamento.
Texto pegado. Pegar está bloqueado, e un resultado no que se intentou queda excluído das clasificacións.
Cambiar de lapela. Se o foco sae da páxina durante máis de dous segundos nunha proba, márcase como interrompida; gárdase e amósase, pero non se clasifica.
Facer pausas. Un intervalo de máis de cinco segundos nunha proba de palabras ou de citas marca o resultado como pausado. Mesmo tratamento.
Composición IME. A escritura en xaponés, coreano e chinés chega a través de eventos de composición, así que non lles aplicamos a regra do keydown. Se algo segue parecendo mal, é un erro noso, e gustaríanos ter o rexistro.
Resultados sen conexión. Un resultado que se sincroniza máis de dez minutos despois de rematar queda no teu historial sen clasificar, porque non podemos validar o seu reloxo.
Ser rápido de verdade. Por riba de 130 WPM atoparaste coa nova proba, probablemente no teu primeiro día bo.
Como reclamar
Cada exclusión mostra o seu motivo no teu historial. Se cres que nos equivocamos cun resultado ou cunha restrición, escribe ao enderezo de reclamacións da nosa páxina antitrampas desde o enderezo da túa conta, coa ligazón ao resultado ou a data e hora da proba. Unha persoa mira a repetición das pulsacións e responde nuns poucos días. As reclamacións nunca as decide só o modelo automático.
Acabamos de publicar un manual para superar as comprobacións? En parte. A lista de trazos sempre se puido deducir do comportamento, e os limiares seguen sendo privados. A nova proba é a parte que importa, e a forma de superala é escribir.
Preguntas frecuentes
Como detectan as probas de mecanografía os bots?
As boas len o rexistro de teclas: se cada carácter ten unha pulsación detrás, canto varían os intervalos entre teclas e como se manteñen e se solapan as teclas. Os scripts adoitan ser demasiado regulares; os bots coidadosos poden imitar as persoas, e por iso engadimos unha nova proba.
Pode un bot superar o sistema antitrampas dunha proba de mecanografía?
Un coidadoso pode superar as comprobacións de ritmo: a investigación sobre detectores de ritmo de pulsacións descubriu que un ritmo humano falsificado os esquivaba case sempre. Por iso retemos os resultados rápidos ata unha nova proba, que un bot ten que superar outra vez cun segundo rexistro que pase as mesmas comprobacións.
Por que non se clasificou o meu resultado?
Normalmente por unha proba de menos de 15 segundos ou 10 palabras, unha pausa de máis de cinco segundos, un cambio de lapela ou un resultado de máis de 130 WPM á espera da súa nova proba. O teu historial mostra o motivo.