In raiden network, Why do you use a merkle balance proof instead of just a seriliazed list of transactions?
also in the smart contract for the hashlock, you use a merkle tree, whats the purpose of this?
This is explained in their Specification https://raiden-network.readthedocs.io/en/stable/spec.html:
The merkle tree data blocks are composed of the hashes of the locks. The unique purpose of the merkle tree is to have an O(log N) proof of containment and a constant O(1) storage requirement for the signed messages. The alternative is to have linear space O(n) for the signed messages by having a list of all the pending locks in each message.