本文档介绍了与ERC-721非同质化代币标准相关的一系列接口、合约和实用程序,包括核心功能接口IERC721、元数据扩展接口IERC721Metadata、枚举扩展接口IERC721Enumerable和接收器接口IERC721Receiver。
本文深入探讨了以太坊智能合约的变更机制,通过CREATE2与SELFDESTRUCT操作,可以实现在特定地址上更新合约逻辑。这种技术的理解对于区块链安全至关重要,同时也提出了针对可变合约的检测和防御措施。作者呼吁改变SELFDESTRUCT在以太坊中使用的现状,以增强智能合约的安全性。
本文介绍了以太坊对象格式(EOF)及其对EVM的影响。EOF通过EIPs引入了新的验证和操作码,旨在构建更友好的EVM。EOF的特性包括改进的代码结构、静态分析、更大的堆栈空间、代码验证、JUMPDEST分析、新的合约创建方式和改进的CALL指令,从而提高了开发者的体验和合约性能。
本文介绍了以太坊中的 ERC777 token 标准。ERC777 试图改进 ERC20 的一些缺点,例如增加了 hooks 和 operators 的概念,并利用 ERC1820 注册合约来实现更灵活的功能。尽管 ERC777 在设计上有所创新,但由于其复杂性和潜在的安全隐患,未能获得广泛应用,最终被认为设计过度。
本文分析了去中心化应用(DApp)中链上链下状态同步的问题,重点介绍了由于交易生命周期中可能出现的掉单、回滚等情况导致的同步错误。论文提出了两种类型的链上链下同步Bug,并设计了ÐArcher测试框架来有效检测这些Bug。实验结果表明,许多DApp存在此类同步问题,而ÐArcher能有效帮助开发者发现并解决这些问题,从而避免因状态不一致给用户带来不便。
本文介绍了Solana区块链的账户模型,该模型将可执行代码(Programs)与程序状态(Accounts)分离,从而实现一定程度的并行化处理。讨论了账户的结构,包括Lamports、Data、Owner和Executable等字段,还介绍了Program Derived Addresses (PDAs) 的概念及其在Solana中实现哈希表类似结构的方式。
本文是Token Standards文章系列的第11部分,介绍了以太坊的ERC-721标准,用于NFT(非同质化代币)。ERC-721代币是唯一的,可以用来标识独特的资产。文章详细解释了ERC-721接口的功能,包括代币转账、余额查询、所有者查询等,以及如何存储NFT的图像和元数据,并讨论了ERC-721标准的局限性。
本文旨在消除围绕区块链技术的常见误解,讨论了区块链不仅仅局限于比特币等加密货币,还在金融、供应链、医疗保健和政府等多个行业具有广泛的应用前景。同时,文章还展望了区块链的未来发展趋势,包括企业采用、与传统金融系统融合、技术进步以及监管挑战。
本文介绍了以太坊上的ERC-20代币标准。首先解释了代币的概念,然后深入探讨了ERC-20标准的目的和功能,包括transfer、balanceOf、totalSupply等关键函数,以及Transfer和Approval事件。最后,通过一个简单的ERC-20合约示例,展示了如何实现minting和burning功能,总结了ERC20代币标准。
本文探讨了区块链开发中gas优化的各种策略,通过代码示例,将优化方法归为架构级优化(合约设计模式)、代码级优化(开发者控制)和部署优化三个类别。内容涉及变量类型选择与布局、存储设计、函数设计、逻辑与循环优化、事件与错误处理、工具与测试、以及汇编层面的优化技巧,旨在降低gas消耗,提高合约执行效率和用户体验。
IOTA自2016年推出主网以来,一直致力于构建基于其独特的DAG共识机制的无费用价值交换网络。为了支持更广泛的用例并推动更广泛的采用,IOTA团队认识到需要引入智能合约。IOTA团队在2022年启动了IOTA EVM Layer 2的开发,此后一直在推进其Layer 1协议的战略改革,即“IOTA Rebased”,该协议融合了受Sui区块链启发的最新技术堆栈。
本文介绍了OpenZeppelin Test Helpers,这是一个用于以太坊智能合约测试的断言库。它提供了诸如检查交易是否因正确的原因而revert、验证事件是否以正确的值发出、跟踪余额变化、处理大数以及模拟时间流逝等功能。文章还提供了安装和使用示例,以及进一步学习的链接。
本文详细介绍了Medjai,一种用于寻找Cairo程序中的错误的符号执行工具。文章从Cairo语言的背景出发,深入探讨了零知识证明、Cairo工作流程、符号执行技术及其在实际开发中的应用,特别是如何帮助开发者发现Bug并验证修复。文章结构清晰,内容丰富,适合对区块链智能合约开发和安全感兴趣的读者。
本文档是 OpenZeppelin Test Helpers 的 API 参考,介绍了用于测试以太坊智能合约的各种辅助函数。主要包括:用于检查账户余额的 balance,用于处理大数的 BN,常用的常量 constants,以及用于模拟时间和快照的 time 和 snapshot 等辅助函数,expectEvent 和 expectRevert 用于测试事件和异常。
balance
BN
constants
time
snapshot
本文深入探讨了Solidity中payable关键字的奥秘。通常payable关键字用于允许函数接收以太币。但一个有趣的现象是,给函数添加payable关键字实际上可以减少Gas消耗。这是因为非payable函数需要额外的opcode来检查是否接收了以太币,而payable函数则不需要,从而减少了Gas消耗。作者建议,gas优化重要,但不要为了节省少量gas而牺牲函数的本意。