分享百科

EVM

该视频的核心内容是关于以太坊 L1 交易并行化的技术,旨在提高以太坊执行客户端的效率,缩短区块执行时间,从而提升整个网络的性能。 **关键论据/信息:** * **背景:** 以太坊正在扩展,对区块 gas 的需求增加,新的密码学原语不断涌现,对执行客户端提出了更高的效率要求。 * **问题:** 区块执行占据了以太坊 slot 的很大一部分时间(4秒/12秒),优化执行时间可以释放资源给共识客户端。 * **目标:** 通过并行执行交易,减少区块执行时间。 * **历史:** 介绍了以太坊 Byzantium 版本前后交易执行方式的演变,EIP-98 和 658 放宽了对中间状态根的要求,为并行执行提供了可能。 * **并行执行策略:** * **不并行化:** 作为最坏情况的基准,用于设置 gas 目标。 * **悲观锁:** 不适用于以太坊 L1 协议。 * **乐观执行:** 执行所有交易,然后检测和处理冲突。 * **Naive 策略:** 假设所有交易都冲突,并行执行后重新串行执行,但可以缓存数据,加速串行执行(Nethermind 的 pre-warming 功能)。 * **冲突检测与处理:** 并行执行后,检测冲突并重新执行冲突交易(Besu 的实现方式)。 * **Besu 的实现:** * **Bonsai 存储格式:** 提供单一语义世界视图,并允许创建内存中的世界状态覆盖(overlay),可以克隆多个世界状态副本,供并行交易使用。 * **Accumulator 数据结构:** 跟踪每个世界状态的读取、写入和更新,用于冲突检测。 * **软件事务内存:** Besu 将 Bonsai 用作软件事务内存,允许多个交易并行执行,然后通过 Accumulator 检测冲突并合并结果。 * **冲突检测机制:** 按照成本由低到高的顺序进行检查,首先是账户级别检查,然后是合约存储检查,以快速失败。 * **并行化效果:** * 并行化程度取决于区块内容和硬件配置。 * 在普通硬件上,Besu 可以成功并行执行大约 60-65% 的交易。 * 平均吞吐量约为 160-170 megagas/秒。 * **建议:** * 并行化并非万能,需要考虑硬件、区块内容和用例。 * 冲突检测和额外的内存消耗是成本。 * 对于需要高性能执行的场景(如 L2),建议启用此功能。 * 推荐使用 8 核 CPU,或具有超线程的 4 核 CPU。 * 鼓励用户尝试 Besu 的并行化功能,并提供反馈。
29
0
0
2025-04-25 09:50
该视频主要介绍了如何在以太坊上进行保密交易,并深入探讨了 Zama 提供的 FHEVM 库,该库允许在加密数据上执行计算。 **核心内容/主要观点:** * **保密性与隐私的区别:** 视频首先区分了保密性(管理信息者的义务)和隐私(个人的权利),强调在以太坊上引入保密性可以解锁新的应用场景,例如加密交易、加密元数据、保密协议、盲拍、去中心化身份系统和保密投票等。 * **FHEVM 架构:** 视频详细介绍了 FHEVM 的架构,包括 DApp 智能合约、FHEVM 智能合约、网关(Gateway)和密钥管理系统(KMS)。它解释了如何使用公钥加密数据,如何通过网关和 KMS 解密数据,以及如何使用评估密钥(Evaluation Key)在加密数据上执行计算(通过协处理器)。 * **智能合约示例:** 视频通过一系列智能合约示例,演示了如何使用 FHEVM 库进行加密计数器、按任意数量递增计数器、请求解密计数器以及使用重加密(Re-encryption)让用户访问自己的加密数据。 **关键论据/关键信息:** * **FHE 的核心概念:** FHE 允许在加密数据上执行计算,而无需解密数据。它涉及三个关键密钥:公钥(用于加密)、私钥(用于解密)和评估密钥(用于在加密数据上执行计算)。 * **FHEVM 的架构流程:** * **加密:** 使用公钥在 DApp 前端或智能合约中加密数据。 * **解密:** 通过 FHEVM 智能合约、网关和 KMS 发送解密请求,KMS 使用私钥解密数据,并将解密后的数据返回。 * **计算:** FHEVM 智能合约将计算请求发送到协处理器,协处理器使用评估密钥在加密数据上执行计算,并将结果存储在数据库中。 * **重加密:** 在 DApp 前端使用 KMS 的公钥和用户的私钥加密数据,然后通过网关发送到 KMS。KMS 使用 KMS 的私钥解密数据,并使用用户的公钥重新加密数据,然后将数据返回到前端,用户可以使用自己的私钥解密数据。 * **FHEVM 模板:** Zama 提供了 FHEVM 模板,开发者可以基于此模板开始构建自己的保密 DApp。 * **`tfhe.allow` 的重要性:** 在智能合约中,需要使用 `tfhe.allow` 允许合约或用户访问加密变量,才能执行计算或重加密。
443
0
0
2025-04-23 17:03
该视频主要介绍了 Somnia,一个旨在解决现有区块链在可扩展性方面不足的全新高性能 Layer 1 区块链。核心观点是 Somnia 能够实现百万级 TPS(每秒交易数)、亚秒级延迟和极低的 gas 费用,从而支持大规模消费者应用,例如游戏、音乐和体育领域的元宇宙体验。 关键论据和信息包括: * **现有区块链的局限性:** 现有区块链无法满足大规模并发交易的需求,尤其是在 NFT 铸造和 meme 币发行等场景下,导致性能瓶颈。 * **Somnia 的技术特点:** * **EVM 兼容性:** 完全兼容以太坊虚拟机(EVM),开发者可以轻松将现有应用迁移到 Somnia。 * **高性能:** 通过全栈重写,包括新的执行层(将 EVM 字节码编译为机器码)、数据库(IceDB,针对区块链数据优化)、共识机制(多流共识)和网络层(高压缩比),实现高性能。 * **低成本:** 目标是将 gas 费用降低到 0.1 美分以下,鼓励开发者将更多逻辑迁移到链上。 * **反应式区块链:** 允许智能合约对链上数据变化做出反应,无需外部第三方服务。 * **关键技术细节:** * **EVM 编译器:** 将 EVM 字节码编译为机器码,利用硬件并行性提高执行效率。 * **IceDB 数据库:** 具有可预测的性能、针对区块链数据结构优化以及极快的读写速度和高效的缓存策略。 * **多流共识:** 每个验证器都有自己的“数据链”,并通过全局共识链协调,提高吞吐量并降低延迟。 * **网络层优化:** 利用帕累托分布原理进行数据压缩,并使用 BLS 签名方案进行签名批处理,显著降低网络传输的数据量。 * **性能基准测试:** * ERC-20 转账:10.5 亿 TPS * Uniswap 交易:5 万 TPS * NFT 铸造:30 万 NFT/秒 * **测试网发布:** Somnia 已经发布了测试网,并鼓励开发者参与构建应用。 总而言之,Somnia 旨在通过全新的架构和技术创新,解决区块链的可扩展性问题,为大规模消费者应用提供高性能、低成本的基础设施。
58
0
0
2025-04-23 14:59
这个视频是一个关于以太坊(Ethereum)替代虚拟机(AltVM)扩展方案的专家小组讨论。核心内容是探讨不同虚拟机架构(SVM, MoveVM, Parallel EVM)在扩展以太坊性能方面的优势和劣势,以及它们各自的设计理念和技术实现。 **关键论据和信息:** * **EVM性能瓶颈:** 传统EVM的性能瓶颈主要在于存储层,而非虚拟机本身。低效的状态访问导致了以太坊对区块Gas限制等参数的限制。Monad等项目通过优化数据库和引入并行执行等技术来解决这个问题,从而大幅提升EVM的性能。 * **SVM(Solana虚拟机)的优势:** SVM在用户采用率、开发者生态和吞吐量方面具有优势。Solana拥有庞大的用户群和活跃的开发者社区。Soon项目旨在将Solana的性能带到以太坊和其他生态系统中。 * **MoveVM的安全性:** Move语言和虚拟机在设计上更注重安全性,可以有效防止重入攻击等漏洞。Movement Labs认为,与其修补EVM的漏洞,不如使用更安全的MoveVM从根本上解决问题。 * **开发者学习成本和生态系统:** 学习新的编程语言(如Move)存在一定的门槛。EVM拥有庞大的开发者社区和成熟的工具链,这是其重要的竞争优势。 * **性能需求与实际应用:** 讨论中提到,当前区块链的瓶颈不在于TPS,而在于缺乏用户真正可用的DApp。解决实际应用问题比单纯追求高性能更重要。 * **各项目的行动号召:** * **Monad:** 邀请观众体验其测试网,体验快速的EVM环境。 * **MegaEth:** 预告即将到来的测试网,展示高性能EVM的实时性。 * **Movement Labs:** 鼓励开发者了解Move语言,尝试使用MoveVM构建应用。 * **Soon:** 邀请观众体验其主网上已上线的应用,并鼓励开发者使用SoonStack构建自己的应用链。 总而言之,该视频深入探讨了不同虚拟机架构在扩展以太坊性能和解决安全问题方面的潜力,并强调了开发者生态系统、用户采用率和实际应用的重要性。
58
0
0
2025-04-22 11:30
在本次演讲中,Aicha 介绍了 ZK Roll-up 和 ZKPM(零知识证明机制)的工作原理,特别是 Scroll 如何设计 ZKPM。演讲的核心内容包括以下几个方面: 1. **ZK Roll-up 的优势与挑战**: - ZK Roll-up 提供了去中心化和安全性,但在可扩展性方面存在问题。传统区块链(如以太坊和比特币)在可扩展性、去中心化和安全性之间存在“区块链三难困境”,难以同时满足这三者。 2. **解决可扩展性问题的方案**: - 以太坊社区提出了通过 Roll-up 链来扩展以太坊的计划,Roll-up 链可以在第二层处理更多交易,并在第一层进行有效的结算和最终确认。 3. **ZK Roll-up 的工作机制**: - ZK Roll-up 通过提交交易数据和零知识证明到第一层,快速实现交易的最终确认。与传统的 Optimistic Roll-up 相比,ZK Roll-up 可以实现更快的最终性。 4. **ZK EVM 的构建**: - Scroll 正在构建一个通用的 ZK EVM,使得任何基于以太坊虚拟机(EVM)编写的应用程序都可以在第二层运行。ZK EVM 旨在提高开发者的友好性和可组合性。 5. **ZK EVM 的挑战与解决方案**: - 构建 ZK EVM 面临许多挑战,包括如何将 EVM 的逻辑转化为零知识电路。Aicha 提到了一些技术进展,如多项式承诺和硬件加速,帮助解决这些问题。 6. **Scroll 的开发原则**: - Scroll 在构建 ZK EVM 时,强调用户和开发者体验、安全性和去中心化的重要性,并鼓励社区参与和代码审查。 最后,Aicha 邀请开发者在 Scroll 测试网上进行创新应用的开发,并提出了一些希望看到的应用类型,如隐私投票和社交应用等。演讲结束时,Aicha 表达了对未来开发的期待,并欢迎大家参与到 Scroll 的开发中。
61
0
0
2025-04-13 11:09
在本次以太坊工程小组的会议中,David和Peter讨论了以太坊虚拟机(EVM)及其与Solidity编程语言的关系,重点介绍了EVM的工作原理、代码执行、存储、堆栈和内存等方面。 **核心内容概括:** 1. **EVM与Solidity的关系**:Solidity是用于编写以太坊智能合约的主要语言,EVM则是执行这些合约的环境。Solidity代码经过编译后生成字节码和ABI(应用程序二进制接口),后者定义了合约的功能和参数。 2. **以太坊交易结构**:交易包含nonce、gas价格、gas限制、接收地址、转账金额和数据字段。合约部署时,接收地址为空,数据字段包含初始化代码。 **关键论据与信息:** 1. **EVM的存储结构**:EVM是基于堆栈的处理器,使用堆栈、内存、存储和代码等多种数据存储方式。堆栈用于临时存储,内存用于事务期间的临时数据存储,存储则是持久化的数据存储。 2. **合约部署与函数调用**:合约的初始化代码在部署时执行,设置合约的初始状态。函数调用通过ABI进行,EVM根据函数选择器和参数执行相应的操作。 3. **存储优化**:合理布局存储变量可以减少gas费用,尤其是在多个变量共享同一存储位置时。对于动态数组和映射,EVM使用KCAK256哈希来确定存储位置。 4. **错误处理与日志**:EVM支持多种错误处理机制,包括revert、assert和require等。日志是EVM的写入输出区域,用于记录事件。 会议还提到了一些未来的讨论主题,包括代码的梅克尔化、跨合约调用的效率、异常处理等。与会者被鼓励提出更多的讨论话题,以便在未来的会议中深入探讨。
549
0
0
2025-03-12 17:27
视频主要讨论了以太坊改进提案EIP-7702的实现细节,特别是在Revm(以太坊虚拟机的一个实现)中的代码变化。EIP-7702引入了一种新的交易类型,允许外部拥有账户(EOA)升级为智能账户,并包含授权列表。 **核心内容概括:** 1. 视频通过完整的交易生命周期,逐步分析了EIP-7702对Revm代码的影响。 2. 重点介绍了EIP-7702如何在交易验证和执行过程中处理新交易类型及其授权列表。 **关键论据和信息:** 1. **EIP-7702的交易类型**:引入了新的交易类型,包含授权列表,确保至少有一个授权。 2. **交易验证**:在交易执行前,进行了一系列验证,包括检查是否在Prague升级后、链ID和交易费用等。 3. **授权列表处理**:通过循环处理授权列表,验证每个授权的有效性,包括签名验证和状态检查。 4. **EOA升级**:当EOA被升级为智能账户时,状态更新是持久的,即使后续交易失败,状态也不会回滚。 5. **执行过程中的字节码加载**:在调用智能账户时,需加载实际的智能合约字节码,而不是EOA的代理字节码。 视频最后鼓励观众提供反馈和讨论,认为EIP-7702是一个令人兴奋的更新。
151
0
0
2025-03-06 14:19
视频的核心内容是关于ZK-EVM(零知识以太坊虚拟机)的介绍,主要由Polygon Hermes的技术负责人Giordi进行讲解。ZK-EVM的目的是通过零知识证明技术提高以太坊交易的验证效率,从而实现更好的可扩展性。 **主要观点:** 1. **ZK-EVM的定义**:ZK-EVM是以太坊虚拟机(EVM)的一种扩展,利用零知识证明技术来验证交易的有效性,而无需重新处理所有交易。这种方法可以显著提高交易的处理速度和网络的可扩展性。 2. **可扩展性的重要性**:通过使用零知识证明,ZK-EVM能够在共识层仅需验证一个证明,而不是逐一检查每个交易,从而加快整个网络的交易处理速度。 **关键论据和信息:** 1. **确定性电路**:ZK-EVM使用确定性电路来定义输入和输出之间的关系,确保在给定输入的情况下,能够得到唯一的输出。 2. **公私输入的区分**:在ZK-EVM中,公输入(如交易状态)和私输入(如中间计算值)被明确区分,以优化验证过程。 3. **电路构建的复杂性**:构建ZK-EVM所需的电路是复杂的,涉及多种数学关系和约束系统,尤其是在处理大量交易时。 4. **多层次的状态机**:ZK-EVM由多个状态机组成,包括主处理器、二进制状态机、算术状态机和存储状态机等,每个状态机负责特定的操作,以提高整体效率。 5. **PIL语言的使用**:PIL(多项式身份语言)用于简化电路的定义和构建,使得开发者能够更容易地编写和验证复杂的电路。 总的来说,ZK-EVM通过引入零知识证明和多层次的状态机设计,旨在提升以太坊的交易处理能力和网络可扩展性。
192
0
0
2025-02-23 12:19
在这期视频中,主持人John Charbonneau和Harsu讨论了加密货币领域的核心问题,特别是关于区块链的可扩展性和虚拟机(VM)的优化。以下是视频的主要内容和关键论据总结: 1. **核心内容概括**: - 视频探讨了当前区块链技术面临的主要挑战,尤其是以太坊(Ethereum)和Solana在可扩展性方面的不同策略。主持人强调,随着需求的增加,现有的基础设施在处理能力和状态管理上存在瓶颈,尤其是状态大小的增长。 2. **关键论据和信息**: - **状态大小是主要瓶颈**:随着区块链的使用,状态大小不断增加,这使得节点在执行交易时需要更多的资源,导致性能下降。 - **并行执行的必要性**:并行执行可以提高交易处理速度,但如果基础设施不够优化,单纯的并行化并不能解决根本问题。 - **不同的解决方案**: - **弱无状态性**:以太坊正在探索通过将状态管理的负担转移给构建者(builders)来优化状态存储,减少每个验证者需要存储的状态量。 - **状态过期和租金**:提出了状态过期和租金的概念,以便在一定时间后清除不活跃的状态,从而减轻网络负担。 - **不同虚拟机的比较**:Solana的虚拟机(SVM)设计允许并行执行,而以太坊的虚拟机(EVM)则依赖于顺序执行,这使得两者在处理效率上存在显著差异。 - **未来的趋势**:尽管不同的区块链可能在设计上存在差异,但在解决可扩展性和状态管理问题上,最终可能会朝着相似的方向发展。 总的来说,视频强调了在区块链技术不断演进的过程中,如何有效管理状态和优化执行效率是实现可扩展性的关键。
561
0
0
2025-02-14 23:17
在这段视频中,Ye Zhang介绍了zkEVM的设计、优化和应用,重点讨论了Scroll作为以太坊的扩展解决方案,如何利用零知识证明(zk)技术来提高交易的安全性和效率。 ### 核心内容概述 1. **zkEVM的定义与目标**:zkEVM是一个通用的zk-rollup解决方案,旨在提高以太坊的可扩展性,使其在安全性、成本和速度上都优于传统的以太坊网络。它能够支持以太坊虚拟机(EVM)及其相关工具,确保开发者在Scroll上的开发体验与在以太坊上相同。 2. **zk-rollup的工作原理**:zk-rollup通过将大量交易压缩成一个小的、可验证的zk证明,来解决以太坊的可扩展性问题。这样,Layer 1只需验证这个证明,而不是重新执行所有交易,从而显著提高了网络的吞吐量。 3. **zkEVM的构建过程**:构建zkEVM需要将程序逻辑转化为算术电路,并解决多个技术挑战,包括如何处理EVM的动态执行轨迹、如何实现高效的查找表等。 ### 关键论据与信息 1. **zkEVM的优势**:zkEVM通过使用Plonkish算术化和KZG多项式承诺方案,能够支持更灵活的电路设计,减少证明的大小和验证成本。 2. **开发者友好性**:Scroll旨在使开发者无需编写复杂的zk电路,提供与以太坊相同的开发体验,促进不同应用之间的可组合性。 3. **性能优化**:通过GPU加速和其他硬件优化,Scroll的zkEVM在处理证明时显著提高了效率,证明时间从几小时缩短到几分钟。 4. **应用场景**:除了作为Layer 2解决方案,zkEVM还可以用于Layer 1的区块链证明、漏洞证明和去中心化的Oracle服务等多种应用。 5. **未来展望**:Scroll正在积极探索zkEVM的更多应用,包括如何在Layer 1中实现更高效的状态证明,以及如何通过递归证明来进一步优化区块链的可扩展性。 总之,Ye Zhang的演讲深入探讨了zkEVM的设计理念、技术挑战及其在区块链生态系统中的潜在应用,展示了Scroll在推动以太坊扩展性方面的努力和成就。
146
0
0
2025-02-12 14:51
视频的核心内容主要围绕Parallel EVM(并行以太坊虚拟机)的介绍及其对区块链性能提升的贡献。演讲者Hai来自RISE,强调了提升链上性能(如每秒处理的交易数和每秒消耗的气体量)是他们的主要任务。 **关键论据和信息包括:** 1. **Parallel EVM的功能**:Parallel EVM作为一种执行引擎,能够通过并行处理交易来最大化吞吐量,目标是实现每秒1 GigaGas和100,000笔交易。 2. **传统EVM的局限性**:传统的EVM执行器是顺序执行交易,这导致资源浪费。通过并行处理,理论上可以实现10倍的速度提升,但实际操作中面临核心状态冲突的问题。 3. **解决方案**:演讲者介绍了Block STM算法的应用,尽管其在EVM中并不完全适用。提出了一种懒惰更新的方法,允许在交易执行时不立即计算状态,而是在区块结束时进行评估,从而提高了并行处理的效率。 4. **性能提升的结果**:通过Parallel EVM,当前的平均速度提升为2倍,最大速度提升可达4倍。在处理独立的Uniswap交易时,最高可实现23倍的速度提升。 5. **未来的改进方向**:演讲者提到了一些未来的计划,包括支持可选的DAG(有向无环图)以优化同步速度,改进调度器以减少同步开销,以及进行低级别的性能调优。 6. **社区合作与开源**:Parallel EVM的实现是开源的,演讲者鼓励社区合作,欢迎新的想法和特性请求。 总的来说,视频强调了Parallel EVM在提升以太坊性能方面的重要性,并展示了通过技术创新实现更高吞吐量的潜力。
108
0
0
2025-02-08 15:15
视频的核心内容是关于以太坊虚拟机(EVM)的全面指南,旨在帮助区块链开发者和安全审计员从初级或中级水平提升到高级工程师或研究员。视频由Owen主讲,他在以太坊领域有两年的开发经验,并创立了Guardian Audits,专注于发现和审计智能合约中的安全漏洞。 视频中提出的关键论据和信息包括: 1. **EVM的结构与功能**:EVM是区块链的核心,理解其工作原理是成为高级开发者的关键。视频详细介绍了EVM的数据存储区域,包括栈、内存、调用数据和存储。 2. **数据存储区域**: - **栈**:用于存储32字节的字,采用先进后出(LIFO)结构。 - **内存**:类似于栈,但允许随机访问和写入,主要用于存储结构体和临时数据。 - **调用数据**:只读区域,存储函数调用的参数,读取成本较低。 - **存储**:最昂贵的存储区域,持久化数据,类似于区块链数据库。 3. **操作码(Opcodes)**:EVM通过操作码执行指令,视频中介绍了如何通过操作码与栈、内存和存储进行交互,包括常用的操作码如`push`、`pop`、`mstore`和`sstore`。 4. **优化建议**:视频提供了一些关于如何优化Gas费用的建议,例如优先从调用数据中读取而不是复制到内存中。 5. **实际示例**:通过示例合约,展示了如何查看字节码和操作码的执行过程,帮助观众理解EVM的实际运作。 总之,视频为希望深入理解EVM的开发者提供了系统的知识框架和实用的技巧,强调了EVM在区块链开发中的重要性。
139
0
0
2025-02-08 12:30
本视频讲解了如何在汇编中使用加载标签函数,包括调用、调用数据复制、返回数据大小和返回数据复制,以调用另一个合约。函数调用接受多个输入,包括合约地址、最大燃气和以太币数量,并指定输入和输出的内存区域。通过调用函数,可以将数据从调用数据复制到内存,并获取返回数据的大小。视频中创建了一个合约,并实现了一个外部函数,该函数调用计数器合约的增量函数,并返回增量后的计数。通过汇编代码,加载自由内存指针,复制调用数据,执行合约调用,并处理返回数据。最后,通过测试合约验证了功能,成功返回了增量后的计数值。视频展示了如何使用汇编进行外部合约调用的完整示例。
786
0
0
2025-01-27 09:01
在Solidity中,函数可以通过执行revert函数或在require语句中某些条件失败而回退。我们还可以使用汇编语言使函数回退。汇编中的revert函数接受两个输入:起始位置和长度,它会回退执行并返回存储在内存中从起始位置到起始位置加长度的数据。本文通过创建一个名为test revert的函数,演示了如何使用汇编实现revert,并展示了如何在内存中存储错误信息以便在回退时返回。通过将错误信息存储在特定内存位置,并计算出函数选择器、字符串偏移量和长度,最终调用revert函数,成功实现了在交易日志中显示错误信息的功能。此过程展示了如何在汇编中重现Solidity代码的回退机制。
1114
0
0
2025-01-27 09:00
本文介绍了如何在汇编中使用返回函数返回存储在内存中的数据。首先,定义了一个返回函数,该函数接受起始地址和长度作为输入,停止代码执行并返回指定内存范围的数据。通过示例,展示了如何将两个UN256数(11和22)存储在内存地址0x80及其后32字节的位置,并通过调用返回函数获取这些值。接着,强调了调用返回函数会中止当前函数的执行,导致无法返回后续定义的值(如123和456),而是返回之前存储的值(11和22)。最后,示例展示了如何使用返回函数ABI编码一个动态数组,存储三个元素(11、22和33),并返回该数组的内存部分。通过这些示例,读者可以理解汇编中返回函数的使用及其对代码执行流程的影响。
769
0
0
2025-01-27 09:00
登链社区