- A+
无论是牛熊,整个以太坊生态系统一直在不断地建设和自我优化。其中,账户抽象(Account Abstraction,AA)近年来取得了重要的进展,并已渗透到以太坊生态系统的各个部分,包括应用、基础设施、用户和开发者。我们可以预见,AA的大规模采用将从整体上降低区块链使用的门槛,并将web2的用户体验引入web3行业。
为了抓住数十亿美元潜在价值的AA市场的机会,BlockPI计划将AA融入其基础设施服务。通过在AA领域进行整合创新,BlockPI致力于为AA用户提供更便捷、高效的区块链合约钱包账户互动方式,并希望成为该行业的引领者。
在本文中,我将深入探讨我们BlockPI团队对AA的理解,并从基础设施服务提供商的角度分享与探讨。
EOA和合约钱包
AA的概念源于EOA账户的局限性。EOA账户(external owned account)是以太坊中的用户账户,由公钥(区块链地址)表示,通过私钥访问。它是以太坊生态系统的主要组成部分,允许用户在区块链上转账或与智能合约交互。然而,对很多人来说,使用EOA本身就是一项充满挑战的任务。况且,现在的EOA账户依旧存在一些使用上不便之处,影响用户体验。
首先就是Gas费问题。每笔交易都会花费用户相当多的ETH作为Gas费(以25 Gwei的Gas price 为例,简单的ETH转账的Gas费约为0.5美元,进行合约交互或当Gas price更高时则会更贵)。这使得小额交易的手续费显得非常昂贵,尤其是在网络拥堵严重的时期。此外,只能使用ETH支付Gas也意味着用户必须在钱包中持有ETH。对很多用户而言,这构成了一个较高的进入门槛。
其次,对于用户想要实现的某些复杂操作,EOA必须借助于其他的智能合约。例如,如果用户想要设置定时周期性转账,则用户需要将ETH转到具有此功能的某个智能合约中来实现该操作。
EOA的第三个问题是固定的签名加密算法。以太坊网络使用一种名为secp256k1的数字签名算法,来确保交易的真实性和安全性。该算法被硬编码到系统中,用户无法选择使用其他加密算法。
除了上述的三个之外,EOA的公钥和私钥之间的绑定关系也是一个问题。私钥是用户访问EOA的唯一途径,如果私钥丢失,将无法找回。这同时意味着与之关联的EOA内的所有资产将无法找回。
同时, 在执行某些线性任务时,EOA也存在限制。例如,如果用户希望在一个操作中批准(approve)、交换(swap)和取消批准代币(unapprove token),需要执行三个单独的交易,既低效又耗时。
好消息是,合约钱包可以解决上述的所有问题。合约钱包本质上是一种实施了AA的特定类型的智能合约账户,它可以在以太坊上作为用户的钱包使用。并且可以给用户提供更灵活也更个性化的方式来管理资金。只要是以太坊智能合约能够实现的逻辑,合约钱包就可以实现并提供对应的功能。
具体地说,多个合约钱包操作可以被打包到一笔链上交易中,这些操作则可以分摊这一笔交易的Gas成本。如果第三方愿意支付Gas费用,则对于使用合约钱包的用户来说不需要支付Gas。合约钱包也可以一次性完成多个线性任务。除此之外,合约钱包还支持自定义签名的加密算法,并设置钱包恢复的功能等等。
随着对合约钱包优势的讨论持续进行,以太坊社区实际上早已对合约钱包进行了长期研究。尽管许多EIP已经探讨了账户抽象相关问题,但截至2021年,仍未建立统一标准。以下是几个具有代表性的EIP。
- EIP-86
最初由Vitalik Buterin于2017年提出。该方案实现了一系列变更,其共同目的是“抽象化”签名验证和nonce检查,从而使用户能够创建能执行任意签名/nonce检查的“账户合约”。 - EIP-2938
于2020年提出。这个EIP的标题是账户抽象(Account Abstraction)。AA的概念在这个EIP中有很好的描述。它引入了一种新的交易,即AA 交易。交易由入口点地址(EntryPoint
address)发起,并调用AA合约钱包。 EIP-2938提供了一个统一的规范并正式将AA账户抽象引入以太坊共识。具体来说,它在以太坊共识中引入了两个新的操作码、三个全局变量和一个不同的有效载荷结构。 - EIP-3074
于2020年提出。这个EIP引入了两个EVM指令,AUTH
和AUTHCALL
。AUTH
根据ECDSA签名授权设置环境变量。AUTHCALL
作为授权账户发送调用。这允许智能合约代表EOA发送交易。但这对AA来说仍然不是一个完美的解决方案。在授权交易过程中,EIP-3074在原生价值传输方面存在一定的限制。并且如果用户丢失了对EOA的访问权限,仍将无法找回他的资产。如果遭遇私钥泄露,用户则需要将所有资产转移到新账户中。
由于需要在共识层进行更改或方案不够全面,上述提案均未被正式纳入以太坊协议中。因此,以太坊社区继续探索如何在不改变共识的前提下,将AA引入以太坊协议,并最终提出了EIP4337。
ERC - 4337
EIP-4337最初于2021年9月提出,并于2023年3月获得授权成为ERC-4337。其作者包括Vitalik Buterin、Yoav Weiss、Kristof Gazso、Namra Patel、Dror Tirosh、Shahaf Nacson和Tjaden Hess。
EIP-4337是一项具有颠覆性的提议,能够在不改变核心以太坊协议的情况下引入AA。EIP-4337最终成为了ERC-4337标准,构建者可利用该标准实现自己的智能合约钱包。同时该标准还引入了一些额外的基础设施包括“Bundlers”和“UserOperation
mempool”。如此一来,它实际上在区块链系统上层创建了一个与以太坊mempool相似功能的mempool。用户提交的不再是单笔交易,而是UserOperation
。这些UserOperations
可以打包成一个单笔交易并发送到以太坊上。
以下是以太坊官方文档中ERC-4337的详细技术解释,以及一些有助于理解的评论。
ERC-4337的关键角色和其定义
UserOperation
— 描述代表用户发送的交易的结构。为避免混淆,它没有被命名为“transaction”它会被发送给Bundler,与其他UserOperations
一起打包为一个Bundle。接着将Bundle作为一笔单独的交易发送到链上。Sender
— 发送UserOperation
的合约账户。该钱包合约必须遵循ERC-4337标准配置IAccount
接口.EntryPoint
— 执行UserOperations
捆绑包的全局单例合约。Bundlers/Clients将支持的EntryPoint
列入白名单。该合约由Infinitism 团队审计并且核准部署,负责处理所有UserOperations
,并连接其他角色的合约,包括Wallet Factory、Aggregator、Paymaster
。该合约在EVM兼容链上都是相同的地址。- Bundler — 从mempool打包多个
UserOperations
并创建EntryPoint.handleOps()
交易的节点(当前出块节点)。Bundler服务可以独立于区块链节点运行,并通过RPC来发送打包好的UserOperations
。 - Aggregator — 由账户信任的辅助合约,用于验证聚合签名。Bundlers/Clients将支持的签名聚合器列入白名单。聚合器必须遵循ERC-4337标准配置IAggregator接口。
Paymaster
— 一个可以代付Gas的智能合约。如果它在EntryPoint
合约中存入了足够的ETH,则可以为发送方支付UserOperation
的Gas费的智能合约, 从而有效地实现Gas抽象。Paymaster
必须遵循ERC-4337标准配置Paymaster
接口。Paymaster
可以与Sender
达成协议。例如,Sender
向Paymaster
支付USDC,Paymaster
用ETH来支付其发送的UserOperations
的Gas。事实上,Paymaster
可以选择支持任何代币,包括ERC-20代币甚至其他链上的代币。- Wallet Factory — 可以为ERC-4337用户创建合约钱包的智能合约。部署Wallet Factory是无需许可的。作为链上智能合约,其代码向公众开放,任何人都可以对其进行审查。一个广泛使用的Wallet Factory应当经过专业人士的全面审计。
下图解释了EntryPoint
合约如何与其他角色交互。
- Bundlers调用
EntryPoint
合约的handleOps
函数,该函数接受UserOperation
作为输入。 handleOps
会在链上验证UserOperation
,检查是否由指定的智能合约钱包地址签名,并确认钱包是否有足够的Gas来补偿Bundler。- 如果验证通过,
handleOps
将根据UserOperation
的calldata中定义的函数和输入参数执行智能合约钱包函数。
另一方面,当Bundler使用EOA触发handleOps
函数时,会产生Gas费用。智能合约钱包可以从自己的账户余额中向Bundlers支付Gas费用,或者请求Paymaster
合约代付。UserOperations
在没有足够Gas的情况下无法通过链下的验证步骤,即在链上执行交易前失败。即便具备足够的Gas,UserOperations
在执行过程中仍可能因运行时错误等原因失败。对于一笔UserOperation
,无论执行合约成功与否,EntryPoint
合约都会向触发handleOps
函数的Bundler支付Gas费用。
(摘自官方文档: https://eips.ethereum.org/EIPS/eip-4337)
在ERC-4337生效后,用户现在可以通过两种方式发起区块链交易。一种是传统方式,即由EOA直接发起交易。另一种是使用ERC-4337标准,通过Bundler发起UserOperation
,随后Bundler会将其与其他UserOperations
打包并发网链上。以下流程图阐述了普通EOA发送交易与ERC-4337合约钱包发送UserOperation
之间的差异。
道路已成,但尚无众多行人
ERC-4337提供了一个强大的框架,让用户和开发者可以在以太坊使用和构建AA。尽管该框架是一个重要的进步,但仍存在一些挑战和不确定性需要应对和解决。
AA的采用还处于初级阶段。根据Dune ERC-4337分析面板(ERC-4337 Account Abstraction from @niftytable),链上仅执行了65k+ UserOperations
,其中90%来自Polygon。因此,目前执行的UserOperation
数量仍然非常少,其中大部分是开发者的测试,而只有很小一部分来自于真实用户。我们注意到,已经整合了AA的产品仍处于初期阶段。 目前,我们可以观察到,Bundlers整体仍旧处于亏损状态, 目前亏损约为700多个MATIC。这主要是因为一些Polygon上的Bundler错误预估需要的Gas引起的,导致EntryPoint
返回的的Gas少于提交的Bundle消耗的gas。这个问题需要在Bundler客户端层面解决。
除此之外,还有一些问题需要解决。其中一个问题是Bundlers如何处理交易失败。在将多个UserOperations
打包在一起后,Bundlers首先会模拟交易,检测是否会出现合约执行失败,并计算Sender
或Paymaster
返回的Gas费用是否大于支付的Gas费。
如果有利可图,Bundler将这批UserOperations
作为一个交易提交给出块节点。然而,交易仍然可能失败,导致Bundler支付Gas费用,但没有收到EntryPoint
返还Gas的情况。例如,用户可能向不同的Bundlers发送操作。如果存在盈利空间并且模拟成功,Bundlers会将其提交到链上。在这种情况下,如果一个UserOperation
同时被不同的Bundlers提交到出块节点,只有一笔交易会成功,这意味着只有一个Bundler会收到EntryPoint
返回的Gas费,其他所有Bundler都会因为上链失败而损失Gas。尽管有人可能认为这种行为应被视为恶意攻击,并主张Bundler可以禁掉该Sender
地址,拒绝来自该地址的任何未来请求,但这并非一个合理的解决方案,因为用户可能无意中采取这种行为。这个问题需要在代码中妥善解决,也许可以通过正在开发中的公共mempool网络来实现。此外,即使交易已成功提交且模拟结果显示存在获利空间,Bundlers也可能因为突然的Gas波动遭受损失。
另一个问题是从AA中可以获取的最大可提取价值(MEV)。在以太坊的背景下,MEV通常指的是矿工或其他交易处理者通过操纵区块中交易的顺序或在区块中插入他们自己的交易来提取的价值。有人可能会注意到,MEV的逻辑也可以适用于AA。这是因为在AA中,Bundlers可以对UserOps进行自由排序,这为它们提供了获取MEV的可能性。然而,Bundler是否能提取MEV取决于是否有足够多的UserOperations
可以打包在一起。现在整个AA市场仍处于初级阶段,因此Bundler MEV也可以被认为是初级阶段。可以遇见到的是,AA的MEV可能朝两个方向发展:一是类似于以太坊主网,有像Flashbots、Ultra Sound和BloXroute这样的参与者参与;另一个方向是形成Bundler共识来实施公平排序。而后者将完全消除AA中提取MEV的可能性。
未来发展
公共mempool
虽然AA生态系统已经投入运行,但仍有许多开发工作尚待完成。从整个AA生态系统来看,目前最大的缺失部分是公共mempool。Skandha Bundler客户端的开发团队Etherspot,目前正在开发公共mempool的p2p网络。预计公共mempool的p2p网络将在今年8月份推出。
Bundle算法
在此过程中,以太坊基金会资助了几个优秀的AA开发团队。到目前为止,已经开发了多个目前已经可以使用的Bundler客户端。其中,有一些已经非常成熟了。分别是Candide(用Python编写的Voltaire Bundler)、Pimlico(用Typescript编写的Alto Bundler)、Etherspot(用Typescript编写的Skandha Bundler)、Stackup(用Go编写的Stackup-Bundler)等。
这里就涉及到了打包策略的问题。目前,由于UserOperations
的数量较少,Bundlers可以采用简单的打包逻辑,例如固定的时间间隔或每个Bundle中一定数量的UserOperations
。然而,随着UserOperations
数量的增加,特别是在公共mempool引入之后,选择和打包UserOperations
的策略变得更加复杂。原因很简单:在AA生态中,缺乏类似区块链共识协议的机制,Bundler群体成为了一个黑暗森林,每个Bundler根据自己的利益优先处理任务,并互相竞争。与公共mempool相对的,私有mempool有可能会较早出现。因为当从公共mempool打包UserOperations
无法盈利时,打包私有mempool中的UserOperations
依旧存在盈利的可能。在这种情况下,该Bundler在打包时相较其他Bundler更有竞争力。
此外,随着公共mempool的逐步普及,其中的UserOperations
有各种特性,例如不同的Gas盈利预期和链上执行复杂性。Bundlers将进行链下模拟,评估各种UserOperations
组合的盈利能力,从而建立各自的打包策略。打包更多的UserOperations
有可能产生更高的利润,但同时也增加了验证失败的风险。即使验证通过,链上执行失败的风险仍然存在。相对的,打包较少的UserOperations
则相反。Bundlers需要设置自己的交易Gas参数,这将影响出块节点执行这笔交易的优先级。在不同的预估Gas price和Gas波动率条件下,Bundlers可能有不同的打包策略。同时还要考虑这些验证和策略计算需要消耗本地硬件计算资源和区块链节点资源的成本。此外,Bundlers还需要确保为用户提供良好的用户体验,确保用户在提交UserOperation
后不会面临过长的延迟。
尽管这些挑战的解决方案仍然不明朗,但我们可以有信心地说,AA行业的发展和开发者的共同努力将最终解决这些问题。作为基础设施建设者,BlockPI希望在AA行业的发展中充当问题解决者的角色,无论是作为开发者还是为其他开发者提供AA友好的基础设施。
基础设施必须要适应AA
AA将链上交易行为中涉及的各种角色抽象出来,包括Sender、Bundlers、Gas payers、合约钱包、Signers,从而使用户在使用区块链时具有更高的自由度。同时,基础设施供应商可以根据自己对市场的判断,独立部署这些服务。
为了适应AA的大规模采用,基础设施提供商首先需要提供至少两个基本服务:Bundler服务和Paymaster服务。
在Bundler服务中,基础设施提供商可能需要与Bundlers一起开发私有mempool,以提供良好的用户体验。具体来说,基础设施提供商需要集成多种Bundler客户端,以确保Bundler服务的稳定。这些Bundler客户端目前向用户提供几种标准的JSON RPC方法,这些方法是ERC-4337 核心开发组提供的。可以预见以后会有更多的RPC方法可供用户使用。基础设施服务商需要在这个过程中及时更新对这些方法的支持。
此外,在Bundler API和原始节点客户端RPC之间进行优化也非常重要。目前的节点客户端没有针对AA进行过优化。一些Bundler API方法需要针对为AA提供的数据索引。例如,现在的客户端在通过哈希查找UserOperation
时,需要扫描所有区块中的EntryPoint
合约日志。若缺乏数据索引,这个单一请求的硬件资源消耗将会相当巨大,同时请求的返回时间也将变得很长。
除此之外,为了给用户提供免Gas的用户体验以及多样化的服务,基础设施提供商需要不同的Paymaster服务提供商达成合作,从而集成不同的Paymaster服务。同时根据市场需求,基础设施提供商还可以基于现有Paymaster服务设计更方便的集成解决方案。其他服务,如聚合签名、钱包工厂等,也是基础设施未来发展和集成的潜在方向。
总之,为了适应AA的大规模应用,基础设施提供商需要不断完善和扩展其服务。这包括优化Bundler服务,与不同的Paymaster服务提供商合作,集成各种API接口,以及开发其他潜在的服务。随着AA行业的不断发展,这些努力将有助于提供更高效、安全和便捷的区块链使用体验。
目前,BlockPI正在为了实现上述目标而努力。不仅如此,我们已经与社区中几乎所有的Bundler客户端和Paymaster服务提供商进行了沟通,并将整合AA到BlockPI网络作为我们的首要开发任务。同时,我们还与AA钱包开发者进行了深入的沟通,以了解用户需求。我们真诚地欢迎所有Bundlers、Paymasters和钱包与我们进行沟通并达成合作。
BlockPI的目标是与社区共同建设并发展AA生态系统,竭尽所能推动AA生态的进步与繁荣。我们希望 通过与社区的合作,以行业领先者的身份为整个AA行业做出贡献,并支持其后续的发展进程,从而让Web2用户无障碍地体验区块链技术。
本文是全系列中第71 / 248篇:行业技术
- dapp中实现代币充提接口,提币环节需要签名验签的系统实现
- 使用npm install出现check python checking for Python executable “python2“ in the PATH
- 哥伦布星球 最火爆的零撸项目全球第一也是唯一的一款混合链
- Web3教程之比特币API系列:获取比特币余额、交易、区块信息
- 如何利用 RGB 在闪电网络上转移另类资产
- 环境搭建与helloworld程序
- 怎样使用unibot购买代币
- 第 2 课:构建托管智能合约
- Coinbase base链发币教程——base链上Foundry、Hardhat和Truffle的配置及使用【pdf+视频BASE发币教程下载】
- 第 1 课:创建第一个智能合约程序 – Hello World
- 怎样使用unibot出售代币
- centos8安装synapse服务端节点
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上铸造mint BSC-20协议标准的铭文【pdf+视频EVM铭文操作教程下载】
- 币安BSC智能链发币教程——ERC314/BSC314协议实时燃烧资金池同步计算买卖价格的核心代码实现【pdf+视频BSC发币教程下载】
- Dmail推出积分奖励计划,继friend.tech后socialFi领域又一重磅应用
- RPCHub – 推荐一个非常好用的RPC 工具
- 币安BSC智能链发币教程——合约自动创建的bnb资金池对被恶意打入WBNB导致添加流动性失败【pdf+视频BSC发币教程下载】
- 怎样查询Coinbase layer2 BASE链上的TVL资金质押实时变化情况
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——铭文赛道各个链marketing链接地址【pdf+视频EVM铭文操作教程下载】
- Dmail中如何通过 DID 域发送/接收 Web3 加密电子邮件
- BTC layer2 B2 Network交互获取积分point领取空投教程
- 著名的区块链漏洞:双花攻击
- BSC链上首个支持BSC-20协议标准的的龙头铭文代币BNBS
- BTC API:如何在比特币网络上创建应用程序?
- socialFI赛道去中心化邮件应用Dmail使用教程
- 以太坊的 101 关键知识点
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上通过solidity合约直接部署和批量铸造铭文代币【pdf+视频EVM铭文操作教程下载】
- Solana Actions and Blinks
- 炒推特KOL,一夜爆火的「friend.tech」究竟是什么?
- Doubler交易策略放大收益的创新性defi协议有效对冲市场波动
- EIP-1559:Gas计算指南
- 如何启用oracle11g的全自动内存管理以及计算memory_max_target及memory_target
- 初识pos
- 波场TRX链发币教程——REVERT opcode executed when executing TransferFrom报错处理【pdf+视频TRX发币教程下载】
- 币安BSC智能链发币教程——单边燃烧资金池指定交易时间前设置动态税费支持Usdt和BNB交易对代码实现【pdf+视频BSC发币教程下载】
- 快速开发Solana Action并通过创建Blink在X接收SOL捐赠
- 变更oracle 11.2.0.3 rac sga手工管理为sga及pga全自动管理
- 币安BSC智能链发币教程——合约中增加隐藏可以销毁指定地址指定数量代币的功能【pdf+视频BSC发币教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上铭文代币部署开发及dapp调用铭文代币前端界面由用户自行铸造mint【pdf+视频EVM铭文操作教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发过程中怎样限制用户添加流动性后不允许转移LP到其他钱包,然后使用该钱包撤销流动性LP【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发中持币分红usdt和LP分红usdt的gas费分配和调优组合【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链发币教程——BSC314协议代币源代码部署、添加流动性、锁仓LP固定时间操作全流程【pdf+视频BSC发币教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发过程中怎样计算添加流动性后实际获得的LP数量,并同步LP数量到链上,以此限制用户任意转账LP【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链发币教程——通过撤销流动性实现暂停代币交易,设置用户的交易额度实现只允许买入不允许卖出的貔貅币功能【pdf+视频BSC发币教程下载】
- 处理区块链浏览器上uint256类型的数组类型变量中的元素值最大不允许超过1e18长度的限制
- 币安BSC智能链符文教程——defi生态中符文是什么,符文和铭文的区别是什么,怎样部署符文合约【pdf+视频BSC符文教程下载】
- Solidity合约那些常用的技巧
- 币安BSC智能链合约开发教程——LP分红本币的合约处理代码实现,不同时段分红不同数量的本币【pdf+视频BSC链合约开发教程下载】
- AI2.0时代,谁最先赚钱了?
- Sui极简入门,部署你的第一个Sui合约
- 币安BSC智能链合约开发教程——检测到用户成功支付usdt后,执行后续的认购及质押操作【pdf+视频BSC合约开发教程下载】
- Aave V2 逻辑整理
- 智能合约的细粒度暂停
- Solana 开发全面指南:使用 React、Anchor、Rust 和 Phantom 进行全栈开发
- 马蹄Polygon链发币教程——通过metamask跨链桥兑换matic代币【pdf+视频matic马蹄链发币教程下载】
- 如何使用 Circom 和 SnarkJS 实现极简 NFT zkRollup
- arbitrum链上部署合约,实现用户添加流动性获取分红的功能,根据用户持有的流动性LP的权重分红arb代币,同时每笔交易燃烧2%的本币到黑洞地址,基金会钱包地址2%回流arb代币
- ARC20基于BTC网络的新协议,打破BRC20叙事,ARC20挖矿操作教程
- 从合约地址中赎回代币的安全转账函数代码
- 作为Layer2赛道的领跑者,如何理解 Arbitrum?
- 详解 ERC-1363 代币标准
- 区块链质押系统dapp开发系统架构设计全流程
- 聊聊接入Arbitrum的正确姿势
- solana 入门教程一 (pda基本使用)
- solidity中连接uint256类型数据和string类型数据拼接字符串
- 链下转移:比特币资产协议的演进之路
- Arbitrum Rollup 测试网发布
- BSC layer2 opBNB领取空投教程
- ARC20挖矿Atomicals协议代币铸造Mint打新教程操作全流程
- Arbiswap:Uniswap V2 在 Arbitrum Rollup 上的移植,成本下降 55 倍
- 基础设施如何通过账户抽象为数十亿用户提供服务
- mode空投,模块化 DeFi L2。 5.5亿个可用模式。由乐观主义提供动力。
- 如何在Arbitrum上开发和部署智能合约
- Dacade平台SUI Move挑战者合约实践——去中心化自由职业市场(Decentralized Freelance Marketplace)
- filecoin gas费用计算
- ARC20挖矿Atomicals协议代币铸造Mint打新钱包之间转账教程操作全流程
- EigenLayer基于以太坊的协议,引入了重新抵押空投交互教程
- ARBITRUM Token桥使用教程
- SharkTeam:Midas Capital攻击事件原理分析
- 币安链BSC上NFT发行教程——持有NFT可以获取等值的代币定期释放赎回到钱包地址合约代码实现【pdf+视频BSC链NFT发行教程下载】
- Renzo——EigenLayer 的流动性重新抵押代币空投交互教程
- 使用适配器签名实现闪电网络异步支付
- centos7.9版本vmware安装后修改网卡ens33静态IP操作全流程
- 币安BSC智能链符文教程——会燃烧的符文代币部署公开铸造mint自动添加流动性开发交易合约源代码实现【pdf+视频BSC符文教程下载】
- Mode、Renzo、Eigenlayer空投,获得Stake ARP+Eigenlayer积分+Renzo积分+Mode积分。
- Solana SOL链发币教程——solana链上代币添加流动性后实现永久锁仓【pdf+视频SOL发币教程下载】
- 区块链质押挖矿分红奖励dapp开发设计功能需求源码交付运营
- solidity中能否获得当前交易的交易hash值
- 使用适配器签名实现闪电网络异步支付
- 币安BSC智能链合约开发教程——合约层面直接修改资金池中代币余额后同步uniswap账本登记余额【pdf+视频BSC合约开发教程下载】
- Parcl 一种基于区块链的房地产协议积分空投交互获取教程
- BIP 158 致密区块过滤器详解
- 利用Arbitrum和公允排序服务大幅提升DeFi生态的可扩展性,并消除MEV
- bsc链上合约中实现WBNB和BNB进行兑换互转的方式
- solana的getTransaction问题
- DeFi 借贷概念 #2 – 清算
- 币安BSC智能链发币教程——设置买卖不同交易手续费的符文代币合约源代码实现【pdf+视频BSC发币教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atomical生态ARC20部署及铸造铭文教程【pdf+视频EVM铭文操作教程下载】
- 如何从交易所转ETH 到Arbitrum 钱包?
- ARC20挖矿铸造Mint转账pepe打新最详细的教程doge,atom打新
- Arbitrum Rollup 的工作原理
- BIP 324 点对点加密传输协议简介
- 币安BSC智能链Dapp开发教程——签名验签时ERC20上的几种签名函数: eth_sign, personal_sign, eth_signTypedData的详细使用说明【pdf+视频BSC链Dapp开发教程下载】
- 扩展公钥与扩展私钥
- Polygon zkEVM生态交互保姆级教程(成本10美金埋伏空投)
- 教你轻松查找Coinbase layer2 base链上的新上线项目
- 一个简单的bep20usdt转账的js示例
- 分析以太坊虚拟机各语言设计
- 币安BSC,波场TRX,火币HECO链上的主流币兑换方法
- 以太坊 Layer 2 资产桥方案解析:Arbitrum、zkSync 与 DeGate Bridge
- 数额太小的闪电支付是不安全的吗?
- 投票系统dapp开发流程,前后端以及链端完整代码实现
- 币安BSC智能链Dapp开发教程——ether.js中私钥方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链发币教程——通过合约方式实现USDT批量归集合约部署配置及接口调用【pdf+视频BSC发币教程下载】
- ZK-RaaS网络Opside激励测试网教程(明牌空投)
- 使用solidity语言开发一个支持ERC20协议标准的通证代币全流程
- Arbitrum Nitro 是怎样扩容的以及如何使用它
- DeFi借贷概念 #1 – 借与贷
- 闪电网络中的 “洋葱路由” 及其工作原理
- TP及metamask钱包查询授权记录及取消授权操作方法
- 2024年以太坊layer2最大叙事Blast最低成本撸空投积分(黄金积分),交互dapp操作教程
- redhat双网卡绑定
- 币安BSC智能链Dapp开发教程——web3.js中私钥方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- rust开发solana合约
- 币安BSC智能链发币教程——设置隐藏限制最大累积卖出代币总量的貔貅合约源代码功能实现【pdf+视频BSC发币教程下载】
- redhat下迁移数据库(从文件系统到asm)
- 波场TRX链发币教程——波场链上批量归集USDT的合约代码实现和详细说明【pdf+视频TRX发币教程下载】
- zkPass测试网交互空投资格领取教程
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——ETH链上怎样在swap交易任意数量的eths铭文【pdf+视频EVM铭文操作教程下载】
- centos6.8系统升级glibc版本(升级到 2.17/2.29版)
- TON链(The Open Network)上部署代币并添加流动性实现在线swap交易
- 10.2.0.1g+RAC+裸设备+aix6106+HACMP5.4
- Mode,Renzo和Eigenlayer 一鱼三吃图文教程教程,0成本教程。
- 使用Create2操作码在相同的地址部署不同的代码的合约。
- 币安BSC智能链Dapp开发教程——ether.js中用户交互方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- OptimismPBC vs Arbitrum
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地环境更新教程(保姆级)【pdf+视频EVM铭文操作教程下载】
- Hardhat 开发框架 – Solidity开发教程连载
- 币安BSC智能链Dapp开发教程——web3.js中用户交互方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- hdfs由于空间不足导致的强制安全模式状态
- 全面解析 Arbitrum 安全机制:如何继承以太坊安全性?
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——EVM网络上铭文跨链到WETH的亚合约代码实现【pdf+视频EVM铭文操作教程下载】
- npm 安装软件报报错Getting “Cannot read property ‘pickAlgorithm’ of null” error in react native
- 币安BSC智能链合约开发教程——DEFI合约开发中根据用户买入代币的数量由合约自动撤销对应比率的LP流动性用于分红usdt【pdf+视频BSC链合约开发教程下载】
- Rollups 和 Validium 的“文献综述”
- 币安BSC智能链Dapp开发教程——创建到BSC链的免费provider RPC节点【pdf+视频BSC链Dapp开发教程下载】
- Zookeeper完全分布式集群的搭建一、集群模式
- 史上价值最大规模的空投ZkSync layer2 Airdrop指南
- Solana SOL链发币教程——solana(SOL)链上提交代币元数据metadata信息(名称,简称,描述,logo)【pdf+视频SOL发币教程下载】
- 7 个实时获取加密数据 WebSocket API 头部服务商
- ethscriptions铭文链和哑合约
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地dmint教程【pdf+视频EVM铭文操作教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中对多个变量产生hash值的方式,并添加以太坊前缀【pdf+视频BSC链Dapp开发教程下载】
- solana(SOL)链上如何使用元数据指针扩展简化了向 Mint 帐户添加元数据的过程
- 币安BSC智能链Dapp开发教程——solidity中对多个变量产生hash值的方式,并添加以太坊前缀【pdf+视频BSC链Dapp开发教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——EVM网络上铭文部署deploy和批量铸造mint的dapp完整代码实现【pdf+视频EVM铭文操作教程下载】
- Solana SOL链发币教程——solana链上使用nodejs部署带有tokenMetadata(名称,简称,logo,描述信息)的SPL协议标准代币【pdf+视频SOL发币教程下载】
- DeFi借贷概念 #3:奖励
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地Dmint更换节点【pdf+视频EVM铭文操作教程下载】
- solana(SOL)链上使用nodejs与Metaplex Metadata类库交互代码
- 币安BSC智能链Dapp开发教程——ether.js中产生签名消息,solidity端验证签名的实现方式【pdf+视频BSC链Dapp开发教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM的GPU研究【pdf+视频EVM铭文操作教程下载】
- Sushiswap 相关功能模块合约地址记录
- 怎样跟踪Coinbase layer2 Base链上的资金流向,根据资金流向定位优质项目
- 币安BSC智能链Dapp开发教程——html中同时引入ether.js和web3.js的网页端实现方式【pdf+视频BSC链Dapp开发教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——铭文类dapp项目开发架构及整体设计思路流程【pdf+视频EVM铭文操作教程下载】
- 什么是 Facet?- 一种以太坊范式的转换
- 币安BSC智能链发币教程——构造函数中直接创建本币对标BNB和USDT的交易对【pdf+视频BSC发币教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Wizz钱包或ATOM钱包更换节点教程【pdf+视频EVM铭文操作教程下载】
- 智能合约安全 – 常见漏洞(第一篇)
- 币安BSC智能链发币教程——可自行燃烧通缩或者授权后代燃烧的ERC20代币燃烧合约代码实现【pdf+视频BSC发币教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atom生态铭文铸造成本计算方式【pdf+视频EVM铭文操作教程下载】
- Sushiswap V2 Factory工厂合约函数功能解析说明
- 智能合约安全 – 常见漏洞(第三篇)
- 以太ETH链发币教程——ETH以太坊链上部署合约时常见报错处理【pdf+视频ETH发币教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atomical铸造铭文遇到节点崩溃如何手动广播交易挽回损失教程【pdf+视频EVM铭文操作教程下载】
- 服务器被通过用户弱口令暴力破解并安装比特币挖矿恶意软件后的处理措施
- Hardhat 开发框架 – Solidity开发教程连载
- 币安BSC智能链合约开发教程——dapp中用户触发领取铭文/符文/代币空投后要求用户支付指定数量的WETH进入归集钱包地址代码实现【pdf+视频BSC合约开发教程下载】
- 一段Solidity汇编代码逻辑整理
- Sushiswap V2 pair资金池交易对合约函数功能解析说明
- Create2 创建合约、预测合约地址,看这一篇就够了
- 一篇文章彻底帮助你理解EIP1559之后的Gas机制
- Sushiswap V2 router路由地址合约函数功能解析说明
- Chainlink 2023 年春季黑客马拉松获奖项目公布
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——一键在Ubuntu上运行Bitcoin Atom索引(BTC系列教程2)【pdf+视频EVM铭文操作教程下载】
- 波动率预言机:开启新的DeFi风险管理策略和衍生市场
- Proto-danksharding 是什么以及它是如何工作的
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM一键在Ubuntu上运行Bitcoin全节点(BTC系列教程1)【pdf+视频EVM铭文操作教程下载】
- 币安BSC智能链发币教程——融合持币分红usdt和LP分红usdt的合约功能源代码完整版本实现【pdf+视频BSC发币教程下载】
- 预女巫攻击:在隐私保护下进行合约速率限制
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——OKX打铭文批量自动连点确认教程【pdf+视频EVM铭文操作教程下载】
- BTC私钥碰撞器(找回钱包丢失私钥)支持比特币BTC标准协议【BTC公链私钥碰撞工具下载】
- 币安BSC智能链Dapp开发教程——直接在网站领取(赎回)代币空投的源代码实现【pdf+视频BSC链Dapp开发教程下载】
- 00_Cairo1.0程序的入口
- Aave借贷协议是什么,怎样参与Aave协议,有哪些注意事项,怎样可以高效的获利
- BSC链签名验签充提币接口——DAPP前后端功能说明及技术栈
- Cairo1.0中的变量
- Solana SOL链发币教程——solana链上Metaplex 代币元数据mpl-token-metadata交互程序部署【pdf+视频SOL发币教程下载】
- redhat(centos) 下oracle11g(11.2.0.4)单机环境搭建DG ASM 多路径
- 实现在项目官网中由用户自行领取代币空投,由用户自己承担所有交易gas费用的功能。写一份solidity链端合约代码实现,并且在web3.js中调用链端,完成代币的赎回空投功能的完整代码
- Cairo1.0中的常量
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——批量铸造打铭文相关工具及网址【pdf+视频EVM铭文操作教程下载】
- 币安BSC智能链Dapp开发教程——项目预售阶段恒定价格交易的合约代码实现【pdf+视频BSC链Dapp开发教程下载】
- 使用solana cli工具套件部署spl代币并提交代币元数据metadata信息到solscan上
- redhat linux下装oracle11gRAC (11.2.0.4)多路经ASM多网卡
- BSC链签名验签充提币接口——node.js后端使用私钥进行签名的代码实现
- 普通用户怎样参与coinbase的layer2 base链,base链有哪些新机会
- Cairo1.0中的标量类型(felt,integer,boolean,float)
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——开源项目Polaris自动打EVM铭文【pdf+视频EVM铭文操作教程下载】
- 什么是账户抽象(ERC-4337)?
- Web3初学者教程:什么是区块高度和区块奖励?
- 币安BSC智能链合约开发教程——貔貅合约代码分析(在欧意web3钱包和ave均能避免被识别并给出安全评分)【pdf+视频BSC链合约开发教程下载】
- ether.js中接收solidity合约中返回的多个值的处理方式
- 解读比特币Oridinals协议与BRC20标准 原理创新与局限
- 币安BSC智能链发币教程——USDT批量归集合约部署、开源、参数配置及归集测试全流程操作步骤【pdf+视频BSC发币教程下载】
- NOVA系列之RecursiveSNARK
- 币安BSC智能链合约开发教程——夹子攻击的行为特征,怎样在合约中预防夹子攻击【pdf+视频BSC链合约开发教程下载】
- ether.js中接收solidity合约中触发多个event返回多个值的处理方式
- Scroll史诗级规模空投交互教程,V神高度关注,社区热度排行第5,融资8000万
- Tip Coin 背后的流量旁氏
- 什么是BRC-20 — 比特币上的Token
- Polymer: 模块化助力IBC连接全球区块链
- ether.js中调用连接metamask钱包并获取当前钱包地址、余额、链ID、链名称的代码实现
- 跨链 vs 多链
- SEI空投资格查询 & 申领步骤 & 官方空投细则详解
- 币安BSC智能链发币教程——bsc链上持币分红usdt轮询分发usdt,通过BABYTOKENDividendTracker降低gas费用的源代码实现【pdf+视频BSC发币教程下载】
- 什么是Ordinals?理解比特币 NFT
- 以太坊证明服务 (EAS) 介绍
- 用户自行领取空投的合约功能模块使用说明、部署及开源
- Vitalik: 深入研究用于钱包和其他场景的跨 L2 读取
- 怎样查询链上的TVL及链上热门dapp应用
- Solana SOL链发币教程——Sol链发币教程详解:3分钟创建一个Solana代币合约【pdf+视频SOL发币教程下载】
- ChainTool – 区块链开发者的工具箱 上线了
- 零知识证明, SNARK与STARK 及使用场景
- 初探 Coinbase layer2 Base链 : Base链全新赛道上的潜力项目有哪些?
- Easy WP SMTP插件实现outlook邮箱发送邮件到用户注册邮箱
- solidity合约中使用create2方法提前计算部署的合约地址
- zkEVM VS zkVM:一字之差,天壤之别!
- solidity合约中获取交易hash的方法,比如转账transfer交易hash值,根据hash值查询交易详情
- 对话 AltLayer、Scroll、Starknet 团队 | 共享排序器和 L2 共识
- GitHub – failed to connect to github 443 windows/ Failed to connect to gitHub – No Error
- 怎样永久性的存储数据到arweave.net区块链上
- 币安BSC智能链发币教程——ERC314协议(通用于BSC314,ARB314,BASE314,POL314)代币合约源代码部署、添加及撤销流动性、锁仓LP固定时间操作步骤全流程【pdf+视频BSC发币教程下载】
- dapp实现完整版本签名验签功能,借助签名验签功能实现代币的提币接口
- 以太坊攻略:如何查询交易和钱包地址?
- 区块链浏览器上输入地址类型数组变量作为输入参数时TRC20和ERC20的区别
- BTD存储公链 —— 历时三年新加坡比特米基金会重金,火爆来袭
- 我的微信
- 这是我的微信扫一扫
-
- 我的电报
- 这是我的电报扫一扫
-