TL;DR
在上一篇文章Hello,OlaVM!中提到,OlaVM的愿景是建立一个高性能的ZKVM,本文将重点介绍使得OlaVM获得高性能的工具之一,Lookupargument。Lookupargument对缩减电路规模,以提高ZK效率有很重要的作用,在ZKVM的电路设计中被广泛应用,通过本篇文章你可以了解到:
1.Lookupargument在ZKVM中将发挥着怎样的角色?
2.Plookup协议原理。
3.Halo2的Lookupargument协议原理。
4.两个Lookupargument算法之间的联系。
TherolesinZKVM
所谓的ZKVM,其实就是用ZK约束VM所有的执行过程,VM的执行过程一般可以分为:指令执行,内存访问,内置函数执行等。在一个trace里执行对这些操作的约束看起来有点不切实际,首先,不同操作类型的约束对应不同的trace的宽度,如果其中一个约束对应的trace宽度特别大,就会造成其余约束对应trace的浪费;然后,一个trace里有太多不同的操作类型,就会引入更多的selector,不仅会增加多项式的个数,而且还会增加约束的阶;最后,由于群的阶限制,trace的行数不能超过这个群的阶,因此,应该尽量减少某种类型的操作所占用的trace行数。
因此,为了简单,我们需要:
Memeland船长系列NFT地板价24H降逾23%,或因开图后不及预期:7月2日消息,Blur数据显示,Memeland船长系列The Captainz NFT已于昨日开图,地板价现为4.85 ETH,24小时降幅为23.62%,或因开图后未达到用户预期。
此前根据官方介绍,The Captainz持有者可以选择性别、肤色类型、特征,报告特征错误并获得赏金,创造并销售特征作为官方特征的一部分,以所有者的身份帮助扩展Memeland生态系统。[2023/7/2 22:13:34]
a.把不同的操作类型分成多个子trace,然后分别证明,主trace和子trace之间需要通过Lookupargument来保证数据的一致性。
b.对于一些ZK-unfriendly计算,我们可以通过Lookupargument技术来缩减trace的规模,比如位运算等。
当然,也有其他的一些技术手段来减少trace规模,我们将在后面的文章中给予说明。
Lookupbetweentracetables
VM所有的执行过程会组成一个完整的trace,称为主trace,这里的完整是包含VM执行的所有状态,不会涉及到辅助状态,比如,方便ZK验证的一些扩展信息等;如前面所述,在主trace里面包含这种辅助信息,会使得主trace变得复杂,难于约束。因此,为了约束方便,通常会建立一些子trace,然后分别针对这些子trace进行约束,而主trace主要用来进行执行正确的程序约束和Context约束。
Aave创始人:稳定币采用可能会推动DeFi增长:2月6日消息,Aave创始人Stani Kulechov在StarkWare会议上强调了DeFi领域的几个问题。在题为“DeFi:面对全球不确定性的弹性”的炉边谈话中,Kulechov谈到了与传统金融(TradFi)相比DeFi的风险,以及稳定币如何导致更多DeFi采用等主题。
Kulechov表示,与TradFi产品相比,DeFi量化风险的准确性更好,这可能会推动该领域的进一步采用。他解释说,这意味着在DeFi中操作实际上会比TradFi更便宜,因为风险更容易识别。Kulechov指出,稳定币和支付可以发挥重要作用。根据他的说法,建立纳入稳定币的“支付层”,可以潜在地吸引普通人进入这个领域,最终将他们引入DeFi。(Cointelegraph)[2023/2/6 11:50:28]
图片1.Lookupbetweentraces
通过建立不同的子trace,我们把VM执行的不同操作进行划分,通过Lookupargument技术来保证了子trace的数据源于主trace。对于子trace里的数据有效性证明,需要根据具体的操作类型,生成不同的trace,然后用对应的约束去证明trace的有效性;特别是对于bitwise,rangcheck等zk-unfriendly操作。
LookupforZK-unfriendlyoperations
MakerDAO创始人的拆分计划已投票通过:金色财经报道,MakerDAO社区周一通过了Rune Christensen的 \"Endgame \"提案,并由此为DAO的新治理架构创造了条件。Endgame实施后,将把MakerDAO分解成更小的集群,称为 \"MetaDAO\"。MakerDAO目前沿着一些战略核心单位运作,承担着不同的功能。这些单位都在DAO的管理之下。
然而,在MetaDAO的新范式下,一旦实施,情况将发生变化。MetaDAO将彼此独立运作,它们将有自己的平行治理结构。这个治理结构将包括每个MetaDAO的独立代币和决策架构。其中一个MetaDAO甚至将处理Maker对现实世界资产投资的推动。
周一的投票结束时,80%的选票支持Endgame计划。然而赞成票中,超过70%来自与Maker创始人有关联的投票集团,这引发了治理集中化的问题。(the block)[2022/10/29 11:54:55]
如前面所述,每个子trace的证明是独立的,所以获得一个尽可能小的trace,会提高prover的效率。以bitwise为例,bitwise操作包含AND,XOR,NOT三种操作。如果想通过电路单纯的实现对bitwise操作的约束,那需要做的可能是,把每个op拆成多个2进制的limbs,如果这些op是32bit位宽,那就会拆分成32个limbs。然后,你需要约束:
Algorand任命首席运营官W. Sean Ford为新的临时CEO:7月27日消息,继前任首席执行官 Steven Kokinos 离职后,Algorand 于周三任命了一位新的临时首席执行官。 长期员工 W. Sean Ford(前区块链公司的首席运营官)将接替 Kokinos,他将继续担任高级顾问,直到 2023 年年中。在他之前的角色中,Ford 负责产品管理、工程、营销和全球社区发展。[2022/7/27 2:41:40]
总共占用3+32*3=99个tracecell,约束个数为3次sumcheck+32次bitwise=35个。
如果这个时候有一些真值表,对于AND,XOR,NOT计算,你可以定义三个表,这些表里存的是指定位宽的op进行bitwise计算的数据,比如8bit。对于32bit的op,只需要把它们拆分成4个8bit的limbs,然后这些op的limbs之间的bitwise关系,也不用对应的约束去实现,只需要在fixedtable里进行Lookup即可,此时,总共占用了3+4*3=15个tracecell,约束个数为3次sumcheck+1次Lookupargument。
图2.LookupinArithmeticoperations
Lookupargument不仅对bitwise操作的证明有极大的提升作用,对于rangeck操作同样。对于32bit的op,只需要把他拆分成2个16bit的limbs即可;这里有两个很好的设计,一个是会使得rangecheck占用更少的tracecells;另外一个是rangcheck的sum约束可以复用我们自定义的ADD-MUL约束。对于不同的计算类型,能够复用同一个约束,对整体的效率提升具有很大的帮助,如上图所示,对于自定义的ADD-MULgate,它可以支持ADD,MUL,ADD-MUL,EQ,RANGECHECK五种计算类型的约束复用。
澳大利亚CommBank暂停加密货币交易试点,称需要更多监管:5月20日消息,澳大利亚Commonwealth Bank(CommBank)暂停推出其加密交易服务,但并没有确定恢复该项目的时间表。
这项服务于去年11月首次宣布,将使约650万CommBank应用程序用户能够买卖多达10种加密货币,包括比特币、以太坊和莱特币。
在与加密货币交易所Gemini和区块链取证公司Chainalysis合作推出初步试点后,该行计划在今年逐步推出更多功能。然而,由于上周UST崩溃导致市场陷入混乱,CommBank现在暂停了该项目,且没有确定何时恢复。
CommBank表示,希望在进入试点的下一个阶段之前,能找到“最合适的监管结果”。CommBank首席执行官Matt Comyn补充说“在这个阶段,我们的意图仍然是重启试点,但我们仍需要在监管方面完成一些事情,以确保这是最合适的。”(Decrypt)[2022/5/20 3:28:58]
Plookup协议
介绍
符号说明
预处理
协议过程
协议理解
Halo2Lookup协议
介绍
协议过程
支持ZK
Extend-1:VectorLookup
Extend-2:Multi-tables
LinksbetweenPlookupandLookup
Plookup协议与Halo2的lookup协议都能证明f?t,但两个协议的思想是不同的,区别如下:
Plookup需要使用f和t构建一个新的数列s,f和t中的元素都在s中至少出现一次,接着通过比较s和t中元素的非零距离集合是相等的来证明s?t,最终f?s?t→f?t。
Halo2的lookup直接证明f?t,不需要构建新的数列,比plookup更简洁。
Plookup和Halo2lookup都需要对集合进行排序和补齐,plookup补齐后|t|=|f|+1,Halo2lookup补齐后|t|=|f|=2^k。
参考
1.Hello,OlaVM!:https://hackmd.io/@sin7y/H1yPj_J8i
2.OlaVM:https://olavm.org/
3.Plookup协议:https://eprint.iacr.org/2020/315.pdf
4.Halo2的Lookupargument:https://zcash.github.io/halo2/design/proving-system/lookup.html
关于我们
Sin7y成立于2021年,由顶尖的区块链开发者组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。团队于2022年7月推出OlaVM白皮书,致力于打造首个快速、可扩展且兼容EVM的ZKVM。
官网:https://sin7y.org/
白皮书:https://olavm.org/
社群:http://t.me/sin7y_labs
官推:@Sin7y_Labs
微信公众号:Sin7y
邮箱:contact@sin7y.org
研究文章:https://hackmd.io/@sin7y
Github:Sin7y
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。