Polygon zkEVM Merkle tree的circom约束
admin
2024-02-27 01:46:26
0

1. 引言

前序博客有:

  • Polygon zkEVM中的Merkle tree
  • Polygon zkEVM中Goldilocks域元素circom约束

代码见:

  • https://github.com/0xPolygonHermez/pil-stark/tree/main/circuits.gl

2. Poseidon哈希circom约束

3. LinearHash circom约束

template LinearHash(nInputs, eSize) {signal input in[nInputs][eSize]; //输入in元素数为nInputs*eSizesignal output out[4];var nHashes;if (nInputs*eSize <= 4) {nHashes = 0;} else {nHashes = (nInputs*eSize - 1)\8 +1;}component hash[nHashes];if (nInputs*eSize <= 4) {var curI=0;var curE=0;for (var i=0; i<4; i++) {if (i0) {hash[i].capacity[k] <== hash[i-1].out[k];} else {hash[i].capacity[k] <== 0;}}}for (var k=0; k<4; k++) {out[k] <== hash[nHashes-1].out[k];}}
}

4. Merkle tree circom约束

template Merkle(nLevels) { //nLevels表示树高度signal input value[4]; //叶子节点数据对应4个Goldilocks元素signal input siblings[nLevels][4]; //每个节点哈希值对应4个Goldilocks元素signal input key[nLevels]; //key数组表示所在各层的位置signal output root[4];component hash[nLevels];for (var i=0; i0) {hash[i].in[k  ] <== key[i]*(siblings[i][k]   - hash[i-1].out[k]) + hash[i-1].out[k];hash[i].in[k+4] <== key[i]*(hash[i-1].out[k] - siblings[i][k]  ) + siblings[i][k];} else {hash[i].in[k] <== key[i]*(siblings[i][k]   - value[k]        ) + value[k];hash[i].in[k+4] <== key[i]*(value[k]         - siblings[i][k]  ) + siblings[i][k];}hash[i].capacity[k] <== 0;}}for (var k=0; k<4; k++) {root[k] <== hash[nLevels-1].out[k];}}

5. MerkleHash circom约束

MerkleHash本质为:以values、siblings、key为输入,以root为输出,验证相应的Merkle证明与root是否匹配。
s0_merkle1[q] = MerkleHash(1, 2, 2048)=MerkleHash(eSize, elementsInLinear, nLinears) 为例:

  • 1)eSize:表示单个数据所需的Goldilocks元素数
  • 2)elementsInLinear:表示叶子节点对应的数据数
  • 3)nLinears:表示Merkle树中总的节点树
template MerkleHash(eSize, elementsInLinear, nLinears) {var nBits = log2(nLinears); //2^11=2048,nBits为Merkle树高度assert(1 << nBits == nLinears); //要求nLinears为2的某幂次运算signal input values[elementsInLinear][eSize]; //values[2][1]signal input siblings[nBits][4]; //Merkle证明路径,每个节点为哈希值对应4个Goldilocks元素。signal input key[nBits];  //key数组表示所在各层的位置signal output root[4];//对 叶子节点下原始数据进行处理,为4个Goldilocks元素。component linearHash = LinearHash(elementsInLinear, eSize);for (var i=0; i

6. TreeSelector

s0_lowValues[q] = TreeSelector(4, 3) ;为例,表示:

template TreeSelector(nLevels, eSize) {var n = 1 << nLevels;signal input values[n][eSize];signal input key[nLevels];signal output out[eSize];signal im[n-1][eSize];var levelN = n\2;var o = 0;var lo = 0;for (var i=0; i

附录:Polygon Hermez 2.0 zkEVM系列博客

  • ZK-Rollups工作原理
  • Polygon zkEVM——Hermez 2.0简介
  • Polygon zkEVM网络节点
  • Polygon zkEVM 基本概念
  • Polygon zkEVM Prover
  • Polygon zkEVM工具——PIL和CIRCOM
  • Polygon zkEVM节点代码解析
  • Polygon zkEVM的pil-stark Fibonacci状态机初体验
  • Polygon zkEVM的pil-stark Fibonacci状态机代码解析
  • Polygon zkEVM PIL编译器——pilcom 代码解析
  • Polygon zkEVM Arithmetic状态机
  • Polygon zkEVM中的常量多项式
  • Polygon zkEVM Binary状态机
  • Polygon zkEVM Memory状态机
  • Polygon zkEVM Memory Align状态机
  • Polygon zkEVM zkASM编译器——zkasmcom
  • Polygon zkEVM哈希状态机——Keccak-256和Poseidon
  • Polygon zkEVM zkASM语法
  • Polygon zkEVM可验证计算简单状态机示例
  • Polygon zkEVM zkASM 与 以太坊虚拟机opcode 对应集合
  • Polygon zkEVM zkROM代码解析(1)
  • Polygon zkEVM zkASM中的函数集合
  • Polygon zkEVM zkROM代码解析(2)
  • Polygon zkEVM zkROM代码解析(3)
  • Polygon zkEVM公式梳理
  • Polygon zkEVM中的Merkle tree
  • Polygon zkEVM中Goldilocks域元素circom约束

相关内容

热门资讯

黄金暴跌,市场总有轮回。 今天不聊别的,还是聊黄金。但今天为了说清楚黄金,我会先分析同样经历了暴跌的比特币、以太坊等crypt...
2025年净利最高预亏2.9亿... 北京商报讯(记者 丁宁)2月2日,双鹭药业(002038)盘中触及跌停,截至北京商报记者发稿,双鹭药...
盘点2025信托业(二)|新监... 中国网财经2月2日讯 2025年,信托行业监管制度体系经历根本性重塑,“1+N”政策框架落地生根,为...
中国国航2026年春运计划执行... 中国国际航空股份有限公司(下称“国航”)2月2日宣布,2026年春运将全面升级运力投入,在册飞机数量...
原创 今... 一家公司,在不到一个月的时间里,股价像坐上了火箭,一口气连拉17个涨停板,价格翻了4倍多。 就在所有...
脑出血后昏迷不醒有什么治疗方法... 脑出血是一种发病急、进展快、致死致残率极高的急性脑血管疾病,其发病率约占全部脑卒中的20%~30%,...
原创 今... 今天A股跌得让人心慌,商业航天、黄金、农业,热点一个接一个熄火。 但在一片惨绿中,有一个板块却像打了...
2026年存款搬家,有望为A股... 根据财通证券测算,2026年企业与居民中长期存款的到期规模在57.3万亿元,而居民中长期存款到期规模...
两部门发文明确增值税进项税额抵... 财政部 税务总局 关于增值税进项税额抵扣等有关事项的公告 财政部 税务总局公告2026年第13号 根...
兴业银行多位经理被禁止从事银行... 据国家金融监督管理总局大连监管局2月2日公开的行政处罚信息显示,兴业银行股份有限公司大连分行因信贷业...
原创 金... 深圳水贝市场里,一位女士快速计算着价格,掏出银行卡支付了近12万元,买下100克金条。 黄金价格正在...
韩国股市大跌触发熔断机制 1日,韩国首尔,中区一家银行交易室的电子屏显示韩国综合股价指数(KOSPI)。视觉中国/图 韩国股市...
尿色加深、皮肤泛黄时,你的肝可... 生活中,不少人发现尿色变深、皮肤泛黄时,会误以为是喝水少、上火或肤色问题,简单调整后便不再关注。可这...
30亿元红包!千问宣布 2月2日,千问APP宣布投入30亿元启动“春节请客计划”,以免单形式请全国人民在春节期间吃喝玩乐,感...
周生生足金挂坠被检测出含铁银钯... 编者按:维护消费者权益,守护消费安全。央广网啄木鸟消费者投诉平台,保障消费者合法权益,为新消费时代保...
中国AI应用春节红包大战 阿里... 中国科技巨头为推广旗下人工智能(AI)产品重演11年前的红包大战,继腾讯和百度后,同样在追赶字节跳动...
最新!多家银行,紧急调整! 近期,国际黄金与白银价格在创下历史新高后剧烈波动。2月2日,金银价格显著回调,黄金期货一度跌破每盎司...
米兰冬奥中国代表团成立丨冰雪热... 聚焦健康中国 冬奥会 (第一健康报道北京 实习记者袁正杰) 米兰冬奥会中国体育代表团正式成立,标志着...
i茅台:月活用户超1531万,... 1499元飞天上架已满月,i茅台披露关键数据。 2月2日,据“小茅i茅台”微信公号,i茅台表示,“这...
多重风险高悬 一批*ST公司拉... 伴随2025年度业绩预告密集发布,一批上市公司拉响退市风险“警报”。 据上海证券报初步统计,近期,已...