Verify your instrument: the research discipline that decides whether your findings are real

Known formally as Instrument Verification in the BlazePhoenix whitepaper.

BlazePhoenix Engineering · updated 2026-07-29 · 11 min · written from the deployed bytecode

By Mitra (@Sigmacrit) — anonymous developer of the BlazePhoenix protocol. The code is the résumé.

Abstract in 15 languages · resumo · resumen · 摘要 · 要旨 · ملخص

EnglishMost contested findings are faults in the measurement, not the system. A negative result is a hypothesis, not a finding; severity is measured after reachability, never asserted before it; and self-consistency is exactly what a wrong number has with itself.

PortuguêsA maioria das descobertas contestadas são falhas na medição, não no sistema. Um resultado negativo é uma hipótese, não uma descoberta; a severidade mede-se depois da alcançabilidade, nunca se afirma antes; e a auto-consistência é precisamente o que um número errado tem consigo mesmo.

EspañolLa mayoría de los hallazgos disputados son fallos de la medición, no del sistema. Un resultado negativo es una hipótesis, no un hallazgo; la severidad se mide tras la alcanzabilidad, nunca se afirma antes; y la autoconsistencia es justo lo que un número equivocado tiene consigo mismo.

FrançaisLa plupart des découvertes contestées sont des défauts de la mesure, pas du système. Un résultat négatif est une hypothèse, pas une découverte ; la sévérité se mesure après l'atteignabilité ; et l'auto-cohérence est exactement ce qu'un nombre faux a avec lui-même.

DeutschDie meisten strittigen Befunde sind Fehler der Messung, nicht des Systems. Ein negatives Ergebnis ist eine Hypothese, kein Befund; Schwere wird nach der Erreichbarkeit gemessen, nie vorher behauptet; und Selbstkonsistenz ist genau das, was eine falsche Zahl mit sich selbst hat.

РусскийБольшинство спорных находок — ошибки измерения, а не системы. Отрицательный результат — гипотеза, а не находка; серьёзность измеряют после достижимости, а не утверждают до неё; а самосогласованность — именно то, что неверное число имеет само с собой.

TürkçeTartışmalı bulguların çoğu sistemin değil ölçümün hatasıdır. Olumsuz sonuç bir hipotezdir, bulgu değil; şiddet, erişilebilirlik ölçüldükten sonra belirlenir; ve öz tutarlılık, yanlış bir sayının kendisiyle sahip olduğu şeydir.

العربيةمعظم النتائج المتنازع عليها أخطاء في القياس لا في النظام. النتيجة السلبية فرضية لا اكتشاف؛ تُقاس الخطورة بعد قابلية الوصول لا تُدّعى قبلها؛ والاتساق الذاتي هو بالضبط ما يملكه الرقم الخاطئ مع نفسه.

हिन्दीअधिकांश विवादित निष्कर्ष मापन की खामी होते हैं, तंत्र की नहीं। नकारात्मक परिणाम एक परिकल्पना है, निष्कर्ष नहीं; गंभीरता पहुँच मापने के बाद तय होती है, पहले नहीं; और आत्म-संगति वही है जो एक गलत संख्या स्वयं के साथ रखती है।

日本語争点になる指摘の多くは、システムではなく計測の欠陥です。否定的結果は発見ではなく仮説。深刻度は到達可能性を測った後に決めるもので、前に主張するものではありません。自己整合性とは、誤った数値が自分自身と持つ性質にすぎません。

中文多数有争议的发现是测量的缺陷,而非系统的。阴性结果是假设,不是发现;严重性应在可达性被测量之后判定,而非事先断言;而自洽,恰恰是一个错误数字与它自己所具备的性质。

한국어논쟁이 되는 발견 대부분은 시스템이 아니라 측정의 결함입니다. 부정적 결과는 발견이 아니라 가설이며, 심각도는 도달 가능성을 측정한 뒤에 정해집니다. 그리고 자기 일관성이란 틀린 숫자가 자기 자신과 갖는 바로 그 성질입니다.

Bahasa IndonesiaSebagian besar temuan yang diperdebatkan adalah cacat pengukuran, bukan sistem. Hasil negatif adalah hipotesis, bukan temuan; severity diukur setelah keterjangkauan, bukan diklaim sebelumnya; dan konsistensi diri persis yang dimiliki angka salah dengan dirinya sendiri.

বাংলাবিতর্কিত অধিকাংশ ফলাফল সিস্টেমের নয়, পরিমাপের ত্রুটি। নেতিবাচক ফল একটি অনুমান, আবিষ্কার নয়; তীব্রতা নাগালযোগ্যতা মাপার পরে নির্ধারিত হয়, আগে দাবি করা হয় না; আর স্ব-সঙ্গতি ঠিক তা-ই যা একটি ভুল সংখ্যা নিজের সঙ্গে রাখে।

FilipinoKaramihan sa pinagtatalunang natuklasan ay depekto ng pagsukat, hindi ng sistema. Ang negatibong resulta ay hipotesis, hindi tuklas; ang severity ay sinusukat matapos ang reachability, hindi iginigiit bago iyon; at ang self-consistency ay iyon mismong taglay ng maling numero sa sarili nito.

Security research on deployed code is an empirical discipline, and empirical disciplines have a failure mode that has nothing to do with the system under test: the instrument is wrong. A test harness, a simulation, a spreadsheet, a monitoring dashboard — each is a piece of software that can be defective in exactly the way the thing it measures can. When it is, the result is not noise. It is a confident, specific, wrong conclusion, and confident wrong conclusions travel further than uncertain right ones.

The rules below are stated as engineering discipline because each of them exists to prevent a specific class of confident error.

A negative result is a hypothesis, not a finding

The single most useful habit: when a probe reports that something is broken, the first hypothesis is that the probe is broken. Several results that read cleanly as protocol defects turn out, on investigation, to be faults in how they were measured — a harness that set up state the system can never reach, a comparison against a number computed by the wrong path, a simulation that skipped a step the real flow performs.

This is not scepticism for its own sake. It is a cost asymmetry: publishing a wrong finding costs credibility that takes years to rebuild, while spending an extra hour validating the instrument costs an hour. Verify your own instrument before you believe what it tells you about the system.

Severity is measured after reachability, never asserted before it

A severity rating is a claim about the WORLD — how bad can this get, how often, starting from states that actually occur. It is not a claim about the code path. Assign it from an algebraic argument and you will eventually assign it from an algebraic argument that is wrong.

The instructive failure looks like this: a bound is asserted ("this variable is capped, therefore that branch is unreachable, therefore the defect is minor"), several conclusions are built on the bound, and the bound turns out to be false because the reachable state space is wider than the argument assumed. Everything downstream inherits the error — including, in the worst case, severity ratings communicated publicly to the researchers who reported the issue.

The corollary is sharper still: a branch believed to be dead is not dead until reachability has been MEASURED. Deleting code on the strength of an unverified argument is how a live path gets removed from a deployed system. Measure first; delete second.

A correctness fix is a change, and changes regress

Fixes are written under pressure, in the region of the code that was just proven fragile, by someone who has spent hours convincing themselves the old behaviour was wrong. That is the highest-risk edit in the entire lifecycle, and it is routinely subjected to the least review.

The regression that matters most is a swap of failure MODES. Replacing tolerant arithmetic with strict arithmetic in a hot path is correct in the small — and if the quantity can genuinely reach the strict bound, it converts a wrong-number problem into a frozen-protocol problem, precisely when the system is already under stress. A correctness fix that introduces a liveness failure has not improved safety; it has moved it into a dimension nobody is watching.

Self-consistency is what a wrong number has with itself

Protocols publish figures for trustless verification, and users, dashboards, monitors and test suites all check the system THROUGH those figures. That makes the reporting surface the highest-leverage place a defect can hide: a bug that corrupts the instrument rather than the value is simultaneously invisible to every other dimension.

The wrong test is to check that the published views agree with each other. Two views computed from the same faulty helper agree perfectly and are both wrong; self-consistency is exactly the property a wrong number has with itself. The right test rebuilds every published figure from PRIMITIVE state, by an independent implementation, and compares. That is also why duplicate implementations of the same published quantity are a security problem rather than an aesthetic one — any figure computed in two places will eventually diverge, and the divergence is found only when a third, independent computation exists to expose it.

A checklist that generalises

For any system that distributes value, the following are checkable rather than aspirational: every accumulator is advanced before any write that changes its inputs; distribution and collection move in the same atomic step; no multiplier is keyed to a stored value that time can invalidate; every clock advance has a named, reachable destination for the value it represents; every published quantity has exactly one implementation; a participant absent for a window receives nothing from that window; the same operation costs the same regardless of which transaction drives it; every published figure is reproducible from primitive state by an independent party; every health metric has been deliberately driven into a known-bad state to prove it responds; and severity is assigned after reachability is measured.

The last item on any honest version of this list is the one that matters most: the dimensions absent from your map are where the next defect lives. A finding that appears in a dimension nobody had named is not bad luck — it is the predictable consequence of an incomplete map, and the correct response is to widen the map rather than to patch the instance.

Do not trust this page — reproduce it

Every claim above is checkable against the chain. Start here:

Before publishing any finding, rebuild the number your instrument produced using a second, independent implementation from primitive state — if the two disagree, you have measured your harness, not the system

Contracts are verified on every chain we deploy to — addresses in the protocol manifest. Deeper formal treatment: the whitepaper (PDF). Standards cited: EIP-20

Share this article · join the discussion

Related engineering