I know transaction input data is public and can be seen on e.h. etherscan. But can't I encrypt the param with a salt and decrypt it in the contract? I know that contract storage can also be retrieved, so I would hardcode the salt when it is needed in the code, instead of storing it. Contract is only available in bytecode if I understood correctly, so if I use a random string as function name I should be good?
EDIT: More Context: The use case is a smart contract which is part of a trading strategy. The contract makes certain trading decisions based on input parameters. If those input parameters were visible one could easier guess the strategy of the system and copy it.
Recently I found this contract and analyzed it a bit. The method name not found in the signature database, obviously. Is that the reason why etherscan can not decode the input parameter? Additionally some transactions have a "Flashbots" and "Private Transaction" flag, how do you achieve that, is this just Flashbots service? So Flashbots has a deal with some mining pools it seems?