A key can be a public key of a supported system ed25519, ECDSA (secp256k1) or, an ID of a smart contract. Public and private keys are generated by the corresponding algorithm and are unique to one another. If an account has an ed25519 key associated with it, then the corresponding private key must sign any transaction to transfer cryptocurrency out of it and update its properties. You can have a single key on an account or have a list of keys.