当前位置: 首页 > news >正文

2019智能合约开发新趋势

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

上汇智网,用互动方式学习以太坊、比特币、EOS、tendermint等更多区块链开发教程。

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

1. Waves RIDE

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

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

2. Plutus (Cardano)

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

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

3. Scilla (Zilliqa)

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

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

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

4. ewasm (Ethereum)

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

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

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

5. JavaScript (Lisk)

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

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

6. Rust (via ewasm, Cardano client)

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

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

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


学习交流qq群:
2019智能合约开发新趋势

原文链接:智能合约开发新趋势2019 - 汇智网

转载于:https://blog.51cto.com/13692892/2337852

相关文章:

  • Tmux教程
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • echarts的各种常用效果展示
  • 查询数据核心语法
  • 亚洲诚信联合又拍云升级云端SSL证书服务
  • Android性能UI卡顿
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【记一次pull request的惨痛教训】不可见的分隔符之Zero-with-space
  • 在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案[转]
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • 电子书下载:Programming Entity Framework DbContext
  • C++ int转string
  • 反射相关函数获取枚举描述函数
  • 关于Repeater如何获取控件对象
  • 5分钟快速建立项目版本控制
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • JS字符串转数字方法总结
  • ReactNative开发常用的三方模块
  • Travix是如何部署应用程序到Kubernetes上的
  • 聊聊flink的TableFactory
  • 试着探索高并发下的系统架构面貌
  • 数据可视化之 Sankey 桑基图的实现
  • 听说你叫Java(二)–Servlet请求
  • 通信类
  • Hibernate主键生成策略及选择
  • zabbix3.2监控linux磁盘IO
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (done) 两个矩阵 “相似” 是什么意思?
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)一些感悟
  • .form文件_一篇文章学会文件上传
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .Net Core与存储过程(一)
  • .net 生成二级域名
  • .netcore如何运行环境安装到Linux服务器
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @html.ActionLink的几种参数格式
  • @Transactional类内部访问失效原因详解
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [autojs]autojs开关按钮的简单使用
  • [AutoSar]BSW_Com02 PDU详解
  • [C++] sqlite3_get_table 的使用
  • [C++]C++基础知识概述