一、智能合约设计模式概述

合约的公开性、回调机制,每一个特点都可被利用,作为攻击手法,稍有不慎,轻则合约形同虚设,重则要面临企业机密泄露的风险。所以,在业务合约上链前,需要预先对合约的安全性、可维护性等方面作充分考虑。

IEEE收录了维也纳大学一篇题为《Design Patterns For Smart Contracts In the Ethereum Ecosystem》的论文包含18种设计模式,涵盖了安全性、可维护性、生命周期管理、鉴权等多个方面。

图片

二、通用常见的几种

  1. 安全性(Security)

    1. Checks-Effects-Interaction - 保证状态完整,再做外部调用

    2. Mutex - 禁止递归

  2. 可维护性(Maintaince)

    1. Data segregation - 数据与逻辑相分离

    2. Satellite - 分解合约功能

    3. Contract Registry - 跟踪最新合约

    4. Contract Relay - 代理调用最新合约

  3. 生命周期(Lifecycle)

    1. Mortal - 允许合约自毁

    2. Automatic Deprecation - 允许合约自动停止服务

  4. 权限(Authorization)

    1. Ownership

  5. 行为控制(Action And Control)

    1. Commit - Reveal - 延迟秘密泄露

    2. Oracle - 读取链外数据

Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。

更多推荐