Kaip rašymo testai aptinka sukčiavimą? Kaip tikriname savo

Rašymo testai sukčiavimą aptinka tikrindami už kiekvieno rezultato esantį paspaudimų žurnalą. Mūsų testas kiekvieną rezultatą perskaičiuoja iš jo paspaudimų žurnalo, tikrina maišą (angl. hash), žurnalo struktūrą ir ritmą, o bet kurį laiko testo rezultatą, viršijantį 130 WPM ir kartu turintį neįprastą ritmą, laiko už viešų lentelių ribų, kol neįveiksi pakartotinio testo. Ritmo patikros pagauna neatsargius botus; pakartotinis testas priverčia atsargų botą viską padaryti iš naujo.

Pirmasis botas, apėjęs mūsų ritmo patikras, buvo mūsų pačių.

Mūsų galutinio (end-to-end) testavimo pagalbininkas spaudė klavišus fiksuotu 40 ms intervalu, nes būtent taip daro testo scenarijus. Serveris perskaičiavo rezultatą, patvirtino maišą ir įvertino bandymą kaip įtartiną: nulinis paspaudimų intervalų svyravimas, nulinis persidengimas, vienodi laikymo laikai. Turėjome pridėti atsitiktinį svyravimą kiekvienam žodžiui ir retkarčiais 80–300 ms „mąstymo“ pauzes, kad mūsų pačių testų rinkinys galėtų pateikti žmogišką rezultatą. Ši parinktis vis dar yra kode, pavadinta humanLike.

Patikros veikia prieš viską, kas nesistengia, o viskas, kas stengiasi, gali jas įveikti, todėl tikrasis svoris sistemoje tenka pakartotiniam testui.

Pirmas žingsnis: perskaičiuoti viską

Tavo naršyklė mums nesiunčia WPM. Ji siunčia paspaudimų žurnalą (kiekvieną keydown, keyup, input ir composition įvykį, pažymėtą monotoninio laikrodžio performance.now() laiku), savo apskaičiuotus rodiklius ir kanoninio rezultato SHA-256 maišą.

Serveris tą patį rodiklių kodą paleidžia su žurnalu ir palygina. Jei kuris nors skaičius skiriasi daugiau nei 0,01, rezultatas atmetamas kaip metrics_mismatch. Jei maišas nesutampa, jis atmetamas kaip hash_mismatch. Naršyklės plėtinys, redaguojantis WPM lauką – dažniausias sukčiavimo būdas svetainėse, pasitikinčiose klientu, – čia ir užkliūva. Tos pačios funkcijos sukuria skaičių ir tavo ekrane, ir duomenų bazėje, todėl mūsų rodiklių puslapis gali pažadėti, kad jo išspręstas pavyzdys atkuriamas dviejų skaitmenų po kablelio tikslumu.

Kodėl testo nematuojame serveryje? Tada į tavo rezultatą įeitų tinklas. Kiekvienas paspaudimas mus pasiektų šiek tiek pavėluotai, ir tas vėlavimas priklausytų nuo tavo ryšio, o greitas rašytojas su lėtu ryšiu prarastų greitį, kurį iš tikrųjų turėjo. Žurnalas mums duoda kliento laikrodį tikslumui ir serverio perskaičiavimą sąžiningumui.

Antras žingsnis: ar žurnalas prasmingas?

Prieš bet kokią ritmo analizę – paprastos pateikimo formos patikros:

  • Testas turi trukti bent 15 sekundžių arba 10 žodžių. Trumpesni bandymai per daug triukšmingi reitingavimui ir lengviausiai išpučiami.
  • Rezultatas negali ateiti anksčiau, nei testas galėjo baigtis: jo pradžia plius jo paties trukmė. 60 sekundžių rezultatas, atėjęs praėjus dvidešimčiai sekundžių nuo pradžios, neįvyko.
  • Įvykių skaičius turi atitikti parašytus simbolius.
  • Staliniame kompiuteryje kiekvienas input įvykis turi sekti keydown įvykį per 50 ms. Tai pagauna įklijuotą tekstą, scenarijais sukurtus input įvykius ir daugumą paspaudimų įterpimo įrankių, kurie pateikia tekstą be fizinio klavišo. Rašymas per įvesties metodo redaktorių (IME composition) yra išimtis, o telefono rezultatai nepatenka į viešas lenteles.
  • Žurnalas be pradžios, be pabaigos arba su nemonotoniškomis laiko žymomis yra sugadintas ir atmetamas iš karto.

Nieko čia gudraus, bet tai pašalina didžiąją dalį srauto.

Trečias žingsnis: ką gali atskleisti paspaudimų ritmas?

Šios dalies sąmoningai iki galo nedokumentuojame: požymių sąrašas viešas, ribos ir svoriai – ne. Paskelbta riba – tai taikinys. Jei sakytume „žymimas standartinis nuokrypis, mažesnis nei N milisekundžių“, kita kiekvieno scenarijaus versija pridėtų N plius vieną. Požymiai, kuriuos vertiname:

Vidutinis tarpas tarp klavišų ir kiek jis svyruoja. Žmogaus rašymas netolygus. 2018 m. Dhakal ir kolegų tyrime su 168 960 rašytojų vidutinis intervalas tarp klavišų buvo apie 239 ms, o standartinis nuokrypis – apie 112 ms. Fiksuotu intervalu rašantis scenarijus beveik nesvyruoja; 2025 m. arXiv tyrimas apie paspaudimais pagrįstą CAPTCHA būtent tai pastebėjo savo testiniame bote, kuris rašė su fiksuotu 50 ms vėlavimu. Tai mūsų stipriausias signalas, ir būtent ant jo užkliuvo mūsų pagalbininkas.

Tarpų, trumpesnių nei 40 ms, dalis. Išlaikomas 40 ms tarpas – tai 1 500 simbolių per minutę, arba 300 WPM, skaičiuojant penkis simbolius žodžiui. Pirštai iš tiesų sukuria pavienius tokius trumpus tarpus, kai persidengiant (angl. rollover) klavišai užsikloja, todėl vienas trumpas tarpas nieko nereiškia. Žurnalas, kuriame didelė dalis tarpų tokie trumpi, nėra rašymas.

Klavišų laikymo laikai. Tikri pirštai svyruoja dešimtimis milisekundžių; sintetiniai įvykiai dažnai turi vienodus ar beveik nulinius laikymo laikus, nes įrankis keydown ir keyup paleidžia vieną po kito.

Persidengimo santykis. Kaip dažnai kitas klavišas nuspaudžiamas, kol ankstesnis dar neatleistas. Dhakal išmatavo vidutinį 25 % persidengimo santykį: dauguma greitų rašytojų persidengdavo 40–70 % paspaudimų, o klavišai vidutiniškai persidengdavo 30 ms. Lėti rašytojai beveik nepersidengia, todėl greitas rezultatas be persidengimo išsiskiria. Botai klavišus persidengia retai.

Ilgiausia pauzė, greičio svyravimai kas sekundę ir tarpų, ilgesnių nei viena sekundė, dalis. Žmonės dvejoja taip, kaip scenarijui reikia specialiai liepti mėgdžioti.

Vertinimo modelis sujungia šiuos požymius ir gali pažymėti rezultatą kaip įtartiną. Iki 130 WPM žymė pati savaime nieko neatmeta. Tavo rezultatas niekada nuo tavęs neslepiamas; šios patikros lemia tik tai, ar jis reitinguojamas.

Ar sukčiavimas rašymo teste gali apeiti ritmo patikras?

Taip, jei sukčiavimo priemonė sukurta kruopščiai. 2026 m. sausio Davido Condrey straipsnyje arXiv buvo tikrinami paspaudimų ritmo detektoriai, skirti atskirti žmogaus parašytą tekstą nuo dirbtinio intelekto sugeneruoto. Visiškai automatizuotą įterpimą jie atskyrė be klaidų, tačiau atakos su žmogišku ritmu (žmogus perrašo DI tekstą arba programa ima vėlavimus iš žmonių rašymo duomenų) išvengė visų penkių klasifikatorių bent 99,8 % atvejų. Straipsnis apie autorystės nustatymą, o ne apie rašymo testus, tačiau pamoka tinka: trečias žingsnis pagauna neatsargiuosius ir beveik nieko daugiau.

Mūsų pačių testų pagalbininkas tą patį parodo mažu mastu: atsitiktinis svyravimas ir kelios pauzės pavertė jį iš akivaizdžiai sintetinio į tikėtiną.

Taigi trečias žingsnis yra filtras. Verdiktas gaunamas ketvirtame žingsnyje.

Ketvirtas žingsnis: patvirtinamasis pakartotinis testas

Jei laiko testo rezultatas viršija 130 WPM ir kartu jo ritmas atrodo neįprastas, jį matai ir jis išsaugomas, bet į viešas lenteles nepatenka, kol neįveiksi patvirtinamojo pakartotinio testo. Tai naujas 30 sekundžių testas, kuriame reikia pasiekti bent 75 % deklaruoto greičio. Vienkartinis atsitiktinumas ar pasiskolintas žurnalas antro bandymo neišgyvena.

Kodėl 130 WPM? Tai maždaug du su puse karto daugiau nei Dhakal duomenų vidurkis 51,56 WPM, gerokai daugiau nei pasiekia dauguma rašytojų, o kas iš tikrųjų rašo taip greitai, gali tai padaryti dar kartą. Staigus greitas rezultatas su keistu ritmu – būtent tokią formą sukuria pasiskolintas žurnalas ar scenarijus, o jei jis sąžiningas, vienas papildomas testas – nedidelė kaina.

Pakartotinis testas – įprastas rašymo testas su įprastu tekstu, o ne iškraipytas paveikslėlis ar keistų simbolių puslapis. Sunkiai įskaitomas tekstas sulėtina visus, o labiausiai – sąžiningus greitus rašytojus, kuriems išteisinti pakartotinis testas ir skirtas. Patikrinimas, kurio sąžiningi greiti rašytojai neįveikia, yra blogesnis nei jokio. Įprastas tekstas taip pat daro patikrą teisingą: paties pakartotinio testo žurnalas pereina tas pačias ritmo patikras kaip ir bet kuris kitas rezultatas.

Pateikimų ribojimas ir blokavimai

Pateikimų dažnis ribojamas: trisdešimt per minutę prisijungusiam naudotojui, šešiasdešimt vienam IP adresui. Paskyrai, kuri vis užkliūva už patikrų, taikomas šešėlinis blokavimas (angl. shadow ban) – ji tyliai paslepiama nuo lentelių, o trys rimti sukčiavimo aptikimo įvykiai per 24 valandas tai įjungia automatiškai. Įvykių skaičiavimas tam tikrame laiko lange reiškia, kad vienas keistas rezultatas niekada nekainuos paskyros, o scenarijus, vėl ir vėl neįveikiantis patikrų, greitai sustabdomas.

Visų laikų lyderių lentelėms taip pat reikia, kad paskyroje būtų 30 minučių rašymo, todėl nauja paskyra su vienu tobulu bandymu negali jų užimti.

Kas tave gali pažymėti netyčia

Dauguma pažymėtų rezultatų nėra sukčiavimas. Sąžiningi būdai užkliūti už patikros:

Automatinis taisymas telefone. Pakeitimas ateina kaip vienas input įvykis, keičiantis kelis simbolius. Jį skaičiuojame kaip vieną paspaudimą, pažymime ir rezultatą laikome už viešų lentelių ribų su pastaba, o ne atmetame.

Įklijuotas tekstas. Įklijuoti neleidžiama, o rezultatas, kuriame bandyta tai daryti, į lenteles nepatenka.

Skirtukų perjungimas. Jei testo metu fokusas palieka puslapį ilgiau nei dviem sekundėms, testas pažymimas kaip nutrauktas; jis išsaugomas ir rodomas, bet nereitinguojamas.

Pauzės. Ilgesnis nei penkių sekundžių tarpas žodžių ar citatų teste rezultatą pažymi kaip pristabdytą. Tas pats vertinimas.

IME composition. Japonų, korėjiečių ir kinų įvestis ateina per composition įvykius, todėl jiems keydown taisyklės netaikome. Jei kas nors vis tiek atrodo ne taip, tai klaida, ir mes norėtume gauti žurnalą.

Rezultatai neprisijungus. Rezultatas, sinchronizuotas praėjus daugiau nei dešimčiai minučių po jo pabaigos, lieka tavo istorijoje nereitinguotas, nes negalime patvirtinti jo laikrodžio.

Tikrai greitas rašymas. Viršijęs 130 WPM susidursi su pakartotiniu testu, greičiausiai jau pirmąją gerą dieną.

Kaip apskųsti

Kiekviena išimtis tavo istorijoje rodoma su priežastimi. Jei manai, kad suklydome dėl rezultato ar apribojimo, iš savo paskyros el. pašto adreso parašyk apeliacijų adresu, nurodytu mūsų sukčiavimo prevencijos puslapyje, pridėdamas rezultato nuorodą arba testo datą ir laiką. Žmogus peržiūri paspaudimų įrašą ir atsako per kelias dienas. Apeliacijų niekada nesprendžia vien automatinis modelis.

Ar ką tik paskelbėme instrukciją, kaip įveikti patikras? Iš dalies. Požymių sąrašą visada buvo galima atskleisti iš elgsenos, o ribos lieka privačios. Svarbiausia dalis – pakartotinis testas, o būdas jį įveikti – rašyti.

Dažniausiai užduodami klausimai

Kaip rašymo testai aptinka botus?

Geri testai skaito paspaudimų žurnalą: ar už kiekvieno simbolio yra klavišo paspaudimas, kiek svyruoja tarpai tarp klavišų ir kaip klavišai laikomi bei persidengia. Scenarijai paprastai būna per daug tolygūs; atsargūs botai gali mėgdžioti žmones, todėl pridedame pakartotinį testą.

Ar botas gali apeiti rašymo testo apsaugą nuo sukčiavimo?

Atsargus botas gali įveikti ritmo patikras: paspaudimų ritmo detektorių tyrimai parodė, kad suklastotas žmogiškas ritmas juos apeidavo beveik kiekvieną kartą. Todėl greitus rezultatus sulaikome pakartotiniam testui, kurį botas turi įveikti dar kartą, su antru žurnalu, pereinančiu tas pačias patikras.

Kodėl mano rašymo testo rezultatas nebuvo reitinguotas?

Dažniausiai dėl testo, trumpesnio nei 15 sekundžių ar 10 žodžių, ilgesnės nei penkių sekundžių pauzės, skirtuko perjungimo arba rezultato, viršijančio 130 WPM ir laukiančio pakartotinio testo. Tavo istorijoje parodyta priežastis.

Šaltiniai