值得信赖的区块链资讯!
零知识证明 – 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 验证器。现在我们想要知道该证明是如何被伪造的。
。
比推快讯
更多 >>- 美联储 12 月降息 25 个基点的概率降至 44.4%
- 某鲸鱼向 Binance 存入 3000 枚 ETH,浮亏 692 万美元
- 数据:过去 24 小时全网爆仓 3.36 亿美元,主爆多单
- 前 100%胜率巨鲸对手盘加仓 ETH 空单头寸至 2011 万美元
- 美联储前理事库格勒辞职前曾面临道德操守调查
- 稳定币总市值过去 7 天减少 0.41%,降至 3042 亿美元
- Capybobo 里斯本首秀火爆,PYBOBO 娃衣点燃欧洲潮玩圈
- 某巨鲸加仓 251 枚 BTC,约 2418 万美元
- 某地址花费 552.8 万美元以均价 3141 美元买入 1760 枚 ETH
- 硅谷大佬 Peter Thiel 旗下 Founders Fund 减持 ETHZilla 股票
- SkyBridge 创始人父子领投特朗普家族支持的 American Bitcoin 2.2 亿美元融资
- Coinbase:目前已暂停 AI16Z-PERP 交易
- 数据:过去 24h Binance 净流出 1.75 亿 USDT
- 以太坊财库公司 Intchains Group 以 130 万美元收购 ECHOLINK 旗下 PoS 技术平台
- 特朗普计划就演讲内容被剪辑起诉 BBC,索赔最高 50 亿美元
- 下周宏观展望:停摆后首份非农降临,美联储内战升级
- BiyaPay 分析师:Tether 加速囤金,每周增持超一吨黄金
- 比特币矿企 CleanSpark 斥资 4.6 亿美元回购 3060 万股普通股
- 数据:2000 枚 ETH 从 Chun Wang (F2Pool) 转入 Binance,价值约 630.56 万美元
- Aster:代币经济模型保持不变,未来解锁代币将被转入独立地址
- 数据:755.51 万枚 TRX 从 Binance 转出,价值约 220.61 万美元
- 特朗普家族相关比特币矿企 American Bitcoin 发布 Q3 财报:当季增持约 3000 枚 BTC
- Michael Saylor:Strategy 本周每天都在购买比特币
- Applied Digital 将通过高级担保票据发行募资 23.5 亿美元
- 分析:市场情绪转变或让购买数字资产财库公司股票的散户投资者面临风险
- ETHZilla 发布 Q3 财报:以太坊持仓增至 102273 枚
- 香港证监会宣布行政总裁梁凤仪获再度委任,任期两年
- 麻吉大哥小额加仓以太坊多单仓位至 7745 枚 ETH,清算价 3,047.88 美元
- 比特币市场深度较今年高点下降约 30%,加密市值回吐年内涨幅
- 特朗普发图:歌剧魅影造型男子手持“TRUMP 2028”
- Dephy 和 APRO 合作推出全球首个 AI 驱动预言机系统,重塑智能经济范式
- Binance:至少 240 分的用户可于今日 16 时领取 Alpha 空投
- Honeypot Finance 宣布升级为 Full-Stack Perp DEX,并正式上线订单簿永续
- PayPal 联创 Peter Thiel 减持 Bitmine 一半股份,目前持有约 254.7 万股
- CZ:链上预测市场及 AI 将催生更多预言机需求
- 数据:3 万枚 SOL 从匿名地址转出,经中转后流入 Coinbase
- Aster:S4 回购计划即将开始,S3 回购支出近 4930 万 USDT
- 数据:当前加密恐慌贪婪指数为 11,处于极度恐慌状态
- Gate 研究院:10 月一级市场融资额暴增 104.8%,资本重注预测市场与稳定币基建
- Hourglass:Stable 预存款第二阶段结束,超 1 万个验证钱包贡献了超 11 亿美元的合格存款
- Balancer 黑客开始将 ETH 转移至 Tornado Cash
- Santiment:投资者需警惕底部共识陷阱,真正底部通常在多数人预期价格将继续下探时形成
- 数据:288 枚 BTC 从多个地址转入 Crypto.com,价值约 1881 万美元
- 数据:LTC 涨超 29%,GAS 触及今日新高
- CryptoQuant 创始人:资金仍在流入比特币,市场随时可能反弹
- 数据:某波段巨鲸清仓 5772 枚 ETH,亏损 774 万美元,持仓两个月资产缩水 29.7%
- RootData:ID 将于一周后解锁价值约 116 万美元的代币
- 美股加密股收盘涨跌不一,MSTR 跌 4.22%,FIGR 涨 16.33%
- 底特律一男子因向极端组织 ISIS 捐赠比特币而被判 9 年监禁
- 分析师:BTC 短期投资者尚未全面投降,目前判断熊市仍为时过早
比推专栏
更多 >>观点
比推热门文章
- 美联储 12 月降息 25 个基点的概率降至 44.4%
- 某鲸鱼向 Binance 存入 3000 枚 ETH,浮亏 692 万美元
- 数据:过去 24 小时全网爆仓 3.36 亿美元,主爆多单
- 前 100%胜率巨鲸对手盘加仓 ETH 空单头寸至 2011 万美元
- 美联储前理事库格勒辞职前曾面临道德操守调查
- 稳定币总市值过去 7 天减少 0.41%,降至 3042 亿美元
- Capybobo 里斯本首秀火爆,PYBOBO 娃衣点燃欧洲潮玩圈
- 某巨鲸加仓 251 枚 BTC,约 2418 万美元
- 某地址花费 552.8 万美元以均价 3141 美元买入 1760 枚 ETH
- 硅谷大佬 Peter Thiel 旗下 Founders Fund 减持 ETHZilla 股票
比推 APP



