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

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

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

这篇文章讲述了 为什么 我们开始为智能合约创建新的编程语言(使用 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 开源项目。


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

查看所有标签

猜你喜欢:

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

Agile Web Application Development with Yii 1.1 and PHP5

Agile Web Application Development with Yii 1.1 and PHP5

Jeffrey Winesett / Packt Publishing / 2010-08-27

In order to understand the framework in the context of a real-world application, we need to build something that will more closely resemble the types of applications web developers actually have to bu......一起来看看 《Agile Web Application Development with Yii 1.1 and PHP5》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具