#zero-knowledge #near-protocol #cryptography #smart-contracts #mi-mc

near_mimc

在wasm32_unknown_unknown架构上实现MiMC散列函数,兼容NEAR协议智能合约。受snarky.js实现启发。

1个稳定版本

1.0.0 2022年12月1日

#9 in #near-protocol

MIT许可证

4.5MB
4.5K SLoC

near-mimc

Rust库,用于在NEAR协议智能合约开发中使用MiMC散列函数。

使用场景

此库作为MiMC散列函数的实现被创建,可以在NEAR协议智能合约中运行。

它与circom2示例电路完全兼容(即以完全相同的方式实现)。这允许散列函数在基于snarky.jscircom的zkSNARK方案中使用。

支持的near-sdk版本

near-bigint基于near-sdk 4.0.0构建,并将定期更新以反映near-sdk的更新。以前的near-sdk版本与此库不兼容。

此外,函数接口使用了near-bigint库版本1.0.0中的大整数类型。

如何使用

该库公开了两个不同的散列函数,一个接受两个输入值,另一个接受单个值。

pub fn u256_mimc_sponge(k: U256, inputs: [U256; INPUTS]) -> [U256; OUTPUTS]

pub fn u256_mimc_sponge_single(k: U256, inputs: [U256; 1]) -> [U256; 1]

依赖项

~6MB
~117K SLoC