浅谈区块链和WEB3
什么是区块链?
区块链技术是一种去中心化、分布式的账本技术,它能够安全地记录交易信息,并防止数据被篡改。你可以把它想象成一本“公开账本”,所有参与者都可以查看,但没有人可以随意更改过去的记录。
区块链的基本概念
- 区块(Block):包含若干条交易记录的数据包。
- 链(Chain):每个区块通过加密哈希链接在前一个区块之后,形成一个链条。
- 去中心化:没有中心服务器,数据分布在多个节点上。
- 共识机制:网络节点之间达成一致的方法,比如工作量证明(PoW)、权益证明(PoS)等。
- 不可篡改性:一旦数据写入区块链,就几乎不可能更改。
区块链是如何工作的?
发起交易:
用户在区块链网络中发起一个交易,比如转账。
交易广播:
这笔交易会广播到整个网络,所有节点都能接收到。
交易验证:
节点通过算法验证交易是否合法,例如:
- 发送方是否有足够的余额;
- 数字签名是否有效。
打包成区块:
验证通过的交易会被打包进一个新区块。
达成共识:
通过共识机制选择一个节点把新区块加入链上(例如通过计算难题来竞争记账权)。
写入区块链:
区块一旦被添加,就广播到全网,所有节点都同步更新。
不可篡改记录:
每个区块都包含前一个区块的哈希值,如果试图篡改历史数据,就会破坏整个链。
区块链的主要特性
- 透明性:交易对所有人可见。
- 安全性:通过加密保障数据安全。
- 去信任:不需要信任任何单一中介机构。
- 可追溯性:所有交易都有完整记录。
什么是挖矿?
挖矿一开始是指在POW
共识机制下,通过计算来争夺记账权,并获得加密货币奖励的过程。
挖矿本质上就是将交易打包成一个区块然后出块的过程,而打包交易的人就叫做矿工。至于由谁来打包交易,这就由共识机制决定。
共识机制
共识机制作用是用来选出每一个区块的出块人,并对打包的区块进行验证,区块经过全网络验证通过后就会正式上链。
BTC——PoW(Proof of Work 工作量证明)
- 原理:矿工通过消耗大量计算力解决复杂数学难题,谁先解出,谁就可以打包新区块。
- 安全性高,但是能耗大(电力消耗高)、交易速度慢(约 10 分钟/块)、扩展性差。
- 特点:完全去中心化、简单但安全、非常抗审查、所有人都可以加入挖矿。
Ethereum——PoS(Proof of Stack 权益证明)
- 原理:验证者通过质押 ETH(至少 32 个)参与共识,被随机选中打包区块。
- 惩罚作恶节点,奖励诚实节点(利息+手续费)
- 特点:能耗极低(几乎为零)、交易时间缩短(< 15 秒)、更容易扩展(未来支持分片)、去中心化程度仍在优化中(目前验证者多由大机构控制)
Solana——PoH(Proof of History 历史证明) + PoS 混合机制
- PoH(历史证明) 是一种创新机制,用来:
- 给所有交易事件生成可验证的时间戳
- 加快验证速度(减少全网同步等待)
- PoS(权益证明):参与验证的节点仍需质押 SOL 并通过 PoS 来选出负责打包区块的节点。
- 特点:超高吞吐量(官方称能达 65,000 TPS)、非常快(区块时间约 400ms)、低手续费、中心化争议较大(节点门槛高,停机事件多)
所有节点都能接收并验证新区块,它们会检查区块内的交易和状态是否和本地计算结果一致,如果不一致,就会拒绝该区块并可能惩罚作恶者。
在Ethereum
中只有在全网络2/3的节点投票确认区块的有效性后才会上链。
在Solana
中,通过PoH
机制,使得所有节点可以快速验证区块,而且它不需要全网达成共识,只要验证者节点达成一致就可以进行下一轮出块。
智能合约
智能合约是存储在链上的程序,是代码和状态数据的集合。合约程序只能被动执行。
合约程序上链后是不可更改的,但是如果合约支持升级,则该合约逻辑是可以改变的(合约代码不变)。
合约安全
智能合约安全是指:确保合约行为符合预期、不会被恶意攻击、不会造成资金被盗或永久锁死。
合约安全是智能合约开发中最关键的一环。因为一旦部署,合约代码就不能随意修改,漏洞将导致不可挽回的资金损失。
最经典的就是一个例子就是重入攻击
。
DAPP架构
DAPP 是运行在区块链上的“去中心化应用”,通过智能合约处理逻辑,前端通常是网页或移动端,用户通过钱包进行交互。
1. 前端层(Web 或 App)
- 通常用 React、Vue、Next.js 等构建
- 与用户进行交互(连接钱包、发交易、显示状态等)
- 借助库如:
- web3.js、ethers.js、viem.js(与区块链交互)
- wagmi、web3modal(钱包连接 UI)
- 调用智能合约的方法(通过JSON RPC)
2. 智能合约层(部署在区块链上)
- 用 Solidity 等语言编写,部署在如以太坊、Polygon、Solana 等链上
- 包含业务逻辑,比如:
- 转账、投票、交易撮合
- NFT 铸造
- DAO 投票治理
- 所有操作都公开、不可篡改
3. 数据与存储层
On-chain(链上数据):
- 交易记录
- 状态变量
- 合约数据(如余额、NFT 拥有者)
Off-chain(链下存储):
- IPFS / Arweave:存储图片、视频、JSON 元数据等大文件
- The Graph:提供查询索引服务
- 后端服务器:仅限缓存、不处理核心逻辑
区块链浏览器
区块链浏览器(Blockchain Explorer)是一个用来查看区块链上所有交易和区块信息的工具。它就像是“区块链的搜索引擎”,让用户可以透明地查阅某条区块链的运行情况。
btc:https://www.oklink.com/zh-hans/btc
ethereum:https://etherscan.io/
solana:https://solscan.io/
区块链浏览器常见的功能:
功能 | 说明 |
---|---|
查看区块 | 每个区块的编号、高度、时间戳、打包交易等信息 |
查询交易 | 通过交易哈希查到交易的状态、金额、发送方、接收方等 |
查看钱包地址 | 查看某个地址的余额、交易记录、代币持有情况等 |
查看网络数据 | 如出块速度、交易手续费、网络难度、活跃地址数等统计 |
查看智能合约 | 查看已部署合约的代码、调用情况、交互记录等(支持智能合约的平台,如以太坊) |
什么是WEB3?
阶段 | 简介 | 特点 |
---|---|---|
WEB1.0 | 静态网页 | 用户只能浏览不能互动 |
WEB2.0 | 动态网页 | 中心化平台、数据归服务提供商所有、网页可互动 |
WEB3.0 | 去中心化互联网 | 用户拥有数据、基于区块链运行 |
WEB2.0是数据的流动,用户之间可以转移数据。
WEB3.0是价值的流动,用户之间可以通过加密货币
(可以认为是有价值的数据)转移价值。
WEB3 的核心理念
- 去中心化:不依赖中心化公司(如 Facebook、Google),而是运行在区块链或分布式网络上。
- 用户数据主权:用户拥有并控制自己的数据(谁有私钥谁就可以控制这个帐户的数据)。
- 加密身份认证:用钱包地址代替用户名密码。
- 价值互联网:内建支付能力(加密货币),网络价值可直接转移。
- 开放协议:项目之间可以自由组合。