zkSNARK合约“输入假名”漏洞致众多混币项目爆雷

据安比实验室消息,大量零知识证明项目由于错误地使用了某个zkSNARKs合约库,引入“输入假名 (Input Aliasing) ”漏洞,可导致伪造证明、双花、重放等攻击行为发生,且攻击成本极低。众多以太坊社区开源项目受影响,其中包括三大最常用的zkSNARKs零知开发库snarkjs、ethsnarks、ZoKrates,以及近期大热的三个混币(匿名转账)应用hopper、Heiswap、Miximus。 事实上,所有使用了该zkSNARKs 密码学合约库的项目都应该立即开展自查,评估是否受影响。修复很简单。仅需在验证函数中添加对输入参数大小的校验,强制要求input值小于上面提到的q值。即严禁“输入假名”,杜绝使用多个数表示同一个点。 所幸的是,目前常见的zkSNARKs合约库都火速进行了更新,从底层库层面杜绝“输入假名”。安比(SECBIT)实验室认为,底层库的更新诚然能够很大程度上消除掉后续使用者的安全隐患,但若该问题的严重性没有得到广泛地宣传和传播,依旧会有开发者不幸使用到错误版本的代码,或者是根据错误的教程进行开发,从而埋下安全隐患。

上一篇:

下一篇:

发表回复

登录后才能评论