作为不需要可信设置的零知识证明算法代表之一,STARK算法被应用于StarkNet生态的各个项目中,比如dydx,immutableX等,并表现出了不俗的性能。本文将主要从代码层面剖析STARK算法的实现过程,帮助大家对STARK算法有更深入的理解。
Step1.Buildtrace
标红部分为Publicinfo
Step2.ProverforTrace
协议参数选取:
1.AIR实例化
2.验证AIR和Trace的一致性
2.1校验基础参数
2.2校验assertion有效(boundarycs)
Beosin发现Move VM严重级别漏洞:金色财经报道,近日,区块链安全公司Beosin发现Move VM严重级别漏洞。Beosin安全研究团队在Move虚拟机中发现了一个没有限制递归调用深度而导致的栈溢出漏洞,这个漏洞可以导致整个网络崩溃(total network shutdown),还会让新的validator节点无法加入到网络中,甚至有可能导致硬分叉(hard fork)。Sui mainnet_v1.2.1、Aptos mainnet_v1.4.3以前的版本都受此漏洞影响。目前该漏洞已被官方修复。Suimainnet_v1.2.1、Aptosmainnet_v1.4.3、Move-language 2023年6月10日之后的版本修复了此漏洞。[2023/6/15 21:37:59]
2.3校验Trace满足transitioncs
Transcript
3.Commitfortrace
域参数选取:
Beosin:SnarkJS 0.6.11及之前的版本中存在严重漏洞:金色财经报道,Beosin 安全研究人员在 SnarkJS 0.6.11及之前的版本的库中发现了一个严重漏洞,SnarkJS 是一款用于构建零知识证明的开源 JavaScript 库,广泛应用于 zk-SNARK 技术的实现和优化。Beosin在提了这个漏洞以后,第一时间联系项目方并协助修复,目前该漏洞还处于修复测试中。Beosin提醒所有使用了SnarkJS库的项目方,在SnarkJS 库这个漏洞还没完全修复时,一定要注意安全风险。[2023/5/18 15:11:20]
3.1Interpolate->LDE->evaluateoverLDE-domain
3.2Commitment
Tracescript
4.EvaluateCS
4.1获取线性组合系数
FarmApp 合约singer私钥疑似丢失,目前MMT价格已经下跌81%:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,2023年2月12日,FarmApp 合约singer私钥疑似丢失,攻击者(0x2a45a576beecc945527a1b106c6d41d3ea52f9f7)使用singer的签名调用sowSeed函数生成42 的sowid的newSowData,并再次调用claimedSeed函数盗取了936,387枚MarsMinerToken (MMT),最后将盗取的MMT兑换约为301枚BNB(价值约93000 USD)转入了Tornado.Cash,目前MMT价格已经下跌81%。[2023/2/12 12:01:42]
系数个数和约束的个数一致
在本例中,transitioncs2个;boundarycs3个
4.2为t-cs和b-cs构建evaluator
4.2.1t-cs
4.2.2b-cs
4.3Evaluatet/s-csoverce_domain
4.3.1定义evaluatortable
Beosin:Gnosis Omni Bridge跨链桥项目存在合约层面的重放漏洞:金色财经报道,Beosin 安全团队发现,在以太坊合并并分叉出 ETHW 后,Gnosis Omni Bridge跨链桥项目,由于合约代码中固定写死了chainID,而未真正验证当前所在链的chainID,导致合约在验证签名时能够在分叉链上验证通过。攻击者首先在 ETH 主网上通过omni Bridge 转移 WETH,随后将相同的交易内容在 ETHW 链上进行了重放,获取了等额的 ETHW。目前攻击者已经转移了 741 ETHW 到交易所。
Beosin 安全团队建议如果项目方合约里面预设了chainID,请先手动将chainId更新,即使项目方决定不支持ETHW,但是由于无法彻底隔绝通过跨链桥之间的资产流动,建议都在ETHW链上更新。[2022/9/19 7:04:46]
5CommitmenttoEvaluateCS
5.1建立constraintscompositionpolynomial
5.2commitmenttocompositionpoly
Example:
Compose_poly=a*x^3+b*x^2+c*x+d=(a*x^2+c)*x^+(b*x^2+d)
SingularityDAO任命Chris Poulin为CTO和AI主管:8月25日消息,DeFi投资组合管理公司SingularityDAO已经任命研究科学家Chris Poulin为新的首席技术官和人工智能主管,Poulin将负责开发SingularityDAO的DynaSets,这是一个由人工智能驱动的系统,用于建立一个精心策划的加密货币投资篮。DynaSets在一份合同中持有DeFi代币的集合,使投资者能够更容易地管理他们的投资组合。工作内容还包括为DeFi领域开发新的人工智能驱动的产品。(cointelegraph)[2021/8/25 22:37:13]
(a*x^2+c),(b*x^2+d)分别对应两个column
6.建立DEEPcomposition多项式
Thegeneralformal:f(x)=q(x)*t(x)
Needcheckatrandomz
1.f(z)=q(z)*t(z)
2.f(x),q(x),t(x)indeedequalrespectivelyf(z),q(z),t(z)
3.calculateDeep_composition=(q(x)-q(z))/(x-z)
4.CheckLDTforq_q(x)
6.1selectzwhichoutofdomain(ood)
drawanout-of-domainpointz.DependingonthetypeofE,thepointisdrawneitherfromthebasefieldorfromanextensionfielddefinedbyE.
Thepurposeofsamplingfromtheextensionfieldhere(insteadofthebasefield)istoincreasesecurity.
6.2evaluatetraceandconstraintpolynomialsattheOODpointz
6.2.1trace_polyatz&z*g
6.2.2compositionpolyatz
6.3建立Deepcompositonpolynomial
6.3.1产生随机数
6.3.2calquotientpoly
6.4evaluateDeepoverLDE
7.计算Deep的FRILayernum
8.确定query位置
从lde_domain中选取多个query的位置。
9.构建proof对象
9.1生成FRIproof
9.2querytracepolyatabovepositions
和上述类似
9.3queryconstraintpolyatabovepositions
和上述类似
9.4构建STARKPROOF
Step3.Verifyforproof
从?transcript中读取pub-info,用来获取相关的数据,以执行验证过程。
1.Oodconsistencycheck
验证章节5.2描述的数学关系的一致性。
2.实例化FRI-verifier对象
3.计算Deeppolyonquerypositions
计算方式和章节6.4相同
4.执行FRIVERIFY过程
关于我们
Sin7y成立于2021年,由顶尖的区块链开发者和密码学工程师组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。
微信公众号:Sin7y
GitHub:Sin7y
Twitter:@Sin7y_Labs
Medium:Sin7y
Mirror:Sin7y
HackMD:Sin7y
HackerNoon:Sin7y
Email:contact@sin7y.org
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。