您当前的位置: 首页 > 

mutourend

暂无认证

  • 2浏览

    0关注

    661博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Pinoccho——nizk-test

mutourend 发布时间:2019-06-06 16:12:48 ,浏览量:2

接Pinocchio——将.arith文件转换为qap及做相应的prove/verify操作,对nizk-test进行操作。

在这里插入图片描述

nizk-test.c内容为:

#pragma once
struct Input {    int a;};
struct NIZKInput {    int b1;    int b2;    int b3;    int b4;};
struct Output {    int c1;    int c2;    int c3;};
void outsource(struct Input *input, struct NIZKInput *nizkinput, struct Output *output);


#if 17
void outsource(struct Input *input, struct NIZKInput *nizkinput, struct Output *output)
{    
	output->c1 = input->a + nizkinput->b1;    
	output->c3 = input->a + nizkinput->b3;
}
#else
void outsource(struct Input *input, struct Output *output)
{    
	output->c1 = input->a;    
	output->c3 = input->a + 3;
}
#endif

一、生成nizk-test.c对应的circuit
python ../src/vercomp.py nizk-test.c --arith nizk-test.arith --ignore-overflow False --progress True

生成的nizk-test.arith内容为:

total 13
input 0                                  # input
input 1                                  # one-input
nizkinput 2                              # input
nizkinput 3                              # input (unused)
nizkinput 4                              # input
nizkinput 5                              # input (unused)
const-mul-0 in 1  out 1            # zero
add in 2  out 1                  # ArithBusReq.AddReq(DFG.Input,DFG.NIZKInput)
const-mul-0 in 1  out 1            # constant 0
add in 2  out 1                  # ArithBusReq.AddReq(DFG.Input,DFG.NIZKInput)
mul in 2  out 1                 # output-cast
output 10                                # 
mul in 2  out 1                 # output-cast
output 11                                # 
mul in 2  out 1                 # output-cast
output 12                                # 

配置相应的input文件nizk-test.in

0 5
1 1
2 1
3 2
4 3
5 4
二、生成相应的公私钥
pinocchio-v0.5.3.exe --qap --pv --nizk --file circuit/nizk-test.arith --mem 4 --input circuit/nizk-test.in --output circuit/nizk-test.out --keys test-nizk-key --genkeys

对应的输出为: 在这里插入图片描述 同时生成了公私钥文件:(私钥为空???) 在这里插入图片描述

三、生成proof文件
pinocchio-v0.5.3.exe --qap --pv --nizk --file circuit/nizk-test.arith --mem 4 --input circuit/nizk-test.in --output circuit/nizk-test.out --keys test-nizk-key --dowork

输出内容为: 在这里插入图片描述 同时生成proof文件和.out文件: 在这里插入图片描述在这里插入图片描述 其中nizk-test.out内容为(与nizk-test.in文件的输入相对应):

10 0000000000000000000000000000000000000000000000000000000000000006
11 0000000000000000000000000000000000000000000000000000000000000000
12 0000000000000000000000000000000000000000000000000000000000000008

四、Verify

pinocchio-v0.5.3.exe --qap --pv --nizk --file circuit/nizk-test.arith --mem 4 --input circuit/nizk-test.in --output circuit/nizk-test.out --keys test-nizk-key --verify

对应的输出为Verification passed通过。在这里插入图片描述

关注
打赏
1664532908
查看更多评论
立即登录/注册

微信扫码登录

0.0360s