news 2026/2/1 5:19:58

14.ETH-以太坊概述-北大肖臻老师客堂笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
14.ETH-以太坊概述-北大肖臻老师客堂笔记

北京大学肖臻老师《区块链技术与应用》公开课第 14 讲是以太坊 (Ethereum)的开篇,主题通常是**“以太坊概述” (Introduction to Ethereum)**。

在告别了比特币章节后,课程正式进入“区块链 2.0”时代。这一讲主要介绍了以太坊的设计理念、与比特币的区别以及核心账户模型。

以下是本课内容的结构化详细总结

一、 以太坊的定位:区块链 2.0

  1. 从去中心化货币到去中心化合约
  • 比特币 (Bitcoin):主要目标是做一个去中心化的加密货币(Payment Network),被称为“全球账本”。
  • 以太坊 (Ethereum):主要目标是做一个去中心化的智能合约平台 (Smart Contract Platform),被称为“世界计算机”。
  1. 可编程性
  • 比特币的脚本语言(Script)非常简单,功能有限(非图灵完备),很难开发复杂的应用。
  • 以太坊提供了一种图灵完备 (Turing Complete)的编程语言(Solidity),允许开发者在区块链上编写任意复杂的逻辑(智能合约)。

二、 以太坊的账户模型 (Account-based Model)

这是以太坊与比特币最底层的区别。

1. 比特币:UTXO 模型
  • 特点:没有“账户余额”的概念,你的钱是一堆“未花费的交易输出” (UTXO) 拼凑出来的。
  • 缺点:难以精确控制“状态”。比如你想写一个合约限制“每天只能取 10 块钱”,在 UTXO 模型下很难实现,因为你需要追溯并管理大量零散的 UTXO。
2. 以太坊:基于账户的模型
  • 特点:系统直接记录每个账户的余额 (Balance)计数器 (Nonce)等状态。这就好比银行账户,想转账直接扣款即可。
  • 优点
  • 直观:符合人们对“账户”的直觉理解。
  • 易于编程:智能合约本质上就是管理状态(State),账户模型天生适合状态管理。
  • 防重放攻击:显式地使用 Nonce(交易计数器)来防止同一笔交易被广播两次。

三、 两类账户 (Two Types of Accounts)

在以太坊中,账户分为两类,它们在数据结构上是统一的,但功能不同。

1. 外部账户 (Externally Owned Account, EOA)
  • 控制者:由私钥控制(即普通用户使用的账户)。
  • 特点
  • 有余额 (Balance)。
  • 有 Nonce (交易序号)。
  • 没有代码(No Code)。
  • 主动发起交易:只有 EOA 才能发起交易(Transaction),这是区块链一切活动的源头。
2. 合约账户 (Contract Account)
  • 控制者:由代码逻辑控制(没有私钥对应)。

  • 特点

  • 有余额。

  • 有 Nonce。

  • 有代码(Code):存储了智能合约的编译后字节码。

  • 有存储(Storage):维护了一棵存储树(Storage Trie),保存合约运行时的状态变量(如投票数、众筹金额等)。

  • 被动执行:合约账户不能自己发起交易,必须被 EOA 或其他合约调用(发送消息)才能触发其代码执行。

四、 交易与消息 (Transaction & Message)

  • 交易 (Transaction)

  • 指的是从外部账户 (EOA)发出的签名数据包。

  • 包含:接收方地址、金额、Nonce、签名、以及可选的数据(Data,用于调用合约函数)。

  • 消息 (Message / Internal Transaction)

  • 指的是合约调用合约时产生的数据传递。

  • 它不直接记录在区块链上,而是作为交易执行过程中的一部分。

五、 以太坊的数据结构概览

肖老师在这一讲中也简要铺垫了以太坊复杂的状态树结构(下一讲会深入):

  • 状态树 (State Trie):记录全网所有账户的状态(余额、Nonce、代码哈希、存储根)。
  • 特点:使用 MPT (Merkle Patricia Trie) 结构,既能像 Merkle Tree 一样验证数据完整性,又能高效地进行查找和更新。

🧠 逻辑流程:以太坊的运行机制

执行层

网络层

用户层

1. 发起交易 (带签名)
2. 验证签名 & Nonce
3. 触发代码 (EVM执行)

条件满足

调用其他合约

用户 EOA

以太坊网络

合约账户

逻辑判断

4. 修改状态 (余额/存储)

发送内部消息 Message

💡 总结

第 14 讲的核心任务是**“转换思维”**:
从比特币的“UTXO + 脚本”思维,转换到以太坊的“账户 + 状态 + 智能合约”思维。这是理解后续去中心化应用 (DApp) 的基石。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/31 3:35:48

SpringBoot+Vue 高校教师科研管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL

摘要 随着高校科研管理需求的日益复杂化,传统的人工管理方式已难以满足高效、精准的科研数据管理需求。高校教师科研管理系统旨在通过信息化手段提升科研项目、成果、经费等环节的管理效率,解决数据分散、统计困难、信息滞后等问题。该系统能够实现科研数…

作者头像 李华
网站建设 2026/1/29 1:23:07

EagleTrader交易员周良行|不追短期暴利,只做长期赢家

每个交易员的屏幕背后,都藏着无数次盈利的喜悦与爆仓的深夜;每一次K线的跳动,都牵动着一颗在坚守与迷茫中挣扎、却从未放弃的心。 在外汇,有人因短期暴利入局,终因浮躁退场;有人因热爱深耕,在试…

作者头像 李华
网站建设 2026/1/29 1:22:07

Qwen1.5如何实现流式输出?Flask异步通信机制详解教程

Qwen1.5如何实现流式输出?Flask异步通信机制详解教程 1. 为什么你需要流式输出——从卡顿对话到丝滑体验的转变 你有没有试过和一个AI聊天,输入问题后盯着空白屏幕等了五六秒,才突然“唰”一下弹出整段回复?那种延迟感&#xff…

作者头像 李华
网站建设 2026/2/1 3:33:29

Xinference-v1.17.1 快速部署指南:5分钟搭建开源LLM推理平台

Xinference-v1.17.1 快速部署指南:5分钟搭建开源LLM推理平台 你是否还在为部署大模型发愁?想用本地GPU跑Llama-3、Qwen2或Phi-3,却卡在环境配置、API封装、多模型切换这些环节?Xinference-v1.17.1 就是为此而生——它不是另一个需…

作者头像 李华
网站建设 2026/1/31 13:07:14

Llama-3.2-3B应用场景:Ollama部署后用于制造业设备维修手册智能问答系统

Llama-3.2-3B应用场景:Ollama部署后用于制造业设备维修手册智能问答系统 在制造业一线,老师傅翻着泛黄的纸质维修手册查找故障代码,新员工对着密密麻麻的电路图发愁,工程师在深夜加班核对上百页技术文档——这些场景每天都在真实…

作者头像 李华
网站建设 2026/1/29 1:20:40

Fun-ASR-MLT-Nano-2512高校科研应用:多语种语音数据集标注与模型微调

Fun-ASR-MLT-Nano-2512高校科研应用:多语种语音数据集标注与模型微调 在高校语音处理实验室里,你是否遇到过这样的场景:手头有一批来自东南亚田野调查的苗语录音、云南边境采集的傣语对话、还有留学生提交的阿拉伯语课堂发言——但标注团队只…

作者头像 李华