What is gettxoutsetinfo used for? Could you please explain gettxoutsetinfo, what is it used for? What are the different fields in the output?

I assume that it's used to calculate the amount of the unspent trasaction outputs in the blockchain. What is bytes_serialized and hash_serialized?

{
  "height" : 225494,
  "bestblock" : "00000000eb0443fd7dc4a1ed5c686a8e995057805f9a161d9a5a77a95e72b7b6",
  "transactions" : 335344,
  "txouts" : 2221582,
  "bytes_serialized" : 72130407,
  "hash_serialized" : "3d14832b1b468f52ce942d4b9dc0c76a54fa6865207ff64540105403e3109f43",
  "total_amount" : 10886823.50380013
}
The command computes some statistics about the database of unspent transaction output that is maintained by a bitcoin node.


height: the height of the block up to which the UTXO set is accurate. This may be lower than the result of getinfo's height, as the node does not flush the UTXO set from caches after every block.
bestblock: the hash of the block up to which the UTXO is accurate.
transactions: the number of distinct transactions to which the unspent outputs belong (or: the number of transactions that have at least one non-spent output).
txouts: the number of unspent outputs
bytes_serialized: how large the database is in bytes, should we serialize it.
hash_serialized: the hash of the entire serialized database. You can use this value to compare with other nodes (if they are at the same block), to verify the UTXO set's integrity.
total_amount: value (in BTC) of all unspent outputs together. This is the best possible guess for the amount of currency in circulation.