unitimes.io
全球视角,独到见解
智能合约开发语言已经被 Solidity 统治了一段时间,它用于开发可以在以太坊虚拟机EVM上 运行的智能合约。不过 Solidity 有一些严重的问题,包括算术溢出、类型错误以及曾经冻结了 3亿美元的 delegatecall 漏洞。所有这些漏洞都是在开发语言层面存在的问题。换句话说, 如果有一个好点的开发语言,本来应该可以创造更安全的智能合约。文本将列出在2019年 值得关注的区块链智能合约开发技术趋势。
2019年,Solidity 的挑战者终于来了。
01
Waves RIDE
Waves RIDE 是一个图灵不完备(没有循环或递归)的、受 Haskell 启发的函数式编程语言, 用于Waves区块链。它的特点包括静态类型、惰性评估、模式匹配和用于决定交易是否允许 完成的断言表达式。目前图灵完备的版本也在开发中。Wave 的智能合约支持目前在主网上 已经激活。我们应当可以在2019年看到第一批 Waves 的 dApp。
官方地址:
https://docs.wavesplatform.com/en/technical-details/ride-language.html
02
Plutus (Cardano)
Plutus 是另一个类 Haskell 的函数式编程语言,用于 Cardano 区块链。Cardano 计划在2019年 有两个大的发布:Shelley 提供完全去中心化和抵押功能,而 Cardano-CL 则是支持可编程智能合约 的虚拟机。
官方地址:
https://cardanodocs.com/technical/plutus/introduction/
03
Scilla (Zilliqa)
Scilla 是一个认证过的智能合约开发语言,它在设计时就考虑了分离计算过程与效果,这意味着 计算和状态迁移的通信是严格隔离的,这使得 Scilla 智能合约更容易测试,并且可以静态验证 以最小化发生错误的机会。
Zilliqa 的主网计划在2019年1月底上线。
官方地址:
https://scilla-lang.org/
04
ewasm (Ethereum)
ewasm 不是一个智能合约开发语言,而是一个编译器的生成目标,它允许以太坊开发者使用其他 语言(例如Rust、C++等)开发智能合约并编译为以太坊接受的 WebAssembly。
ewasm 是 WebAssembly 的一个安全子集,它是web平台上相对新出现的编译目标。方便的是,wams (以及ewasm)模块可以在任何JavaScript项目中使用。对于大多数区块链代码来说,通常75% 以上的代码根本都不是智能合约 —— 而是使用 JavaScript 与智能合约进行通信的代码。ewasm 和 JavaScript 使用同样的绑定和模块支持机制。
官方地址:
https://github.com/ewasm/design
05
JavaScript (Lisk)
List 是一个区块链开发平台,它支持开发者使用 JavaScript 为特定应用开发并创建定制区块链, 从而避免了以太坊的扩容问题。List 允许开发者创建自己的侧链来管理所有与特定应用的区块链 操作,因此它不需要与其他应用竞争主链上的计算资源。目前List没有开发自己的智能合约编程 语言或者VM,其交易能力类似于比特币。
官方地址:
https://lisk.io/
06
Rust (via ewasm, Cardano client)
Rust 是一个类似C的底层开发语言,包含一些类似 Haskel 的安全特性,例如得到保证的常量引用以 避免意外修改、静态阻止空指针异常、有状态类型只允许访问当前状态下的有效操作、模式匹配分析 以保证函数完整性(一个不匹配的模式将导致编译时错误)…基本上 Rust 类似于 C++ 和 Haskell 的 纯优点的继承者。
Rust 可以编译为 ewasm,或者用于构建区块链的客户端代码,例如 Cardano。List 的模块也可以 使用 Rust 开发,然后编译为 wasm 导入到 List 项目中。
官方地址:
https://www.rust-lang.org/
汇智网翻译整理,转载请标明出处。
【文章版权归原作者所有,其内容与观点不代表Unitimes立 场。转载文章仅为传播更有价值的信息,合作或授权联系请发邮件至 contact@unitimes.media或添加微信unitimes2017】
领取专属 10元无门槛券
私享最新 技术干货