底层基础
区块链
区块链是一套由多个参与者共同维护的状态记录系统。节点按照协议验证交易,并通过共识机制接受新的状态。
交易先进入待处理集合,再由区块生产者打包;其他节点检查区块、交易签名和协议规则。所谓“确认”是网络对该状态接受程度的表达,不同网络的最终性和重组条件并不相同。
Bitcoin Developer Guide:Block Chain ↗Bitcoin Core GitHub ↗Term reference / 02
每个术语回答三个问题:它解决什么问题?它如何工作?使用它时要注意什么?
底层基础
区块链是一套由多个参与者共同维护的状态记录系统。节点按照协议验证交易,并通过共识机制接受新的状态。
交易先进入待处理集合,再由区块生产者打包;其他节点检查区块、交易签名和协议规则。所谓“确认”是网络对该状态接受程度的表达,不同网络的最终性和重组条件并不相同。
Bitcoin Developer Guide:Block Chain ↗Bitcoin Core GitHub ↗密码学
哈希函数将任意输入映射成固定长度的摘要。相同输入通常得到相同结果,输入微小改变也会产生完全不同的摘要。
哈希是单向摘要,不是加密:通常不能从摘要还原原文。工程上更关注抗碰撞、抗原像和雪崩效应;区块链通过哈希把区块、交易或树节点连接起来,任何内容变化都会改变后续校验结果。
NIST CSRC:Hash Function ↗Bitcoin Core Crypto GitHub ↗共识机制
PoS 网络让参与者锁定或质押资产,按照协议规则参与区块验证。恶意行为可能导致质押资产被惩罚。
PoS 把“参与共识的资格”与质押和协议惩罚联系起来。验证者需要在线、正确投票并遵守协议;质押数量并不自动等于治理权,也不意味着收益固定。
Ethereum:Proof-of-stake ↗Ethereum Consensus Specs GitHub ↗钱包
Gas 是执行操作所需网络资源的计量方式。交易费通常取决于操作需要的 Gas 数量和网络当时的 Gas 单价。
Gas Limit 描述愿意为执行提供多少计算单位,Gas Price 或费用参数描述每单位成本。复杂合约通常消耗更多 Gas,网络拥堵会改变费用市场;失败交易也可能消耗已经执行的计算资源。
Ethereum:Gas and fees ↗本站:Gas 费用估算器 →钱包安全
私钥是授权账户操作的秘密凭证。拥有私钥的人通常可以签署转账或合约交互,链上交易一旦确认通常无法撤回。
地址是可公开识别的账户入口,私钥则用于生成签名。钱包软件可以代替用户管理签名流程,但不会改变“谁控制私钥、谁能授权操作”的基本关系。硬件钱包、备份和多签只能降低某些风险,不能替代核对交易内容。
Ethereum:Accounts ↗本站:钱包安全基础 →钱包
Nonce 是账户交易序号,用于排列交易并避免同一笔交易被重复执行。待处理交易卡住时,Nonce 可能是排查线索。
对常见账户模型而言,同一账户的交易需要按序执行。较低序号的待处理交易可能阻塞后续交易;替换或加速交易时必须理解钱包、节点和网络对相同 nonce 的处理规则。
Ethereum:Transactions ↗本站:前端交易状态 →代币标准
ERC-20 是 EVM 生态中常见的同质化代币接口标准,规定余额、转账、授权和转移授权等常用函数。
ERC-20 定义的是接口约定,不是统一的经济模型或安全认证。余额、授权额度和转账事件是前端、交易所和其他合约进行组合的基础;具体代币仍应检查小数位、铸造权限、暂停机制、黑名单和升级代理。
EIP-20:Token Standard ↗OpenZeppelin ERC20 GitHub ↗DeFi
自动化做市商通过流动性池和定价曲线完成兑换,不依赖传统订单簿。流动性提供者通常会承担价格变化带来的无常损失。
交易者与池子交互,价格由池内资产比例和具体曲线决定;流动性提供者获得部分手续费,但池内资产比例变化可能使最终资产价值低于单纯持有。不同版本和池型的费用、路由与风险并不相同。
Uniswap Docs ↗Uniswap v4 Core GitHub ↗基础设施
预言机把链外价格、天气或其他数据提供给智能合约。由于合约无法直接读取互联网,它成为许多借贷和衍生品协议的关键组件。
预言机不只是一个价格 API,而是一组数据源、节点、聚合、更新频率和异常处理假设。使用者应确认数据的来源、时间戳、偏差阈值、停更行为和协议在异常价格下是否暂停。
Chainlink Data Feeds Docs ↗Chainlink GitHub ↗开发技术
智能合约是部署在链上的程序,按照交易和状态规则执行。代码公开不代表代码正确,也不代表升级权限已经消失。
合约通常包含存储、函数、事件和权限逻辑;调用可能改变公开状态,也可能触发其他合约。阅读合约时要把代码、部署地址、代理实现、管理员和外部依赖一起看,不能只看源码片段。
Solidity:Introduction to Smart Contracts ↗Solidity GitHub ↗安全
当合约在更新内部状态前调用外部合约,外部合约可能在同一流程中再次进入原函数,重复利用尚未更新的状态。
重入的本质是一次外部调用把控制权交给未知代码,而当前函数的不变量尚未恢复。要检查直接重入、跨函数重入、代币回调和跨合约调用,并用测试验证失败时状态不会被部分更新。
Solidity Security Considerations:Reentrancy ↗OpenZeppelin ReentrancyGuard GitHub ↗扩容
Layer 2 在基础结算层之外执行交易,再提交结果、数据或有效性证明,目标是提高吞吐并降低单笔成本。
Layer 2 不是单一技术:不同系统在执行、结算、数据可用性、证明和桥接上有不同设计。阅读一个 L2 时,要确认资产如何进入、交易结果如何被验证、数据在哪里可用、退出需要多久以及排序者拥有什么权限。
Ethereum:Layer 2 ↗OP Stack / Optimism GitHub ↗