值得信赖的区块链资讯!
零知识证明 – 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 验证器。现在我们想要知道该证明是如何被伪造的。
。
比推快讯
更多 >>- Kalshi 日交易额于 1 月 17 日达 4.742 亿美元,创历史新高
- 数据:1400 万枚 EIGEN 从 Eigenlayer 转入 BitGo,价值约 486 万美元
- Coinbase CEO 已抵达达沃斯参加世界经济论坛年会
- 隐私协议 Zama 主网上线质押功能
- 某巨鲸或正通过 Galaxy Digital 抛售总计 1.3 万枚 ETH
- 某鲸鱼通过 Galaxy Digital OTC 钱包转出 1.3 万枚 ETH,价值 4175 万美元
- HyperLend 公布 HPL 代币经济学:30.14% 用于生态系统增长与激励
- 某内部地址仅花费 285 美元买入 6630 万枚 ZReaL,回报率达 2200 倍
- Sentora 联创质疑跨链桥生态安全性,建议引入保险模型保证偿付能力
- Coinbase 将收购预测市场公司 The Clearing Company
- Magic Eden:自 2 月 1 日起将 15%收入用于 ME 代币回购和生态发展
- OpenAI 计划于 2026 年推出首款产品,可能是与用户交互的可穿戴设备
- STBL:通过 Kaito 运行的社区奖励计划已被取消
- 中央政法工作会议,对虚拟货币等新问题开展前瞻性研究,主动提出立法建议
- YZi Labs 宣布对链上交易终端 Genius 进行投资
- 今日美国比特币 ETF 净流出 1106 枚 BTC,以太坊 ETF 净流入 9171 枚 ETH
- Glassnode:比特币短期投资者自 25 年 11 月以来持续处于浮亏状态
- 永续 DEX Paradex:平台和金库提款功能已重新启用
- Wintermute:加密市场摆脱困境需 ETF 扩大投资范围,头部资产领涨带动散户注意力回归
- 数据:DUSK 涨超 46%,SKY 触及今日新高
- 美国快餐连锁品牌 Steak‘n Shake 已将价值 1000 万美元的比特币纳入储备
- 分析师:近期市场反弹还远不到牛市,比特币突破 10 万美元压力很大
- PancakeSwap 通过提案将 CAKE 最大供应量减少至 4 亿枚
- 数据:若 ETH 突破 3,377 美元,主流 CEX 累计空单清算强度将达 16.31 亿美元
- Immunefi CEO:链上安全在提升,但“人”正成为加密安全最大漏洞
- 对冲基金大佬警告:若美联储成“傀儡”,美国将面临史诗级惩罚
- 分析:美银警示加密市场风险,交易员紧盯本周关键通胀数据
- 分析师:Coinbase 比特币溢价差指标受美国巨鲸假期抛售拖累跌至近一年新低
- 当前主流 CEX、DEX 资金费率显示市场全面转向看空
- 美股上市公司 Aether 收购加密通讯与媒体平台 Coinstack
- YZi Labs 启动 EASY Residency 计划第三季并转变为全年创业孵化项目
- 数据:1000 万枚 DUSK 从 Binance 转出,价值约 241 万美元
- 某鲸鱼过去 4 小时买入 65700 枚 stETH,目前持有 142777 枚 ETH
- 市场消息:纽交所将启动美股 7x24 小时全天候交易
- 分析:BTC 算力已较 10 月高点回落约 15%,市场短期供应压力或将增大
- Tether 与 Bitqik 合作在老挝推广稳定币教育
- Bitfinex 报告:比特币卖盘依然过剩,但市场结构已开始改善
- 链上晚间回顾:巨鲸换仓加速,空头阶段性止盈降低敞口
- 美联储独立性遭遇“世纪审判”:信誉岌岌可危
- Ignas 反驳 Vitalik 需要“更好 DAO”主张:DAO 治理结构仍存风险,COMP 治理攻击成现实案例
- BTC OG 内幕巨鲸代理人长文反驳熊市观点:确认熊市需满足三重利空条件,当前投资者结构与 2022 年存在较大差异
- 埃塞俄比亚总理称该国政府正寻找投资伙伴来开采比特币
- CZ 回应币安法币提现手续费过高:产品用的人越多,手续费就会越低
- 分析师:今晨下跌属典型暴跌清杠杆行情,若强平量持续下降则标志去杠杆进程趋于完成
- 加密行业围绕市场结构法案立场分化:a16z、Ripple 等与 Coinbase 立场相反
- 特朗普拟于本周三在达沃斯召集首席执行官参加招待会
- 印度储备银行力推金砖国家 CBDC 互联,2026 峰会或尝试跨境结算“去美元化”
- 陈茂波:利用区块链和 AI 技术的“港口社区”系统已正式推出
- Sui 主网已升级至 V1.63.3 版本:修复被拒交易验证节点无法达成一致问题
- Strive 的永续优先股首次达到 100 美元面值,或有助于其继续增持比特币
比推专栏
更多 >>观点
比推热门文章
- Coinbase CEO 已抵达达沃斯参加世界经济论坛年会
- 隐私协议 Zama 主网上线质押功能
- 某巨鲸或正通过 Galaxy Digital 抛售总计 1.3 万枚 ETH
- 某鲸鱼通过 Galaxy Digital OTC 钱包转出 1.3 万枚 ETH,价值 4175 万美元
- HyperLend 公布 HPL 代币经济学:30.14% 用于生态系统增长与激励
- 某内部地址仅花费 285 美元买入 6630 万枚 ZReaL,回报率达 2200 倍
- Sentora 联创质疑跨链桥生态安全性,建议引入保险模型保证偿付能力
- Coinbase 将收购预测市场公司 The Clearing Company
- Magic Eden:自 2 月 1 日起将 15%收入用于 ME 代币回购和生态发展
- OpenAI 计划于 2026 年推出首款产品,可能是与用户交互的可穿戴设备
比推 APP



