AppliedZKP公开了zkEVM的设计思路。zkEVM采用数据总线(Bus Mapping)的思路,将存储和计算分开。在Bus Mapping抽取了正确的存储数据的基础上,State proof证明数据的一致性,EVM proof证明计算逻辑的正确性。
Dark Forest是一款实时策略游戏。星球的移动和攻占是整个游戏的策略重点。为了在不公开星球坐标的情况,还能证明星球的移动正确,引入了零知识证明技术。
Hermez团队负责人Jordi Baylina比较清晰地给出了zkEVM大体的设计思路。本文梳理一下对zkEVM设计的理解。抛砖引玉,有理解偏差,小伙伴们可以留言讨论。
跨链是个复杂的话题。通过其他共识实现跨链相对简单现实。HTLC能实现交易双方的原子操作,但是限定交易为两方,而且为了提供交易的效率需要交易双方预先沟通。通过在链上实现轻客户端验证其他链的状态是一直探索的方向。对于PoW链,链上实现轻客户端需要考虑区块头同步成本以及主链确认逻辑。
最近有空看了看Plookup的论文。针对对电路描述不友好的操作(比如bit操作),Plookup给出了新的思路和证明方式。给定某个操作的真值表示(lookup table),证明某个操作的输入/输出是在真值表中。这种方式,相对之前的bit计算约束方式,降低约束的个数,提高了电路效率。
Layer2是个大的话题。是否去中心化,是否安全,资金状态确认时间是Layer2的主要的讨论话题。最近有点时间,总结一下Layer2的理解和思考。
Arbitrum是Layer2 Rollup的一种方案。采用挑战机制确定Rollup状态的终局性。为了引入轻便挑战机制,Arbitrum定义了AVM,一种可以方便证明执行状态的虚拟机,并设计了mini语言和编译器。在AVM上模拟了EVM的执行环境,兼容EVM。挑战时将执行过程进行400分分割,由L1执行少量指令确定状态是否正确。
Mina链上的区块数据永远“压缩”在22k。Mina是一种新的区块链形式,解决了一般链式区块链数据爆炸的问题。Mina采用PoS的共识机制,“最长/最重”链确认为主链。为了压缩链上的数据,Mina世界状态包括证明(Snarked)和非证明(Staged)的状态。非证明的状态通过链下的零知识证明的计算生成证明,证明证明状态正确。
Matter-Labs开源了PLONK算法的验证电路,能实现多个PLONK证明的聚合证明。聚合电路证明某个证明可验证,并且验证使用的VK是正确的。注意的是,PLONK算法验证的最后一步(配对函数)并没有在电路中验证,而是依赖智能合约进行验证。
uniswap V3的核心是在一定区间提供流动性。相对V2,代码复杂度增加不少。整个代码主要分为两部分:核心逻辑和辅助功能。核心逻辑又分为两部分:交易池以及Position的管理和Swap功能逻辑。交易池中的每个Position设计并实现成ERC721的Token。Swap核心逻辑在Tick以及Position的管理的基础上实现。