Skip to content

Commit 38b1070

Browse files
committed
Add study notes for 2025-08-18
1 parent 1859919 commit 38b1070

1 file changed

Lines changed: 88 additions & 0 deletions

File tree

buzhidaoa8848-hash.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,94 @@ timezone: UTC+8
1515
## Notes
1616

1717
<!-- Content_START -->
18+
# 2025-08-18
19+
20+
今天又复习了以前的内容。以太坊核心机制与智能合约全栈开发学习笔记
21+
日期:2025 年 8 月 18 日
22+
主题:以太坊账户模型、交易机制与合约全栈开发流程
23+
24+
一、以太坊核心机制
25+
账户模型对比
26+
27+
外部拥有账户 (EOA):由私钥控制,可以主动发起交易。地址由公钥计算而来。
28+
29+
合约账户 (Contract Account):由代码控制,只能被动执行。地址由部署交易计算而来。
30+
31+
Gas 机制
32+
33+
Gas:衡量交易执行复杂度的单位。
34+
35+
Gas Limit:交易愿意消耗的 Gas 上限。
36+
37+
Base Fee:随网络拥堵动态调整的基础费用,会被销毁。
38+
39+
Priority Fee:给矿工/验证者的“小费”,用于优先打包。
40+
41+
二、交易生命周期
42+
签名构造:钱包收集交易参数,并使用私钥生成数字签名。
43+
44+
广播到网络:签名后的交易进入节点的 mempool(内存池)。
45+
46+
打包 / 提议区块:验证者(或矿工)将交易打包成区块。
47+
48+
区块传播与共识:区块在网络中传播并得到大多数节点的确认。
49+
50+
确认与终结:交易被打包进区块后,经过一定数量的区块确认(通常 12 个以上),被认为是不可逆的。
51+
52+
三、合约部署与前端整合
53+
测试网部署
54+
55+
意义:在不消耗真实资产的情况下,测试合约功能与安全性。
56+
57+
流程:
58+
59+
通过水龙头(Faucet)获取测试币(如 Sepolia ETH)。
60+
61+
在 Remix IDE 中连接 MetaMask,选择测试网。
62+
63+
编译并部署合约,通过 MetaMask 确认交易。
64+
65+
使用区块浏览器(如 Etherscan)验证合约是否成功上链。
66+
67+
前端整合
68+
69+
工作流程:前端通过 Web3 库(如 Web3.js)连接钱包,获取用户授权,创建合约实例,然后调用合约函数与链上交互。
70+
71+
关键技术:ABI(应用二进制接口)是前端与合约交互的桥梁;send() 用于发送需要 Gas 的写操作,而 call() 用于免费的只读查询。
72+
73+
四、高级内容与安全实践
74+
Gas 优化:
75+
76+
减少存储操作:优先使用 memory,减少 storage 读写。
77+
78+
位压缩:将多个变量打包进一个 uint256 以节省空间。
79+
80+
循环优化:减少不必要的重复计算。
81+
82+
函数可见性:对仅外部调用的函数使用 external。
83+
84+
安全漏洞与防护:
85+
86+
重入攻击:在 Checks-Effects-Interactions 模式下,先更新状态再进行外部调用。
87+
88+
访问控制:使用 onlyOwner 或 AccessControl 等修饰符,限制敏感函数的调用权限。
89+
90+
整数溢出:使用 Solidity 0.8+ 版本自带的溢出检查,或使用 SafeMath 库。
91+
92+
智能合约审计:
93+
94+
必要性:合约一旦部署无法修改,审计是保障资金安全的关键。
95+
96+
工具:使用 Slither 等静态分析工具,并通过 Foundry 进行模糊测试。
97+
98+
流程:静态分析 → 动态测试 → 人工审查 → 审计报告。
99+
100+
Layer 2 解决方案:
101+
102+
分类:Optimistic Rollup(欺诈证明)和 ZK Rollup(零知识证明)。
103+
104+
主流平台:Arbitrum、Optimism、Starknet、zkSync 等。
105+
18106
# 2025-08-16
19107

20108
以太坊核心机制与合约部署实践学习笔记

0 commit comments

Comments
 (0)