what is the phonological change that caused the voicing alternation / difference between the words breath and breathe?
- word-final devoicing
- intervocalic voicing
To the extent that it's reliable, a section in the Wikipedia article about Middle English phonology says
In Old English, [v], [ð], [z] were allophones of /f/, /θ/, /s/, respectively, occurring between vowels or voiced consonants.
There are many remnants of this today, without a general rule other than that the voiced version tends to be a verb: grass/graze, glass/glaze, breath/breathe, loose/lose, house(n.)/house(v.), bath/bathe, cloth/clothe, half/halve, calf/calve, life/live. For the nouns ending in /f/, the voicing is often retained before the plural ending -s: half/halves, calf/calves, roof/rooves, hoof/hooves, wife/wives, life/lives, wharf/wharves, loaf/loaves.