基于libsnark库的零知识证明示例复现(从安装虚拟机到复现示例全流程)

前言:

本文旨在对网上已有的方法步骤进行补充说明,指导读者完成从虚拟机安装到libsnark库示例代码复现全过程。建议先看本文中的注意事项,后跳转到参考网页,否则可能会掉到坑里。

目录:

一、VMware虚拟机及Ubuntu系统安装

1.在windows11上安装VMware-17.5.0版本虚拟机。

2.在虚拟机上安装ubuntu-22.04.3版本系统。

二、配置虚拟机(解决文件无法拖拽及下载速度慢的问题)

1.解决虚拟机“无法拖拽文件”问题

2.虚拟机换源

三、安装libsnark库

四、复现libsnark示例代码(merkle 路径证明)


一、VMware虚拟机及Ubuntu系统安装

1.在windows11上安装VMware-17.5.0版本虚拟机。

2.在虚拟机上安装ubuntu-22.04.3版本系统。

参考:安装:https://blog.csdn.net/weixin_74195551/article/details/127288338

           密钥:https://blog.csdn.net/hupoboy/article/details/131394587(笔者用的是第一个密钥)

二、配置虚拟机(解决文件无法拖拽及下载速度慢的问题)

1.解决虚拟机“无法拖拽文件”问题

参考:https://blog.csdn.net/ZRongZH/article/details/129237476

终端中运行结果如下:

2.虚拟机换源

参考:https://blog.csdn.net/xxx_2019/article/details/120660864

注:由于笔者安装的版本为ubuntu 22.04.3,因此需要将代码中的bionic换为jammy。

即:

#阿里源

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

三、安装libsnark库

文件准备:https://github.com/scipr-lab/libsnark

参考:https://blog.csdn.net/matlabdd1/article/details/123637302

注1:安装运行所需要的包时,执行第一条代码即可。

即:

sudo apt install build-essential cmake git libgmp3-dev libprocps-dev python3-markdown libboost-program-options-dev libssl-dev python3 pkg-config

注2:本例是直接从github上手动下载的压缩包,依赖也是手动复制的,未直接用命令行进行下载操作。

注3:安装子模块ate-pairing时

(1)“make-j”指令运行前,需要先给g++和gcc降级

参考:https://zhuanlan.zhihu.com/p/555635813

注:本例在未删除系统自带gcc-11和g++-11的情况下,安装了gcc-9和g++-9。

优先级配置代码如下(设置9为高优先级):

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 20



sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 10

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 20



sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30

sudo update-alternatives --set cc /usr/bin/gcc



sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30

sudo update-alternatives --set c++ /usr/bin/g++

设置结果如下:

(2)“test/bn”指令需修改为“sudo test/bn”

运行结果如下:

四、复现libsnark示例代码(merkle 路径证明)

文件准备:https://github.com/StarLI-Trapdoor/libsnark_sample

参考:https://blog.csdn.net/weixin_44565944/article/details/112250664

复现步骤:

1.下载好源码文件后,用搭建好的libsnark文件替换此文件中的空libsnark文件;

2.从参考网站的第5步开始执行,即可得到证明结果。

  • 35
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值