In this chapter, we introduced DApps and their characteristics. We explored the fundamentals of smart contracts, with particular reference to the Ethereum platform. We understood the potential risks associated with the presence of software bugs in smart contracts developed with Turing-complete programming languages. We also learned how to create and execute secure smart contracts using the best practices for assuring smart contract security.
In the next chapter, we will deal with threat prevention and analysis of the most common attacks targeting DApps.