主页 > imtoken官网下载1.0版本 > 第十八讲 | 智能合约和以太坊

第十八讲 | 智能合约和以太坊

imtoken官网下载1.0版本 2023-03-18 07:45:53

在上一篇文章中,我们介绍了区块链的核心技术,同时也介绍了一些项目。 但是,每个区块链都有自己的特点,接下来我们将详细解释每个项目。 今天我们就来说说智能合约和以太坊项目。

今天我们从智能合约的概念入手,聊一聊什么是以太坊项目及其发展历史。 最后给大家介绍几款钱包。 希望通过今天这篇文章的讲解,大家也可以尝试在以太坊上编写简单的智能合约。

智能合约的概念

不同于法律意义上的合约概念,区块链领域的合约表达的是一种可以“自主自理”的计算机协议。 这套协议具有自执行、自验证的属性。

从技术角度看,智能合约相当于一段预先指定逻辑和条款的计算机代码被激活并运行的状态。 同时,智能合约还提供了一个通用的用户界面,用户可以通过该界面与用户进行交互。

智能合约的概念早在 1990 年代就被提出。 这个人就是从事智能合约和数字货币研究的Nick Szabo博士。 Nick 于 1996 年在《Extopy》杂志上发表了对智能合约的描述,他认为智能合约是以数字形式指定的承诺,其中包含一组与多方执行相关的协议。

由定义可知,智能合约由多个协议组成,包括用户界面,可以表达用户承诺,可以安全高效地确定公网上的关系。

换句话说,智能合约是一种计算机处理的、可执行的合约条款交易协议以太坊的账户模型有哪几种,其总体目标是满足协议中设定的条件,如支付、抵押、保密协议等。 这可以减少合同欺诈造成的损失,降低仲裁和执行成本以及其他交易成本。

下面举一个实际的例子来说明。 今年4月9日,中国建设银行上海分行开设了一家“无人银行”。 银行里到处都是机器和显示屏,智能柜员机、VTM机、外汇兑换机、VR设备和两个机器人代替了传统的柜台。

这里的智能柜员机和外汇机器人可以看成是智能合约的一种表现形式。 用户在办理银行业务时,如办理大额汇款业务,程序中已经设定了业务流程和逻辑依据。 需要根据操作一步步进行,流程完成后即可获得收据。

siteqq.com 以太坊账户_以太坊的账户模型有哪几种_sitehqz.com 以太坊账户停付

在这里,“既定的业务流程、类似机器人的人机交互界面、相互约定和承诺”构成了智能合约的概念,甚至具有一定的法律效力。

Szabo提出的是智能合约的概念,我们举的例子都是智能合约的广义概念。 智能合约有多种实用形式,而区块领域的智能合约概念,我们实际上指的是基于区块链的形式。

开放网络在Saab的智能合约概念中提到,我们知道开放网络的基本要求是拜占庭容错。 通过上一篇的讲解,我们知道区块链天生就具有拜占庭容错的特性。 所以如果在区块链上实践智能合约的概念,两者会非常契合,天作之合。

比特币最早实践了智能合约的概念。 比特币脚本(bitcoin script)包含五个标准的交易脚本。 这些脚本的功能不仅提供普通的单人支付,还提供多方共同签名支付脚本称为多签支付,多签支付可以看作是Saab语义下的智能合约。

除了比特币,发扬智能合约概念的区块链项目还有以太坊。 接下来重点介绍以太坊项目。

以太坊及其历史

以太坊项目的目标是打造一个去中心化的下一代互联网应用平台,称为Dapp平台。

这些Dapp基于以太坊智能合约虚拟机开发、编译、部署,可以自定义业务逻辑。 部署后,可以看到整个网络并自动执行。 理想情况下,不会出现停机、审查、欺诈或第三方干预。

以太坊的核心概念

以太坊的账户模型有哪几种_sitehqz.com 以太坊账户停付_siteqq.com 以太坊账户

以太坊的核心概念包括:智能合约虚拟机EVM和Solidity编程语言、账户模型、以太坊和Gas、交易和消息。

1. 智能合约虚拟机EVM和Solidity编程语言

以太坊的核心概念首先是智能合约。

智能合约由两部分组成,一是开发语言,主要基于Solidity,在使用上非常接近Javascript语言,大大降低了Dapp开发者的学习成本。

Dapp 开发者编写代码后,使用 Solidity 将其编译成十六进制字节码,然后部署到 EVM 上,即向全网广播合约。 矿工打包后,会形成一个常年运行的Dapp。

另一部分是 EVM。 EVM即以太坊智能合约虚拟机,我们可以等同理解为Javascript、Python等脚本语言的执行引擎。

它是一个轻量级的虚拟机隔离环境。 它不提供对本地网络、进程和文件系统的访问。 它更像是一个封闭的容器。 在这个容器中安装了一个正在运行的Dapp,可以看成是一个无法与外界交互的Docker Container。

Dapp运行过程中,可以通过请求或者其他事件触发,然后执行相应的逻辑。 这些请求和事件是由以太坊上的交易产生的,而不是来自本地操作系统的事件。

Dapp运行过程中,状态每一次变化以太坊的账户模型有哪几种,都意味着全网同步更新,大家的计算结果是一致的。 这有两个特点:

以太坊的账户模型有哪几种_siteqq.com 以太坊账户_sitehqz.com 以太坊账户停付

所有Dapps的计算结果均通过全网共识,一经确认,难以伪造和篡改; 由于必须经过全网的共识,这就限制了全网的容量。

2.账户模型

以太坊不采用 UTXO 模型,与银行账户不同。 是以太坊开发者设计的账户模型。

以太坊上有两种类型的账户。 第一类称为合约账户CA(Contracts Accounts),第二类称为外部账户EOA(Externally Owned Accounts)。

简单理解就是:CA是智能合约代码的账户,EOA是人的账户; 所以CA可以存储和执行智能合约代码,其智能由EOA激活,不保存和存储私钥,合约账户可以调用其他合约。

EOA是一个由人直接控制的账户,可以存储以太币,向合约账户发送交易,触发既定逻辑。 EOA 账户由公钥标识并由相应的私钥控制。

当合约账户被调用时,其中存储的智能合约可以在矿机处的虚拟机中自动执行并消耗Gas。 如果 Gas 不足,将触发“Out of Gas”异常并终止执行。

无论是CA还是EOA,在以太坊中都被视为状态对象,也就是说这些账户都有自己的状态。 EOA有以太坊的余额状态,而CA除了余额还有更多的合约存储。 状态。

3. 以太坊和天然气

以太坊的账户模型有哪几种_sitehqz.com 以太坊账户停付_siteqq.com 以太坊账户

Gas 是执行智能合约操作的燃料。 智能合约的每一步都会消耗 Gas。 Gas 由以太坊的平台代币 Ethereum 转换而来。 最小单位是wei,1ETH相当于10的wei的18次方。

以太坊可以通过 PoW 挖矿产生。 目前以太坊主要采用GPU挖矿。 挖一个区块可以兑换5个以太币,叔块有一定的交易手续费和奖励。 今年4月6日,有消息称,知名矿机芯片厂商比特大陆为以太坊研发了一款ASIC专业矿机,效率是GPU的2.5倍。

4. 交易及消息

以太坊上的交易不同于比特币中的 UTXO 交易。 指EOA账户向另一个账户发送签名数据包的过程。 此过程产生的账户状态变化将存储在以太坊区块链中。 优越的。

除了交易,以太坊还有消息的概念。 消息是指一个合约账户调用其他合约账户的过程,可以类比函数调用过程。

因此,如果以太坊上的Dapp被触发,有两种可能。 第一个是由事务触发的,第二个是由消息触发的。

两者的区别在于前者由EOA发起,而后者只能由其他合约账户发起。

状态对象的状态变化由以太坊共识机制记录,交易和消息驱动状态变化。 因此,在开放网络中构建全球共享的 Dapp 是非常方便的。

以太坊上的智能合约具有准实时同步、准确执行、去中心化运行、人为干预风险低等特点。 EVM 和 Solidity 为全球开发者提供了更低的进入门槛。

以太坊的账户模型有哪几种_siteqq.com 以太坊账户_sitehqz.com 以太坊账户停付

与比特币的主要区别

以太坊项目也被称为区块链2.0项目,其中2.0指的是智能合约。 那么与以太坊和比特币相比,智能在哪里呢? 让我们详细看一下。

与比特币相比,以太坊并不是一个纯粹的数字货币项目。 可以在全球范围内提供一个无差别的区块链智能合约应用平台。 该平台基于我们上一篇文章介绍的区块链四大核心技术要素。 ,即P2P网络、共识机制、账户模型、加密模块。

除了以上四大技术要素,以太坊还推出了EVM——Ethereum Smart Contract Virtual Machine,同时也推出了自己的智能合约语言Solidity。

因此,区块链开发者开始因为智能合约的出现分为两类。 第一类是公链底层开发者,主要是基于C++和Go语言的全节点开发者。 他们需要对区块链的各个技术模块有深入的了解。

第二类是智能合约开发者,即应用开发者。 这类开发者不需要对区块链的运行原理有很深的理解。 他们只需要能够编写 Solidity 并理解规范。

除了以太坊智能合约的概念,还设计了以下内容。

研究并实现了自己的PoW挖矿算法——ETHASH,这是一种内存硬的挖矿算法。 叔块激励机制降低了挖矿中心化倾向。 取消UTXO模型,采用账户模型和世界状态来提供数据结构的可塑性。 Gas 机制旨在避免程序无休止地消耗整个网络资源的情况。 研究并实现了自己的PoS共识算法——Casper,可以防止Nothing-at-Stake攻击。 以太坊提供了在区块链上自由编程的能力,智能合约让每个人都可以开发自己的Dapp,这是比特币作为一种纯数字货币所不具备的能力。

总结

在本文中,我们介绍了智能合约和以太坊项目的概念,并解释了与比特币的主要区别以及以太坊上的一些核心概念。 在下一篇文章中,我们将结合实际案例对智能合约进行讲解,带领大家了解一些智能合约。 模板,顺便介绍一下其他区块链智能合约平台。

参考链接: