1、Web3全景图:区块链基础、以太坊简介、智能合约概念、DApp架构、Web3技术栈概览

各位同学,欢迎来到《全栈Web3开发》的第一章。

说实话,每次带新人入门,我都被问同一个问题:「Web3到底是个啥?跟区块链有啥区别?」

嗯,这问题问得好。今天我们就从全景图开始,把这块拼图一块块拼起来。

1.1 区块链基础:从「账本」说起

区块链,说白了就是一个分布式账本

你想想看,传统银行里,账本归银行管。你存了多少钱,银行说了算。但区块链不一样——人人手里都有一本账,谁也别想篡改。

核心特征:

  • 去中心化:没有单点控制,数据由全网节点共同维护
  • 不可篡改:一旦上链,历史数据几乎无法修改
  • 透明可追溯:所有交易记录公开,谁都能查
  • 共识机制:大家得「投票」决定哪个版本是真相

我记得刚入行时,有个老前辈跟我说:「别把区块链想得太玄乎,它就是一群人不信任彼此,但又不得不一起记账时,想出来的笨办法。」

话糙理不糙。这个「笨办法」用了密码学、P2P网络、共识算法,最终解决了拜占庭将军问题——也就是在不可信环境中达成共识。

💡 个人经验: 我在项目中遇到过不少团队,一上来就追求「完全去中心化」。其实没必要。联盟链、私有链在某些场景下效率更高。别被概念绑架,选合适的才是王道。

1.2 以太坊简介:不只是「比特币的升级版」

比特币是区块链1.0,主要干一件事:转账。

以太坊是区块链2.0,它引入了智能合约——让区块链不仅能记账,还能跑程序。

为什么叫「以太坊」?其实没特别含义,创始人Vitalik Buterin随便起的。但它的设计理念很清晰:世界计算机

特性 比特币 以太坊
核心功能 价值转移 智能合约 + 价值转移
编程能力 有限(脚本语言) 图灵完备(Solidity)
出块时间 约10分钟 约12-15秒
共识机制 PoW(工作量证明) PoS(权益证明,2022年升级后)
账户模型 UTXO 账户余额模型

我个人习惯把以太坊比作「手机操作系统」。比特币是「大哥大」,只能打电话;以太坊是iOS/Android,你可以装各种App(DApp)。

⚠️ 避坑指南: 我曾经以为以太坊上的交易是「免费的」,结果第一次部署合约花了200多美元Gas费……记住:在以太坊上每做一件事都要付Gas,包括部署合约、转账、甚至调用合约里的函数。

1.3 智能合约概念:代码即法律

智能合约,说白了就是写在区块链上的自动执行程序

举个例子:你和我打赌明天会不会下雨。传统做法是找第三方担保。智能合约的做法是——我们各自往合约里存1个ETH,合约自动连接天气API,第二天自动把钱转给赢家。

整个过程不需要人参与,不需要信任对方。代码就是规则,规则就是法律。

// 一个最简单的智能合约(Solidity)
pragma solidity ^0.8.0;

contract HelloWeb3 {
    string public message;

    constructor() {
        message = "Hello, Web3!";
    }

    function setMessage(string memory newMessage) public {
        message = newMessage;
    }
}

这段代码干了三件事:

  • 定义了一个叫 HelloWeb3 的合约
  • 初始化时存了一条消息
  • 提供了一个修改消息的函数

嗯,就这么简单。但背后涉及的概念不少:Gas消耗、存储布局、函数可见性、事件日志……后面我们会一一拆解。

💡 我的建议: 刚开始学Solidity,别急着写复杂逻辑。先写几个简单的存储合约,部署到测试网,看看交易哈希、区块确认、Gas消耗这些基础概念。我当年就是靠「存一个数、读一个数」这种小例子入门的。

1.4 DApp架构:前端 + 合约 = 去中心化应用

DApp(去中心化应用)的架构,其实跟传统Web应用很像,只是后端换成了区块链。

传统架构:前端 → 后端API → 数据库

DApp架构:前端 → 智能合约 → 区块链

你想想看,前端还是那个前端(HTML/CSS/JS),但后端不再是你的服务器,而是一份部署在链上的合约。数据也不存在你的MySQL里,而是存在全球几千个节点上。

DApp核心组件:

  1. 前端界面:React/Vue等,用户交互层
  2. 钱包:MetaMask等,管理私钥、签名交易
  3. Web3库:ethers.js / web3.js,连接前端和链
  4. 智能合约:业务逻辑,部署在链上
  5. 区块链节点:Infura / Alchemy 等RPC服务

我在项目中遇到过最坑的事:前端调合约时,忘了处理交易等待状态。用户点了「确认」按钮,以为操作完成了,实际上交易还在pending……结果用户又点了一次,扣了两次Gas费。嗯,这种体验很糟糕。

1.5 Web3技术栈概览:从底层到上层

Web3的技术栈,我习惯分成四层:

层级 技术/工具 说明
L1 - 底层链 Ethereum, Polygon, Solana, Arbitrum 提供共识、安全、存储
L2 - 合约层 Solidity, Vyper, Hardhat, Foundry 编写、测试、部署智能合约
L3 - 连接层 ethers.js, web3.js, Wagmi, Viem 前端与链交互的桥梁
L4 - 应用层 React, Next.js, The Graph, IPFS 用户界面、数据索引、去中心化存储

说白了,你不需要精通每一层。但作为全栈开发者,每一层你都得能「玩得转」——知道它解决什么问题,遇到bug知道去哪查。

⚠️ 重要提醒: 别被工具链吓到。我见过太多新人一上来就研究「该用Hardhat还是Foundry」「该用ethers.js还是Wagmi」,结果一个月过去了,一行代码没写。我的建议是:先选一套最主流的工具,跑通一个完整流程。等你有感觉了,再横向对比其他方案。

小结

这一章我们走马观花看了一遍Web3全景:

  • 区块链是分布式账本,解决信任问题
  • 以太坊是可编程区块链,引入了智能合约
  • 智能合约是自动执行的代码,部署在链上
  • DApp = 前端 + 合约,架构比传统Web更简单
  • 技术栈分四层,先跑通再优化

下一章,我们会真正动手——搭建开发环境,部署你的第一个智能合约。到时候你会发现,其实没想象中那么难。

嗯,咱们下章见。