On Fri, Dec 11, 2015 at 11:18 AM, Jorge Timón wrote: > This is basically what I meant by > > struct hashRootStruct > { > uint256 hashMerkleRoot; > uint256 hashWitnessesRoot; > uint256 hashextendedHeader; > } > > but my design doesn't calculate other_root as it appears in your tree (is > not necessary). > > It is necessary to maintain compatibility with SPV nodes/wallets. Any code that just checks merkle paths up into the block header would have to change if the structure of the merkle tree changed to be three-headed at the top. If it remains a binary tree, then it doesn't need to change at all-- the code that produces the merkle paths will just send a path that is one step deeper. Plus, it's just weird to have a merkle tree that isn't a binary tree..... -- -- Gavin Andresen