  Smart contracts are blockchain-based algorithms that execute when specific
criteria are satisfied. They are often used to automate the implementation of
an agreement so that all parties may be confident of the conclusion right away,
without the need for an intermediary or additional delay. They can also
automate a process so that the following action is executed when circumstances
are satisfied. This study seeks to pinpoint the most significant weaknesses in
smart contracts from the viewpoints of their internal workings and software
security flaws. These are then addressed using various techniques and tools
used across the industry. Additionally, we looked into the limitations of the
tools or analytical techniques about the found security flaws in the smart
contracts.
