一文了解Lookup Arguments-ODAILY_OKU:LOOK

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行数。

英国最终敲定加密货币行业监管计划:金色财经报道,据悉,英国财政部正在敲定监管加密货币行业的一揽子全面规则计划。大臣们不久将就新的监管体制展开磋商,此前,FTX的崩溃为政府整顿金融业的承诺注入了新的紧迫性。消息人士表示,该计划将使英国金融行为监管局(FCA)能够更广泛地监督加密货币,包括监督公司如何运营和为其产品做广告,从海外向英国市场销售比特币也将受到限制。[2022/12/6 21:24:50]

因此,为了简单,我们需要:

a.把不同的操作类型分成多个子trace,然后分别证明,主trace和子trace之间需要通过Lookupargument来保证数据的一致性。

b.对于一些ZK-unfriendly计算,我们可以通过Lookupargument技术来缩减trace的规模,比如位运算等。

当然,也有其他的一些技术手段来减少trace规模,我们将在后面的文章中给予说明。

Lookupbetweentracetables

VM所有的执行过程会组成一个完整的trace,称为主trace,这里的完整是包含VM执行的所有状态,不会涉及到辅助状态,比如,方便ZK验证的一些扩展信息等;如前面所述,在主trace里面包含这种辅助信息,会使得主trace变得复杂,难于约束。因此,为了约束方便,通常会建立一些子trace,然后分别针对这些子trace进行约束,而主trace主要用来进行执行正确的程序约束和Context约束。

央行副行长范一飞:着力构建更加完备的农村数字金融体系:10月8日消息,中国人民银行副行长范一飞日前在《中国金融》上撰文指出,将继续牢牢锚定乡村振兴战略目标,踔厉奋发、勇毅前行,切实发挥金融科技的创新赋能作用,着力构建更加完备、更为高效、更具普惠性的农村数字金融体系,为推进新时代乡村振兴贡献更多金融力量。[2022/10/8 12:49:30]

图片1.Lookupbetweentraces

通过建立不同的子trace,我们把VM执行的不同操作进行划分,通过Lookupargument技术来保证了子trace的数据源于主trace。对于子trace里的数据有效性证明,需要根据具体的操作类型,生成不同的trace,然后用对应的约束去证明trace的有效性;特别是对于bitwise,rangcheck等zk-unfriendly操作。

LookupforZK-unfriendlyoperations

如前面所述,每个子trace的证明是独立的,所以获得一个尽可能小的trace,会提高prover的效率。以bitwise为例,bitwise操作包含AND,XOR,NOT三种操作。如果想通过电路单纯的实现对bitwise操作的约束,那需要做的可能是,把每个op拆成多个2进制的limbs,如果这些op是32bit位宽,那就会拆分成32个limbs。然后,你需要约束:

数据:萨尔瓦多加密钱包Chivo使用率未达预期,汇款占比只有该国总汇款额1.9%:金色财经报道,据前萨尔瓦多央行行长、独立顾问和经济学家卡洛斯·阿塞韦多(Carlos Acevedo)最近接受彭博社采访时称:“现在萨尔瓦多已经没有人真正谈论比特币了,这是一种被遗忘的形式。”数据显示,萨尔瓦多的加密钱包Chivo和比特币几乎没有被用作汇款渠道,从2021年9月到2022年6月期间,通过Chivo汇入的汇款金额只有1.089亿美元,只占到萨尔瓦多57.6亿美元总汇款额的1.9%。此外,自2022年2月以来,该国绝大多数 Chivo 售货亭都处于非运营状态。根据《巴伦周刊》此前报道,萨尔瓦多总统布克勒为财政部购买了2381枚比特币,花费约1.07亿美元,截至今年9月账面价值已下跌约58%。(cryptonewsbtc)[2022/9/26 7:20:26]

总共占用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。

Galaxy Digital创办人暨执行长:以太坊合并是一件大事:8月9日消息,加密货币银行Galaxy Digital创办人暨执行长Mike?Novogratz:比特币走势与美联储有关,对(美国经济软着陆)表示怀疑。以太坊合并是一件大事。[2022/8/9 12:11:11]

图2.LookupinArithmeticoperations

Lookupargument不仅对bitwise操作的证明有极大的提升作用,对于rangeck操作同样。对于32bit的op,只需要把他拆分成2个16bit的limbs即可;这里有两个很好的设计,一个是会使得rangecheck占用更少的tracecells;另外一个是rangcheck的sum约束可以复用我们自定义的ADD-MUL约束。对于不同的计算类型,能够复用同一个约束,对整体的效率提升具有很大的帮助,如上图所示,对于自定义的ADD-MULgate,它可以支持ADD,MUL,ADD-MUL,EQ,RANGECHECK五种计算类型的约束复用。

Plookup协议

介绍

Celsius从Aave和Compound收回1.72亿美元的抵押品:金色财经消息,加密借贷平台Celsius Network向Aave和Compound偿还了9500万美元债务,此举释放了锁定在平台中的1.72亿美元抵押品。

Nansen数据显示,与Celsius相关的钱包在各种交易中转移了3500万美元的DAI和4000万美元的USDC稳定币,另外根据Etherscan的数据,该钱包还在周日晚些时候向Aave协议支付了另外2000万美元的USDC。

根据Zapper的仪表板显示,在这些举措之后,该公司仍欠Aave和Compound 1.4亿美元,比上周五的2.35亿美元有所减少。(Coindesk)[2022/7/12 2:06:23]

符号说明

预处理

协议过程

协议理解

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:93ms0-0:842ms