Clarify how esperanza transactions look in presence of SegWit
#212 will make segwit not just the default but required for all transactions. That gives several improvmements: Simpler code (easier to maintain and review) as we do not need to differentiate between segwit and non-segwit; safer transaction (no malleability); less number of address formats to support (courtesy to discussions with exchanges/wallets, but in principle).
ADR-3 makes the segwit merkle tree root part of the header.
ADR-21 introduces a new merkle root for esperanza transactions.
So how does that work. It would be fine, especially since we separated them now, that esperanza transactions are just not subject to segwit (personally I do not see much sense in that), but then:
- Does the segwit merkle root tree comprise commits (= esperanza transactions) and non-commit transactions (= coinstake + payment transactions) or will there have to be a second merkle root tree?
Admin commands which are esperanza transactions too and enumerated in ADR-21 and counted as commits do rely on segwit for the public keys if I am not mistaken.
In order to reap the benefits of especially the simpler code transactions should look the same (i.e. segwit serialized) – which also was a design considerations in modelling esperanza on-chain communications as transactions, to make them part of the existing transaction-structure.