怎么玩
1. 一句话
AlephTape 让 TapeOut 上的大电路(比如一个 AI)在链上能被便宜地相信。
做法是:电路在链下跑,同时算出一个“证明”;链上只检查这个证明。证明是一小段 256 字节的数据,拿到它就能很快查清“这个电路对输入 x 算出的就是 y”,而且没法造假。
出一个证明要零点几秒,链上检查它大约 30 万 gas。同一个数字识别电路如果直接在链上跑,要 3.96 亿 gas,比一个区块能装下的 2.1 亿还多,根本跑不了。
2. 普通玩家:玩一局
不需要懂任何技术。六个用例都在左下角的“用例”里,也可以直接按数字键 1 到 6。
- 1
打开一个游戏,按 [N] 开始
数字识别是先在格子里画一个数字,再按 [V] 证明;AI 对棋按 [N] 之后,先挑黑白两个 AI。
- 2
选账户
第一次会问你:连接钱包,还是保持演示账户。演示账户不用钱包,也不花钱。勾上“本次会话不再询问”,就不会再问。
- 3
玩
AI 的每一步都在你的浏览器里,用同一份电路算出来。同时,证明服务在后台给每一步出证明,免费,不花 gas。按 [P] 能看进度。
- 4
结束后按 [S]
证明全部好了,[S] 才能按。连着钱包时它是“上链”:一笔交易把整局交给合约,合约重放整局、检查每个证明,再记分。没连钱包时它是“模拟上链”:只在链上试跑一遍,什么都不写。
- 5
演示局也能补上链
用演示账户玩完的贪吃蛇、2048、像素小鸟、五子棋和 AI 对棋,之后连上钱包,[S] 就会变成“上链”。同一局只能结算一次,谁先结算就记在谁名下。
- 6
记下了什么
贪吃蛇、2048、像素小鸟:每一局的分数,和每个地址的最好成绩。五子棋:赢了 AI,会给你记一枚“破解者”徽章。AI 对棋:两个 AI 的 Elo 积分和胜负平。按 [L] 看排行。数字识别:结果会存进电路登记处,任何合约都能读到。
上链要付一点 gas,用的是 X Layer 上的 OKB。
3. 做自己的五子棋 AI,参加 AI 对棋
脚本即将开源
一个五子棋 AI,说到底就是一套权重(一堆 0 和 1)。所以换一套权重,就是一个新棋手。
先说两个词。流片:把电路的接线图(网表,也就是一串与非门怎么连的清单)写进 TapeOut 的处理器 ℵ₀,用了多少个门,就烧掉多少颗晶体管。神经元:电路里能反复调用的一个小零件;五子棋 AI 用到 3 种(neuron_part、neuron_comb、neuron_out),它们只需要流片一次。
你的 AI 只新增 6 个拼装电路:隐藏层 2 个、输出层 3 个、顶层 1 个。它们把你的权重当常数写进去,通过引用(REF)调用已有的神经元,自己不含一个门,所以一颗晶体管都不烧。
什么样的 AI 能参赛:输入 162 位(从走子方看,自己的子 81 位,对方的子 81 位),输出 486 位(81 个格子,每格 6 位打分);隐藏层必须是 32 个神经元,因为大家共用的 neuron_out 是按 32 做的;名字 1 到 32 字节,起始 Elo 1200。
落子规则是公开的,合约按顺序执行:第一,自己能连五就连五;第二,否则对方能连五就堵上;第三,否则自己能走出活四(四子连成一线、两头都空着,对方堵不住)就走;第四,否则对方能走出活四就堵上;第五,都没有,才走你的电路打分最高的空点(同分取编号小的)。前四条合约自己判断,不用证明;只有第五条要你的电路出证明。
电路必须登记在电路登记处。电路登记处是链上的一张表,记着每个电路在哪、用哪个验证合约检查它的证明,以及它的指纹。
上排行榜要先核对:把你的电路 key 发给我们,我们从链上电路重新生成证明电路,核对你的验证合约,核对过才计入排行;没核对的也能下,只是标“未核对”。
- 1
训练
用你自己有权使用的棋谱。先自对弈生成数据,再训练一个隐藏层 32 的二值网络,得到 my_model.json。
circuits/.venv/bin/python circuits/gomoku/engine.py --games 4000 --out my.npz
circuits/.venv/bin/python circuits/gomoku/train.py --data my.npz --hidden 32 --out my_model.json- 2
构建、流片、报名,一条命令
enter_arena.py 依次做三件事。build:生成网表和折叠网表,跑仪式,导出验证合约。tapeout:把 6 个拼装电路流片,引用链上已有的 3 个神经元(先逐字节核对)。enter:部署验证合约,在电路登记处登记,在 AI 对棋里报名。签名私钥从环境变量 DEPLOYER_PRIVATE_KEY 读取,请用密钥管理工具注入,不要写在命令行里。
# signer: DEPLOYER_PRIVATE_KEY from the environment, injected by a secrets tool
circuits/.venv/bin/python circuits/gomoku/enter_arena.py --target mainnet \
--model my_model.json --name gomoku_mine --prefix GomokuMine \
--label "my AI" build tapeout enter- 3
开赛
报名后,任何人都能在 AI 对棋页面让它和别的 AI 下一盘。每一步的证明要由带着你的电路的证明服务来出:我们托管的证明服务只带着现有的几个 AI,你的 AI 需要自己运行一个(prover/ 目录)。
要花多少:只有 gas,加上 TapeOut 每次流片的固定费 0.0013 OKB(6 个电路就是 6 次);不烧晶体管。
ℵ₀ 已在 X Layer 主网上线:用 --target mainnet 就能自己走完全部步骤。
4. 开发者
想把自己的电路接上链(生成证明电路、部署、登记、在合约里调用),或者自己核对这里的每一样东西,看“开发者”页。
开发者 ↗