Урок 1

以太坊的技术回顾

以太坊是基于区块链技术的去中心化智能合约平台,使用帐户模型和以太币作为交易媒介。智能合约具有数据透明、不可篡改的特点,执行环境分散且安全。2. 以太坊面临扩容问题,开发社群提出了多种解决方案,如侧链、Rollup、分片技术等,以实现系统的可扩展性和性能优化。

前言

以太坊是一个开放的区块链平台,它可以让任何人建立和使用去中心化的应用程式。 2013 年以太坊的创始人 Vitalik Buterin 发表的以太坊白皮书,阐述了以太坊的设计理念和技术架构,替日后蓬勃发展的区块链应用与生态系奠定了基础。

以太坊的创立初衷是为了改进比特币的功能而不仅只是电子支付系统,两者间最主要的区别在于以太坊能够存储可以执行程序的代码,此核心创新又称为智能合约,这意味着任何开发者都能够在以太坊区块链上编写可以执行的去中心化应用程序(DApps),实现各种商业逻辑和社会契约。

由于智能合约的出现,使用者可以在无需信任或中介的情况下,进行安全、透明和自动化的交易与协作,区块链网络有了更多的用途和功能。

然而以太坊的发展与实际应用也遭遇了一些问题,其中最大的困境是扩容性问题,当加密货币市场出现快速增长和交易量激增时,以太坊区块链的性能不足以应付需求。因此,以太坊需要不断创新和演进,以满足不断增长的用户群。

本课程旨在回顾以太坊的技术发展历程,探讨以太坊如何成为区块链领域的创新者,并了解以太坊面临的扩容问题及其改进方向。

以太坊的架构简介

先前技术的限制

在以太坊出现前,区块链发展的重心仅限于数字货币和支付系统,使用去中心化的区块链帐本记录交易。以比特币为例,比特币网络可视为一个状态转换系统,使用未花费交易输出 (Unspent Transactions Output,简称 UTXO) 模型,指的是一笔交易后剩余的可用于另一笔交易的代币数量,可以理解为别人给我钱后,剩下还没花掉的余额是多少。

每次矿工挖掘出新区块时,都代表了比特币网络的状态发生了变化,因为新区块中包含了一些有效的交易,这些交易会消耗一些 UTXO 并产生一些新的 UTXO。这些新的 UTXO 就成为了比特币网络的最新状态,也就是所有用户持有的比特币数量和分布。

上一个状态 + 新区块中的有效交易 = 当前状态

UTXO 的状态转换

日常生活中人们比较熟悉像银行那样的帐户模型,一个区块链地址对应到一个帐户,每笔交易都是从一个帐户转移资金或资料到另一个帐户,您的帐户余额就是您拥有的资产。 UTXO 模型进行交易时没有地址的限制,每一次交易都能使用不同的地址,您的资产是与您关联过的所有 UTXO 总和,并非特定地址的余额。因此 UTXO 有较好的并行性,而帐户模型更可能是序列执行,因而产生效能上的限制。虽然 UTXO 模型具备更好的隐私性和可扩展性优点,但较不直观且难以实现复杂的逻辑运算,例如比特币的编程语言就存在以下限制:

  1. 缺乏图灵完备性
    虽然比特币脚本语言支持非常多样化的功能,但并没有支持所有的计算,主要缺少的类别是回圈。理论上任何循环运算都能通过多层的 if 语句多次重复执行底层代码来实现,但这会导致运作效率非常低下。

  2. 价值盲区
    UTXO 脚本无法对可提取金额做精细控制。比如说,某位用户 A 需要对冲价格风险,另一位用户 B 作为对手盘,双方将价值 $1000 的资产存入合约中,30 天后 A 用户取回价值 $1000 的比特币,其余的部分则发送给 B,这会需要预言机来确定 1 个比特币的美元价值,迫使预言机持有许多不同面额的 UTXO。

  3. 缺少状态弹性
    UTXO 只有两种状态,已使用或是未使用。需要多阶段状态(如正在使用中)的期权合约、去中心化交易报价、加密承诺协议等等难以创建。因此 UTXO 只能用于构建简单的一次性合约,而不是去中心化协议中更复杂的“有状态”合约。

  4. 区块链数据盲区
    UTXO 模型看不到区块链的数据,例如随机数、时间戳和上一个区块的哈希值。使得博弈或其他几类的去中心化应用受到了限制。

以太坊的帐户模型

为了解决比特币在智能合约应用方面的短板,以太坊舍弃了 UTXO 采用帐户模型,就像个人的银行帐户那样,有资料库在记录每个帐户的余额,伴随每次交易自动更新。

以太坊上有两种帐户,一种是通过私钥控制的普通帐户,另一种则是由智能合约代码控制的合约帐户,以太币则是以太坊网络中的交易媒介:

  • 帐户(Accounts)
    以太坊上的每个帐户都有一个唯一的 20 位元位址,类似于您银行帐户的帐户号码,可以储存一些以太币或数据,透过交易来互相转移以太币或传递讯息。
  • 合约(Contracts)
    合约就像是一台自动贩卖机一样,当您投入一些以太币,合约就会执行其中的程式码,并根据代码的逻辑执行特定操作。合约可以存储资料、执行程式码、传递讯息、或是与其他合约互动。
  • 以太币(Ether)
    以太币是以太坊上的原生加密货币,可用于支付以太坊网络的使用费(Gas Fee)。您可以透过交易来传递以太币,就像利用银行转帐一样,也能购买合约中的服务或产品。

智能合约

在区块链发展历程中,以太坊是率先促成智能合约与去中心化应用落地普及的区块链网络。以太坊的智能合约一般使用 Solidity 语言编程,是一种在区块链上执行的程式,具备自动化、去中心化、资料公开透明、难以被窜改的特点,可用来实现各种商业逻辑和交易规则。用户在不需要信任第三方的情况下,能够利用智能合约完成安全可靠的交易。

智能合约可用于开发各种不同类型的去中心化应用程序(DApp),让以太坊网络实质上成为一台全世界共用的电脑,任何人都可以在这台电脑上存取数据,以及编辑与操作不同类型的应用程序,来满足自己的需求。

乍看之下感觉起来似乎没什么特别之处,不就是跑程序软件而已吗?在中心化的伺服器上存储数据和执行 Web 应用代码,或是在自己的个人端电脑上安装软件,一样可以做出与智能合约相同的应用功能。

然而这种便宜行事的作法将承受数据丢失、篡改、服务中断等限制和风险。智能合约的出现赋予了传统应用程序前所未有的安全性、可验证性、和抗审查性。具体来说,以太坊的智能合约和一般的 Web 应用及个人端软件有以下几个主要差异:

  • 数据存储
    智能合约的数据是存储在区块链上,每个节点都有一份完整的副本,因此数据是透明和不可篡改的。一般的 Web 应用及个人端软件的数据是存储在中心化伺服器上,只有伺服器管理者或授权者才能访问和修改数据,因此数据是不透明和可变动的。
  • 程序逻辑
    智能合约的程序逻辑是写在区块链上,一旦部署就难以窜改或删除,因此程序逻辑是固定和可预测的。一般的 Web 应用及个人端软件是写在中心化伺服器上,可以随时修改或删除,因此程式逻辑是灵活和不可预测的。
  • 执行环境
    智能合约的执行环境是由区块链网路提供,每个节点都可以验证和执行智能合约,因此执行环境是相对分散和安全的。一般的 Web 应用及个人端软件的执行环境是由中心化伺服器提供,只有该伺服器才能执行这些程序,因此执行环境是集中和相对不安全的。
  • 交互方式
    智能合约的交互方式是通过区块链交易来进行,每次交互都需要支付一定量的以太币作为手续费,因此交互方式是有成本和有延迟的。一般的 Web 应用的交互方式是通过 HTTP 请求来进行,而个人端电脑则是直接在 OS 中操作即可,交互时通常不需要支付任何费用,因此交互方式是接近无成本和即时的。

以太坊虚拟机

以太坊虚拟机(EVM)是一台运行在以太坊区块链上的图灵完备计算机,它可以执行智能合约的代码并修改区块链的状态。简单的理解方式就是个人端电脑或手机内的操作系统 OS,只有在这个特定环境下才能执行智能合约和以太坊上的应用程序。

EVM 是一个隔离的环境,不受外部干扰,也不会影响安装的设备。 EVM 的工作原理是将智能合约的代码(通常以 Solidity 语言编写)编译成一种称为 EVM 位元组码的指令集,然后由 EVM 逐步执行这些指令。

EVM 的执行结果会改变区块链上的状态,例如转移代币、储存数据或触发事件。为了防止以太坊上出现恶意的智能合约代码造成死循环当机,每个指令都需要消耗一定数量的 Gas,若没有足够 Gas 就无法进行任何操作。

Gas Fee

Gas Fee 指在以太坊网路上执行智能合约或转移代币所需支付的以太币(ETH)交易手续费,用以奖励维护网路的矿工。 Gas Fee 的高低取决于交易的复杂度和网路的拥挤程度,通常以 Gwei(1 Gwei = 0.000000001 ETH)来计算。

交易者可以自行设定 Gas Price(每单位 Gas 的价格)和 Gas Limit(最多愿意支付的 Gas 数量),来调整交易的速度和成本。

以太坊的 Gas Fee 计算公式如下:

Gas Price * Gas Limit = Gas Fee

Gas Price 为手续费单价的概念,如果 Gas Price 过低,交易的优先顺位也会较低,因此交易可能会被矿工忽略;

Gas Limit 是手续费用量的概念,如果 Gas Limit 过低,不会影响交易的优先顺位,但处理交易时可能会因为执行不完整而失败,已支付的 Gas Fee 也不会退还。

在 EIP-1559 (以太坊改进提案)后,Gas Price 有最低的 Base Fee,根据网络的需求和区块大小动态调整,Gas Price 设定高于 Base Fee 的交易必定会被处理,并且从区块链网络中销毁减少 ETH 的代币供给。

Tips 是用户愿意支付给矿工或验证者的额外费用,是一个由用户自己设定的可选值,可以帮助用户提升自己的交易顺位,或是在网络拥挤时加快交易速度。

由于以太坊的 Gas 机制,区块链网络的计算资源和储存空间能够被适当的定价,从而避免公地悲剧,也可防止智能合约执行无限循环的错误代码,或是遭到有心人士的恶意攻击。

挖矿

在 2022 年 9 月的以太坊合并前,以太坊和比特币都是基于工作量证明(Proof of Work,PoW)的共识机制来促进区块链网络的正常运作。

参与挖矿的设备需要解决一个复杂的加密难题,也就是通过算力计算出一个符合规定的哈希值,这个过程需要消耗大量的计算资源和电力,并且难度会随着网络算力的变化而不断调整,提供算力的用户又称为矿工。

通过不断尝试计算哈希值,矿工有机会找到符合要求的哈希值,接着矿工可以将待处理的交易打包成一个区块,并将区块广播到整个网络中进行验证和确认。如果区块被确认,则矿工将获得区块奖励和交易手续费。

以太坊 2.0 升级后采用权益证明(Proof of Stake,PoS)的共识机制进行挖矿。验证交易的节点需要将一定数量的以太币作为抵押品,以此竞争获得出块的权利。

质押的目的是为了让节点有一定的经济风险,攻击网络的节点,其质押资产将会被削减承受损失,借此吓阻参与者的恶意行为。节点质押的以太币数量越多,则获得出块权利的概率越高。

负责出块的节点需要打包待处理的交易,生成新的区块,并将其广播到网络中进行验证和确认。如果区块被确认,则节点将获得区块奖励和交易手续费,同时也会根据质押资产的数量获得一定的收益。

挖矿机制在以太坊网络中扮演着非常重要的角色,主要体现在以下几点:

  1. 确保交易的可靠性和安全性
    挖矿是通过在区块链中加入新的交易,从而增加区块的数量,通过获得工作证明(目前为权益证明),确认这些交易的合法性。挖矿让攻击者难以进行篡改交易的恶意行为,确保了交易的可靠性和安全性。

  2. 维护区块链的去中心化
    挖矿机制可以防止任何单个实体或组织控制整个以太坊网络,因为挖矿需要大量的算力(目前为质押代币),攻击者需要大量的资源才能够获得控制权。这可以确保网络的去中心化,避免任何单个实体或组织的垄断。

  3. 提供奖励激励参与
    挖矿可以让参与者通过贡献资源获得奖励,从而促进用户参与网络的建设和运营,保证网络的正常运转。

与 PoW 挖矿相比,PoS 挖矿所需的计算资源和电力消耗大大降低,因此可以更好地满足以太坊网络的发展与扩容需求。

以太坊的应用

以太坊的智能合约为许多重要的应用带来了可能性,以下做简单的概述:

  1. DeFi(Decentralized Finance)
    DeFi 是以太坊智能合约中最为成功的应用之一。它借助智能合约建立了一系列的去中心化金融协议,例如 MakerDAO、Compound、Uniswap 等等,这些协议可以实现诸如借贷、交易、保险、资产管理等金融业务。

  2. NFT(Non-Fungible Token)
    NFT 是一种基于以太坊智能合约的数位资产,以智能合约实现对数位资产的唯一性和不可替代性。 NFT 可以应用于艺术品、音乐、游戏、虚拟地产等领域。

  3. DAO(Decentralized Autonomous Organization)
    DAO 是一种基于以太坊智能合约的去中心化自治组织,它可以让成员通过投票决策组织内部事务,例如决定预算、人员管理、投资决策等。 DAO 的运作方式可以实现真正的去中心化和民主化,并且可以应用于社区、公司、基金会等组织。

  4. 发行代币
    以太坊上的 ERC-20 标准规范了代币的发行和交易方式,可以用来建立自己的代币,并且这些代币可以在以太坊上交易。

  5. 去中心化存储
    以太坊上也有一些基于智能合约的分布式文件存储协议,例如 Swarm 协议允许用户将文件分散储存在网络上,使其更安全和可靠。

  6. 云端计算
    以太坊上也有一些基于智能合约的去中心化计算平台,如 Golem 和 iExec,这些平台允许用户租用计算资源来运行各种应用程序,从而实现更高效的计算和数据处理。

  7. 数位身分
    EIP-4361 提供了 Login With Ethereum 的验证标准框架,允许使用者依其以太坊地址登入去中心化应用(DApps),而不需要传统的帐号和密码。这个验证机制可以增加使用者的隐私和安全,同时减少中介的干预。

除了上述应用,以太坊智能合约还可以实现更多的应用,例如游戏、社交、供应链管理等等。由于智能合约的可编程性,以太坊上的应用场景仍在不断扩展,未来仍有很大的发展空间。

以太坊面临的扩容问题

以太坊为了追求去中心化和安全性,在一定程度上牺牲了部分的效能。由于技术上的限制,以太坊的区块生成时间为约 12~15 秒,每个区块的大小限制为 15 MB,这使得以太坊每秒仅能处理大约 15 笔交易。

然而作为生态系与开发社群最庞大的智能合约网络,过往的 5 年内以太坊区块链上非零余额的独立钱包地址数增长了超过 10 倍,不同协议和用户的激增,使得原有设计不堪负荷,以太坊面临的扩容问题变得益发严重。

为了提升以太坊的扩容性,开发社群已经提出过多种解决方案,包括侧链、Rollup、分片技术、以及通过其他兼容 EVM 的区块链网络分流等等,以缓解拥塞情况。

结语

在本课程中,我们探讨了以太坊的技术架构和原理,以及智能合约的创新如何发挥区块链的潜力,促成今日多样化的去中心化应用和生态系,来实现各种商业逻辑和社会契约。

然而以太坊的蓬勃发展却也凸显了效能低下的问题,面对日益增长的用户需求,以太坊扩容性的提升已成为当务之急。

在接下来的课程中,我们将分别探讨不同的扩容方案和生态应用,包括侧链、Rollup、不同的 EVM 竞争,并总结分析它们各自的优缺点,来帮助您更好地了解区块链技术的发展现状和未来趋势。

重点回顾
以太坊是一个基于区块链技术的去中心化智能合约平台,使用帐户模型。
以太币是以太坊网络中的交易媒介,用于支付使用费和购买合约中的服务或产品。
以太坊的智能合约使用 Solidity 语言编程,可实现各种商业逻辑和交易规则。
以太坊的虚拟机(EVM)用于执行智能合约的代码并修改区块链的状态。
以太坊上每个指令都需要消耗一定数量的 Gas,若没有足够 Gas 就无法进行任何操作。
以太坊的智能合约具有数据透明、不可篡改、程式逻辑固定且可预测、执行环境分散且安全、交互方式有成本和有延迟等特点。
以太坊的扩容问题是现时需要解决的最大问题之一,开发社群已提出多种解决方案,包括侧链、Rollup、分片技术等。
以太坊有自己的加密货币以太币(ETH),可以用于支付交易费用和奖励矿工,目前采用 POS 的共识机制。
以太坊的智能合约为许多重要的应用带来了可能性,包括 DeFi、NFT、DAO、代币发行、去中心化存储和云端计算。
以太坊为了追求去中心化和安全性,在一定程度上牺牲了部分的效能,面临扩容问题。已有的解决方案包括侧链、Rollup、分片技术、以及通过其他兼容 EVM 的区块链网络进行分流。






🎥・Main Video



📄・Related Articles


什么是以太坊?


什么是UTXO?


什么是智能合约?


什么是EVM(以太坊虚拟机? )


什么是 Gas Fee?


什么是区块链共识算法?

Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.
Каталог
Урок 1

以太坊的技术回顾

以太坊是基于区块链技术的去中心化智能合约平台,使用帐户模型和以太币作为交易媒介。智能合约具有数据透明、不可篡改的特点,执行环境分散且安全。2. 以太坊面临扩容问题,开发社群提出了多种解决方案,如侧链、Rollup、分片技术等,以实现系统的可扩展性和性能优化。

前言

以太坊是一个开放的区块链平台,它可以让任何人建立和使用去中心化的应用程式。 2013 年以太坊的创始人 Vitalik Buterin 发表的以太坊白皮书,阐述了以太坊的设计理念和技术架构,替日后蓬勃发展的区块链应用与生态系奠定了基础。

以太坊的创立初衷是为了改进比特币的功能而不仅只是电子支付系统,两者间最主要的区别在于以太坊能够存储可以执行程序的代码,此核心创新又称为智能合约,这意味着任何开发者都能够在以太坊区块链上编写可以执行的去中心化应用程序(DApps),实现各种商业逻辑和社会契约。

由于智能合约的出现,使用者可以在无需信任或中介的情况下,进行安全、透明和自动化的交易与协作,区块链网络有了更多的用途和功能。

然而以太坊的发展与实际应用也遭遇了一些问题,其中最大的困境是扩容性问题,当加密货币市场出现快速增长和交易量激增时,以太坊区块链的性能不足以应付需求。因此,以太坊需要不断创新和演进,以满足不断增长的用户群。

本课程旨在回顾以太坊的技术发展历程,探讨以太坊如何成为区块链领域的创新者,并了解以太坊面临的扩容问题及其改进方向。

以太坊的架构简介

先前技术的限制

在以太坊出现前,区块链发展的重心仅限于数字货币和支付系统,使用去中心化的区块链帐本记录交易。以比特币为例,比特币网络可视为一个状态转换系统,使用未花费交易输出 (Unspent Transactions Output,简称 UTXO) 模型,指的是一笔交易后剩余的可用于另一笔交易的代币数量,可以理解为别人给我钱后,剩下还没花掉的余额是多少。

每次矿工挖掘出新区块时,都代表了比特币网络的状态发生了变化,因为新区块中包含了一些有效的交易,这些交易会消耗一些 UTXO 并产生一些新的 UTXO。这些新的 UTXO 就成为了比特币网络的最新状态,也就是所有用户持有的比特币数量和分布。

上一个状态 + 新区块中的有效交易 = 当前状态

UTXO 的状态转换

日常生活中人们比较熟悉像银行那样的帐户模型,一个区块链地址对应到一个帐户,每笔交易都是从一个帐户转移资金或资料到另一个帐户,您的帐户余额就是您拥有的资产。 UTXO 模型进行交易时没有地址的限制,每一次交易都能使用不同的地址,您的资产是与您关联过的所有 UTXO 总和,并非特定地址的余额。因此 UTXO 有较好的并行性,而帐户模型更可能是序列执行,因而产生效能上的限制。虽然 UTXO 模型具备更好的隐私性和可扩展性优点,但较不直观且难以实现复杂的逻辑运算,例如比特币的编程语言就存在以下限制:

  1. 缺乏图灵完备性
    虽然比特币脚本语言支持非常多样化的功能,但并没有支持所有的计算,主要缺少的类别是回圈。理论上任何循环运算都能通过多层的 if 语句多次重复执行底层代码来实现,但这会导致运作效率非常低下。

  2. 价值盲区
    UTXO 脚本无法对可提取金额做精细控制。比如说,某位用户 A 需要对冲价格风险,另一位用户 B 作为对手盘,双方将价值 $1000 的资产存入合约中,30 天后 A 用户取回价值 $1000 的比特币,其余的部分则发送给 B,这会需要预言机来确定 1 个比特币的美元价值,迫使预言机持有许多不同面额的 UTXO。

  3. 缺少状态弹性
    UTXO 只有两种状态,已使用或是未使用。需要多阶段状态(如正在使用中)的期权合约、去中心化交易报价、加密承诺协议等等难以创建。因此 UTXO 只能用于构建简单的一次性合约,而不是去中心化协议中更复杂的“有状态”合约。

  4. 区块链数据盲区
    UTXO 模型看不到区块链的数据,例如随机数、时间戳和上一个区块的哈希值。使得博弈或其他几类的去中心化应用受到了限制。

以太坊的帐户模型

为了解决比特币在智能合约应用方面的短板,以太坊舍弃了 UTXO 采用帐户模型,就像个人的银行帐户那样,有资料库在记录每个帐户的余额,伴随每次交易自动更新。

以太坊上有两种帐户,一种是通过私钥控制的普通帐户,另一种则是由智能合约代码控制的合约帐户,以太币则是以太坊网络中的交易媒介:

  • 帐户(Accounts)
    以太坊上的每个帐户都有一个唯一的 20 位元位址,类似于您银行帐户的帐户号码,可以储存一些以太币或数据,透过交易来互相转移以太币或传递讯息。
  • 合约(Contracts)
    合约就像是一台自动贩卖机一样,当您投入一些以太币,合约就会执行其中的程式码,并根据代码的逻辑执行特定操作。合约可以存储资料、执行程式码、传递讯息、或是与其他合约互动。
  • 以太币(Ether)
    以太币是以太坊上的原生加密货币,可用于支付以太坊网络的使用费(Gas Fee)。您可以透过交易来传递以太币,就像利用银行转帐一样,也能购买合约中的服务或产品。

智能合约

在区块链发展历程中,以太坊是率先促成智能合约与去中心化应用落地普及的区块链网络。以太坊的智能合约一般使用 Solidity 语言编程,是一种在区块链上执行的程式,具备自动化、去中心化、资料公开透明、难以被窜改的特点,可用来实现各种商业逻辑和交易规则。用户在不需要信任第三方的情况下,能够利用智能合约完成安全可靠的交易。

智能合约可用于开发各种不同类型的去中心化应用程序(DApp),让以太坊网络实质上成为一台全世界共用的电脑,任何人都可以在这台电脑上存取数据,以及编辑与操作不同类型的应用程序,来满足自己的需求。

乍看之下感觉起来似乎没什么特别之处,不就是跑程序软件而已吗?在中心化的伺服器上存储数据和执行 Web 应用代码,或是在自己的个人端电脑上安装软件,一样可以做出与智能合约相同的应用功能。

然而这种便宜行事的作法将承受数据丢失、篡改、服务中断等限制和风险。智能合约的出现赋予了传统应用程序前所未有的安全性、可验证性、和抗审查性。具体来说,以太坊的智能合约和一般的 Web 应用及个人端软件有以下几个主要差异:

  • 数据存储
    智能合约的数据是存储在区块链上,每个节点都有一份完整的副本,因此数据是透明和不可篡改的。一般的 Web 应用及个人端软件的数据是存储在中心化伺服器上,只有伺服器管理者或授权者才能访问和修改数据,因此数据是不透明和可变动的。
  • 程序逻辑
    智能合约的程序逻辑是写在区块链上,一旦部署就难以窜改或删除,因此程序逻辑是固定和可预测的。一般的 Web 应用及个人端软件是写在中心化伺服器上,可以随时修改或删除,因此程式逻辑是灵活和不可预测的。
  • 执行环境
    智能合约的执行环境是由区块链网路提供,每个节点都可以验证和执行智能合约,因此执行环境是相对分散和安全的。一般的 Web 应用及个人端软件的执行环境是由中心化伺服器提供,只有该伺服器才能执行这些程序,因此执行环境是集中和相对不安全的。
  • 交互方式
    智能合约的交互方式是通过区块链交易来进行,每次交互都需要支付一定量的以太币作为手续费,因此交互方式是有成本和有延迟的。一般的 Web 应用的交互方式是通过 HTTP 请求来进行,而个人端电脑则是直接在 OS 中操作即可,交互时通常不需要支付任何费用,因此交互方式是接近无成本和即时的。

以太坊虚拟机

以太坊虚拟机(EVM)是一台运行在以太坊区块链上的图灵完备计算机,它可以执行智能合约的代码并修改区块链的状态。简单的理解方式就是个人端电脑或手机内的操作系统 OS,只有在这个特定环境下才能执行智能合约和以太坊上的应用程序。

EVM 是一个隔离的环境,不受外部干扰,也不会影响安装的设备。 EVM 的工作原理是将智能合约的代码(通常以 Solidity 语言编写)编译成一种称为 EVM 位元组码的指令集,然后由 EVM 逐步执行这些指令。

EVM 的执行结果会改变区块链上的状态,例如转移代币、储存数据或触发事件。为了防止以太坊上出现恶意的智能合约代码造成死循环当机,每个指令都需要消耗一定数量的 Gas,若没有足够 Gas 就无法进行任何操作。

Gas Fee

Gas Fee 指在以太坊网路上执行智能合约或转移代币所需支付的以太币(ETH)交易手续费,用以奖励维护网路的矿工。 Gas Fee 的高低取决于交易的复杂度和网路的拥挤程度,通常以 Gwei(1 Gwei = 0.000000001 ETH)来计算。

交易者可以自行设定 Gas Price(每单位 Gas 的价格)和 Gas Limit(最多愿意支付的 Gas 数量),来调整交易的速度和成本。

以太坊的 Gas Fee 计算公式如下:

Gas Price * Gas Limit = Gas Fee

Gas Price 为手续费单价的概念,如果 Gas Price 过低,交易的优先顺位也会较低,因此交易可能会被矿工忽略;

Gas Limit 是手续费用量的概念,如果 Gas Limit 过低,不会影响交易的优先顺位,但处理交易时可能会因为执行不完整而失败,已支付的 Gas Fee 也不会退还。

在 EIP-1559 (以太坊改进提案)后,Gas Price 有最低的 Base Fee,根据网络的需求和区块大小动态调整,Gas Price 设定高于 Base Fee 的交易必定会被处理,并且从区块链网络中销毁减少 ETH 的代币供给。

Tips 是用户愿意支付给矿工或验证者的额外费用,是一个由用户自己设定的可选值,可以帮助用户提升自己的交易顺位,或是在网络拥挤时加快交易速度。

由于以太坊的 Gas 机制,区块链网络的计算资源和储存空间能够被适当的定价,从而避免公地悲剧,也可防止智能合约执行无限循环的错误代码,或是遭到有心人士的恶意攻击。

挖矿

在 2022 年 9 月的以太坊合并前,以太坊和比特币都是基于工作量证明(Proof of Work,PoW)的共识机制来促进区块链网络的正常运作。

参与挖矿的设备需要解决一个复杂的加密难题,也就是通过算力计算出一个符合规定的哈希值,这个过程需要消耗大量的计算资源和电力,并且难度会随着网络算力的变化而不断调整,提供算力的用户又称为矿工。

通过不断尝试计算哈希值,矿工有机会找到符合要求的哈希值,接着矿工可以将待处理的交易打包成一个区块,并将区块广播到整个网络中进行验证和确认。如果区块被确认,则矿工将获得区块奖励和交易手续费。

以太坊 2.0 升级后采用权益证明(Proof of Stake,PoS)的共识机制进行挖矿。验证交易的节点需要将一定数量的以太币作为抵押品,以此竞争获得出块的权利。

质押的目的是为了让节点有一定的经济风险,攻击网络的节点,其质押资产将会被削减承受损失,借此吓阻参与者的恶意行为。节点质押的以太币数量越多,则获得出块权利的概率越高。

负责出块的节点需要打包待处理的交易,生成新的区块,并将其广播到网络中进行验证和确认。如果区块被确认,则节点将获得区块奖励和交易手续费,同时也会根据质押资产的数量获得一定的收益。

挖矿机制在以太坊网络中扮演着非常重要的角色,主要体现在以下几点:

  1. 确保交易的可靠性和安全性
    挖矿是通过在区块链中加入新的交易,从而增加区块的数量,通过获得工作证明(目前为权益证明),确认这些交易的合法性。挖矿让攻击者难以进行篡改交易的恶意行为,确保了交易的可靠性和安全性。

  2. 维护区块链的去中心化
    挖矿机制可以防止任何单个实体或组织控制整个以太坊网络,因为挖矿需要大量的算力(目前为质押代币),攻击者需要大量的资源才能够获得控制权。这可以确保网络的去中心化,避免任何单个实体或组织的垄断。

  3. 提供奖励激励参与
    挖矿可以让参与者通过贡献资源获得奖励,从而促进用户参与网络的建设和运营,保证网络的正常运转。

与 PoW 挖矿相比,PoS 挖矿所需的计算资源和电力消耗大大降低,因此可以更好地满足以太坊网络的发展与扩容需求。

以太坊的应用

以太坊的智能合约为许多重要的应用带来了可能性,以下做简单的概述:

  1. DeFi(Decentralized Finance)
    DeFi 是以太坊智能合约中最为成功的应用之一。它借助智能合约建立了一系列的去中心化金融协议,例如 MakerDAO、Compound、Uniswap 等等,这些协议可以实现诸如借贷、交易、保险、资产管理等金融业务。

  2. NFT(Non-Fungible Token)
    NFT 是一种基于以太坊智能合约的数位资产,以智能合约实现对数位资产的唯一性和不可替代性。 NFT 可以应用于艺术品、音乐、游戏、虚拟地产等领域。

  3. DAO(Decentralized Autonomous Organization)
    DAO 是一种基于以太坊智能合约的去中心化自治组织,它可以让成员通过投票决策组织内部事务,例如决定预算、人员管理、投资决策等。 DAO 的运作方式可以实现真正的去中心化和民主化,并且可以应用于社区、公司、基金会等组织。

  4. 发行代币
    以太坊上的 ERC-20 标准规范了代币的发行和交易方式,可以用来建立自己的代币,并且这些代币可以在以太坊上交易。

  5. 去中心化存储
    以太坊上也有一些基于智能合约的分布式文件存储协议,例如 Swarm 协议允许用户将文件分散储存在网络上,使其更安全和可靠。

  6. 云端计算
    以太坊上也有一些基于智能合约的去中心化计算平台,如 Golem 和 iExec,这些平台允许用户租用计算资源来运行各种应用程序,从而实现更高效的计算和数据处理。

  7. 数位身分
    EIP-4361 提供了 Login With Ethereum 的验证标准框架,允许使用者依其以太坊地址登入去中心化应用(DApps),而不需要传统的帐号和密码。这个验证机制可以增加使用者的隐私和安全,同时减少中介的干预。

除了上述应用,以太坊智能合约还可以实现更多的应用,例如游戏、社交、供应链管理等等。由于智能合约的可编程性,以太坊上的应用场景仍在不断扩展,未来仍有很大的发展空间。

以太坊面临的扩容问题

以太坊为了追求去中心化和安全性,在一定程度上牺牲了部分的效能。由于技术上的限制,以太坊的区块生成时间为约 12~15 秒,每个区块的大小限制为 15 MB,这使得以太坊每秒仅能处理大约 15 笔交易。

然而作为生态系与开发社群最庞大的智能合约网络,过往的 5 年内以太坊区块链上非零余额的独立钱包地址数增长了超过 10 倍,不同协议和用户的激增,使得原有设计不堪负荷,以太坊面临的扩容问题变得益发严重。

为了提升以太坊的扩容性,开发社群已经提出过多种解决方案,包括侧链、Rollup、分片技术、以及通过其他兼容 EVM 的区块链网络分流等等,以缓解拥塞情况。

结语

在本课程中,我们探讨了以太坊的技术架构和原理,以及智能合约的创新如何发挥区块链的潜力,促成今日多样化的去中心化应用和生态系,来实现各种商业逻辑和社会契约。

然而以太坊的蓬勃发展却也凸显了效能低下的问题,面对日益增长的用户需求,以太坊扩容性的提升已成为当务之急。

在接下来的课程中,我们将分别探讨不同的扩容方案和生态应用,包括侧链、Rollup、不同的 EVM 竞争,并总结分析它们各自的优缺点,来帮助您更好地了解区块链技术的发展现状和未来趋势。

重点回顾
以太坊是一个基于区块链技术的去中心化智能合约平台,使用帐户模型。
以太币是以太坊网络中的交易媒介,用于支付使用费和购买合约中的服务或产品。
以太坊的智能合约使用 Solidity 语言编程,可实现各种商业逻辑和交易规则。
以太坊的虚拟机(EVM)用于执行智能合约的代码并修改区块链的状态。
以太坊上每个指令都需要消耗一定数量的 Gas,若没有足够 Gas 就无法进行任何操作。
以太坊的智能合约具有数据透明、不可篡改、程式逻辑固定且可预测、执行环境分散且安全、交互方式有成本和有延迟等特点。
以太坊的扩容问题是现时需要解决的最大问题之一,开发社群已提出多种解决方案,包括侧链、Rollup、分片技术等。
以太坊有自己的加密货币以太币(ETH),可以用于支付交易费用和奖励矿工,目前采用 POS 的共识机制。
以太坊的智能合约为许多重要的应用带来了可能性,包括 DeFi、NFT、DAO、代币发行、去中心化存储和云端计算。
以太坊为了追求去中心化和安全性,在一定程度上牺牲了部分的效能,面临扩容问题。已有的解决方案包括侧链、Rollup、分片技术、以及通过其他兼容 EVM 的区块链网络进行分流。






🎥・Main Video



📄・Related Articles


什么是以太坊?


什么是UTXO?


什么是智能合约?


什么是EVM(以太坊虚拟机? )


什么是 Gas Fee?


什么是区块链共识算法?

Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.