第一章:区块链基础概念与核心组件

6 阅读6分钟

第一章:区块链基础概念与核心组件

理解链的基础特性是学习对接的第一步


1. 区块链类型:公链 vs 联盟链

特性公链(Public Chain)联盟链(Consortium Chain)
代表以太坊、BSC、SolanaFabric、FISCO BCOS、蚂蚁链
参与方任何人许可节点/组织
共识算法PoS、PoWRaft、PBFT
交易费用Gas 费(ETH/BNB)无或极低
性能15-1000 TPS1000-10000 TPS
数据可见性全公开按通道/组织隔离
适用场景DeFi、NFT、DEX供应链金融、政务、跨境结算

券商系统视角

维度类比
公链国际汇款系统(SWIFT),全球可达但有手续费
联盟链银行间清算系统(CIPS),参与方需准入,效率高

2. 核心概念详解

2.1 账户模型

以太坊(公链)- 账户模型
┌─────────────────────────────────────────┐
│           以太坊账户结构                 │
├─────────────────────────────────────────┤
│  外部账户(EOA)    │   合约账户          │
│  - 由私钥控制       │   - 由代码控制      │
│  - 有余额           │   - 有余额+存储     │
│  - 可发起交易       │   - 可被调用        │
│  - 地址:0x...     │   - 地址:创建时生成 │
└─────────────────────────────────────────┘

关键字段

  • address:20字节地址(0x开头)
  • balance:ETH 余额(Wei 为单位,1 ETH = 10^18 Wei)
  • nonce:交易计数器(防止重放攻击,每次交易+1)
Fabric(联盟链)- 成员服务
┌─────────────────────────────────────────┐
│         Fabric 组织与身份                │
├─────────────────────────────────────────┤
│  MSP(成员服务提供者)                   │
│  ├── 组织(Org1、Org2...)              │
│  │   ├── 用户(User1@org1...)          │
│  │   ├── 节点(peer0.org1...)          │
│  │   └── 证书(X.509)                  │
│  └── 通道(Channel)                    │
│      └── 包含多个组织的私有账本          │
└─────────────────────────────────────────┘

关键概念

  • 通道(Channel):子网概念,通道内数据仅成员可见
  • 组织(Organization):参与方实体,如银行、企业
  • 背书策略:交易需哪些组织签名才有效

2.2 交易与区块

区块结构对比
┌──────────────────────────────┐     ┌──────────────────────────────┐
│      以太坊区块结构           │     │      Fabric 区块结构          │
├──────────────────────────────┤     ├──────────────────────────────┤
│  Header(区块头)            │     │  Header(区块头)            │
│  - ParentHash(父区块哈希)  │     │  - Number(区块号)          │
│  - StateRoot(状态树根)     │     │  - DataHash(数据哈希)      │
│  - TxRoot(交易树根)        │     │  - PrevHash(前一个哈希)    │
│  - Timestamp(时间戳)       │     │  - Timestamp(时间戳)       │
│  - Number(区块高度)        │     │                              │
├──────────────────────────────┤     ├──────────────────────────────┤
│  Transactions(交易列表)    │     │  Data(数据)                │
│  - Hash(交易哈希)          │     │  - Transactions(交易数组)  │
│  - From/To(发送/接收方)    │     │  - Endorsements(背书数据)  │
│  - Value(转账金额)         │     │  - Metadata(元数据)        │
│  - Gas/GasPrice(Gas信息)   │     │                              │
│  - Input(合约调用数据)     │     │                              │
│  - Signature(签名)         │     │                              │
└──────────────────────────────┘     └──────────────────────────────┘
交易生命周期
以太坊交易流程:
发起交易 → 签名 → 广播到网络 → 矿工打包 → 区块确认 → 状态更新

Fabric交易流程:
发起提案 → 背书节点模拟执行 → 收集背书 → 提交排序 → 区块分发 → 节点验证提交

2.3 共识算法

算法类型特点应用
PoW工作量证明算力竞争,能耗高比特币早期、以太坊早期
PoS权益证明质押代币,节能高效以太坊 2.0、Cosmos
PBFT拜占庭容错确定性共识,3f+1容错Fabric、蚂蚁链
Raft非拜占庭容错简单易实现,领导者选举Fabric 测试网

2.4 Gas 机制(公链特有)

Gas 费用 = Gas Used × Gas Price

示例:
- 普通转账:21000 Gas × 20 Gwei = 0.00042 ETH ≈ $1
- 合约调用:100000 Gas × 20 Gwei = 0.002 ETH ≈ $5

Gas Price 动态变化:
- 网络拥堵时上升
- 网络空闲时下降

关键概念

  • Gas Limit:交易最大 Gas 消耗上限
  • Gas Price:每单位 Gas 愿意支付的价格(Gwei)
  • Nonce:发送方交易序列号,必须严格递增

3. 对接必知的核心组件

3.1 节点类型

┌─────────────────────────────────────────────┐
│              区块链网络拓扑                  │
├─────────────────────────────────────────────┤
│                                             │
│   ┌─────────┐    ┌─────────┐    ┌─────────┐│
│   │ 全节点   │◄──►│ 全节点   │◄──►│ 全节点   ││
│   │Full Node│    │Full Node│    │Full Node││
│   └────┬────┘    └────┬────┘    └────┬────┘│
│        │              │              │     │
│        ▼              ▼              ▼     │
│   ┌─────────┐    ┌─────────┐    ┌─────────┐│
│   │ 轻节点   │    │ 轻节点   │    │ 轻节点   ││
│   │LightNode│    │LightNode│    │LightNode││
│   └─────────┘    └─────────┘    └─────────┘│
│                                             │
│  全节点:存储完整区块数据,可验证所有交易   │
│  轻节点:仅存储区块头,通过 SPV 验证        │
└─────────────────────────────────────────────┘

交易所对接建议

  • 自建全节点:数据自主可控,推荐生产环境
  • 第三方节点服务:Infura、Alchemy(快速上手,但有依赖)

3.2 RPC 接口

JSON-RPC 请求示例:

请求:
{
  "jsonrpc": "2.0",
  "method": "eth_getBalance",
  "params": ["0x...", "latest"],
  "id": 1
}

响应:
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x1a055690d9db80000"  // 十六进制余额
}

常用 RPC 方法

方法说明用途
eth_blockNumber获取最新区块号同步区块数据
eth_getBlockByNumber按高度获取区块扫块获取交易
eth_getTransactionByHash按哈希查交易交易状态查询
eth_getBalance查询地址余额余额更新
eth_sendRawTransaction发送签名交易提现/转账
eth_gasPrice获取当前 Gas 价格动态设置 Gas

3.3 加密基础

非对称加密(ECDSA)
密钥生成:
私钥(32字节随机数) ──► ECDSA ──► 公钥(64字节)
                              ──► Keccak256哈希 ──► 地址(20字节)

交易签名:
交易数据 + 私钥 ──► ECDSA签名 ──► 签名值 (r, s, v)

签名验证:
交易数据 + 签名 + 公钥 ──► 验证通过/失败
国密算法(SM2/SM3/SM4)- 联盟链常用
算法用途说明
SM2非对称加密/签名替代 ECDSA/RSA
SM3哈希替代 SHA256
SM4对称加密替代 AES

4. 交易所核心业务流程

4.1 充值流程

用户充值流程:

1. 用户获取充值地址(平台派生地址)
         │
         ▼
2. 用户向该地址转账代币
         │
         ▼
3. 平台扫块服务监听新区块
   - 轮询或订阅新区块
   - 解析交易目标地址
         │
         ▼
4. 匹配平台地址库
   - 命中 → 记录充值记录
   - 未命中 → 忽略
         │
         ▼
5. 等待区块确认
   - 以太坊:通常 12 个区块(约 3 分钟)
   - BSC:通常 15 个区块(约 45 秒)
         │
         ▼
6. 更新用户余额,通知到账

4.2 提现流程

用户提现流程:

1. 用户发起提现请求
   - 填写目标地址、金额
         │
         ▼
2. 风控校验
   - 余额充足性
   - 地址白名单
   - 单日限额
         │
         ▼
3. 构建交易
   - from:平台热钱包地址
   - to:用户目标地址
   - value:提现金额
   - nonce:热钱包 nonce 管理
   - gasPrice/gasLimit:动态计算
         │
         ▼
4. 交易签名(签名机/冷钱包)
         │
         ▼
5. 广播交易到网络
         │
         ▼
6. 轮询交易状态
   -  pending → 等待
   -  success → 更新余额
   -  failed → 退款处理

5. 关键术语速查

术语解释券商类比
私钥资产控制权的凭证,必须保密银行 U 盾 PIN 码
公钥由私钥派生,可公开银行账号
地址公钥哈希,用于接收资产银行账号
交易哈希(TxHash)交易的唯一标识交易流水号
区块高度区块在链上的序号日期+序号
确认数交易所在区块后的新区块数清算完成标记
Gas执行操作的计算费用交易手续费
Nonce交易序列号,防重放交易序号
智能合约链上自动执行的程序自动化的业务规则
Token链上代币电子现金
ERC20同质化代币标准标准账户格式
ERC721非同质化代币标准(NFT)非标准资产

6. 学习检查清单

  • 理解公链与联盟链的核心差异
  • 掌握以太坊账户模型(EOA、Nonce、Gas)
  • 掌握 Fabric 组织、通道、背书策略
  • 理解区块和交易的数据结构
  • 了解主流共识算法及其特点
  • 熟悉常用 RPC 接口及其用途
  • 理解充值提现的完整业务流程
  • 掌握私钥、公钥、地址的生成关系

7. 延伸阅读