In blockchain, a Merkle tree summarises all the transactions in a block by producing a digital fingerprint of the entire set of transactions, thereby enabling users to verify whether or not a transaction was included in a block.
Technically, a Merkle tree is a data structure constructed from the bottom up, starting with the hashes of individual transactions (i.e., the transaction IDs) and hashing paired data (the leaves), then pairing and hashing the results until a single hash remains: the Merkle root. Merkle trees in Bitcoin use a double SHA-256.
Each leaf node is a hash of transactional data, and each non-leaf node is a hash of its previous hashes. Merkle trees are binary (two child nodes under each node) and therefore require an even number of leaf nodes. If the number of transactions is odd, the last hash will be duplicated once to create an even number of leaf nodes.
In Proof of Reserves (PoR), a Merkle tree is an anonymised proof of client balances, allowing anyone to cryptographically verify that the exchange holds their funds and that their account balances are included in the PoR. The Merkle tree is created and maintained by an independent auditor.