Where does “sha'n't” come from?

Sha'n't is a contraction of English shall and English not, tracing through Middle English nat and Old English notu to Proto-Germanic skulaną and Proto-Indo-European roots newd-, kel-, and ne.

Ancestry of “sha'n't”, step by step

sha'n't traces back through two separate lines of ancestry.

via English Not

StepLanguageWordMeaning
1EnglishNot
2Middle Englishnotnot; nothing, nought; nobody, no person
3Middle Englishnoughtnothing, none; not; iniquitous, wicked
4Old Englishnōwiht
5Old Englishnenot; or, and not; "ne... ne..." is used to mean "...
6Old Englisheallescompletely, wholly, entirely; totally,...
7Old English-espossessive marker, indicating that an object...
8Proto-Germanic-asused in formation of adverbs
9Proto-Indo-European-ēsPrimarily forms adjectival bahuvrīhi compounds
10Proto-Indo-European-ess
11Proto-Indo-European-osCreates action nouns or result nouns from verbs;...

via English shall

StepLanguageWordMeaning
1Englishshall"I shall sing in the choir tomorrow"; "I hope...
2Middle Englishschal
3Old Englishsċeal
4Proto-West Germanicskulanto owe, to be obliged
5Proto-Germanicskulanąto owe; to be obliged to, have to; shall, will,...
6Proto-Indo-Europeansḱel-to be obligated, owe
7Proto-Indo-Europeanḱelh₁-to warm up, to be hot; to warm up, be hot
Every word from Proto-Indo-European -osEvery word from Old English -esEvery word from Old English ealles