The single most common critique of any keystroke-provenance system is straightforward: what if someone reads an AI response on their phone and types it verbatim into the editor? The keystrokes are physical. The certificate signs the file. Every pathway-based check confirms the pathway is genuine — because it is. So what does the verification actually prove?
Last reviewed: August 2026 · Full technical spec: public repository · Questions: soluseditor@gmail.com
Solus's primary provenance checks (paste quarantine, hardware-injection detection, ledger signing, similarity-to-source detection, certificate integrity) each answer a question about the input pathway. Under a phone-transcription attack, all of them pass because the pathway is genuine: real keystrokes, real user, real signature. That is not a Solus bug — that is the mathematical limit of pathway-based verification.
Solus's answer is not to pretend the ceiling doesn't exist. It is to add a second, orthogonal layer of measurement on top of the pathway: six behavioral signals computed from the timing, editorial, spatial, attention, and personal-rhythm patterns of the keystrokes themselves. Composition and transcription are behaviorally distinct even when they are pathway-identical, and the difference is statistically detectable.
Each signal is a pure function over the keystroke ledger the editor already records. No new instrumentation. No content analysis. Every signal is interpretable — a teacher can point to specific evidence, not a black-box classifier verdict.
Real writing alternates 5-30 second typing bursts with 2-90 second thinking pauses. The pause distribution is heavy-tailed. Transcription is metronomic — each pause reflects the constant cost of glancing at the source.
Real writers backspace 10-30% of their keystrokes and use the cursor to revise. Transcribers correct typos only; backspaces are rare and cursor jumps are near-zero.
Real writers jump around the document — write the introduction, expand paragraph three, go back and revise the introduction. Transcribers write top-to-bottom in the order they read.
Composer thinking pauses cluster at sentence and paragraph boundaries — the natural cognitive-load points. Transcriber pauses cluster at word boundaries — the "look at phone, read a few words, look back, type" rhythm.
The transcriber-from-phone pattern leaves a distinctive attention trace: many short window-blur events, each in the one-to-four-second glance range, with typing resuming within milliseconds of regaining focus. Real writers rarely blur; when they do, it's for a real interruption and they re-engage before typing.
Each writer has a unique keystroke rhythm — dwell time per key, gap time between digraphs. After a few submissions the app learns the pattern. When someone else types on the account (or the same person is transcribing — which is slower and more uniform than natural composition), the rhythm signature deviates.
Signals feed into a two-axis verdict. Axis A is the cryptographic provenance layer — the paste blocker, hardware-injection detection, ledger integrity, and certificate signature. Axis B is the behavioral layer described above. The Verified Human™ badge is only awarded when both axes pass:
Two-axis rather than one-score is deliberate. Cryptographic integrity is a hard fact — the signature either verifies or it doesn't. Behavioral consistency is a probabilistic signal. Combining them into a single 0-100 number would hide which axis actually failed, and let a would-be attacker guess whether pathway-tampering or behavioral-mimicry got them caught. Reviewers see both axes independently.
Casual transcription — student reads ChatGPT on their phone and types the essay into Solus — is detected reliably. The scoring separates composed and transcribed sessions in every synthetic and real-world case we've tested; a metronomic 30-minute transcription with few edits and no cursor jumps scores near zero.
A determined attacker who reads this page and takes active steps to counter each signal — inserting artificial pauses at sentence boundaries, adding fake backspaces, jumping the cursor around occasionally — can approximate a composition profile over enough time. The design premise is not that this is impossible; it is that the effort required to fake it exceeds the effort of doing the assignment. In practice, the transcription attack was appealing because it took 30 seconds to generate and 30 minutes to type. When "type it convincingly" turns into 90+ minutes of consciously mimicking composition patterns, the economics collapse.
What this does not attempt: to judge the quality or content of the writing, to identify individual authors from a global corpus, or to detect stress, mood, or health conditions. It answers one question — does this session's behavior look like composition or transcription? — and reports the answer with per-factor evidence a reviewer can weigh.
Not every low score is a cheater. The reviewer UI shows the underlying metric so judgment can override the score. Documented patterns where a legitimate writer may score lower than composition-typical:
The behavioral layer is additive. It does not replace, weaken, or reword any existing check. The Verified Human™ shield now renders when both hold: tamper-clean AND composition-consistent.
Reviewers who want more than the categorical label can expand the per-signal breakdown to see exactly which pattern the analyzer picked up on. The model version is stamped on every score, so the same submission scored months apart always reports the same number as long as the model hasn't changed.