智能合约开发语言已经被Solidity统治了一段时间,它用于开发能够在以太坊虚拟机EVM上运行的智能合约。不过Solidity有一些严重的问题,包括算术溢出、类型错误以及曾经冻结了3亿美圆的delegatecall漏洞。全部这些漏洞都是在开发语言层面存在的问题。换句话说,若是有一个好点的开发语言,原本应该能够创造更安全的智能合约。文本将列出在2019年值得关注的区块链智能合约开发技术趋势。html
上汇智网,用互动方式学习以太坊、比特币、EOS、tendermint等更多区块链开发教程。git
2019年,Solidity的挑战者终于来了。github
Waves RIDE是一个图灵不完备(没有循环或递归)的、受Haskell启发的函数式编程语言,用于Waves区块链。它的特色包括静态类型、惰性评估、模式匹配和用于决定交易是否容许完成的断言表达式。目前图灵完备的版本也在开发中。Wave的智能合约支持目前在主网上已经激活。咱们应当能够在2019年看到第一批Waves的dApp。web
官方地址:https://docs.wavesplatform.com/en/technical-details/ride-language.html编程
Plutus是另外一个类Haskell的函数式编程语言,用于Cardano区块链。Cardano计划在2019年有两个大的发布:Shelley提供彻底去中心化和抵押功能,而Cardano-CL则是支持可编程智能合约的虚拟机。安全
官方地址:https://cardanodocs.com/technical/plutus/introduction/编程语言
Scilla是一个认证过的智能合约开发语言,它在设计时就考虑了分离计算过程与效果,这意味着计算和状态迁移的通讯是严格隔离的,这使得Scilla智能合约更容易测试,而且能够静态验证以最小化发生错误的机会。ide
Zilliqa的主网计划在2019年1月底上线。函数式编程
官方地址:https://scilla-lang.org/函数
ewasm不是一个智能合约开发语言,而是一个编译器的生成目标,它容许以太坊开发者使用其余语言(例如Rust、C++等)开发智能合约并编译为以太坊接受的WebAssembly。
ewasm是WebAssembly的一个安全子集,它是web平台上相对新出现的编译目标。方便的是,wams(以及ewasm)模块能够在任何JavaScript项目中使用。对于大多数区块链代码来讲,一般75%以上的代码根本都不是智能合约 —— 而是使用JavaScript与智能合约进行通讯的代码。ewasm和JavaScript使用一样的绑定和模块支持机制。
官方地址:https://github.com/ewasm/design
List是一个区块链开发平台,它支持开发者使用JavaScript为特定应用开发并建立定制区块链,从而避免了以太坊的扩容问题。List容许开发者建立本身的侧链来管理全部与特定应用的区块链操做,所以它不须要与其余应用竞争主链上的计算资源。目前List没有开发本身的智能合约编程语言或者VM,其交易能力相似于比特币。
官方地址:https://lisk.io/
Rust是一个相似C的底层开发语言,包含一些相似Haskel的安全特性,例如获得保证的常量引用以免意外修改、静态阻止空指针异常、有状态类型只容许访问当前状态下的有效操做、模式匹配分析以保证函数完整性(一个不匹配的模式将致使编译时错误)...基本上Rust相似于C++和Haskell的纯优势的继承者。
Rust能够编译为ewasm,或者用于构建区块链的客户端代码,例如Cardano。List的模块也可使用Rust开发,而后编译为wasm导入到List项目中。
官方地址:https://www.rust-lang.org/
学习交流QQ群:
原文连接:智能合约开发新趋势2019 - 汇智网