第二章:区块链与智能合约基础

说实话,很多做量化的人一听到「区块链底层」就头疼。我刚开始也这样——心想我写策略就完了,管它区块怎么连的?

但后来我踩了个大坑。写了个套利合约,上线就亏钱。查了半天,原来是没搞懂Gas机制,交易被矿工卡住了。嗯,从那以后,我再也不敢跳过这部分了。

2.1 区块链工作原理:别把它想得太玄

区块链说白了就是一个分布式账本。你想想看,传统账本放在银行服务器里,银行说了算。区块链呢?每个节点都有一份完整账本,谁也别想篡改。

核心机制就三点:

  • 区块:每10-15秒打包一批交易,形成一个区块
  • :每个区块都包含上一个区块的哈希值,连起来就是链
  • 共识:大家通过PoW或PoS机制,决定谁有权打包下一个区块

我在项目中遇到过一个问题:有次写跨链桥,发现两条链的区块时间不一样。以太坊15秒一个块,Solana只要400毫秒。这个差异直接影响了我的套利策略参数。所以,理解区块时间很重要。

核心要点:区块链不是「存数据」的,而是「对状态变化达成共识」的。每次交易,都是在改变全局状态。

2.2 以太坊与EVM:DeFi的主战场

以太坊为什么能跑DeFi?因为它有个以太坊虚拟机(EVM)。你可以把EVM理解成一个全球统一的「计算环境」。不管你在哪里运行合约,结果都一样。

我个人习惯把EVM比作「Java虚拟机」。你写好的Solidity代码,编译成字节码,部署到任何EVM兼容链上都能跑。这就是为什么Uniswap能同时部署在以太坊、Polygon、BSC上——代码几乎不用改。

特性 以太坊 其他EVM链(如BSC)
区块时间 ~15秒 ~3秒
Gas模型 EIP-1559(基础费+小费) 类似,但更便宜
生态成熟度 最高 中等

我的建议:刚开始学DeFi量化,先在以太坊测试网(Goerli/Sepolia)上跑。等逻辑通了,再考虑部署到其他链。别一上来就冲多链,容易乱。

2.3 Solidity入门:写你的第一个合约

Solidity是EVM上的主流语言。语法跟JavaScript有点像,但有几个关键区别。

先看一个最简单的合约:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SimpleStorage {
    uint256 private data;

    function set(uint256 _data) public {
        data = _data;
    }

    function get() public view returns (uint256) {
        return data;
    }
}

这里有几个坑,我刚开始全踩过:

  • public vs private:public变量会自动生成getter函数,但别以为别人看不到private数据——链上一切都是公开的
  • view/pure:不修改状态的函数用view,不读也不改的用pure。用错了会多花Gas
  • uint256:Solidity没有浮点数,所有计算都得用整数。做量化时,价格通常用18位小数表示(1 ETH = 1e18 wei)

避坑指南:我曾经写过一个流动性池合约,忘记加onlyOwner修饰符。结果部署后,任何人都能调用提现函数。嗯,那次损失了0.5个ETH。记住:合约默认是公开的,权限控制必须显式写出来。

2.4 Gas与交易机制:量化交易的成本命脉

做DeFi量化,Gas是你最大的敌人之一。我见过有人套利赚了0.1 ETH,结果Gas花了0.15 ETH——白忙活。

Gas机制其实不复杂:

  • Gas Limit:你愿意为这笔交易消耗的最大Gas量。简单转账21000,复杂合约调用可能几十万
  • Gas Price:每个Gas单位你愿意付多少钱(单位:gwei,1 gwei = 1e-9 ETH)
  • 总费用 = Gas Used × Gas Price

EIP-1559之后,Gas Price分成了两部分:

  • Base Fee:系统定的基础费,会被销毁
  • Priority Fee(小费):你给矿工的,越高越快被打包

我常用的策略是:

  • 普通交易:Priority Fee设2-5 gwei
  • 抢跑套利:Priority Fee设50-100 gwei,甚至更高
  • 监控Gas价格:用Etherscan的Gas Tracker,或者自己写脚本调API

量化视角:Gas费用直接决定你的策略盈亏比。我一般会在策略里加一个「Gas阈值检查」——如果当前Gas高于某个值,就跳过这笔交易。别小看这个逻辑,它能帮你省下至少30%的手续费。

知识体系总览

下面这张图,是我自己整理的知识结构。每次带新人,我都会先让他们看这个:

区块链与智能合约 工作原理 • 分布式账本 • 区块+链结构 • 共识机制(PoW/PoS) 以太坊与EVM • EVM虚拟机 • 多链兼容 • 测试网部署 Solidity入门 • 合约结构 • 数据类型 • 权限控制 Gas与交易 • Gas Limit/Price • EIP-1559机制 • 量化成本控制 量化交易 = 合约逻辑 + Gas优化 + 链选择

学习路径建议:先搞懂Gas机制(直接影响你的钱),再学Solidity(写策略工具),最后理解EVM(知道你的代码跑在什么环境里)。别反着来,否则容易学懵。

好了,这一章就到这里。记住:区块链不是魔法,它只是一套「谁也别想作弊」的规则。你理解了规则,就能利用它赚钱。


公众号:蓝海资料掘金营,微信deep3321