🌲什么是默克尔树一种二叉树的变种,称为哈希二叉树。所有节点存储hash值,父节点是对所有子节点的hash。❀默克尔树的特性高效:可以实现不遍历整棵树,验证数据是否在树中。不可篡改:只要有一个节点被篡改,root节点hash就会发生改变。节省存储:不保存真实数据,仅保存数据的h
⭐️前缀树的结构是什么:是一种有序的多叉树,用于存储字符串,适合前缀匹配查询。每个节点代表一个字符根节点不存储字符路径代表一个字符串的前缀⭐️前缀树的特点适合前缀匹配:快速判断某个字符串是否已有单词的前缀节省存储空间:多个字符串共享前缀支持字典序输出:天然支持排序输出⭐️
MPT树结合了PatriciaTrie(压缩前缀树)和Merkle树的特点。 将中间节点的字符串换成哈希值,得到的就是一棵MPT树。 一句话总结就是:MPT树就是一棵带有hash验证功能的压缩前缀树。
布隆过滤器是什么布隆过滤器简单来说就是一个固定长度的bit数组,初始化为0,配合多个hash函数可以解决url去重、缓存穿透、重复元素识别等功能。
**本文用简洁的语言,通过最少的代码、丰富的示例图,来清晰地呈现Solidity语言的语法特性。帮助你一小时之内熟悉 Solidity 的语法特性,适合初学者学习借鉴。**
本文以简洁的语言,剖析了 EVM 的内存结构以及栈内存、状态变量的内存结构,提到了各种不同数据类型所占用的 slot 大小,以及 gas优化的思路。方便小白进行快速掌握 EVM 和 solidity 的内存结构:https://learnblockchain.cn/shawn_shaw
本文主要关注以太坊智能合约的进阶操作,包括合约的四种调用方式、合约的创建、地址预测、发送 eth 的三种方法、接收 eth 的三种不同方法等内容。通过 solidity 代码配合 foundry 进行测试。适合新手小白学习
智能合约中,ABI 编码是合约直之间数据交互的桥梁,承载了数据以及接口。而函数选择器则为调用的函数的标识,因其只有 4 个字节,故容易出现函数选择器的冲突。在合约升级中,我们有三种方式去实现升级的逻逻辑,并解决函数选择器冲突:https://learnblockchain.cn/shawn_shaw
以太坊代理模式可以使我们的代码耦合度更低,但因为普通的代理模式必须一对一强绑定,不够灵活。所以引出了一对多和多对一的代理模式,分别是钻石代理和最小代理。分别可以让我们合程序模块化及减少部署gas 费:https://learnblockchain.cn/shawn_shaw
信标代理“信标代理”(BeaconProxy)是一种可升级合约的代理模式,主要特点是通过一个共享的“信标”(Beacon)来统一管理逻辑合约地址,适合部署多个实例共享同一个逻辑实现并且合约可升级的场景:https://learnblockchain.cn/shawn_shaw
ERC20是什么ERC20实际上就是一个用智能合约发行代币的标准。本质上就是用智能合约的代码来规定好这个币的总量有多少,某个地址拥有多少币:https://learnblockchain.cn/shawn_shaw
ERC721是一种以太坊上的非同质化代币(NFT,Non-FungibleToken)标准,用于表示唯一的、不可替代的数字资产。它利用了唯一的tokenId来确定每一个NFT代币,每个NFT的合约中管理着一批类似的但每个都是不同的代币:https://learnblockchain
以太坊「链下随机数」(off-chainrandomness),指的是不在链上生成,而是由链外系统(如预言机节点)生成,并最终提交到链上使用的一种随机数生成方式。它是为了解决链上无法安全生成真正随机数的问题而提出的:https://learnblockchain.cn/shawn_shaw
是什么TheGraph是一个去中心化的协议,用于索引和查询区块链数据。它使得开发者能够构建基于区块链的数据应用(dApps),并能快速、高效地查询和访问链上的信息:https://learnblockchain.cn/shawn_shaw
合约事件监听是区块链开发中常见的需求,主要应用在Dapp开发、钱包开发、交易监控、交易所开发等场景:https://learnblockchain.cn/shawn_shaw
ERC20和ERC721都是单代币标准,一个合约中只能管理一种代币。而ERC1155的设计目标是统一管理同质化代币(FungibleToken)和非同质化代币(Non-FungibleToken),提高批量操作的效率,减少Gas成本:https://learnblockchain.cn/shawn_
ERC4626代币金库(Vault)是ERC20的拓展。本质上可以理解为一个智能合约,支持把资产托管进去这个合约中,合约代表你去赚钱,赚到的钱按份额分配。ERC4626继承于ERC20,基本接口和ERC20一致,但添加了增强的存款、取款、赎回、会计等接口:https://learnblockchai
数字签名是什么数字签名,简单讲,就是一种证明「这份数据是我发的」的方法。本质上,就是用私钥去对一段消息去签名,对方用公钥去验证这份签名,证明这份私钥是由我发送的并且消息没有遭到篡改:https://learnblockchain.cn/shawn_shaw
EIP712又名结构化签名。让签名内容是结构化的、有字段名的,用户在钱包里可以清楚看到:我签的是啥:https://learnblockchain.cn/shawn_shaw
ERC20Permit是什么允许用户通过链下离线签名授权,链上直接处理交易。而不像传统的ERC20需要先链上approve,然后再执行交易逻辑,简化交易的流程及拥有gas费代付的能力:https://learnblockchain.cn/shawn_shaw
多签钱包是一种更安全的钱包。它的资金交互必须要有多个人联合进行签名才能发起。其核心思想是:只有当预定数量的授权方(签名者)签署了某个事务后,才能执行该操作:https://learnblockchain.cn/shawn_shaw
什么空投合约“空投合约”(AirdropContract)是指专门用于自动向一组地址发送代币或NFT的智能合约:https://learnblockchain.cn/shawn_shaw
线性释放(LinearVesting)是一种常见的代币释放机制,指得是:代币按照固定的速率、持续均匀地在设定时间内逐渐释放。而不是一次性就释放完。
代币锁是一种限制代币提取的一种合约。它可以把合约中的代币先锁定一段时间,受益人在锁仓期满后才能发起提现取出代币。时间锁是一种限制合约的行为的特殊合约。它通过给合约的重要函数(如转账、提现、交易等)加上一个锁定期,用于这个操作的延期执行。
EIP-7702 是以太坊引入的新交易类型,赋予 EOA 账户临时合约能力,实现批量交易与 Gas 代付。其核心是通过签名授权,节点在交易时注入合约逻辑,执行后自动卸载,无需部署,链上无残留。EIP-7702推动了账号抽象发展:https://learnblockchain.cn/shawn_sh
🎆此专栏知识涵盖以太坊基本知识、solidity基本知识、以太坊核心项目,为以太坊编程初学者提供一个简洁、快速的入门教程。
⭐️专栏特点