
用Python进行DeFi应用的开发——不同的区块链项目是如何解决安全问题的?
作者: LongHash Justin Cai
Tezos(特所思)作为著名的 PoS 公链,其亮点并不仅仅只是 Staking,Tezos 的形式化验证特征同样也是其主要技术亮点之一。形式化验证能让 DeFi 的安全性方面如虎添翼,让用户对资金的智能合约安全更加有信心。
形式化验证方法和 DeFi 安全
DeFi 的爆发式增长吸引了不少开发者,著名的 DeFi 协议如 Compound、Uniswap、Syntheix 累计收获了上亿美元的资金。但是,DeFi 存在一个重大漏洞:安全性。
这个漏洞的代价是昂贵的,它给一些区块链项目(比如以太坊)的网络效应带来了负面的影响。过去几个月被攻击的 DeFi 项目就包括 Curve.fi、Lendf.Me、PegNet 等,其损失从数十万美元到数千万美元不等。tBTC 在上线几天后通过自查及时发现了 bug 并冻结了存币,避免了一场灾难。
而对于注重安全性的 DeFi 开发者来说,Tezos 的形式化验证方案能够在加强安全性的同时赋能 DeFi 应用。
在传统互联网应用中,如果服务器被黑客攻击,只需要对服务器端用户数据进行回滚就可以挽回用户损失。因此,重视用户体验的传统互联网应用可以以牺牲安全性换取速度和功能上的快速迭代。然而在 DeFi 应用中,由于区块链的不可篡改性,智能合约一旦上线并出现安全隐患,对用户造成的损失是巨大且不可挽回的。
因此,DeFi 应用开发的过程需要用大量的测试和昂贵的审计以获取足够的安全性,而反过来会牺牲迭代的速度,影响了产品的易用性。并且,因为安全审计的价格昂贵,很多开发者并没有能力发起 DeFi 应用。
区块链开发人员目前仍然是稀缺的,导致人工审计的成本非常高昂。因此越来越多地使用机器辅助验证是目前的趋势,而机器辅助审计中的形式化验证方法更是确保安全性的不二法宝。
形式化验证指的是用数学中的形式化方法对算法的性质进行证明或证伪,方法有两种:
一种是模型检验,即把系统所有可能的状态列出并进行一一检验,此种方法全自动化但只适合小型系统;
另一种是演绎验证,首先把系统代码标记成抽象数学模型,然后对定理进行证明,此种方法适合大型系统,但是首先需要人工将系统的运作方法转换成验证系统可以理解的语言。
形式化验证方法在很长一段时间里,由于其成本较高昂,主要应用于学术、国防军工、航空航天等领域,在商业领域应用较少。由于传统互联网应用与区块链应用的运行环境有着本质的不同,其开发流程也应当相应地进行调整,其中最关键点在于安全验证环节的投入比例。
函数式语言在公链领域的应用
许多区块链项目为了保证安全性,在底层架构、虚拟机或智能合约的语言方面,选择了函数式语言,如 Ocaml、Haskell、Erlang 等。函数式语言由于其严格的变量类型定义和编译检验,以及拥有较好的形式化验证工具链(比如 CoQ ),在安全领域拥有很好的口碑。常见过程式语言编写的代码,一般必须重新用函数式语言标记方能进行形式化验证。
我们看到,在以上项目中,Tezos 支持的智能合约高级语言的种类最丰富,不仅包括 Pascal, Ocaml, Haskell 等多种函数式语言,也包括了 Python 这一应用普遍的语言。而 Cardano、Aeternity 都需要开发者学习一门新的函数式语言,使得开发门槛变得较高。
Michelson 语言的安全特性
在智能合约语言的设计上,Tezos 采用了一种取长补短的创新方案。Tezos 的智能合约底层采用基于 Ocaml 的 Michelson 语言,而开发者实际接触的是 Python 等高级语言,并不需要了解 Michelson 语言本身。如此以来,可以结合 Michelson 语言更好的安全性与可审计性,与 Python 等高级语言的易于编程性。
Michelson 在架构上对标的是以太坊 EVM ,与 EVM 相比其相似之处有
1)是一种 stack 语言
2)使用链上存储
3)采用 gas 费用模型
4)图灵完备
Michelson 与 EVM 的主要区别是
1)静态类型
所有进入 Michelson 智能合约的数据,都需要明确定义其类型。避免了跟类型不匹配有关的程序 bug ,如浮点溢出、除以 0 等。
2)原子计算
一个 Michelson 智能合约必须完成执行后才能调用其它智能合约。这一点避免了以太坊上经常发生的 re-entrancy 攻击 (如著名的 DAO 攻击)。
3)明确的调用失败
执行期发生的失败只有三种,明确失败(用 FAILWITH 语句处理)、gas 耗尽、数量溢出。这一点避免了以太坊上常出现的隐含模代数、错误指令、stack 溢出等类型的常见执行期攻击。
4)严格的语义
大小写、空格、短行都有严格规范的要求,让代码审计变得更方便。
可以看到 Michelson 相比 EVM 在安全上有诸多的改进,可以更好地抵御以太坊上经常出现的攻击类型。
SmartPy 开发工具包
Tezos 上的 Dapp 开发者并不需要掌握 Michelson 语言 。这是因为开发者可以使用基于 Python 的 SmartPy SDK ,并将 Python 代码写的智能合约编译成 Michelson 语言。因此 Dapp 开发者只需要会 Python 就可以轻松上手。
SmartPy是一个Python 库,而 SmartPy.io 让用户能够在一个浏览器中执行 Python 脚本。Smartpy 的官方网站提供了一个在线编辑器(https://smartpy.io/demo/),Dapp 开发者可以直接用 Python 编写代码并编译成 Michelson 智能合约,然后部署到 Tezos 主网上。其使用界面设计相比以太坊的 Remix 在线编辑器更简洁明了,非常容易上手。Smartpy 还自带了一些现成的开发模版,方便开发者参考学习。
SmartPy.io 的界面如下。屏幕左侧区域是代码编写区,开发者可以轻松地使用 Python 来写入并编辑合约的代码。Smartpy 不需要像 Remix 一样分两步编译和执行,按一下代码区上方的执行按钮就一步搞定,非常方便。执行结果立马就可以在屏幕右侧显示出来,包括合约调用的入口、存储状态、编译的 Michelson 代码等。
除了在线编辑器,SmartPy 还有一个命令行版本 SmartPyBasic ,让开发者在本地环境也可以编译运行 SmartPy 代码。
部署的智能合约可以用 SmartPy Contract Explorer 进行查看,合约的当前状态和历史操作都一览无余。
目前 SmartPy 已经支持 Python 常见的许多功能,如本地变量,变量类型判断,Lambda 函数等。少数不支持的功能如 array,可以用 map 来代替。这也就意味着学习 SmartPy 不需要投入很多的时间和精力,开发者可以专注于实现更好的功能。
以下是一些关于 SmartPy 入门的训练课程:
Cryptoverse Wars: https://cryptocodeschool.in/tezos/overview/
Blockmatics SmartPy Developer course: https://cryptocodeschool.in/tezos/overview/
来源:LongHash
比推快讯
更多 >>- 新加坡华侨银行发行规模达 10 亿美元的区块链数字美国商业票据
- SharpLink Gaming 计划将其部分 ETH 质押进 Linea 主网
- 币安:Starpower (STAR) TGE 参与门槛为 224 Alpha 积分
- 香港特区政府筹备第三次发行数字债券
- 比特币财库公司 K Wave Media 收购 Rabbit Walk 多数股权以进军 Web3 内容市场
- 数据:8 月链上 TCG 平台交易额达 1.25 亿美元,环比增长 66%
- Messari:今年加密货币并购交易总额已达 119.8 亿美元
- 数据:当前加密恐慌贪婪指数为 49,处于中性状态
- 昨日美国以太坊现货 ETF 净流出 4.46 亿美元
- Arkham:已发现德国政府未能查获价值 50 亿美元的比特币
- 数据:过去 24h Binance 净流出 2.14 亿 USDT
- 纳斯达克上市公司 Blue Gold 计划推出由黄金支持的数字代币
- 数据:企业持有 BTC 数量在过去 9 个月翻了一番
- RootData:BB 将于一周后解锁价值约 717 万美元的代币
- Project Hunt:零知识应用程序的多模块生态系统 Manta Network 为过去 7 天被 Top 人物取关最多的项目
- Paradigm 联创:Tempo 构建 L1 而非以太坊 L2,以避免依赖以太坊进展
- 数据:某鲸鱼将 2074 枚 ETH 存入 Kraken,预计获利 607 万美元
- Arkham:已发现德国政府未能查处的 4.5 万枚 BTC,或仍由 Movie2K 运营者控制
- SEC 宣布成立国际欺诈工作组,以打击哄抬股价行为
- Cango 披露本周挖矿产出 150.3 枚 BTC, 总持仓量达 5277.1 枚 BTC
- 铁头空军巨鲸持续做空浮亏超千万美元,PUMP 单币亏损近 1300 万美元
- 分析师:比特币不再依赖减半周期,预测 Q4 能够达到价格峰值的人或对概率存在误解
- 美 SEC 推迟对灰度 DOT 现货 ETF 做出决议
- 数据:某巨鲸平仓 ETH 多头亏损 3539 万美元,转开 25 倍杠杆做空 BTC
- StablecoinX 与 TLGY 获得 5.3 亿美元融资,融资总额达 8.9 亿美元
- DMG Blockchain Solutions 公布 8 月挖矿产出 23 枚 BTC,比特币持仓量达到 324 枚
- WLFI:拉黑 272 个地址为保护用户资产安全,绝不会因正常参与市场而封禁账户
- 某新建地址向 Hyperliquid 存入 300 万 U 以开设 20 倍 ETH 多单
- Coinbase 上币路线图新增 Keeta (KTA) 和 Noice (NOICE)
- 特朗普签署行政令,调整关税政策生效范围
- SOL Strategies 获准于 9 月 9 日在纳斯达克上市,股票代码为 STKE
- 美股三大指数集体收跌,Strategy (MSTR)上涨 2.53%
- 美联储主席人选范围缩小至三人 特朗普重申支持哈塞特出任
- Strategy 未被纳入标普 500 指数
- 特朗普:利率水平过高,就业数据未体现更多因素
- 美共和党人正考虑修改规则,为特朗普的美联储理事会成员提名开辟快速确认通道
- 美参议院银行委员会的法案草案将质押、空投和去中心化实体基础设施网络从证券法中排除
- Ethena 基金会启动新的 3.1 亿美元回购计划
- 道琼斯指数收盘下跌 220.43 点,标普 500 和纳斯达克亦下跌
- 现货黄金升至3600美元,再创历史新高
- 美联储古尔斯比:需先审视通胀数据再决定利率政策
- 美联储古尔斯比,就业增长低于盈亏平衡水平
- 美联储逆回购操作接纳 209.97 亿美元对手方
- 以太坊 PoS 网络退出队列降至约 78.9 万枚,加入队列升至约 93.6 万枚
- 特朗普次子新书《围攻之下》将于 10 月 14 日出版
- Bitwise Avalanche ETF 已在特拉华州注册
- Marinade 宣布 3 亿枚 MNDE 已被永久销毁,约 4000 万美元
- 鲸鱼向 Hyperliquid 注入 500 万枚 USDC,加杠杆做多 HYPE 等多资产
- 美财长贝森特:美联储需重建独立机构可信度
- WLFI 过去一周将 272 个地址列入黑名单
比推专栏
更多 >>观点
比推热门文章
- 新加坡华侨银行发行规模达 10 亿美元的区块链数字美国商业票据
- SharpLink Gaming 计划将其部分 ETH 质押进 Linea 主网
- 币安:Starpower (STAR) TGE 参与门槛为 224 Alpha 积分
- 香港特区政府筹备第三次发行数字债券
- 比特币财库公司 K Wave Media 收购 Rabbit Walk 多数股权以进军 Web3 内容市场
- 数据:8 月链上 TCG 平台交易额达 1.25 亿美元,环比增长 66%
- Messari:今年加密货币并购交易总额已达 119.8 亿美元
- 数据:当前加密恐慌贪婪指数为 49,处于中性状态
- 昨日美国以太坊现货 ETF 净流出 4.46 亿美元
- Arkham:已发现德国政府未能查获价值 50 亿美元的比特币