
用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
比推快讯
更多 >>- 现货黄金上破3300美元大关,为5月9日以来首次
- Apex Group 收购RWA公司 Tokeny 的多数股权
- 美 SEC 推迟对 XRP 和狗狗币 ETF 上市提案的决议,征求公众意见
- 纽约市市长Eric Adams成立加密货币咨询委员会
- 截至3月底Blackstone持有108万美元的贝莱德现货比特币ETF,或为首次报告持有加密产品
- OKX US CEO:OKX寻求在美国重建其“超级应用”
- 比特币向上触及107000美元/枚,日内涨1.34%
- 数据:5 月以太坊 DeFi 市场份额降至 50.88%
- 现货黄金突破3290美元/盎司,日内涨超60美元
- XRP 期货在芝商所上市首日名义交易量超 1900 万美元,超越 Solana 期货的上市表现
- Kamino Finance 计划将 Apollo Global 的代币化私人信贷基金引入 Solana DeFi 生态
- 谷歌发布Veo 3新款AI模型,可以同时生成视频和音频文件
- 桥水基金创始人瑞·达利欧:美联储处境艰难,不应降息
- 美 SEC 主席在国会听证会中接受质询:特朗普Meme币与孙宇晨关系引关注
- 美联储穆萨莱姆:通胀有所缓解,但高于 2%的目标
- FTX 还款将于 5 月 30 日开始,金额超 5 万美元债权人先行赔付 72.5%
- Bitwise 计划推出三只基于加密期权的收益型 ETF
- YieldNest 将于 6 月 3 日进行 TGE
- Stacks 发布新版路线图:包括 DeFi 增长计划与提升 STX 价值
- Bitfinex 报告:现货需求推动比特币上涨
- Santiment:比特币现货 ETF 过去 5 周净流入超 66 亿美元,通常为看涨信号
- K33:加密政策仍然是关键催化剂,需关注战略 BTC 储备潜在发展
- Jeffrey Wilcke 转入 Kraken 的 ETH 被新建地址提出可能是交易所风控操作
- Bancor 起诉 Uniswap,指控其 DEX 智能合约技术侵犯专利
- Solana 联创 Raj 警告称近期社交账户遭黑客攻击
- Jeffrey Wilcke 向 Kraken 转移的 105737 枚 ETH 被 12 个新建钱包提取
- Succinct 推出零知识虚拟机 SP1 Hypercube
- 摩根大通 CEO:经济衰退的可能性为 50%
- TON 基金会任命 Martin Masser 担任增长主管以推动全球生态扩张
- 阿根廷总统米莱关闭 Libra 丑闻的调查部门
- 知情人士:法国兴业银行将在以太坊上推出全球首个银行发行的美元稳定币
- Arkham:以太坊联创 Jeffery Wilcke 向 Kraken 转入价值 2.62 亿美元的 ETH
- 美联储传声筒Nick Timiraos:预计 4 月核心 PCE 上涨约 0.13%
- 观点:加密货币渗透华盛顿权力中枢,跃升为美国政治、资本与权力的核心变量
- Michael Saylor:比特币正改变股权资本市场
- 美 SEC 主席 Paul Atkins:将加强成本效益分析,审慎推进数字资产监管
- James Wynn 目前 40 倍杠杆持仓 2675 枚 BTC 多仓价值 2.79 亿美元
- 彭博社:马斯克的 xAI 将把 AI 内容带入预测市场 Kalshi
- Giza 公布 GIZA 代币经济学:总量 10 亿枚,22.21%分配给社区
- 嘉楠科技 2025 年第一季度总营收同比增长约 136%,达 8278 万美元
- LaserCat NFT 宣布将于 5 月 20 日正式开图
- Greeks.live:市场整体氛围偏看多,但波动率可能即将上升
- 马斯克:正推进对 OpenAI 的诉讼
- 美 SEC 代理监察长拟严打加密货币欺诈
- Glassnode:以太坊 Pectra 升级尚未推动网络参与度上升
- 马斯克:五年后仍将担任特斯拉 CEO
- 特朗普:我是财政鹰派
- 马斯克:计划本周在华盛顿与美国总统特朗普共进晚餐
- Moonbeam 推出 Web3 游戏中心,拟整合开发工具与竞技平台
- 德国政府 2024 年出售近 5 万枚比特币,错失 23 亿美元潜在收益
比推专栏
更多 >>观点
比推热门文章
- “Hawk Tuah”爆红女孩亲述:FBI突袭/SEC介入/死亡威胁…代言meme币惨变噩梦
- 【比推每日新闻精选】渣打银行:美 SEC 机构数据支持比特币在 2028 年达到 50 万美元目标价;现货黄金上破3300美元大关,为5月9日以来首次;美 SEC 推迟对 XRP和狗狗币 ETF 上市提案的决议,征求公众意见;资管巨头Blackstone截至3月底持有108万美元的贝莱德现货比特币ETF,或为其首次报告持有加密产品
- 现货黄金上破3300美元大关,为5月9日以来首次
- Apex Group 收购RWA公司 Tokeny 的多数股权
- 美 SEC 推迟对 XRP 和狗狗币 ETF 上市提案的决议,征求公众意见
- 纽约市市长Eric Adams成立加密货币咨询委员会
- 截至3月底Blackstone持有108万美元的贝莱德现货比特币ETF,或为首次报告持有加密产品
- OKX US CEO:OKX寻求在美国重建其“超级应用”
- 比特币向上触及107000美元/枚,日内涨1.34%
- 数据:5 月以太坊 DeFi 市场份额降至 50.88%