账户抽象架构设计详解
本文将从零开始,逐步构建起 ERC-4337 中账户抽象的架构。本文主要面向有智能合约基础知识,但对账户抽象不甚了解的读者。文中描述的 API 和行为可能与最终版的 ERC-4337 存在部分差异。 自定义钱包 我们首先从一个简单的资产管理的场景出发:用户希望使用单个私钥签署大多数普通交易,但价格昂贵的 NFT 资产则需要同时用存放在银行保险库内的另一个私钥签署才能转移。 我们知道以太...
本文将从零开始,逐步构建起 ERC-4337 中账户抽象的架构。本文主要面向有智能合约基础知识,但对账户抽象不甚了解的读者。文中描述的 API 和行为可能与最终版的 ERC-4337 存在部分差异。 自定义钱包 我们首先从一个简单的资产管理的场景出发:用户希望使用单个私钥签署大多数普通交易,但价格昂贵的 NFT 资产则需要同时用存放在银行保险库内的另一个私钥签署才能转移。 我们知道以太...
为了解决区块链Layer 1网络的扩容问题,Rollup方案应运而生。结合零知识(ZK)技术,ZK Rollup成为Layer 2赛道中备受瞩目的解决方案。然而,对于大多数人而言,ZK、Rollup和EVM等相关概念可能有一定的理解难度。因此,本份研报的目标是用简洁易懂的语言,对zkEVM Rollup的一系列概念进行系统梳理,深入分析zkEVM Rollup技术的发展和现状,并详细解读其中...
本文对雪崩共识协议簇进行介绍。该协议簇是一系列无主拜占庭容错协议,使用基于网络重复随机采样的亚稳态机制构建。雪崩协议能够在存在拜占庭节点的情况下提供强概率安全保证,且并发和无主性质使其能够实现高吞吐量和高可扩展。 协议主要目标: 绿色 (green):能源消耗很少。 静止 (quiescent):没有交易时不需要工作(出块)。 ...
Web3 发展至今,其生态已日趋完善,按照分层的方式对Web3 的组成架构进行抽象,可以分为四个主要层级,自下而上分别是:区块链网络层、中间件层、应用层、访问层 。本文将逐一介绍四个层级的作用及概况,以帮助读者更加全面、清晰地理解Web3。 Web3 组成架构 访问层 应用层 ...
区块链技术自诞生以来就始终面临着可扩展性问题的挑战。根据以太坊创始人Vitalik Buterin提出的“区块链不可能三角”,区块链无法同时兼顾去中心化、安全性和可扩展性三个维度。其中,去中心化是区块链技术的基本性质,同时,区块链天然的强金融属性也使得安全性必不可少。因此,研究人员和开发者一直致力于解决区块链的可扩展性问题,这一瓶颈导致了链上交易成本居高不下、执行速度慢,难以满足当前日益增长...
本文主要结合 Raft 论文讲解 Raft 算法思路,并遵循 Raft 的模块化思想对难理解及容易误解的内容抽丝剥茧。算法方面包括:选主机制、基于日志实现状态机机制、安全正确维护状态机机制;工程实现方面包括:集群成员变更防脑裂策略、解决数据膨胀及快速恢复状态机策略、线性一致读性能优化策略等。 1 概述 1.1 Raft 是什么? Raft is a consensus alg...
1 前言 HotStuff提出了一个三阶段投票的BFT类共识协议,该协议实现了safety、liveness、responsiveness特性。通过在投票过程中引入门限签名实现了O(n) 的消息验证复杂度。Hotstuff总结出对比了目前主流的BFT共识协议,构建了基于经典BFT共识实现pipeline BFT共识的模式。 HotStuff是尹茂帆等人提出的分布性一致性协议,在该算法中,...
分布式哈希表 (Distributed Hash Table, DHT) 是一种用于将键映射到值的分布式系统。在 IPFS 中,DHT 是内容路由系统的基本组件,就像分布式的文件索引系统,将用户要查找的内容与存储该内容的节点联系起来。可以将其想象成一个巨大的电话簿,存储着谁拥有什么数据。使用 DHT 映射的键值对分为三种类型: 这些类型的含义略有不同,但它们都使用相同的 DHT 协议进...
1 系统模型 1.1 网络 PBFT 工作在异步的分布式系统中,系统中各个节点彼此通过网络连接。 系统运行时,消息的传递允许出现下列情形: 不能正确发送 延迟 重复 乱序 1.2 拜占庭错误 系统允许错误节点也就是拜占庭节点表现出任意行为,但是需要附加一个限定条件: 节点失效彼此应相互独立,从而大部分或全部节点不会同时失效。 在有恶意攻击存在的情况下,可以采取...
独立思考来自于更多维度的了解信息,本文是对当前区块链生态中隐私问题的概括性介绍,希望给读者一个宏观视角来观察当前加密行业在隐私方面的进展,区块链及其衍生出来周边生态也被熟知为智能合约、去中心化App、Web3.0等,为了统一术语消除歧义,本文用公链一词指代。 本文第一部分介绍为什么隐私问题是未来公链大规模应用的一大障碍,以及对当前公链隐私问题的两个思考维度。第二部分探索调研当前业界实现公链...
用户使用私钥创建并签署交易。通常由钱包或库(如 ether.js、web3js、web3py 等)处理,但在底层,用户使用以太坊 JSON-RPC API 向节点发出请求。用户定义愿意支付给验证者作为小费的 gas 量,以鼓励其将交易包含在区块中。小费将支付给验证者,而基础费用(Base Fee)将被销毁。 交易提交给以太坊执行客户端(Execution Clien...
用户编写并使用账户私钥签署交易请求。 用户通过节点将自己的交易请求广播到整个以太坊网络。 每个接收到新交易请求的以太坊网络节点会将此交易添加到其本地的内存池。内存池主要用来存储该节点已收到的、还未被添加到区块链的区块中被承认的所有交易请求。 在某一时间点,挖矿节点以特定方式将几十或上百个交易请求汇总到一个潜在区块中,...