So dApps are frontend + contract. Users interact with smart contracts via frontend. Do users i.e. people should be aware of how the contract is designed while using any dApp? are their any risks of giving or not giving users the details about smart contract of their dApp?
Yes interacting with the contract in a naive way can expose you to risks as if you have signed transactions that are not intended. To avoid this it is good to pay attention to the information given by metamask that is:
- the function you are performing
- and the address of the contract (update Metamask if you don’t have these informations).
For more security it is recommended to look at the code on etherscan (often trusted contractors publish their codes) and/or simply see the frontend go by and use your own node (e.g. Geth).
I would say it depends on how your users interact with the contract. If they are using their own assets (Ether/tokens) - as is the case typically with dApps - then one might claim that they should know what is happening. But if users use centralized wallet's assets and they don't really even realize they are using a dApp then they don't need to know.
But even if they use their own assets you should consider how much information they need. You can compare the process to buying goods online, for example games (think of Steam). You simply send money to some place and trust that the other party does what you expect. The store has its reputation at stake and you don't have actually any idea what happens in the background.
In the same fashion users don't necessarily need to know what happens in the background, but in the case of dApps they often at least have the option of finding it out. If you use something like MetaMask to make payments the users need to at least press some Accept button to make the payment but in the same fashion in online store they just press some Accept button to make the payment without knowing much else of what is happening.
One of the main ideas of blockchains is transparency. In that sense it would be good to allow users all the possible chances of finding out what is happening - access to the smart contract(s) source code and other relevant data.