Feature Request: Add K-Anonymity to Block and Tx Requests
The current block explorer implementation has privacy flaws as sensitive information can be learned from a user's requests.  This includes IP addresses which can be linked to transaction ID's when an average user browses a block explorer and doesn't take proactive precautions to mask their IP or browser fingerprint. Even using TOR may not be enough OPSEC in certain cases, as explained in [breaking monero](https://www.monerooutreach.org/breaking-monero/blockchain-explorers.html). This is a fundamental flaw and is difficult to solve. I know of one developer who advertised a [trust-less block explorer](https://github.com/duggavo/MoneroBlock) but after reviewing the code, that does not appear to be the case. 

I don't think it should be necessary for users to run their own node and explorer just to avoid compromising their privacy. Privacy by default is a core principle of Monero and I think this enhancement would emphasize that. 

[K-anonymity](https://en.wikipedia.org/wiki/K-anonymity) is a privacy property of anonymized data and has been used by sites such as [Have I Been Pwned](https://www.troyhunt.com/enhancing-pwned-passwords-privacy-with-padding/) to process sensitive passwords without having to trust the server.

I propose we add the capability to return multiple subsequent blocks and search the first-N characters of a tx_hash.

This would look something like this:
### Block
`User browses to a block explorer` -> `The user enter 2737640 into the search box` -> `the browser picks a random index from 0 - 999` -> `the browser sends a request to` /api/block/273**7040**/273**8040** -> `the 1,000 blocks are returned to the user's browser` -> `the browser searches the results for block 2737640 and disregards all other data` -> `Data for block 2737640 is shown`
### Tx Hash
`User browses to a block explorer` -> `The user enters a tx hash into the search box ` -> `the browser sends a request to /api/transaction/8dba0 (first 5 characters of a tx_hash)` -> `Server responds with all transaction hashes that have the same first five characters` -> `the browser searches for the transaction hash within the results and disregards all other data` -> `data for the requested transaction hash is shown`

I _believe_ the code modifications should be minimal. The only issue I foresee is figuring how to use a RNG without JavaScript and the obvious bandwidth overhead.