0

I found multiple sources that are not precise enough for me to be sure. They seemingly disagree ever so slightly.

I need to know that, because I would like to proof the inclusion of a transaction to a client without revealing the actual content of other transactions. If that is possible.

I looked into the source of the likely responsible function BlockDataHash. It seems to just concatenate a data array containing the byte arrays of each transaction. But I'm not sure if that is the actual function used, nor do I know if this "Data" array contains the whole transaction or some hash thereof (maybe this "Merkle Tree Query Summary" in the proposal response part of the transaction).

The documentation doesn't solve it quite either. It refers to a Merkle tree which is so wide that it "corresponds to a simple flat hash of the concatenation of block data bytes". But I see no implementation of this Merkle tree in the source.

Lastly, I stumbled upon this stackoverflow answer by @yacovm. Which mentions that it is some concatenated hash. But there was a non efficient way to prove inclusion without handing out the entire block. But maybe this is referring to some construction with zero knowledge proofs.

Helix
  • 1
  • 1
  • According to [the link you provided](https://hyperledger-fabric.readthedocs.io/en/release-2.4/config_update.html?highlight=merkle#channel), the Fabric's Merkle tree is a very wide 4294967295-ary tree. It's [technically](https://en.wikipedia.org/wiki/Merkle_tree#Overview) still a Merkle tree, but it will never have a second level and is practically the same as a hash of concatenated data. – lenin May 09 '22 at 16:22
  • But what happens if I got some larger block data? Or is that impossible? – Helix May 10 '22 at 10:21
  • I suppose the value (approx. 4e9) means 4e9 leaf nodes, i.e. 4e9 transactions, which is huge (also, there is number of transactions limit in a block in Orderer config section). Even if it's just 4e9 bytes that would mean a block of over 4GiB in size, which might be possible, but unlikely to happen in practice. – lenin May 10 '22 at 10:46

0 Answers0