浅析Vyper:一款受开发者欢迎的智能合约编程语言

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册

原文作者:Frank,Foresight News

昨夜开始,Curve 因受 Vyper 个别版本的重入锁故障影响,导致旗下 alETH/msETH/pETH 等稳定池被黑客攻击,由此引发一系列的 DeFi 次生灾害与加密世界震荡,至今仍在持续发酵中。

这也是 DeFi 世界罕见地直面针对智能合约语言层 Bug 的攻击事件。不过相比于加密世界中常常见诸报端的 Solidity 语言,Vyper 其实并不那么为人所熟知。

那 Vyper 究竟是什么,它在 DeFi 世界中扮演着怎样的角色,为什么它的 Bug 又会引起行业的高度关注?本篇文章 Foresight News 就带大家来了解一下目前正处于风口浪尖的 Vyper 语言。

浅析Vyper:一款受开发者欢迎的智能合约编程语言

Vyper:第二受欢迎的智能合约编程语言

Vyper 创建于 2017 年,在此之前,开发人员编写智能合约最常用的语言是Solidity。而Vyper 和 Solidity 一样,都是一种面向智能合约的编程语言,可编译为以太坊虚拟机(EVM)的字节代码,运行在 EVM 上。

不过 Vyper的编译器使用 Python 进行编写,是一种基于 Python 且兼容 EVM 的编程语言,具有强类型、小型编译器代码和高效的字节码生成的特点,这也使其成为想要进入 Web3 的 Python 开发人员的最佳选择之一。

这导致从采用率角度看,目前的Vyper 也是仅次于 Solidity 的「第二大兼容 EVM 的智能合约编程语言」,截至此次攻击事件发生前的DeFiLlama 最新统计数据显示:

在目前的 DeFi 开发格局中(TVL 占比维度),Solidity 以 94.71% 的市场份额占据绝对垄断地位,而 Vyper 以 3.04% 的市场份额位列第二名。

浅析Vyper:一款受开发者欢迎的智能合约编程语言

而第三名开始往后的 Rust(0.9%)、Cairo(0.53%)、Haskell(0.26%)已经是断崖式下降。

除了基于 Python 的特点之外,Vyper不采用面向对象模式、内联汇编,并且不支持代码重用、修饰符、继承、函数重载、递归调用、无限长度循环和二进制定长浮点等。

此外它还针对安全性、可读性、可审核性和 Gas 效率进行了优化:

安全性:支持在 Vyper 中构建安全的智能合约;

可读性:Vyper 的智能合约语言和编译器实现力求简单,以提高代码的可读性,尤其是对于没有使用 Vyper 经验的用户以及一般没有编程经验的用户;

可审核性:Vyper 代码最大限度地让人可读,且其简单架构减少了软件错误,提升了智能合约的可审计性;

Vyper 的创始人 John Max Skaller 曾表示,构建 Vyper 有两个原因:「首先,我喜欢 Python,特别是它的简单性,但我不喜欢它缺乏范围确定性,凡事都需要做大量更改来取得进展,因此我决定在保留与 Python 兼容性的同时,通过建造高级得多的编程语言,并在其中建造函数性编程语言的某些概念来改正这些问题。

第二个原因是性能。我有一个称之为 interscript 的主要 Python 程序,一个有读写能力的编程工具,它受到 Python 中缺乏良好结构和性能问题的困扰」。

总的来说,Vyper 的设计初衷是为了创建出智能合约参与方易懂的透明智能合约简化流程,以主打可读性与可审核性,从而确保安全。

Vyper 的优劣势

本章节谈及的 Vyper 优劣势,主要是相比Solidity语言,毕竟从上文提到的市场份额维度,其它的智能合约语言暂时还未形成较大的气候。

首先,Vyper 相比 Solidity 的最大优势之一,就是它基于 Python 开发的特性,因此虽然 Vyper 的功能和流行程度不如 Solidity,但对于熟悉 Python 的开发人员来说,它是理想的可选语言。

同时,Vyper 编译器还选择将局部变量存储在内存中而不是堆栈上,这使得合约更加简单和高效,并解决了其他高级语言中常见的「堆栈过深」的问题。

Vyper 也提供了更多内置函数,以确保几乎每个 Solidity 和 Yul 中的功能在 Vyper 中也可以实现。开发者通过内置函数可以访问低级位运算、外部调用和代理合约操作,通过编译时提供覆盖文件可以实现自定义存储布局。

而 Vyper 相比Solidity的劣势也很明显,主要源于它是一种相对 Solidity 较新的语言,所以首当其冲自然是开发者维护和社区工具层面的短板:

Vyper 至今仍然缺乏 Solidity 所拥有的广泛社区支持——Solidity 有大量优秀的开发工具可供使用,像 OpenZeppelin 为安全的智能合约开发提供开源库,以及 Remix 在线 IDE 和本地开发人员环境 Hardhat 等 IDE,为其提供了允许轻松开发 DApp 的工具和功能。

截至发文时,GitHub 数据显示,Solidity 的贡献者为 568 人,而 Vyper 为 189 人,相差 3 倍。

浅析Vyper:一款受开发者欢迎的智能合约编程语言

不过 Vyper 虽然没有丰富的的开发工具套件,但它有更紧密集成的工具,并且也可以插入到 Solidity 开发工具中——如 Titanaboa 解释器,具有许多与 EVM 和 Vyper 相关的内置工具,可用于实验和开发;Dasy,作为一种基于 Vyper 的 Lisp,具有编译时代码执行功能。

此外从技术细节角度,Vyper 缺少修饰符、类继承和递归调用,并且编程语言不是图灵完备的。

当然这些大部分是Vyper 特意提供更少的功能,旨在提升安全性和可审计性,以使合约更安全和易于审核,但这也使得开发人员需要额外的工作来解决这些限制,从而意味着本就不占人力优势的 Vyper 注定开发效能偏低。

Vyper 的影响力从何而来?

目前来看,此次 Vyper 故障只涉及 0.2.15、0.2.16 和 0.3.0 等几个特定版本,且从上文也可知,使用 Vyper 编写的头部 DeFi 项目的体量并不大,仅占不到 5% 的 TVL 市场份额。

那为何此次 Vyper 的故障却造成了如此大的影响?

简言之,虽然在主流 DeFi 协议中,主动使用 Vyper 语言进行开发的项目并不多,且此次出现问题的是 Vyper 的几个特定版本,但有一个头部 DeFi 项目却是基于 Vyper 开发:

没错,正是 Curve,主要原因似乎与上文提到的Gas 优化特性有关——因为 Curve 合约较为复杂,Vyper 使得这些复杂性变得更易于管理,并进一步节省 Gas(其它基于 Vyper 开发的知名项目则屈指可数,如 Uniswap v1 版本、第一个 ETH 2.0 存款合约等)。

由于 Curve 已经成为 DeFi 世界甚至整个链上金融的关键基础设施,所以在层层嵌套之下,Curve 的稳定池本质上就是绝大部分协议的底层资金与收益来源,这也是此次安全事件发生至今,JPEG'd、Alchemix、Metronome、deBridge、Ellipsis Finance 等余震不断的关键原因。

不过 Vyper 的新版本已经修复这个漏洞,但由于受影响的 Curve 稳定池合约不可升级,因此无法进行部署升级,只能选择废弃对应合约,将资金撤出。

小结

总的来看,此次安全事件之所以大家会心有余悸,主要是因为智能合约语言层的 Bug 风险,已经远超 DeFi 协议本身或者说智能合约逻辑的范畴。

试想一下,如果此次不只是 Vyper,而是连 Solidity 也同样出了问题,那么链上所有的 DeFi 协议可能都几难幸免,我们甚至会真的面临「DeFi 不存在了」的风险。

但祸兮福之所倚,这次 Curve 也算被动掀开了对智能合约语言层进行攻击的问题盖子,让大家意识到了这个可能,对 DeFi 世界而言,是一次大考,也是一场自我救赎的机会。

本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://czxurui.com/zx/36994.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年07月31日
下一篇 2023年07月31日

相关推荐

  • 合约倍数是什么意思,合约里的倍数是什么意思

    一、合约里的倍数是什么意思合约里的倍数是指交易金额相对于标的物的数量的放大程度。详细解释如下:在金融业务中,合约通常指的是金融衍生品合约,如期货、期权等。这些合约允许投资者通过少量现金投入,就能参与到大量的标的资产交易中。倍数在这里起到了关键作用,它代表了

    2024-12-23 10:00:01
    1 0
  • 比特币怎么做期货,什么是比特币期货合约

    一、币圈包括期货吗币圈里面的期货不能叫期货,因为这不是正经的合规合法的期货,所以叫了一段时间后,被币圈里面的人改了名字,现在币圈里面的期货都叫“合约”。但是长时间那么叫也习惯了,异客在这里就暂时先不改这称呼了,毕竟换汤不换药,大家都知道是什么回事。异客一直

    2024-12-22 19:00:01
    4 0
  • 永续合约什么情况下爆仓,永续合约爆仓了会欠钱吗

    一、永续合约会爆仓吗永续合约会通过自动减仓来减少对手的盘仓位,这样就降低了市场风险。同时永续合约的价格设计机制,也让其不容易被恶意爆仓,但是永续合约也会爆仓,只不过没有分摊和插针。所以永续合约投资并不是没有爆仓的风险,就看投资者怎么去操作了。二、永续合约爆

    2024-12-22 16:00:01
    2 0
  • 虚拟币区块怎么查询,如何查区块链合约地址信息

    一、怎么查询所有区块链公链公链在哪里查询公链在浏览器查询。随着区块链的大热,越来越多的科技公司开始研究和开发区块链。在区块链迅速发展的同时,也有少部分项目方打着区块链的名号,在市面上进行招摇撞骗。如何判断公链真假,对于现在许多想要进行数字货币交易的群体来说

    2024-12-22 04:30:01
    4 0
  • hotcoin交易平台是什么,Hotcoin是什么合约交易所

    一、热币Hotcoin交易所靠不靠谱1. Hotcoin(热币)交易所是一个靠谱的平台,拥有全球最大的用户增长之一。2.该平台专注于提供数字资产兑换交易服务,并且致力于区块链技术的创新与研发。3. Hotcoin旨在为全球用户提供一个安全、便捷、高效的数字资产兑换环境,努力成为全球领

    2024-12-20 10:00:01
    7 0
  • usdt现货是什么意思,usdt永续合约是什么意思

    一、砸盘吸筹是什么意思庄家坐庄时的巨大资金要想悄无声息地就进驻到某一只上市公司股票中,也非一日一时之功。往往需要在相对的价格低位上反复震荡,或者通过长期横盘的方式令短线客忍无可忍.最后敬而远之:或者通过上蹄下跳的股价跳跃方式引诱散户难耐寂寞而低抛高吸,使之最

    2024-12-18 02:30:01
    10 0

发表回复

8206
验证码

评论列表(0条)

    暂无评论

ok交易所
已有100万用户加入ok交易所

立即下载