Gerrad Zhang

Blog

Insights, experiences, and knowledge sharing on technology, development, and innovation.


Sep 08, 2026

钱包与账户抽象:钱包不装钱,装的是钥匙

番外·三·收官:番外之二结尾留的钩子是「币稳了,可这些稳定币记在谁的名下」——本篇接住它。内容:钱包的本质是钥匙管理不是「装钱」(资产在链上全局账本里,钱包只管签名权——呼应账户模型篇的签名验证与 nonce、DApp 篇的 MetaMask 签名实操);私钥/助记词/Keystore 三种载体与「助记词即账户控制权本身」的严肃含义;热钱包 vs 冷钱包取舍表(便利 ↔ 暴露面光谱,通行原则小额热、大额冷);普通人的四条实操安全守则(分层管理、签名前核对 calldata 与目标地址、ERC-20 无限授权的坑与 revoke 类工具回收、测试专用账户隔离——multisig 篇个人向展开)

By Gerrad Zhang Read more →
Sep 07, 2026

部署到测试网:合约离开本地的第一步

上一篇 Hardhat 工程结尾预告的 M3.3:把只在进程里活着的 Counter 部署到测试网 Sepolia。内容:本地网络、测试网、主网到底差在哪(成本/数据/重置/参与者四维对比);准备工作三件套——水龙头领测试币、为什么需要 Alchemy/Infura 这类 RPC 节点服务、.env 里两项各填什么;部署操作逐条解释(复制 .env.example → 填值 → npx hardhat run scripts/deploy.js --network sepolia);部署后用 Etherscan 测试网版查合约、以及为什么要做合约验证。

By Gerrad Zhang Read more →
Sep 07, 2026

Gas:世界计算机的计价系统

上一篇留了一个问题:执行每条操作码都有定价——凭什么 ADD 一个价、SSTORE 另一个价?谁定的?本文讲清 Gas 的三重意义(计量资源、防滥用与停机问题、定价市场)、费用公式 gasUsed × gasPrice 与 EIP-1559 的 base fee 燃烧机制,用一个手算例子把 gwei 换算走通,并解释 blob(EIP-4844)如何把 L2 费用打下来两三个数量级。

By Gerrad Zhang Read more →
Sep 07, 2026

EVM:驱动世界计算机的虚拟机

上一篇留了一个问题:全局状态表只是一张表,谁来执行改写它的逻辑?答案是 EVM——一台所有节点都在运行的确定性沙盒虚拟机。本文讲清 EVM 的执行模型(源码 → 字节码 → 操作码)、为什么「同样输入必得同样输出」是共识的前提、「一次编写多链运行」的 EVM 兼容生态,以及它如何构成以太坊的网络性护城河。

By Gerrad Zhang Read more →
Sep 07, 2026

第一个完整 DApp:给合约装上可点击的前端

阶段 3 收官:上一篇部署到测试网结尾说「合约就位,等一个前端」,本篇补上它。内容:DApp 到底是什么(前端界面 + 链上智能合约作后端,规则上链、无人可单方面下架——回到阶段 3 开篇的平台封号痛点);前端三件套逐个写——连接 MetaMask(window.ethereum 检测 + eth_requestAccounts)、读合约状态(view 调用不发交易不花 gas)、发写交易(increment → tx.wait(1) 等确认 → 复读 → 从 receipt 回读 CountChanged 事件),代码全部来自 dapp/frontend/ 真实文件

By Gerrad Zhang Read more →
Sep 07, 2026

Hardhat 本地测试环境:把合约开发变成工程

上一篇笔记结尾预告的 M3.2:把 Remix 里的计数器搬进 Hardhat 本地工程。内容:为什么单机试错有天花板(改一行、手动点一遍按钮的循环走不远);Hardhat 是什么、装好后长什么样(目录结构逐个文件导览);自动化测试怎么写——describe/it 结构、贴出计数器的真实用例,重点解释 revert 断言为什么不是异常而是断言;以及我自己踩过的常见坑:Node 版本、cache/artifacts 什么时候该删、为什么会自动重新编译。到这里,「改一行、全量跑一遍测试」终于是自动化的事了。下一篇 M3.3 把合约部署到测试网。

By Gerrad Zhang Read more →
Sep 07, 2026

智能合约到底是什么,能做什么

上一篇 Gas 结尾留了一个问题:余额检查、nonce 递增、费用扣除这些规则由谁写、由谁执行?答案是智能合约——部署在链上的程序,规则写在链上,没有任何人可以单方面修改或关掉它。本文讲清「代码即规则」的准确含义(部署后字节码上链不可变)、确定性执行与全网验证如何衔接 EVM、智能合约的能力边界(能做代币/DAO/借贷,做不了链下数据与真随机),并用一个 ERC-20 转账的端到端实例把账户模型、Gas、合约执行串成一条线——这也是阶段 2 的收官。

By Gerrad Zhang Read more →
Sep 07, 2026

Solidity 基础语法笔记:写下第一个合约

阶段 2 收官时说好了「从理解到动手写」,这篇就是动手的第一份记录——M3.1 的进行时学习笔记,比正式文章更口语化,踩坑也如实记下。内容:用 Remix 零安装起步(Hardhat/Foundry 一句带过);基础类型 uint/int/address/bool/string 与 mapping;函数修饰符 view/pure/payable 各配最小代码片段;事件 event/emit 为什么链上可查;0.8.x 内置溢出检查(对比 0.8 前人人 SafeMath 的历史);最后一个能直接编译部署的计数器合约 + 我在 Remix 里的部署步骤实录。

By Gerrad Zhang Read more →