After a While working with ethereum, I felt ethereum is not only public and also naked because whatever input data that we sent to contract function, it is visible to everyone when looked into the transaction hash details on sites like etherscan. I think it is main security hole of Ethereum. No one wants to be wondering on roads naked right! So, Is there any way to hide or encrypt input data that sent to contract for not to show up on etherscan?? have a look at picture
All data is public on Ethereum.
That doesn't mean you can't put sensitive data on the blockchain. You just have to encrypt it first i.e. if you want some data only to be visible to one specific user, then you can encrypt the data with their public key. This would result in only that particular user being able to decrypt the sensitive information. Please note however, you must encrypt the data in advance of sending it to the blockchain due to its nature.