In ethereum, there is no reason a single contract (i.e. "program") ever needs to exist on a single computer for the lifetime of its execution, parts of it could run on different computers, and will actually run on many computers at once.
That's what I mean by running "as a protocol" and not on hardware... it's a higher level of abstraction.
It's a globally shared immutable linked list...
Umm... I'm pretty sure programs still execute on hardware...