for i, pos in enumerate(positions): x = f.exp(G2, pos) x_to_the_steps = f.exp(x, steps) mbranch1 = verify_branch(m_root, pos, branches[i*3]) mbranch2 = verify_branch(m_root, (pos+skips)%precision, branches[i*3+1]) l_of_x = verify_branch(l_root, pos, branches[i*3 + 2], output_as_int=True) p_of_x = int.from_bytes(mbranch1[:32], 'big') p_of_g1x = int.from_bytes(mbranch2[:32], 'big') d_of_x = int.from_bytes(mbranch1[32:64], 'big') b_of_x = int.from_bytes(mbranch1[64:], 'big') zvalue = https://www.04ip.com/post/f.div(f.exp(x, steps) - 1, x - last_step_position) k_of_x = f.eval_poly_at(constants_mini_polynomial, f.exp(x, skips2)) # Check transition constraints Q(x) = Z(x) * D(x) assert (p_of_g1x - p_of_x ** 3 - k_of_x - zvalue * d_of_x) % modulus == 0 # Check boundary constraints B(x) * Z2(x) + I(x) = P(x) interpolant = f.lagrange_interp_2([1, last_step_position], [inp, output]) zeropoly2 = f.mul_polys([-1, 1], [-last_step_position, 1]) assert (p_of_x - b_of_x * f.eval_poly_at(zeropoly2, x) - f.eval_poly_at(interpolant, x)) % modulus == 0 # Check correctness of the linear combination assert (l_of_x - d_of_x - k1 * p_of_x - k2 * p_of_x * x_to_the_steps - k3 * b_of_x - k4 * b_of_x * x_to_the_steps) % modulus == 0
其实还没有完成成功;证明对跨多项式检查和 FRI 所需的抽查次数的可靠性分析是非常棘手的 。但是这些就是所有代码,至少你不用担心进行疯狂的优化 。当我运行以上代码的时候,我们会获得STARK证明 , 会有300-400倍的证明成本例如,一个需要 0.2 秒的 MIMC 计算需要 60 秒来证明) 。这就使得4核机器计算MIMC中的 STARK,实际上可以比后向计算 MIMC 更快 。也就是说,在python语言,这会相对低效的实现 , 并且这也会证明运行时间比例会不同 。同时,也值得指出,MIMC 的 STARK 证明成本非常低 , 因为MIMC几乎是完美地可计算,它的数学形式很简单 。对于平均计算,会包含更少的清晰计算(例如,检查一个数是大于还是小于另一个),其计算成本可能会更高,会有大约10000-50000倍 。
Python定义素数函数的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于python定义函数输出素数、Python定义素数函数的信息别忘了在本站进行查找喔 。
推荐阅读
- html5存储方式csdn,html5的web存储对象
- 狗狗跑步拍摄用什么,狗狗跑步机制作图
- 区块链跨境汇款利弊,区块链跨境汇款利弊论文
- php屏蔽所有错误数据库 php屏蔽所有错误数据库
- sqlserver表误删,sql server表数据删除怎么恢复
- 电话特别多用什么手机,电话量大用什么电话
- 直播评论引流文案,直播评论引流文案怎么写
- go语言包冲突 go 语言 gui
- 泡泡机如何营销,泡泡机销售话术