Identifying boot loaders

Is there any way to read a bootloader from program space?

No; the memory protection bits are currently set to disallow this :frowning:

I'd like to try to identify which bootloader I'm actually using.

You can do this during a "verbose" upload. Somewhere in that log (near the beginning) is a section that looks like:

avrdude: Recv: . [03] 
avrdude: Recv: . [10] 
         Hardware Version: 3
         Firmware Version: 4.4
avrdude: Send: A [41] . [84]   [20] 
avrdude: Recv: . [14]

The number in the "Firware Version" line is ... the optiboot bootloader version.
Very old Unos may show 3.3, current production version is 4.4, and the latest optiboot repository has 5.0.
(unfortunately, if someone has built a custom version of optiboot, they PROBABLY didn't change the version number.)