自选
我的自选
查看全部
市值 价格 24h%
  • 全部
  • 产业
  • Web 3.0
  • DAO
  • DeFi
  • 符文
  • 空投再质押
  • 以太坊
  • Meme
  • 比特币L2
  • 以太坊L2
  • 研报
  • 头条
  • 投资

免责声明:内容不构成买卖依据,投资有风险,入市需谨慎!

智能合约新星:Scilla与Vyper编程语言的崛起

2018-09-12 15:16:23
收藏

智能合约开发语言的发展与创新

Solidity与智能合约

区块链和智能合约的兴起引起了人们对构建去中心化应用(dapps)和利用智能合约实现实际应用的广泛关注。Solidity作为以太坊的智能合约语言,是以太坊公共区块链网络的主要编程语言,也是目前最受欢迎的智能合约语言。

尽管Solidity在以太坊智能合约编写方面取得了成功并得到广泛应用,但它仍然是一个相对较新的编程语言,自然存在一些漏洞和高级逻辑错误。出于对智能合约创建和编写安全性提升的需求,Vyper和Scilla等编程语言应运而生。

Solidity:以太坊智能合约的首选语言

Solidity由Gavin Wood于2014年提出,是编写智能合约的主要编程语言。它专为以太坊虚拟机(EVM)设计,并提供了详细的文档说明其功能和使用方法。

Solidity是一种高级编程语言,可编译为与EVM兼容的字节码并在以太坊节点上运行。值得注意的是,Solidity是一种相对简单的编程语言(与其他语言相比),其语法与JavaScript非常相似。作为一种在区块链上执行的智能合约语言,Solidity在设计时考虑了一些重要因素,包括智能合约需要具备确定性。

尽管Solidity广受欢迎,但作为EVM特定的编程语言,其使用范围仅限于以太坊平台。此外,高级语言的安全隐患促使人们更加重视智能合约审计以及更简单、更安全的语言。重大黑客攻击事件和研究报告揭示的漏洞规模,不可避免地带来了对更好智能合约实践的迫切需求。

Vyper:追求安全与简洁的实验性语言

Vyper是一种实验性编程语言,与Solidity类似,也是专门为EVM设计的。其语法与Python相似,像Solidity一样是面向合约的。

然而,Vyper的设计目标是安全性、简单性和可审计性。这主要是早期智能合约迭代中安全问题的结果。Vyper明确去除了以下特性:修饰符、类继承、函数和运算符重载、递归调用以及无限循环。值得注意的是,递归调用使得无法设置gas上限,可能导致gas限制攻击。此外,考虑到可审计性,Vyper移除了修饰符,因为它们可能使代码产生误导,难以从人类可读的角度进行解释。

Vyper不仅去除了易受攻击的特性,还增加了一些关键功能,包括边界和溢出检查、可判定性和强类型。在gas限制方面,可判定性使开发者能够计算函数调用gas消耗的精确上限。

Scilla:注重安全性的中级语言

Scilla是Zilliqa使用的中级智能合约语言,明确以安全性和智能合约安全性为设计目标。它特别注重提供智能合约的形式化验证。

形式化验证旨在智能合约被不可逆地提交到区块链之前,提供静态保证。这种验证方法在业内变得越来越普遍,Tezos和Cardano等多个平台都在积极追求和应用这项技术。形式化验证的使用应该大大减少有缺陷代码被提交到区块链的情况,从而降低第三方进行密集型智能合约审计的需求。

Scilla被精心设计得足够表达性以构建有用的dapps,同时仍能确保对合约行为进行形式化推理。与Vyre类似,其首要原则是简单性和安全性高于表达性。Scilla的一个重要区别在于它是一种中级语言,这意味着它旨在作为高级语言的翻译目标,随后编译成可执行字节码。因此,与Solidity等高级语言相比,理解这门语言更具挑战性。

结论

智能合约开发的持续创新无疑将见证更多面向合约的编程语言和解决方案的出现,以应对其安全性问题。考虑到以太坊等大型加密货币网络上转移的价值量,确保dapp和智能合约的安全性至关重要。

智能合约的初期迭代展示了其未来能力的巨大潜力。现在,新一代开发重点在于提高编程语言级别的安全性,以确保其可持续性。

展开阅读全文
更多新闻