Thanks Christopher.
> op_return outputs can be pruned because they are not spendable.
putting a hash on in the witness script data won't make things better(it would actually make them worse) and it definitely doesn't help"block size bloat".
Agreed
> I think I'm missing some context, but if you're using op_return purely
for timestamping I would recommend using pay 2 contract instead.
And
> If you're *actually* just doing timestamping you're better off using OpenTimestamps. But many times people think they're just doing timestamping in reality mere timestamps are insufficient for the task.
No, it's not only timestamping. Think of it as storing the URL of something in the OP_RETURN, only that instead of a URL it's a hash. But it's not just the hash of the work — IPFS adds a few other elements that affect this hash, so calculating it out of the file being added won't do. Also, the batching OTS uses and the batching we use (using IPFS directories) are incompatible.
> Can a miner identify which transactions came from your software simply by running a copy themselves? If so, then they can censor your transactions no matter how you encode them.
Miners would have to try and `ipfs cat` every OP_RETURN of every transaction (maybe filtering by byte length), which is a relatively high cost operation. But such a script is straight forward to write and can be hosted in a cheap AWS machine. We're talking about less than a week of coding and less than a hundred bucks of hosting, so if they're out to get you it won't make a difference.
> Choosing not to mine transactions is not censorship.
Is it not, if for political rather than economical reasons? These transactions pay fees like any other.