形式驗證在部署前數學上證明代碼的正確性,而漏洞獎勵則在代碼寫完後捕捉漏洞。兩者各有優點——形式驗證在源頭防止錯誤,但需要大量的前期投資。漏洞獎勵成本效益高,但對問題的反應是在部署後。OpenZeppelin的經過審計的合約顯示出與未經審計的代碼相比,關鍵漏洞少了99.5%。然而,即使是經過審計的合約也可能存在漏洞——記住Cream Finance的閃電貸攻擊嗎?多重簽名錢包需要多個批准才能進行交易,減少單點故障的風險。然而,它們會減慢操作——Yearn Finance的治理多簽名曾經在一個關鍵漏洞期間花了24小時來批准一個緊急修復。自動化測試通過單元測試和集成測試捕捉了70-80%的常見漏洞。但像重入漏洞這樣的複雜攻擊常常會漏網之魚——正如在DAO黑客事件中所見,該事件利用了一個微妙的遞歸調用漏洞。