This chapter discusses the necessity of formal verification for ensuring security in programs. It emphasizes the need for writing specifications to catch errors and prevent vulnerabilities, using the example of the DAO hack. The chapter also explores the limitations and challenges of formal verification.