了解新的以太坊开发语言Vyper

Vyper是一种以太坊智能合约开发语言,专注于提高代码的安全性和透明度,通过简化语法和限制复杂性,降低智能合约遭受攻击的风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vyper是一种全新的以太坊开发语言,主要用于商用区块链,对区块链开发者来说可以提高安全性。

Vyper是一种通用的实验性编程语言,可编译为EVM(以太坊虚拟机)字节码,Solidity也是如此。但是,Vyper旨在大规模简化流程,以便创建更易于理解的智能合约,这些合约对所有相关方更加透明,并且被攻击的点更少。

任何针对EVM的代码都必须是超高效的,以最大限度地减少智能合约执行所需的gas,因为与低效代码的合约实际上需要更多的以太执行,并且可能很快变得非常昂贵,特别是在微处理器等用例中交易。最终的结果是Vyper看起来在逻辑上类似于Solidity,在语法上类似于Python,但没有很多面向对象编程范例——可能需要一个新的范式定义用于交易编程。

现在学习这些逻辑和语法上的差异将有助于你成为世界级的Vyper开发人员,因为截至2018年6月,Vyper仍处于v0.1.0-beta.1版本!

比较Python,Vyper和Solidity

在这里,我们介绍了Vyper高级的“原因”——为我们分析和编写Vyper代码提供了一个重点,包括智能合约。

关键改进1:简单

Vyper不包含大多数程序员熟悉的许多构造:类继承,函数重载,运算符重载和递归。对于图灵完备语言而言,这些都不是技术上必需的,并且它们通过增加复杂性来避免安全风险。由于这种复杂性,这些结构将使得智能合约由非专业人员进行审计时难以理解,如在Solidity合约中所见。

不常见结构是修饰符(这使得编写误导性代码变得太容易),内联汇编(这会使Ctrl+F中断)和二进制固定点(二进制固定点通常需要近似值)。

关键改进2:安全

用Vyper开发者自己的话说,Vyper“如果为了提高安全性的目标,它会故意禁止一些事情或者让事情变得更难。”

因此,Vyper并不是Solidity的全部替代品,而是一种在安全性至关重要的地方使用的优秀语言,例如用于处理患者健康元数据的智能合约或用于去中心化AI的模型渐变。

Vyper代码和句法差异

Vyper的构建尽可能与Python类似,同时努力实现安全性和简单性的目标,因此语言的整体感觉是相同的,尽管有许多不同需要注意。

执行文件

虽然Python脚本执行为

python file_name.py

使用vyper编译脚本

vyper file_name.vy
状态变量

状态变量是永久存储在合约存储中的值,可以是任何类型,例如:

exampleStateVariable:int256。
mapping

Vyper合约包含的第一件事是合约存储字段,例如代币余额映射:

balance: public(wei_value[address])

这是一个定义键和相应值的状态变量。

Vyper映射基本上是初始化的哈希表,如上所示,所以“每个可能的密钥都存在,并映射到一个字节表示全为零的值:一个类型的默认值。”

关键数据不存储在映射中,而只是存储在keccak256哈希中,以查找其值。

在定义balance时,给出了类型public(),然后是映射语法:首先给出wei_value的值类型,然后是方括号中的键(地址),这类似于Python对数组的处理。

定义

你会注意到Vyper在定义名称(如balance)时使用冒号而不是Python的等号,尽管Python 3.6包含与变量注释相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值