|全面比较智能合约语言:Solidity仍是当前最佳选择


|全面比较智能合约语言:Solidity仍是当前最佳选择
本文插图

免责声明:本文旨在传递更多市场信息 , 不构成任何投资建议 。 文章仅代表作者观点 , 不代表火星财经官方立场 。
【|全面比较智能合约语言:Solidity仍是当前最佳选择】小编:记得关注哦
来源:巴比特
原文标题:深度 | 全面比较智能合约语言:Solidity仍是当前最佳选择
原文地址: https://www.researchgate.net/publication/344501038_Smart_Contract_Languages_A_Thorough_Comparison
年中时 ,IOSG博文有提到过 , 将会在形式化验证(Formal Verification)方向做一些布局 。 形式化验证是什么?
而前不久 , Algorand发布的 smart contract language 不是图灵完备的 。 智能合约开发语言图灵完备重不重要?
突然 , 我发现不仅要对Solidity智能合约开发语言里函数有所了解 , 更需要了解整个智能合约开发语言生态全景 。
本文就智能合约语言作一个比较 , 除了Solidity外 , 还有很多其它不为我们所熟知的智能合约语言 如Vyper、Mandala和Obsidian等在不同方向改善智能合约的编写 。
然而 , 就像我们通常只记得第一名一样 , 目前开发者主要也是集中于使用Solidity进行开发 , 虽然可能不会是最好的.
智能合约语言 , 还是一个很早阶段 , 未来会是一个什么样的情况呢?值得我们畅想 。
智能合约语言:一个彻底的比较
近年来 , 智能合约的发展越来越受欢迎 。 然而 , 这导致它成了恶意势力的新攻击对象 。 最近对智能合约的一些攻击已造成数千万美元的损失 。 由于智能合约本质上是不可变的 , 因此需要考虑新的方法来缓解这些攻击 。 检测软件缺陷的一种方法是使用静态代码分析工具 。 另一种方法是开发新的智能合约特定编程语言 , 通过设计 , 抑制已部署代码中某些类别的漏洞 。 像Solidity和Vyper这样的流行的智能合约语言正在迅速发展 , 但是研究人员也在用一些不太知名的语言来寻找新奇的改善灵感 。
本文 , 我们将探讨智能合约语言设计的现状 , 并比较这些语言及其对智能合约发展的适用性 。 将特别关注这些语言如何解决智能合约开发中固有的安全问题 。
一、 简介
智能合约的想法从上世纪90年代就已经出现了 , 但直到2009年区块链的出现 , 它们才得以实现 。 智能合约可以在不信任的环境中执行可信任的代码 。 这意味着参与者(用户、计算机应用程序和其他智能合约)可以确保智能合约已经执行 , 结果是合约执行情况的准确表示 , 而无需信任执行者或智能合约开发者 。 这完全是通过在分布式去中心化、全局和透明的区块链上托管智能合约来实现的 。 这种新的开发环境支持一种全新的应用程序 , 即去中心化应用程序(dApp) , 但给智能合约的开发者带来了一系列新的挑战 。
因为智能合约部署在区块链上 , 所以每个人都可以查看它们的源代码 。 区块链也是不可变的 , 智能合约的含义是 , 一旦智能合约被部署 , 就不能在更改 。 开发人员必须确保他们正在部署的代码是正确的并且没有bug 。 因此 , 需要新的语言来满足这种新环境的具体需求 。 智能合约中的漏洞可能代价高昂 , 不仅是在安全漏洞方面 , 而且在实际资金方面也是如此 , 因为智能合约通常管理加密货币的持有和分发 。
本文的其余部分安排如下:在第二节中 , 我们将介绍智能合约的背景和一些安全问题 , 在第三节中我们将讨论相关的工作 , 在第四节中我们将回顾当前的智能合约开发语言 , 在第五节中我们将讨论和比较这些语言 , 在第六节我们总结 。
二、背景
智能合约的概念最早由Nick Szabo在1996年提出[1] 。 直到2015年开发以太坊平台 , 开发真正的智能合约才变得可行 。 智能合约是一种自动执行的计算机应用程序 , 它执行合约时不需要来自第三方的验证 。 这意味着交易双方不需要相互信任就能进行交易 。


推荐阅读