企业培训资讯_企业培训干货

当前位置:首页 > 客户案例

钱柜手机版|DIZK源代码导读

发布时间:2021-03-31    来源:钱柜首页76743

本文摘要:对DIZK感兴趣的小伙伴可以想到DIZK的源代码:https://github.com/scipr-lab/dizkDIZK的改版较为较少,网卓新闻网,最后一个patch也是2018年底了:commit 81d72a3406e2500561551cbf4d651f230146bb92Merge: e98dd9c 7afd0beAuthor: Howard Wu [emailprotected]Date: Wed Dec 12 11:17:57 2018 -0800Merge pull request #6 from gnosis/profiler_error #5 - Throw Error when profiler has wrong APP parameter.1. 源代码结构DIZK是在Spark框架上,用java语言构建的分布式零科学知识证明系统。

对DIZK感兴趣的小伙伴可以想到DIZK的源代码:https://github.com/scipr-lab/dizkDIZK的改版较为较少,网卓新闻网,最后一个patch也是2018年底了:commit 81d72a3406e2500561551cbf4d651f230146bb92Merge: e98dd9c 7afd0beAuthor: Howard Wu [emailprotected]Date: Wed Dec 12 11:17:57 2018 -0800Merge pull request #6 from gnosis/profiler_error #5 - Throw Error when profiler has wrong APP parameter.1. 源代码结构DIZK是在Spark框架上,用java语言构建的分布式零科学知识证明系统。源代码的结构如下:algebra - 各种计算出来:椭圆曲线,域/群,FFT以及多倍点(fixedMSM和VarMSM)。

bace - batch证明的涉及构建。relations - 电路的回应:r1cs以及QAP。reductions - 构建r1cs到QAP的转化成。

zk_proof_systems - Groth16证明系统profiler - 性能测试逻辑熟知libsnark的小伙伴,对这些术语应当深感较为平易近人。2. DistributedSetupDistributedSetup构建了分布式的Setup逻辑:main/java/zk_proof_systems/zkSNARK/DistributedSetup.javagenerate函数构建了Pk/Vk的分解。public static FieldT extends AbstractFieldElementExpandedFieldT,G1T extends AbstractG1G1T,G2T extends AbstractG2G2T,GTT extends AbstractGTGTT,PairingT extends AbstractPairingG1T, G2T, GTTCRSFieldT, G1T, G2T, GTT generate(final R1CSRelationRDDFieldT r1cs,final FieldT fieldFactory,final G1T g1Factory,final G2T g2Factory,final PairingT pairing,final Configuration config) {2.1 QAP转化成final QAPRelationRDDFieldT qap = R1CStoQAPRDD.R1CStoQAPRelation(r1cs, t, config);留意,QAP用QAPRelationRDD类回应。

钱柜手机版

2.2 计算出来deltaABC/gammaABCfinal JavaPairRDDLong, FieldT betaAt = qap.At().mapValues(a - a.mul(beta));final JavaPairRDDLong, FieldT alphaBt = qap.Bt().mapValues(b - b.mul(alpha));final JavaPairRDDLong, FieldT ABC = betaAt.union(alphaBt).union(qap.Ct()).reduceByKey(FieldT::add).persist(config.storageLevel());final JavaPairRDDLong, FieldT gammaABC = ABC.filter(e - e._1numInputs).mapValues(e - e.mul(inverseGamma));final JavaPairRDDLong, FieldT deltaABC = ABC.filter(e - e._1 = numInputs).mapValues(e - e.mul(inverseDelta));2.3 计算出来At/Bt的密集度final long numNonZeroAt = qap.At().filter(e - !e._2.isZero()).count();final long numNonZeroBt = qap.Bt().filter(e - !e._2.isZero()).count();2.4 计算出来FixedMSM(G1/G2)final G1T generatorG1 = g1Factory.random(config.seed(), config.secureSeed());final int scalarSizeG1 = generatorG1.bitSize();final long scalarCountG1 = numNonZeroAt + numNonZeroBt + numVariables;final int windowSizeG1 = FixedBaseMSM.getWindowSize(scalarCountG1 / numPartitions, generatorG1);final ListListG1T windowTableG1 = FixedBaseMSM.getWindowTable(generatorG1, scalarSizeG1, windowSizeG1);以上是G1的MSM的计算出来(G2类似于),留意windowSizeG1,是所有的“非零”系数的个数除以Partition的个数。2.5 分解CRS(Pk/Vk)final ProvingKeyRDDFieldT, G1T, G2T provingKey = new ProvingKeyRDD(alphaG1,betaG1,betaG2,deltaG1,deltaG2,deltaABCG1,queryA,queryB,queryH,r1cs);final VerificationKeyG1T, G2T, GTT verificationKey = new VerificationKey(alphaG1betaG2,gammaG2,deltaG2,UVWGammaG1);留意:Pk用于RDD(ProvingKeyRDD)回应。3. DistributedProverDistributedProver构建了分布式的Prover逻辑:main/java/zk_proof_systems/zkSNARK/DistributedProver.javaprove函数构建了证明分解逻辑。

public static FieldT extends AbstractFieldElementExpandedFieldT, G1T extendsAbstractG1G1T, G2T extends AbstractG2G2TProofG1T, G2T prove(3.1 分解witnessfinal QAPWitnessRDDFieldT qapWitness = R1CStoQAPRDD.R1CStoQAPWitness(provingKey.r1cs(), primary, oneFullAssignment, fieldFactory, config);QAPWitnessRDD定义在main/java/relations/qap/QAPWitnessRDD.java,还包括输出信息以及H多项式系数(FFT计算出来取得)。3.2 产生随机数final FieldT r = fieldFactory.random(config.seed(), config.secureSeed());final FieldT s = fieldFactory.random(config.seed(), config.secureSeed());3.3 计算出来Evaluationfinal JavaRDDTuple2FieldT, G1T computationA =.join(provingKey.queryA(), numPartitions).values();final G1T evaluationAt = VariableBaseMSM.distributedMSM(computationA);通过VariableBaseMSM计算出来A/B/deltaABC以及H的Evaluation。3.4 分解证明// A = alpha + sum_i(a_i*A_i(t)) + r*deltafinal G1T A = alphaG1.add(evaluationAt).add(deltaG1.mul(r));// B = beta + sum_i(a_i*B_i(t)) + s*deltafinal Tuple2G1T, G2T B = new Tuple2( betaG1.add(evaluationBt._1).add(deltaG1.mul(s)), betaG2.add(evaluationBt._2).add(deltaG2.mul(s)));// C = sum_i(a_i*((beta*A_i(t) + alpha*B_i(t) + C_i(t)) + H(t)*Z(t))/delta) + A*s + r*b - r*s*deltafinal G1T C = evaluationABC.add(A.mul(s)).add(B._1.mul(r)).sub(rsDelta);4. Profilingmain/java/profiler/Profiler.java是性能测试的入口类,获取了各种算子的性能测试能力,还包括分布式和单机版本。在scripts目录下也获取了Spark运营的脚本。

配置文件,DIZK是用于Amazon的EC2机器展开测试的。./spark-ec2/copy-dir /home/ec2-user/export JAVA_HOME="/usr/lib/jvm/java-1.8.0"for TOTAL_CORES in 8; do for SIZE in `seq 15 25`; doexport APP=dizk-largeexport MEMORY=16Gexport MULTIPLIER=2export CORES=1export NUM_EXECUTORS=$((TOTAL_CORES / CORES))export NUM_PARTITIONS=$((TOTAL_CORES * MULTIPLIER))/root/spark/bin/spark-submit \ --conf spark.driver.memory=$MEMORY \... --class "profiler.Profiler" \ /home/ec2-user/dizk-1.0.jar $NUM_EXECUTORS $CORES $MEMORY $APP $SIZE $NUM_PARTITIONS donedone感兴趣的小伙伴,可以自己改为一下脚本,在本地环境运营DIZK。总结:DIZK,是在Spark大数据计算出来框架下的分布式零科学知识证明系统。DIZK的代码较为明晰,注解也较为原始。

DistributedSetup和DistributedProver是Setup和Prover的构建。DIZK获取了原始的Profiling的代码。


本文关键词:钱柜手机版,钱柜在线,钱柜首页

本文来源:钱柜手机版-www.011na.com

分享到:
相关推荐MORE+
05-18 酸奶三国杀:蒙牛达能难兄联盟直指光明:钱柜在线

本文摘要:全世界知名品牌畜牧网讯:   蒙牛和达能彼此将重新组建新的合资企业重点主要从事酸奶生产制造及渠道销售。全世界知名品牌畜牧网讯:   蒙牛和达能彼此将重新组建新的合资企业重点主要从事酸奶生产制

05-18 【品牌整形】武汉真爱是武汉一家比较大的女性整形专科医院-钱柜首页

本文摘要:武汉市真为爱人妇产科医院美容医疗科是大韩整形美容外科医师协会在华独一合作医院,经中国韩国整型美容精英团队用心打造出的集韩皇宫祖传秘方与技术设备当代韩国医疗美容技术性于一身的不容易所式美容专业

05-18 钱柜在线:一言不合就熬夜?这份攻略帮你赶走黑眼圈

本文摘要:各位好!,我是小维。各位好!,我是小维。如今的年青人啊,大白天忙着下班了,幸福快乐的夜里怎能消耗,自然要作为刷剧、追星族、淘宝刷销量、玩游戏……因此,休息日出了当代年青人真实身份的象征。休息

05-18 四国赛-中国女足1分钟丢2球 1-2惨遭加拿大逆转【钱柜首页】

本文摘要:体育文化1月15日报道:1月15日19点30分,二零一五年深圳市女足4国赛第三轮最终一场赛事在深圳宝安体育馆进行,中国女足迎战加拿大女足。体育文化1月15日报道:1月15日19点30分,二零

【钱柜首页】(09月20日)甘肃浩海煤化二期100万吨煤化工项目开工 钱柜手机版:《龙珠:超》剧情频出新设定 大坑越来越多怎么填
热门文章
7个链上指标剖析比特币价格下跌之因-钱柜首页
警惕物联网的安全黑洞 用流量来攻击网站
2050“约会”上线,王坚博士想约8个人坐下来聊聊天
最贵的奢侈手机Vertu品牌被中国收购
钱柜手机版:英日科学家因“细胞重新编程”获诺奖
电子身份证来了!扫一扫就能用手机丢了也不怕【钱柜在线】
钱柜手机版_双语科技百科(近现代成就) 第121期:青藏铁路
铜博科技4.5m超薄双光锂电池专用箔正式面世|钱柜首页
简析激光器的种类与应用
斯沃琪联合创始人 Apple Watch是传统制表业劲敌:钱柜首页
LGUplus努力缓解华为5G设备安全性的担忧-钱柜首页
积木宝贝 手拉手·魔法传奇音乐之旅活动精彩回顾-钱柜首页
近80所国际知名大学与高校生面对面 国际研究生奖学金说明会21日【钱柜首页】
眼动追踪头戴设备可以帮助残疾人
张家界城市夜景照明设计方案详解
客户案例
×