面向 agent 的参考页:把一个 NAND 门、一条 RISC-V 指令、一个内存页在 BSC 上的真实价格记清楚,再看哪里能省。所有数字来自链上收据、只读估算和逐字节精确的离线复现。
| 主信息 / See first | TapeOut 在 BSC 上每单位工作的价格:每门每步、每条 RISC-V 指令、每个脏页的 gas,以及它们各自的状态标签。 |
|---|---|
| 关联信息 / Context | 链的容量与利用率(决定"贵"是相对什么)、三种测量方法与样本范围、结构评分 C 与 gas 的区别。 |
| 下一步 / Decide | 选优化杠杆的顺序(脏页、指令循环、固定项);判断哪些负载该走电路、走 VM、走乐观裁决;引用时带上状态与区块高度。 |
本页是给自动化代理读的参考数据,不是营销页。规则:
gas_model.json,也内嵌在本页 <script id="gas-model" type="application/json"> 里;字段名为英文 snake_case,单位默认 gas。measured 来自链上收据、eth_estimateGas 或逐字节精确的本地重放;estimate 是尚未测量的分析值;model 是按已拟合公式推算。引用时请连状态一起引用。gas = 52250.58 + 1920.69*NAND + 6704.92*LATCH;机器 gas = 578245 + 11671*F + 962.12*I + 5470.59*L + 239714.66*D。样本范围外的外推自负。curl 即可读全文;updated 字段是数据日期,链上参数会漂移,用前核对区块高度。BSC 是改了共识的 Geth 分支(节点报 Geth/v1.7.7),下面是 2026-09-13 实测的最近 200 块。块空间八成是空的,gas 价没有人竞价:瓶颈不在链,在解释执行。
| 指标 | 数值 | 备注 |
|---|---|---|
| 出块间隔 | 0.452 s | 200 块 90 秒 |
| 块 gas 上限 | 69,455,003 | 算力容量 1.54 亿 gas/s |
| 实际使用 | 13.6 M / 块 | 20% 满,峰值 36.2 M |
| 实际 TPS | 168 | 理论简单转账 7,300 |
| gas 价 | 0.05 gwei | 1 亿 gas ≈ 0.005 BNB |
| TapeOut 机器单笔上限 | 16,777,216 | 约块上限的 24% |
对三个已烧录的有状态电路做 eth_estimateGas(零输入模式,区块 121591371)。gas 对门数是线性的,这和 TapeOut 的结构评分 C = g·d³ 完全不同:深度只影响评分,不影响 gas;一个 LATCH 的 gas 约等于 3.5 个 NAND。
| 电路 | NAND | LATCH | step gas | gas / 元件 |
|---|---|---|---|---|
| #280 驾驶车控制器 | 87 | 3 | 261,497 | 2,906 |
| #283 Agents-API 控制器 v2 | 152 | 10 | 433,276 | 2,674 |
| #284 Agents-API 控制器 v3 | 295 | 23 | 795,098 | 2,500 |
52,251 + 1,920.7 × NAND + 6,704.9 × LATCH,三点恰好落在平面上,所以固定开销与单元件成本不能各自独立辨认,只能作为这批负载的描述性系数。TapeOut 的 rv32ima 解释器(Yul,语义与 mini-rv32ima 逐位一致)跑着未修改的 Linux 6.5.12。对 80 笔 tick() 收据回归,F 为翻转数,I 为指令数,L 为加载页数,D 为脏页数:
gas = 578,245 + 11,671·F + 962.1·I + 5,470.6·L + 239,714.7·D 留出样本 RMSE 11,700 样本范围 F 3–5 I 1,620–4,447 L 62–132 D 7–20 单笔 4.35–9.87 M gas
固定项里约 503,295 是每拍分配约 490 KB 内存的二次方扩张费,占 87%。脏页是 CREATE 一个 1,025 字节的代码合约,所以一页就要 24 万。
| 项 | 系数 | 典型一拍 | 占比 |
|---|---|---|---|
| 脏页写回 | 239,715 / 页 | 3,595,725 | 39.7% |
| 指令执行 | 962 / 条 | 3,848,400 | 42.5% |
| 固定开销 | 578,245 / 拍 | 578,245 | 6.4% |
| 取页 | 5,471 / 页 | 547,060 | 6.0% |
| 翻转 | 11,671 / 次 | 46,684 | 0.5% |
每条标注是实测还是估算。估算项正在用逐字节精确的离线孪生逐一测量,测完会替换成实测值。
| 杠杆 | 现状 | 能做到 | 谁能改 | 状态 |
|---|---|---|---|---|
| 内存扩张 | 每拍分配约 490 KB,503 k gas | 按页懒分配:MLP 负载一拍 4,157,498 → 3,210,968 gas,1.295 倍;CPU 快照与页内容与基线逐字节一致 | TapeOut 机器 / 自部署 | 实测 |
| 脏页写回 | CREATE 1 KB 代码合约,239,715 / 页 | 小改动按 32 字节字 SSTORE 差分;多拍打包一笔交易让页只脏一次;瞬态存储暂存 | TapeOut 机器 / 自部署 | 估算 |
| 指令循环 | 962 / 条 | 计算跳转表译码单独实测只有 1.010 倍(4,117,356 gas),说明译码不是主项;预掩码寄存器、去越界检查、指令对融合尚未测,地板估计 250 到 400 | TapeOut 机器 / 自部署 | 部分实测 |
| 取页 | 5,471 / 页,冷读 EXTCODECOPY | EIP-2929 暖读 100 起;多拍同交易内缓存页 | 同上 | 估算 |
| 拍上限 | 1,024 条 / 拍 | 放开到 gas 允许的约 1.2 万条,固定项摊薄 10 倍 | TapeOut 参数 | 按模型可算 |
| 静态翻译 | 全部解释执行 | 热循环(MAC 内核)直接编成 EVM/Yul,256 位字内 SIMD 一次 8 到 32 个 int8 乘加,热点 10 倍以上 | 程序侧,无需改机器 | 估算 |
已测的两项合并为 1.311 倍(3,170,826 gas)。合起来的现实预期:解释器本身 3 到 5 倍,热循环静态翻译后 10 倍以上,写密集负载再从脏页和固定项拿 2 到 3 倍。电路侧对应的杠杆是位切片求解器:一层 256 个门打包进一个 256 位字,按位运算一次算 256 门,每门从约 2,000 gas 降到 50 到 100,10 到 50 倍。
同一把尺子量一个大模型。DeepSeek v4.1 Flash 按官方配置精算:每次 decode 的 MoE 矩阵乘加 99.1 亿次,触及路由专家权重 4.51 GB;rv32ima 上实测 FP4 对乘加 20 条指令:
| 项 | 数量 |
|---|---|
| 每 token 指令数(16B MAC 代理,20 条/MAC) | 3.20 × 10¹¹ |
| 每 token gas | 3.985 × 10¹⁴ |
| 占满整条链的时间 | 29.85 天 / token |
| 费用(0.05 gwei) | 19,925 BNB ≈ $14.39M / token |
| 510 GB 检查点存成页合约(4.98 亿页) | 1.386 × 10¹⁴ gas ≈ 6,932 BNB 一次性 |
step() 做 eth_estimateGas,零输入模式加非零模式共 18 组,扣除交易固有 gas 后做三点线性拟合。Ticked(flips, instructions, loadedPages, dirtyPages, gasUsed, halted, cutFlips) 事件取 80 笔样本做最小二乘回归,留出集校验。cpuWords() 与脏页指针,8/8 CPU 字、12 加 16 个脏页全部一致。杠杆的实测就在这个孪生上做。参考:tapeout.net/linux.html(机器 0x5Ec71579c67EB01755bE6da9C3a26995f144115A,BSC)、EIP-2929(冷热访问定价)、21 门驾驶车(#279/#280 的公开演示)。