专栏首页汇智网教程2019年需要关注的区块链智能合约开发平台

2019年需要关注的区块链智能合约开发平台

智能合约开发语言已经被Solidity统治了一段时间,它用于开发可以在以太坊虚拟机EVM上运行的智能合约。不过Solidity有一些严重的问题,包括算术溢出、类型错误以及曾经冻结了3亿美元的delegatecall漏洞。所有这些漏洞都是在开发语言层面存在的问题。换句话说,如果有一个好点的开发语言,本来应该可以创造更安全的智能合约。文本将列出在2019年值得关注的区块链智能合约开发技术趋势。

2019年,Solidity的挑战者终于来了。

Waves RIDE

Waves RIDE是一个图灵不完备(没有循环或递归)的、受Haskell启发的函数式编程语言,用于Waves区块链。它的特点包括静态类型、惰性评估、模式匹配和用于决定交易是否允许完成的断言表达式。目前图灵完备的版本也在开发中。Wave的智能合约支持目前在主网上已经激活。我们应当可以在2019年看到第一批Waves的dApp。

官方地址:https://docs.wavesplatform.com/en/technical-details/ride-language.html

Plutus (Cardano)

Plutus是另一个类Haskell的函数式编程语言,用于Cardano区块链。Cardano计划在2019年有两个大的发布:Shelley提供完全去中心化和抵押功能,而Cardano-CL则是支持可编程智能合约的虚拟机。

官方地址:https://cardanodocs.com/technical/plutus/introduction/

Scilla (Zilliqa)

Scilla是一个认证过的智能合约开发语言,它在设计时就考虑了分离计算过程与效果,这意味着计算和状态迁移的通信是严格隔离的,这使得Scilla智能合约更容易测试,并且可以静态验证以最小化发生错误的机会。

Zilliqa的主网计划在2019年1月底上线。

官方地址:https://scilla-lang.org/

ewasm (Ethereum)

ewasm不是一个智能合约开发语言,而是一个编译器的生成目标,它允许以太坊开发者使用其他语言(例如Rust、C++等)开发智能合约并编译为以太坊接受的WebAssembly。

ewasm是WebAssembly的一个安全子集,它是web平台上相对新出现的编译目标。方便的是,wams(以及ewasm)模块可以在任何JavaScript项目中使用。对于大多数区块链代码来说,通常75%以上的代码根本都不是智能合约 —— 而是使用JavaScript与智能合约进行通信的代码。ewasm和JavaScript使用同样的绑定和模块支持机制。

官方地址:https://github.com/ewasm/design

JavaScript (Lisk)

List是一个区块链开发平台,它支持开发者使用JavaScript为特定应用开发并创建定制区块链,从而避免了以太坊的扩容问题。List允许开发者创建自己的侧链来管理所有与特定应用的区块链操作,因此它不需要与其他应用竞争主链上的计算资源。目前List没有开发自己的智能合约编程语言或者VM,其交易能力类似于比特币。

官方地址:https://lisk.io/

Rust (via ewasm, Cardano client)

Rust是一个类似C的底层开发语言,包含一些类似Haskel的安全特性,例如得到保证的常量引用以避免意外修改、静态阻止空指针异常、有状态类型只允许访问当前状态下的有效操作、模式匹配分析以保证函数完整性(一个不匹配的模式将导致编译时错误)...基本上Rust类似于C++和Haskell的纯优点的继承者。

Rust可以编译为ewasm,或者用于构建区块链的客户端代码,例如Cardano。List的模块也可以使用Rust开发,然后编译为wasm导入到List项目中。

官方地址:https://www.rust-lang.org/


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 区块链Oracle原理及实现

    区块链本身是封闭的。区块链的确定性模型基于这样一个事实:在交易执行时区块链不能执行任何来自外部的逻辑,所有的外部数据只能通过交易进入到系统中。预言机/Oracl...

    用户1408045
  • 数字货币交易行为的可视化分析

    理解中心化数字货币交易平台上的交易行为需要对它的几种钱包地址进行分析,本文采用可视化的方法来展示不同类型钱包地址之前的交易模式。

    用户1408045
  • 区块链数据分析基础工具 - BlockETL

    BlockETL软件包用于比特币区块链数据分析中的数据抽取/转换/加载(ETL),可以从原始的比特币区块文件中抽取区块与交易数据并加载入通用SQL数据库,以便于...

    用户1408045
  • python检测网络延迟

    py3study
  • centos 7.3 部署varnish缓存服务器

    一、简介 Varnish是高性能开源的反向代理服务器和HTTP缓存服务器,其功能与Squid服务器相似,都可以用来做HTTP缓存。可以安装 varnish 在任...

    小手冰凉
  • 微博爬虫

    全文简介 本文是用Python爬取微博移动端的数据。可以看一下Robots协议。另外尽量不要爬取太快。如果你毫无节制的去爬取别人数据,别人网站当然会反爬越来越严...

    企鹅号小编
  • 我向面试官讲解了单例模式,他对我竖起了大拇指

    单例模式相信大家都有所听闻,甚至也写过不少了,在面试中也是考得最多的其中一个设计模式,面试官常常会要求写出两种类型的单例模式并且解释其原理,废话不多说,我们开始...

    cxuan
  • 为什么 POSTGRESQL 给部分人一种,叫好不叫座的感觉

    最近看到有人说这样一个话题,postgresql 流行不起来,别学,还是某数据库有发展前途,换数据库不如自己加入到开发数据库的行列,改变那个数据库,不就行了。

    AustinDatabases
  • Python微博移动端爬虫实例

    ❈ 作者:麦艳涛,挖掘机小王子,数据分析爱好者。 ❈ 本文简要讲述用Python爬取微博移动端数据的方法。可以看一下Robots协议。另外尽量不要爬取太快。如果...

    企鹅号小编
  • Python微博移动端爬虫实例

    專 欄 ❈ 作者:麦艳涛,挖掘机小王子,数据分析爱好者。 ❈ 本文简要讲述用Python爬取微博移动端数据的方法。可以看一下Robots协议。另外尽量不要爬取...

    Python中文社区

扫码关注云+社区

领取腾讯云代金券