My source is the code itself, but you could also use the wiki's documentation about the on-disk data format.
It's fundamentally just a big array of one entry per block space. It was never too big for an average computer to handle - otherwise Minecraft wouldn't have been able to exist yet (maybe that's why it didn't exist until the time that it did) but they've gotten a lot less efficient since then, in the name of flexibility.
Before Minecraft existed I played Cube 2 on "coop edit" mode. Its world structure is an optimization you might be interested in: it represents the whole game world (of fixed size) as an octree. So the map starts as a node with 8 child slots (one for each corner of a cube); each is either completely solid, completely empty, or another node, recursively down to some maximum depth. Therefore Large empty areas and large solid areas are stored in about the same amount of space as small empty areas and small solid areas.
I set up two old computers to play some Minecraft with my youngest kid. Unfortunately it turns out recent versions are much slower than old ones. I have not bothered to bisect it to figure out exactly what version(s) killed performance. My weakest old computer can run the latest version with 1-2 fps. It can run 1.12 with at least around 30-40 fps, which is more than enough for me to be able to enjoy the game (being old enough to have grown up in an era when we were happily playing flight sims at 5-10 fps). Anyway it is nice that the launcher makes it possible and easy to go back and play older versions. I much prefer drm-free games, but at least supporting old versions like this is better than 99% of games.
Older versions of Minecraft are better; they've added too much junk to newer versions. I stick to 1.6.3, 1.7.10, 1.12.2. Heard they added a bunch of telemetry and ban capabilities in 1.18+, for which mods are needed.
DRM-free Minecraft launchers exist, mostly forks of MultiMC5. Now if only offline installers existed...
It's fundamentally just a big array of one entry per block space. It was never too big for an average computer to handle - otherwise Minecraft wouldn't have been able to exist yet (maybe that's why it didn't exist until the time that it did) but they've gotten a lot less efficient since then, in the name of flexibility.
Before Minecraft existed I played Cube 2 on "coop edit" mode. Its world structure is an optimization you might be interested in: it represents the whole game world (of fixed size) as an octree. So the map starts as a node with 8 child slots (one for each corner of a cube); each is either completely solid, completely empty, or another node, recursively down to some maximum depth. Therefore Large empty areas and large solid areas are stored in about the same amount of space as small empty areas and small solid areas.