本文档介绍了使用排列参数证明两个列表包含相同的元素,但顺序可能不同的证明。
本文介绍了零知识虚拟机(ZKVM)的概念,它能创建零知识证明来验证机器指令的正确执行。文章通过一个简化的栈式ZKVM示例,展示了如何使用Circom实现基本的算术运算,并探讨了提高ZKVM效率的现代方法,如查找表和递归证明。 ZKVM在零知识Layer2区块链中至关重要,并可用于验证机器学习算法的正确执行。
本文介绍了如何在零知识电路中证明选择排序算法的正确执行过程。由于ZK电路中信号的不可变性,每次交换都需要创建一个新的列表快照。为此,文章详细展示了如何通过多个中间状态的转换来证明排序的正确性,包括查找子列表中最小值的索引、交换列表中的两个元素等关键步骤, 并提供相应的代码模版。
本文详细介绍了Uniswap v3中的tick索引的最小值和最大值,以及它们与价格存储的关系。文章解释了如何计算与最大价格2128对应的tick值,并探讨了使用int24来存储tick索引的原因,同时指出了在代码库中硬编码的最小和最大平方根比率值。
int24
本文详细介绍了 Uniswap V3 如何存储和计算代币价格的平方根,主要通过一种固定点数格式 (Q64.96) 处理,以提高计算的 gas 效率。同时探讨了代币价格的上下限及其处理方式,深入分析了 Solidity 中不支持浮动小数的原因。
ERC-6909是ERC-1155标准的简化替代方案,旨在提高多代币合约的效率,其主要特点包括取消强制回调和批量转移逻辑,并引入混合权限管理模型,使得开发者能够更灵活地管理代币。此外,还提出了ERC-6909在DeFi应用中的实际使用,以及NFT系列的元数据处理。
本文详细介绍了rebase 代币的概念及其实现,通过设计一个基于ERC-20标准的重设代币合约,讨论了其逻辑、可能的安全问题及相应的代码实现。文章对交易、铸造、燃烧等过程进行了深入的分析,并提出了防止攻击的措施,适合对DeFi和智能合约开发有一定了解的读者。
本文详细解释了Uniswap V3中的ticks概念,ticks作为预定义价格点,在集中流动性管理中起到重要作用。文章深入探讨了ticks的定义、计算方法及其在流动性提供中的应用,并通过多个示例和插图增强理解,适合对DeFi和流动性池有一定了解的读者。
文章详细介绍了ERC-2535钻石模式(Diamond Pattern),这是一种代理模式,代理合约可以同时使用多个实现合约。文章深入讨论了钻石模式的实现原理、优势、以及与透明可升级代理(Transparent Upgradeable Proxy)和UUPS的区别。还介绍了钻石模式的应用场景和最佳实践,包括如何实现不可变钻石和可升级钻石,并提供了相关代码示例。
《Uniswap V2 Book》是一本深入解析Uniswap V2代码的书籍,不仅逐行解释代码,还探讨了设计背后的原因、替代方案及决策动机。书中还引入了实践问题,并指导读者如何实现Uniswap V2的克隆版本。