值得信赖的区块链资讯!
零知识证明 – zkHack mini挑战赛第一名
Trapdoor Tech获得zkHack mini挑战赛第一名
https://www.zkhack.dev/mini.html
这次的挑战赛由两道题目组成。一道题目一个星期的挑战时间。和第一期的挑战不同,这一期的题目都是基于STARK算法。STARK算法,AIR,FRI低阶测试等等技术会在后续的文章仔细介绍。本文先总结一下这次挑战赛的两个题目的解题思路。
第一题:There's something in the AIR
https://www.zkhack.dev/puzzleM1.html
该题需要找到一种方法来骗过基于ZK-STARK和winterfell构建的投票系统。该题实现的电路逻辑如下图:
这个是典型的隐私保护的实现。通过Nullifier证明拥有私钥。
解题思路
如果用户Alice能对同一个主题(topic)完成2次有效投票,说明系统中存在一个漏洞使得:
-
证明者(prover)能产生 > 1 个的nullifier,并基于此构建证据(witness)
-
验证者(verifier)根据相应的公开输入和证据,无法分辨证明者伪造的nullifier
首先,构造nullifier是在make_signal函数中,并将其作为验证者的输入
//! - A nullifier is computed by hashing a private key together with a hash of the topic - i.e.:
//! hash(priv_key, hash(topic)) using the same Rp64_256 hash function.
let nullifier = priv_key.get_nullifier(topic);
/// Creates a nullifier for the provided topic against this private key.
///
/// A nullifier is computed simply as hash(key, topic).
pub fn get_nullifier(&self, topic: Digest) -> Digest {
let key: Digest = self.0.into();
Rescue::merge(&[key, topic])
}
但是证明者进行证据的计算过程中,使用12列的执行轨迹, 即State[12..23],来构成nullifier, 不只是私钥和主题。
// prover set the initial state
// -- nullifier section of the trace --
state[12] = Felt::new(8);
state[13] = Felt::ZERO;
state[14] = Felt::ZERO;
state[15] = Felt::ZERO;
state[16] = priv_key[0];
state[17] = priv_key[1];
state[18] = priv_key[2];
state[19] = priv_key[3];
state[20] = topic[0];
state[21] = topic[1];
state[22] = topic[2];
state[23] = topic[3];
一个合法的nullifier应包括以下3个部分
[12 13 14 15] [ 16 17 18 19 ] [ 20 21 22 23 ]
nullifier = [8 0, 0, 0, --- 私钥Priv_key----------, -----主题Topic------- ] — 在执行到第 0 步时
然而,检查验证者的程序时,发现在evaluate_transition函数中没有设置对state[12-15]的验证, 类似的验证可以参考默克尔树验证的部分。
result.agg_constraint(1, hash_init_flag, are_equal(E::from(8u8), next[0]));
result.agg_constraint(2, hash_init_flag, is_zero(next[1]));
result.agg_constraint(3, hash_init_flag, is_zero(next[2]));
result.agg_constraint(4, hash_init_flag, is_zero(next[3]));
答案
可以为state[12-15]设置不同的值来伪造nullifier,例如[16, 0, 0, 0]。
pub fn get_fake_nullifier(&self, topic: Digest) -> Digest {
let key: Digest = self.0.into();
let mut state = [Felt::ZERO; 12];
state[4..12].copy_from_slice(Digest::digests_as_elements(&[key, topic]));
state[0] = Felt::new(0 as u64);
// apply the Rescue permutation and return the first four elements of the state
Rescue::apply_permutation(&mut state);
Digest::new(state
[4..8].try_into().unwrap())
}
同时在证明者产生证据时,将state[12-15]设置为伪造的nullifier所对应的值。
Prover.build_trace()
|state| {
......
// -- nullifier section of the trace --
state[12] = Felt::new(0);
第二题:Can you turn up the heat?
https://www.zkhack.dev/puzzleM2.html
本周的题目可以说是 zkHack 有史以来最难的一道题。本题的目标是伪造 STARK 证明,需要解题者对 STARK 证明的整个逻辑步骤有较为清晰的知识。
来回顾一下题目:Alice使用 STARK 电路写了一个斐波那契数列的计算程序,能够同时生成 STARK 证明并验证。某天她收到了一个错误的证明,计算出数列的第32项等于123(实际应为832040)。但这个证明却能通过她的 STARK 验证器。现在我们想要知道该证明是如何被伪造的。
。
比推快讯
更多 >>- 数据:Wintermute 向 Binance 转移 720 万 USDT,价值 720 万美元
- 观点:比特币在减半后一年首次录得下跌,四年周期或被打破
- 昨日美国比特币现货 ETF 净流出 3.481 亿美元
- 数据:成本 400 美元以下 ETH 远古巨鲸多次获利出逃,此后币价常阶段性见顶
- Bithumb 将上线 XAUT 韩元交易对
- 张铮文:短期争议终将过去,专注于 Neo 持续建设和长期发展
- Neo 联创张铮文公布治理架构与账目情况并宣布回归主网管理
- 某巨鲸持有 PUMP 六个月疑似认亏清仓,浮亏 153 万美元
- 全球最大黄金和白银 ETF 开始减仓,分别较上日减少 1.43 吨和 11.28 吨
- 数据,美国 XRP 现货 ETF 单日总净流入 558 万美元
- 多家国有大行公告:数字人民币计结息规则与活期存款一致
- 数据:TLM 24 小时跌超 42%,LUNA 跌超 14%
- Peter Schiff:Strategy 购买比特币的策略摧毁了股东价值
- 黄金 2025 全年涨约 65%并创下逾 50 次新高,白银涨约 150%
- Gate 研究院:期权市场低波动蓄势,资金布局偏向看涨价差结构
- RootData:STABLE 将于一周后解锁价值约 1247 万美元的代币
- UniSat:Runes 索引出现问题,将暂停更新数据
- Upbit 暂停 NKN 网络数字资产充值与提现
- Glassnode:现货 ETF 资金流暂未显现新的需求迹象
- 数据:Hyperliquid 平台鲸鱼当前持仓 55.6 亿美元,多空持仓比为 0.93
- 加密恐慌指数降至 20,极度恐慌状态进一步加剧
- Delphi Digital:比特币或将迎来流动性拐点,黄金完成宽松周期内的重新定价
- 针对马克·库班和达拉斯独行侠队的加密货币集体诉讼被驳回
- 数据:全球主权财富基金 2025 年资管总额达到创纪录的 15 万亿美元
- Michael Saylor:STRC 股息收益率将在 1 月份达到 11%
- 加密交易所 BtcTurk 再遭黑客攻击,损失 4800 万美元
- Trust Wallet CEO:扩展程序暂无法在 Chrome 应用商店下载,警惕仿冒应用
- 某个与 Jez 关联钱包向 Hyperliquid 存入 206 万枚 USDC 开设 BTC、ETH 和 SOL 多单
- 某新建地址 2 小时前从 Kraken 提币 5,798 枚 ETH
- Tom Lee:黄金与白银走势预示 2026 年数字资产前景广阔
- 美参议员:数字 ID 与 CBDC 会剥夺美国人的财务自由与隐私
- Tether 于 2025 年 Q4 再度增持 8,888.8 枚比特币
- 数据:Tether 的 BTC 储备达 96,185 枚,浮盈 35.24 亿美元,为第五大 BTC 钱包
- 某 Binance 上做市商账户疑似被盗,于凌晨短时拉涨 BROCCOLI714 币价超 1000%后砸盘获利
- Vitalik 2026 开年更换 Milady NFT 系列风格 X 头像
- Tether:2025 年第四季度末买入 8888.88 枚 BTC,价值 7.8451 亿美元
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0062%
- Vida 复盘 BROCCOLI714 异常拉盘事件:通过现货订单簿与价差捕捉,单次操作获利约 100 万美元
- 美国参议院或于推进数字资产市场结构法案审议
- 沃伦·巴菲特正式退休,卸任伯克希尔哈撒韦首席执行官
- 贵金属2025年表现亮眼,白银全年涨幅147%,创史上最佳
- 美股2025年收官:三大股指均连续三年创新高
- 受Flow攻击事件影响,Flowty平台贷款结算已被暂停
- 疑似某做市商币安账户被盗,BROCCOLI714-USDT 现货交易异常拉升
- 数据:两大预测市场Kalshi与Polymarket 2025年总交易量已超440亿美元
- 数据:435.91 枚 BTC 从 Wintermute 转出,价值约 2071 万美元
- 数据:过去 24h Binance 净流出 3.03 亿 USDT
- 美CFTC主席任命前加密监管官员Amir Zaidi为幕僚长,曾主导比特币期货上市
- 数据:3723.26 万枚 TON 从 Fragment 转入 Telegram,价值约 6031 万美元
- 易理华:基于逼空逻辑和看好 2026 年大牛市,将坚决持续加仓 ETH
比推专栏
更多 >>观点
比推热门文章
- 昨日美国比特币现货 ETF 净流出 3.481 亿美元
- 数据:成本 400 美元以下 ETH 远古巨鲸多次获利出逃,此后币价常阶段性见顶
- Bithumb 将上线 XAUT 韩元交易对
- 张铮文:短期争议终将过去,专注于 Neo 持续建设和长期发展
- Neo 联创张铮文公布治理架构与账目情况并宣布回归主网管理
- 某巨鲸持有 PUMP 六个月疑似认亏清仓,浮亏 153 万美元
- 全球最大黄金和白银 ETF 开始减仓,分别较上日减少 1.43 吨和 11.28 吨
- 数据,美国 XRP 现货 ETF 单日总净流入 558 万美元
- 多家国有大行公告:数字人民币计结息规则与活期存款一致
- 数据:TLM 24 小时跌超 42%,LUNA 跌超 14%
比推 APP



