Replicate The Blind Machine experiments
AI agent skillIndependently reproduce the experiments in The Blind Machine paper and confirm its published numbers, using only the open Blind CLI and public data — no hosted service, no credentials, no private records.
Download & use this skill
Download .tar.gz
Install the whole repository into your agent's skills directory in one command — it unpacks as a
ready-to-use replicate/ folder (change -C
to your skills path):
curl -fsSL https://blindmachine.org/skills/replicate/archive | tar xz -C ~/.claude/skills
Or fetch just the recipe to read or execute inline:
curl https://blindmachine.org/skills/replicate.md
Troubleshooting
Most replication failures are environment issues, not regressions in the paper.
Classify each as SKIP (a tool or resource you could not provide) or FAIL
(the experiment ran and produced a wrong number). Only a genuine wrong number is a
FAIL.
Setup and toolchain
uv: command not found— install uv (https://docs.astral.sh/uv/). Until then
the synthetic and real-genome runs are SKIP.- First
run_all.shis slow or downloads a lot — expected: the six bundles
seal their environments and download TenSEAL (over Microsoft SEAL) once, then
reuse them. Not a failure. - TenSEAL build fails — usually a missing C++ toolchain or an unsupported
platform. This is SKIP (a build-environment issue), not a paper regression.
Real-genome studies (E5-E8)
bcftools: command not found— E5-E8 needbcftools; without it they are
SKIP. The synthetic evaluation (Section 10) does not need it and should still
run.- Network / IGSR fetch fails or times out — E5-E8 fetch bounded chr22 intervals
from the public 1000 Genomes FTP. A network failure is SKIP. - A study writes only aggregate outputs — expected and correct: individual
genotype vectors are kept under an ignoredwork/directory by design.
Interpreting numbers
- A synthetic ciphertext size is off by tens of bytes at 192/256-bit — expected:
only the 128-bit sizes are byte-deterministic; 192/256-bit sizes drift across
TenSEAL builds. Check exactness (max_error == 0) and the shrinking-size trend,
not the exact byte count, at those levels. Not a FAIL. - A 128-bit ciphertext size differs from
references/expected-results.md— this
IS a FAIL; those counts are deterministic. max_erroris nonzero anywhere — FAIL. The exactness claim is that
decrypted BFV output equals the plaintext oracle exactly.- E8
r2= 1.0000 on pair 4 — expected; it is a small-count artifact, not a
wrong number.
What a clean PASS looks like
run_all.sh prints RESULT: PASS, verify.py exits zero, all six 128-bit
ciphertext sizes match, max_error is 0 everywhere, and the E5-E8 headline numbers
match references/expected-results.md.
Part of the Replicate The Blind Machine experiments agent skill.