月亮链 月亮链
Ctrl+D收藏月亮链
首页 > MEXC > 正文

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

作者:

时间:1900/1/1 0:00:00

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

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

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

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

报告:上个季度加密行业的攻击次数同比增长192%:金色财经报道,根据 Immunefi 研究,上个季度加密行业的攻击次数同比增长 192%,从 25 次增加到 73 次。尽管出现了大幅上涨,但损失的总金额实际上下降了 64.4%,这可能是由于市场状况所致。Immunefi 报告说,在接受调查的安全公司的所有地毯拉动中,有 73.3% 发生在 BNB 链上.

Immunfi 的分类团队负责人 Adrian Hetman Tech 在报告中表示,BNB Chain 仍然存在开发人员使用分叉代码的严重问题,它的社区缺乏安全第一的方法,吸引了许多寻求快速赚钱方式的用户。这就是为什么我们继续看到这个生态系统中数量最多的漏洞利用和地毯式拉动。[2023/4/5 13:45:06]

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

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

互联网支付处理商Stripe正准备进行IPO:金色财经报道,互联网支付处理商Stripe正寻求进行IPO,并设定了 12 个月的时间表来探索这种可能性。Stripe 已聘请高盛和摩根大通就公开市场首次亮相的可行性和时机提供建议。一位知情人士告诉《华尔街日报》,Stripe 的高管要么将公司上市,要么允许员工私下出售股票。《华尔街日报》还报道称,Stripe 的管理层不太可能进行传统的首次公开募股,因为该公司不需要筹集额外资金。相反,该公司更有可能寻求直接上市。在这种情况下,Stripe 会将现有股票放在公共证券交易所,让市场决定价格。

Stripe 由爱尔兰企业家 John 和 Patric Collison 于 2009 年创立,为包括 Shopify 和 Instacart 在内的几家主要互联网公司提供支付处理解决方案。[2023/1/27 11:31:37]

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

20家公司完成英国央行的“CBDC样本钱包概念证明”项目招标申请:1月5日消息,英国央行(BOE)的“CBDC样本钱包概念和研究证明”项目共收到28份招标申请,但有8家供应商在提问阶段后没有继续进行。完成申请的有9家中小企业和11家大公司。英国央行表示,它希望为核心分类账、移动钱包应用程序和商家网站创建一个后端服务器。它尚未承诺开发样本钱包,只会使用概念验证 (PoC) 来扩展其知识。该项目合同将于1月31日授予选定的申请人。作为回应,英国央行还回答了申请人提出的 70 多个问题。

上月报道,英国央行正为“CBDC样本钱包概念证明”项目进行招标。[2023/1/5 10:23:31]

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

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

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

CryptoQuant报告:BTC矿工最新抛售可能会在短期内迫使价格下跌:8月15日消息,一位CryptoQuant分析师在研究报告中表示,BTC矿工最新抛售可能会在短期内迫使价格下跌。数据显示,在最近的18,000美元和22,000美元盘整阶段期间,矿工储备一直在缓慢增加,然而比特币价格在过去几周小幅反弹至25,000美元水平后,矿工却开始抛售BTC资产,如果这种情况持续,那么这些强制卖家造成的抛售压力可能会在短期内推低价格。

矿工储备是衡量当前存储在所有矿工钱包中比特币总量的指标,当该指标值上升时,表明矿工正在将BTC存入钱包,该指标值下降则表明矿工正在从其储备中转出BTC,这种趋势可能不利于加密货币价值增长。[2022/8/15 12:25:33]

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

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

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

泰国央行行长:不急于部署CBDC:5月27日消息,由于存在大量可行的在线支付替代方案,泰国银行(BoT)暂停其中央银行数字货币(CBDC)计划。

泰国央行行长Sethaput Suthiwartnarueput在2022年世界经济论坛上接受采访时表示,他认为推出CBDC的必要性并不那么紧迫。因此,泰国央行表示,泰国银行将在2022年第四季度继续进行零售CBDC公开试验。但是,这将是小规模的,金融机构将测试存款、取款和转账。

Suthiwartnarueput对Promptpay和其他的二维码支付等现有在线支付方式表示满意。他还声称,由于智能合约,使用区块链技术可能会导致“意想不到的后果”和设计问题。(Beincrypto)[2022/5/27 3:45:58]

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

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

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

此外从技术细节角度,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 世界而言,是一次大考,也是一场自我救赎的机会。

Foresight News

企业专栏

阅读更多

金色财经 Jason.

白话区块链

金色早8点

LD Capital

-R3PO

MarsBit

深潮TechFlow

标签:NBSBSPSOLSOLIDnbs币官网BSPAY价格1sol币发行数量Solidblock

MEXC热门资讯
DAO:以Snapshot为例 揭秘链上DAO治理模式_NAP

本文以当下DAO最常用的治理工具 Snapshot 为切入点,梳理DAO治理现状,阐明DAO治理领域的一些最新发展.

1900/1/1 0:00:00
区块链:中国Web3创业 要格外注意用户实名、KYC和反_NBS

区块链没有国界,但从业人员却有自己的国家。零知识证明等加密算法或许可以让你匿名,但法律却要求你实名.

1900/1/1 0:00:00
DAO:Arthur Hayes:DAO 是 AI 时代的公司 DEX 是 AI 时代的金融市场_CATAI

作者:Arthur Hayes;编译:Kate, Marsbit为我们优雅而混乱的宇宙带来秩序需要两个基本组成部分的结合。第一个也是最明显的一个是大量的能量消耗,混乱的成型是非常耗能的.

1900/1/1 0:00:00
BSP:从A参数看Curve技术细节和治理理念_nbs币最新消息

作者:/img/202386164250/0.jpg" />反对声音主要围绕两个角度,其中一个角度和 yETH vault 持续卖出 CRV 带来的抛压有关,这里暂不展开.

1900/1/1 0:00:00
BSP:项目损失用户承担?稳定币USD+一夜七折_BANKETH

7 月 25 日晚间,zkSync 上 TVL 最高的借贷协议  EraLend 突遭黑客攻击.

1900/1/1 0:00:00
HEART:SEC 就未注册证券和欺诈指控起诉 Richard Heart及其项目_SEC

作者:Nikhilesh De,CoinDesk;编译:松雪,金色财经美国证券交易委员会 (SEC) 起诉互联网营销人员 Richard Schueler(网名 Richard Heart)及其.

1900/1/1 0:00:00