用 Go 创建一个新的智能合约语言 - 新项目动机,概念

栏目: Node.js · 发布时间: 7年前

内容简介:这篇文章讲述了目前有两个众所周知的区块链,比特币和以太坊。比特币有对于

这篇文章讲述了 为什么 我们开始为智能合约创建新的编程语言(使用 Go)。

动机

目前有两个众所周知的区块链,比特币和以太坊。比特币有 bitcoin script 和以太坊有 solidity 为它们自己的智能合约编程。两者都有利有弊。

对于 比特币 而言,它没有状态概念,并且 bitcoin script 是基于低级语言和很少的操作,因此它所能做的是有限的。另一方面,因为它的工作方式简单并且比特币是没有状态的,这样我们能轻松地进行静态分析,如这个脚本运行速度有多快。

对于 以太坊 而言,它有状态的概念,并且 solidity 被设计为高级语言,solidity 开发者能够更直观的编程,并且以太坊智能合约可以做很多事情(是的,这是因为以太坊是有状态的)。另一方面,因为它被设计为高级语言,开发者可以错误地将无限循环放在永远不会结束的智能合约上面,这会在网络上造成不良影响。加上以太坊已经表明它很难做静态分析。

用  <a href='https://www.codercto.com/topics/6127.html'>Go</a>  创建一个新的智能合约语言 - 新项目动机,概念

koa 概念

我们的灵感来自于 2017 年由 Russell O'Connor 撰写的话“ Simplicity: A New Language for Blockchains ”和 ivy_bitcoin 项目。

所以这就是“ koa ”生存的地方。 “ koa ”是高级加密货币语言。并且没有状态,静态分析很容易,比 bitcoin scripts 更多的操作。

架构

用 Go 创建一个新的智能合约语言 - 新项目动机,概念

koa 组件

koa 项目正在制作新的编程语言,所以我们需要编译器,由于要将源代码编译为字节码,所以我们需要进行词法分析和语法分析。最后字节码在 VM 上运行。我们团队成员首先去编写编译器,因此我们阅读了大量的书籍、博客文章和研究了流行的开源项目源码,像 Go-ethereum。

这就是它。这是我们 koa 项目的理念:制作新的高级智能合约语言,可以轻松实现静态分析。在下一篇文章中,我们将深入到每一个组件中。你可以从 此处 查看 WIP 开源项目。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

世界是数字的

世界是数字的

[美] Brian W. Kernighan / 李松峰、徐建刚 / 人民邮电出版社 / 2013-6 / 49.00

家用电器、汽车、飞机、相机、手机、GPS 导航仪,还有游戏机,虽然你看不见,但这些设备都有计算能力。手机通信网络、有线电视网络、空中交通管制系统、电力系统、银行和金融服务系统等基础设施背后无一不是计算机在支撑。如今的世界是数字的,而计算机和计算无处不在。这本书就是要告诉大家数字世界有关计算机的一切。本书没有高深莫测的专业术语,但它全面解释了当今计算和通信领域的工作方式,包括硬件、软件、互联网、通信......一起来看看 《世界是数字的》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码