小编TIZ*_*TIZ的帖子

Pedersen circom/circomlibjs 不一致?

作为更大用例的单元测试,我正在检查我在前端执行的 pedersen 哈希确实与通过 circom 电路完成的预期哈希一致。我在电路中使用一个简单的断言并生成一个见证,并将散列值和未散列值提供给电路,重新创建散列以确保它通过。

我正在使用 circomlibjs 在前端运行 Pedersen 哈希。作为单元测试,我有。一个带有简单断言的电路,用于检查前端的结果是否与 circom 电路中的 pedersen 哈希值一致。

我正在使用的电路:

include "../node_modules/circomlib/circuits/bitify.circom";
include "../node_modules/circomlib/circuits/pedersen.circom";

template check() {
    signal input unhashed;
    signal input hashed;
    signal output createdHash[2];

    component hasher = Pedersen(256);
    component unhashedBits = Num2Bits(256);

    unhashedBits.in <== unhashed;

    for (var i = 0; i < 256; i++){
        hasher.in[i] <== unhashedBits.out[i];
    }

    createdHash[0] <== hasher.out[0];
    createdHash[1] <== hasher.out[1];

    hashed === createdHash[1];
}

component main = check();
Run Code Online (Sandbox Code Playgroud)

在前端,我正在运行以下命令,

import { buildPedersenHash } from 'circomlibjs';


export function buff2hex(buff) { …
Run Code Online (Sandbox Code Playgroud)

hash circuit node-modules circom zk-snark

5
推荐指数
1
解决办法
538
查看次数

标签 统计

circom ×1

circuit ×1

hash ×1

node-modules ×1

zk-snark ×1