在最近回顧了一些高度複雜的漏洞(yETH、Balancer、Kyberswap Elastic)後的一些想法: 雖然實際的漏洞機制,即竊取資金的步驟,十分複雜,但實際的潛在漏洞往往相當簡單:四捨五入錯誤、精度損失、不夠約束的不變量等等。 在我看來,這些漏洞都簡單到大多數經驗豐富的研究人員至少可以將其識別為低風險/信息發現,但只有精英研究人員才能將其製作成關鍵漏洞。 我從中得到的啟示是,為了更好地保護協議,我們需要更清楚地了解系統的邊界,以便能夠明確定義和執行約束。 在漏洞獎勵和競爭性審計的模型下,我們優先考慮實際的漏洞,通過一種進攻性的安全方法。如此一來,我們可能無法保護系統免受已知和未知漏洞的攻擊,這是通過防禦性安全方法來實現的。 雖然進攻性方法令人興奮且光鮮亮麗,但在我看來,它的限制性更大。如果你發現了一個關鍵漏洞,這並不告訴你是否已經保護了系統免受其他漏洞的影響,但如果你添加了一個經過深思熟慮的約束,整個漏洞類別可能會被防止。