Spec-freeze guarantee: verify forever

The dispute packet format, at a given schema_version (e.g. dispute_packet.v1), is frozen. A packet built today that verifies against verify.py today will still verify against a future verify.py that still understands dispute_packet.v1 -- new fields get added additively, in a new schema version, never by silently changing what an existing version's fields mean.

What this actually rests on

What a NEW major schema version means

A breaking change to what a field means, or to which fields are required, gets a NEW schema_version string (e.g. eventually dispute_packet.v2) -- never a silent redefinition of dispute_packet.v1. A verifier that understands both versions can check either kind of packet correctly; a verifier that only understands v1 will cleanly reject a v2 packet (rather than silently mis-verifying it) because the schema_version check fails closed.

← Back