主页 > imtoken钱包官网 > 什么是以太坊?

什么是以太坊?

imtoken钱包官网 2023-02-15 07:20:07

以太坊是一个基于区块链技术的图灵完备的去中心化应用平台。 它允许任何人通过平台中的智能合约技术开发、部署和使用去中心化应用程序。

是不是感觉有点类似于iOS和Android平台?

在区块链1.0时代,如果我们需要编写区块链应用,需要从Github上下载一份比特币源代码,然后修改网络协议、共识机制、加密算法等底层代码,然后发布到网络。 2013年和2014年的很多山寨币就是这样产生的。 改变比特币的代码,甚至调整它的一些参数,创造了一个新的应用程序和一种新的货币。

以太坊平台封装了区块链底层技术,允许区块链应用开发者直接基于以太坊平台进行开发。 开发者只需要关注应用本身而不是底层技术的具体实现。 从而大大降低了难度。 我们可以简单的理解为以太坊平台提供了很多模块供用户构建应用。 如果把构建应用程序比作盖房子,那么以太坊提供地基、墙壁、屋顶和地板等模块。 用户只需像搭积木一样搭建房子,房子的布局、装修等都可以随意拼装。 因此,可以在以太坊平台上以较低的成本快速构建去中心化应用程序。

目前围绕以太坊已经形成了一个比较完整的开发生态系统:社区支持、开发框架、开发工具等。

以太坊客户端(节点)

以太坊客户端是一个以太坊节点。 提供账户管理、数字资产管理、挖矿、转账、智能合约部署和执行等功能。 对于我们开发者来说,它就是一个开发者工具。

需要注意的是,区块链网络中没有中央服务器。 所有的以太坊节点组成了以太坊整个区块链网络,每个节点时刻同步区块数据。

在浏览器-服务器架构中,服务器是中心化的,所有的动态数据都存储在服务器端。 如果服务器出现故障以太坊是啥,所有浏览器都无法正常访问应用程序。 在区块链的去中心化网络中,所有节点都会保存相同的数据,任何一个节点故障都不会影响整个区块链数据的写入和读取。

Geth 是一个典型的以太坊客户端。 Geth 这个名字是 Go Ethereum Open Source Project 的缩写。 是一款基于Go语言开发,实现以太坊协议的客户端软件。

eth是以太坊吗_以太坊是啥_eos是以太坊的币吗

Geth 提供了一个交互式命令控制台,通过命令操作以太坊的各种功能(API)。

Geth 将始终同步以太坊区块链上的所有数据。 目前在快同步模式下,数据量已经达到近70G; 在全同步模式下,达到了数百个G。

在开发过程中,我们推荐使用以太坊区块链的私有链Ganache(只有几百M),避免同步以太坊所有区块数据的麻烦。 Ganache将在后续文章中介绍。

帐户

以太坊中有两种类型的账户:

外部账户 (EOA)

此类账户由一对公钥-私钥(用户)控制,不关联任何代码。 外部账户的地址是从公钥中推导出来的。

合约账户(CA)

eth是以太坊吗_以太坊是啥_eos是以太坊的币吗

此类账户是由智能合约分配的账户,由合约代码控制以太坊是啥,并有与之关联的代码。 智能合约的部署会将合约字节码发布到区块链上,并使用一个特定的地址来标记合约,即合约账户。

合约账户存储代码,外部账户不存储代码。 除此之外,两种类型的账户对于以太坊虚拟机 (EVM) 都是相同的。

外部账户与外部账户之间的交易只是转账。 但是,可以从外部账户到合约账户激活各种操作。

智能合约

网上对智能合约的解释很晦涩。 我们可以简单地将其理解为一种特殊的交易合约,它是事件驱动的,以代码的形式存在,可以在区块链上执行。 它是代码和数据的集合,是以太坊的核心。

智能合约非常适用于对信任、安全、持久性要求高的应用场景,例如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权管理、物联网、点对点交易等场景。 同时,智能合约在其他行业的应用场景也值得期待。

目前,除了数字货币,真正的应用并不多,业界各方都在积极探索可以落地的使用场景和应用。 就像移动互联网刚刚兴起的时候,各行各业的应用如雨后春笋般涌现,去中心化的应用市场在前期肯定有红利期。 每个人都可以抓住这一波机会。

坚固性

eth是以太坊吗_eos是以太坊的币吗_以太坊是啥

Solidity 是一种类似于 JavaScript 的编程语言,其文件扩展名以 .sol 结尾。 用于智能合约的开发,可以编译成以太坊虚拟机(EVM)字节码部署在以太坊底层区块链网络上。

以太坊虚拟机 (EVM)

EVM全称Ethereum Virtual Machine,全称Ethereum Virtual Machine。 它是以太坊智能合约的运行环境。

EVM 由以太坊节点提供。 EVM 包含在每个以太坊节点中。

Solidity 之于 EVM,就像 Java 之于 JVM。

以太坊虚拟机是一个隔离的环境,EVM 内部运行的代码与外部没有任何联系。

EVM 在以太坊节点上运行。 当我们将合约部署到以太坊区块链网络时,合约就可以在以太坊网络上运行。

合同编制

eos是以太坊的币吗_以太坊是啥_eth是以太坊吗

以太坊虚拟机上运行的是合约的字节码,类似于汇编语言。 这就需要我们在部署前编译合约并转换成字节码。 推荐使用 solc 编译器。

合同部署

合约部署就是将编译好的合约字节码以通过外部账户发送交易的形式部署到以太坊区块链网络中。 实际部署只有在实际矿工出块后才能成功。

承包经营

部署合约后,当需要调用智能合约的方法时,只需要向合约账户发送消息(交易)即可。 消息触发后,智能合约的代码将在 EVM 中执行。

气体

Gas 是矿工的费用。 在以太坊上执行每笔交易(由矿工打包)都会收取一定数量的 Gas。 Gas 的目的是在支付执行费用的同时限制执行交易所需的工作量。 当EVM执行一笔交易时,Gas会按照一定的规则逐渐消耗。 无论在哪里执行,一旦Gas耗尽,都会触发out of gas异常。 当前调用框架所做的所有状态修改都将回滚。 如果执行结束还有gas剩余,gas会返还给发送账户。 因此,我们需要一个带有以太币余额的外部账户来为发起的交易支付gas。

如果没有这个限制,将会有无法停止的合约(例如:无限循环)阻塞以太坊区块链网络。

以太坊是啥_eos是以太坊的币吗_eth是以太坊吗

气体可以被视为一个工作单元。 智能合约越复杂(计算步数、类型、占用内存等),所需的 Gas 就越多。 Gas的最小单位是wei:

1eth=1018wei=109gwei

GasLimit:愿意支付矿工费的上限。 GasPrice:矿工费单价。

gas = GasLimit * Gas​​Price

去中心化应用(DApp)

DApp的全称是Decentralized App。 以太坊社区将基于智能合约的应用称为去中心化应用。 如果我们将区块链理解为一个不可变的分布式账本数据库,将智能合约理解为一个与数据库打交道的程序,那么理解DApp就很容易了。 一个DApp不仅要有智能合约,还需要有友好的用户界面和其他业务程序。

松露

Truffle 是目前最流行的 DApp 开发框架。 它可以帮助我们处理很多繁琐的事情,让我们更加专注于智能合约的开发,快速开始编码->编译->部署->测试->打包DApp的过程。

总结

最后简单总结一下。 以太坊是一个让我们可以轻松使用区块链技术开发去中心化应用程序的平台。 在应用中,我们可以使用Solidity编写一个与区块链交互的智能合约。 合约写好后,我们通过一个有余额的外部账户将合约部署到以太坊节点,并运行合约(使用Truffle框架可以更好的帮我们做这些事情)。

对于本文中以太坊的概念,初学者只需对其有一个基本的了解即可,无需对每个概念都进行详细准确的掌握。 学习是一个循序渐进的过程。 很多时候,我们会发现,经过一段时间后,我们对同一个概念会有不同的理解和认知。