CounterProof

Wir haben unsere eigene Methode gemessen, und sie hat ihre Kosten nicht eingespielt

Zwei vorab registrierte, blind bewertete Vergleiche unseres vollen Prüfapparats gegen einen einzelnen billigen Durchgang, mit veröffentlichten professionellen Audits als Antwortschlüssel. Der Apparat verlor ein Ziel glatt; beim anderen löste er seine eigene Präzisionsschwelle nur aus, indem er die Befunde löschte, die der Auditor als real eingestuft hatte (0–1 von 4, je nach Bewerter). Was wir geändert haben, was wir neu gemessen haben, und die Lücken, die ein späteres Audit in der Messung selbst gefunden hat.

Im August 2026 haben wir das Experiment durchgeführt, das unser eigener Fallbericht seit Monaten schuldig war: Verdient der volle Prüfapparat, den wir gebaut haben, seine Kosten gegenüber einem einzelnen billigen Durchgang? Wir haben es vorab registriert, blind bewertet und veröffentlichte professionelle Audits als Antwortschlüssel verwendet. Ein Ziel hat er glatt verloren, beim anderen konnte er nicht zum Sieger erklärt werden. Dann fand im September ein rückblickendes Audit der Läufe, dass der Vergleich nicht so sauber war, wie wir gesagt hatten. Diese Notiz trägt alles davon, weil die Regel, die diese Praxis verkauft (eine Praxis, die nicht zeigen kann, wo sie falsch lag, hat dort keinen Stand, wo sie sagt, sie liege richtig), zuerst für uns selbst gilt.

Was wir getan haben

Zwei Ziele, beide öffentlicher Code mit einem öffentlichen professionellen Audit zu einem genannten Commit, sodass der Antwortschlüssel schon vor unserem Beginn existierte und nicht von uns stammte:

  • Ziel 1, BDK (bitcoindevkit/bdk_wallet bei 775e4aee, v1.0.0-beta.2), gegen das Wizardsardine-Audit vom Dezember 2024: zwölf Befunde als Nenner. Lauf am 14. August.
  • Ziel 2, ZF FROST (ZcashFoundation/frost bei 5fa17ed, v0.6.0, frost-core), gegen die Bewertung der NCC Group vom Oktober 2023: vier Befunde als Nenner. Lauf am 22. und 23. August.

Zwei Arme bei jedem Ziel. Arm A, die billige Stufe: ein Durchgang durch eine einzelne fremde Modelllinie mit eingebauter Zitat-Selbstprüfung. Arm B, der volle Apparat: ein Panel aus Finder-Linien, dann eine Prüfinstanz als „Anwalt des Entwurfs", die die beabsichtigten Vertrauensannahmen des Codes vertritt, dann eine adversariale Erreichbarkeitsprüfung, dann ein Gate. Beide Arme arbeiteten an der Quelle vor der Behebung, mit denselben befundneutralen Einsatzregeln, und ihnen wurde nie mitgeteilt, was das Audit gefunden hatte. Nenner und Trefferregel (gleiche Senke und gleicher Mechanismus) wurden vor der Bewertung schriftlich eingefroren. Jeder Bericht wurde anschließend von einem blinden Analysten bewertet, der keinen der beiden Arme gelaufen war und jede Behauptung gegen die Quelle prüfte. Die Behalte-Regel stand vorab fest: Der Apparat verdient seine Kosten, wenn er mindestens zwei Befunde des Auditors mehr findet, oder wenn der billige Arm mindestens zwei durch die Quelle widerlegte Behauptungen mehr ausliefert.

Was wir gefunden haben

Billige StufeVoller Apparat
Ziel 1, Recall: gefunden von den 12 Befunden des Auditors86 (5 bei strenger Lesart)
Ziel 1, durch die Quelle widerlegte Behauptungen0 von 251 von 39
Ziel 2, Recall: gefunden von den 4 Befunden des Auditors40–1 (bewerterabhängig, siehe unten)
Ziel 2, durch die Quelle widerlegte Behauptungen3 von 111 von 7 (0 beim zweiten Bewerter)

Beim ersten Ziel war der Apparat schlicht schlechter: geringerer Recall, eine falsche Behauptung mehr, etwa das Sechsfache an Modellaufrufen, zwei Ausfälle von Prüfinstanzen. Beim zweiten tat er genau das, was unsere Hypothese vorhergesagt hatte, und senkte die Zahl falscher Behauptungen in einem verrauschten Umfeld (seine vorab registrierte Präzisionsschwelle löste aus); erkauft hat er das, indem er die Befunde löschte, die der Auditor als real eingestuft hatte (alle vier beim einen Bewerter, drei von vier beim anderen), nachdem sein eigenes Finder-Panel alle vier gefunden hatte. Die vorab registrierte Regel hatte keine Möglichkeit, einen Präzisionsgewinn gegen einen Einbruch beim Recall abzuwägen, und konnte deshalb keinen Sieger benennen; wir nennen das keinen Sieg.

Der Mechanismus war bei beiden Zielen derselbe, und es waren nicht die Finder. Der Anwalt und die Erreichbarkeitsprüfung entfernen jeden Kandidaten, der auf „einer Annahme, die der Code dokumentiert, oder einer Partei, der das Bedrohungsmodell vertraut" beruht. Dieser Test trifft auf falsch-positive Befunde zu (sicher zu entfernen) und ebenso auf echte Befunde, deren ganzer Punkt darin besteht, dass die dokumentierte Annahme eben nicht durchgesetzt wird. Bei FROST sagten die Kommentare im Code selbst, der Aufrufer validiere die Eingaben; der Auditor hatte geurteilt, dass genau diese Zuweisung der Defekt war; unser Anwalt glaubte den Kommentaren. Die einzelnen Verwerfungen waren vertretbare Lesarten. Der Fehler war, die Frage still und durch Löschen zu entscheiden.

Was wir geändert haben

  • Filter annotieren; sie löschen nicht mehr. Eine Prüfinstanz, die einen Befund aus Gründen der Annahme, der Absicht oder des Vertrauens fallen lassen würde, markiert ihn jetzt und belässt ihn im Bericht, damit ein Mensch darüber entscheidet.
  • Wir haben die aufbewahrten Urteile von Ziel 2 in diesem Modus neu zusammengesetzt, gegen einen vorab registrierten Test (23. August; aus den bestehenden Urteilen der Filter wurden Markierungen, eine Änderung der Etikettierung und kein neuer Lauf, diesmal von einem einzigen blinden Bewerter über alle 24 Kandidaten bewertet). Der Recall ging zurück auf 4 von 4, mechanisch, weil nichts gelöscht wurde. Die interessante Zahl war die Markierung: jede einzelne der sieben falschen Behauptungen trug eine Markierung, und keiner der sieben nicht markierten Punkte war falsch; bei diesem einen Ziel funktionierte die Markierung als Sieb. Aber zehn der siebzehn markierten Punkte waren echt, sechs davon die des Auditors. Als Urteil ist dieselbe Markierung zerstörerisch. Die Markierung sagt Ihnen, was Sie anschauen müssen, nicht was Sie wegwerfen dürfen: und was es einen Prüfer kostet, siebzehn markierte Punkte zu entscheiden, oder ob ein Mensch unter Termindruck dem Löschen auf Markierung widersteht, ist ungetestet.
  • Die billige Stufe ist der Standard: eine Richtlinienentscheidung auf Basis von zwei Läufen, vorläufig, und beibehalten, nachdem das Audit weiter unten den Vergleich auf seine Präzisionsdifferenz eingeengt hat. Das schwere Panel bleibt Oberflächen mit einer wirklich hohen Rohrate falsch-positiver Befunde vorbehalten, bei denen ein Mensch die Markierungen entscheidet.
  • Ein „Präzisionssieg" zählt nicht mehr für sich allein. Bei Ziel 2 löste die Präzisionsschwelle aus, weil derselbe Filter die gefundenen Befunde hatte einbrechen lassen; die Vorabregistrierung hatte beide als unabhängige Regler behandelt, und der erste Entwurf unserer eigenen Aufzeichnung ging dann dazu über, nach Kenntnis des Ergebnisses eine Gewichtung zu erfinden; ein Review-Gate hat das abgefangen. Künftig zählt ein Präzisionsgewinn nur, wenn der Recall des Apparats höchstens um einen Befund unter dem des billigen Arms liegt.

Dann fiel die Messung durch ihr eigenes Audit

Am 13. September fand ein rückblickendes Audit jeder gespeicherten Prüfsitzung (1.385 davon), dass der billige Arm nicht so blind war, wie das Protokoll behauptet hatte. Seine Sitzungen hatten unter anderem die Issue-Tracker der Ziele selbst abgerufen: Issues, die genau die Funktionen und Objekte benennen, um die es in mehreren Befunden des Auditors ging. Keine dieser Seiten nennt die Mechanismen des Audits, niemand hat also einen Antwortschlüssel gelesen; aber der Satz des Protokolls, die Arme sähen „nur die angepinnte Quelle", war falsch, und die Kontaminationskontrolle, die wir gefahren hatten, war eine kalte Gedächtnis-Sonde, die einen Abruf zur Laufzeit nicht erkennen kann. Die Sitzungen des Apparat-Arms waren von seinem eigenen Treiber gelöscht worden; seine Exposition ist daher nicht mehr feststellbar und wird es nicht werden.

Eine Nachuntersuchung am selben Tag ging Befund für Befund vor. Bei BDK liegen zwei der acht dem billigen Arm gutgeschriebenen Zeilen auf der Funktion, die in den abgerufenen Issues genannt wird; die anderen sechs zeigen keine erfasste Überschneidung. Bei FROST liegen drei der fünf gutgeschriebenen Zeilen auf genau dem Parameter, um den es im einen abgerufenen Issue geht: ein direkter thematischer Treffer, nicht bloß Erreichbarkeit, auch wenn das Issue den Mechanismus nirgends nennt. Selbst wenn man dem billigen Arm nur die unkorrelierten Zeilen gutschreibt (sechs von acht, zwei von fünf), fand er bei beiden Zielen immer noch mindestens so viel wie der Apparat; die Richtung steht also, der Abstand nicht. Und die Nachuntersuchung ließ sich nicht abschließen: die Sitzungsprotokolle des billigen Arms waren von der eigenen Aufräumroutine des Werkzeugs innerhalb von Stunden nach dem ersten Audit gelöscht worden, und sein roher Befundtext war nie gesichert worden; die vollständigen Abruflisten und die zeitliche Abfolge je Befund sind damit nicht mehr rekonstruierbar.

Was das umstößt: die Recall-Zahlen der billigen Stufe als saubere Zahlen. Was es nicht umstößt: dass die Messung stattgefunden hat, dass die Orakel extern waren, dass Vorabregistrierung und blinde Bewertung real waren, und (der Befund, auf den es ankommt) dass die Filter-Prüfinstanzen des Apparats Befunde gelöscht haben, die ein professioneller Auditor als real eingestuft hatte. Das wurde durch das Lesen der Verwerfungen der Prüfinstanzen selbst festgestellt, nicht über die Recall-Zählungen. Beide Audits liefen beim selben Modellanbieter wie der Orchestrator; sie stehen mit diesem Etikett in der Akte.

Fünf weitere Schwächen, die die Akte trägt, die meisten von Prüfinstanzen gefunden und nicht von uns: der blinde Bewerter stammte vom selben Modellanbieter wie der Orchestrator und wie die Zusammenführungsinstanz des Apparats, erzwungen durch Verfügbarkeit und abgemildert durch Quellenprüfung, aber ein Korrelationskanal in einem Experiment über Dekorrelation; dieselbe fremde Modelllinie, die den billigen Arm fuhr, saß bei beiden Zielen auch als Erreichbarkeitsprüfer des Apparats, ein Teil der Recall-Lücke ist also eine Linie, die sich über Rollen hinweg mit sich selbst uneinig ist; der billige Arm lief dünner als vorab registriert (keine separate Tracker-Prüfung, keine separate Kontrollsuite), und bei Ziel 1 wurde das Ergebnis der Gedächtnis-Sonde nie ins Laufprotokoll geschrieben; der Apparat lief mit zwei Finder-Linien gegen ein vorab registriertes Minimum von drei, eine Version in voller Stärke könnte also besser abschneiden, auch wenn die Verluste von den Filtern kamen, an denen ein dritter Finder nichts ändert; und ein dritter blinder Bewerter, der die sieben Apparat-Befunde bei Ziel 2 neu bewertete, stimmte bei sechs überein und drehte den ausschlaggebenden, weshalb dort 0–1 steht und nicht 0.

Was Ihnen das bringt

Nichts auf dieser Seite ist eine Aussage über Trefferquoten; es ist das Gegenteil. Was es ist: die Fähigkeit, diese Messung zu fahren, vorab registriert, blind bewertet, gegen ein öffentliches Audit, mit einer Kontaminationsprüfung, die untersucht, was eine Prüfinstanz abgerufen hat statt was sie erinnert, und die das Sitzungsprotokoll zum Zeitpunkt der Bewertung in einen dauerhaften Speicher kopiert, weil die Protokolle hinter diesem Audit noch am selben Tag verschwunden waren. Diese Fähigkeit wird in derselben Revision unseres Fallberichts übernommen, die diese Messung veröffentlicht, und das Erste, was damit gemessen wurde, waren wir. Als wir im September 2026 den Markt durchsucht haben, fanden wir keine andere Prüfpraxis, die einen kontrollierten Vergleich ihres eigenen Produkts veröffentlicht, geschweige denn einen, den sie verloren hat. Das ist eine Aussage darüber, was in der Akte steht, nicht darüber, wer besser ist; der nächste billige Durchgang schlägt uns vielleicht wieder, und wenn er das tut, lesen Sie es hier.


Grenzen, die hierher gehören: zwei Ziele, eines davon mit einem Nenner von vier Zeilen; die Recall-Zahlen des billigen Arms sind abrufkontaminiert und die Exposition des Apparat-Arms ist nicht mehr feststellbar; der Bewerter kam vom selben Anbieter; die Kosten wurden in Modellaufrufen gezählt, was der billigen Stufe schmeichelt (ihr einzelner Durchgang bei Ziel 1 war der teuerste gemessene Aufruf); die Analyse, welche Treffer des billigen Arms einer abgerufenen Seite folgten, ist unvollständig und lässt sich nicht mehr abschließen. Die Aussage unseres Fallberichts, es sei kein kontrollierter Vergleich durchgeführt worden, war bei der Niederschrift wahr und seit dem 14. August veraltet; die mit dieser Notiz veröffentlichte Bibliotheksrevision trägt die Messung und beide Audits. Wenn hier etwas falsch ist, korrigieren wir es schriftlich auf dieser Seite.

← Alle Notizen