Hello everyone
I recently started working with smart contracts on the Ethereum network, utilizing OpenZeppelin's architecture.
As I learn more about this sector, I feel how important security is in the development of smart contracts. Given the potential financial ramifications and the irreversibility of blockchain transactions,
I would like to know what the usual coding standards and practices are for building secure smart contracts.
Thanks in advance for your efforts;
1 Like
A great resource to start with is this GitHub from Trail of Bits (a reputable smart contract auditing firm).
Some distilled principles (but by no means exhaustive)
- keep the codebase simple;
- download tools like Slither or Hardhat to test the project as you go;
- if your intention is to roll out the project to a production scale, be sure to get an audit before it is rolled out;
- don't play around with inline assembly unless you are an absolute master at it;
- again, make sure that functions are simplistic and unit tests are frequently used to test these functions; and
- use online resources and ask for help. The biggest pitfall to many projects is arrogance and thinking you can write perfect code and understand everything (not for a moment suggesting you are!).
In that GitHub I linked you a really good point made is: read the Solidity documentation provided these sections reveal non-obvious language behaviors.
I hope this helps, ask any questions and I'd love to help 
2 Likes