First, we are not respecting all of the batch parameters. Specifically, a user-submitted batch as a specific reference block number, but IIUC, we are ignoring it here. So, a user-submitted batch is different from a batch that is built by the node because the node always picks the latest block to "anchor" the batch against, while the user may have a different "anchor" block. In the future, we may have additional "user-defined" properties for a batch that may not be inferred from just the transaction list.