Also, on another note, is an address just a public-key?
I believe this has already been answered for you here:
If you don't want to click on the
http://en.bitcoin.it/wiki/Address link, I can explain that the public key is hashed using SHA-256. That hash is then hashed again using RIPEMD-160. A 1-byte version number is prepended to the hash, a 4 byte checksum is appended to the hash, and then that resulting value is encoded with Base58Check encoding. The result is a bitcoin address.