在設計階段,智能合約開發(fā)人員應考慮威脅建模和安全設計,從開發(fā)生命周期的一開始就實施識別系統(tǒng)潛在威脅并確定其優(yōu)先級的具體方案。所有安全假設,包括攻擊的預期復雜程度和手段,都應在設計階段明確定義和闡明。智能合約的設計應遵循已知的威脅建模實踐,并采用“攻擊者”的心態(tài),在設計系統(tǒng)時假設任何個人、硬件或服務都可能遭受攻擊。
與傳統(tǒng)合約相比,智能合約有三大特點:合約內容公開透明、合約內容不可篡改和永久運行。由于智能合約部署在區(qū)塊鏈上,其內容是公開透明的,并且無法被修改。運行在區(qū)塊鏈上的智能合約同樣被網(wǎng)絡節(jié)點共同維護,只要區(qū)塊鏈在,智能合約就能永久地運行下去。因此,智能合約具有去信任、安全、高效、無需第三方仲裁等優(yōu)點,無需第三方機構裁決,且不需要流程較復雜的外部監(jiān)管。但智能合約并不完美,其智能程度較低,當執(zhí)行條件涉及到外部信息時,需要對智能合約輸入相關的信息,才能觸發(fā)智能合約去執(zhí)行裁決。