Pourquoi deux auxiliaires pour former le passé composé ?

Bonjour,
Je connais les règles d'usage des auxiliaires être et avoir dans la formation du passé composé mais savez-vous pourquoi la langue française utilise deux auxiliaires différents ?
L'anglais se contente de to have et l'espagnol de haber.
Y a-t-il une explication "logique" ?
Merci !