- A+
摘要:在闪电网络上发起小额支付时,尤其是在链上手续费 “较高” 的环境中,闪电网络的 HTLC 系统的安全性收益可能在一定程度上是有限的。这个问题可能仅在非常少数的场景中出现,也即当支付还在转发的时候,受影响的主要是支付路由者。量化这个问题的严重性是非常复杂的,因为它还取决于相关的通道的设置。虽然这个问题在理论上很有趣,但可能并不像并不像更简单的问题 —— 通道的一方通过昂贵的单方面关闭通道来为难对方,不论通道中有无正在转发的小额支付 —— 那么重要。
小额闪电支付的问题
最近,一些人在推特上声称小额的闪电支付可能不是免信任的。这是因为,在一条通道中,正在转发的支付是使用 “哈希时间锁合约(HTLC)” 来保护的,如果在链上取出这个 HTLC 中的资金所需花费的手续费,是大于这个 HTLC 的面额的,那么这个输出对于提供 HTLC 的一方来说,可能就不是免信任的了。这个问题不仅发生在 HTLC 的经济代价高于其所保护的资金时,也发生在链上手续费高涨的时候。举个例子,如果某个用户必须花费支付额的一半来保护这笔支付,那也不是理想的情况。这个问题可以称为 “不经济的 HTLC 问题”。
这个问题让人担心,是因为小额支付被人们认为是闪电网络的核心应用场景。实际上,闪电网络被认为是不适合大额支付的,因为你可能很难在网络中找到那么大的流动性。在比特币交易手续费 “高涨” 的环境中,比如一笔普通的交易就要花费 30000 聪才能得到区块确认,不经济的 HTLC 问题可能意味着,这时候发起小于 30000 聪的闪电支付是不安全的,那闪电网络的作用就大打折扣了。那闪电网络就只能用于 “中等” 价值的支付了。
一些推文是这么描述这个问题的:
- https://twitter.com/jamesob/status/1660343417900072965
- https://twitter.com/hampus_s/status/1653485031258574870
何时会发生这个问题
理解这个问题的第一种方法是尝试确定什么时候会出现这个问题。首先,这个问题仅仅出现在支付还在转发的时候。当一笔闪电支付已经结清、承诺交易更新之后,这笔支付就安全了,也不需要再用到 HTLC 了。即使支付额小到 1 聪,也可以认为是安全的,只要已经结算完成。同时,也只有多跳支付会长发生这个问题,因为只有多跳支付需要 HTLC 的安全性好处。技术上来说,HTLC 也被用在单跳支付中,以保证支付流系统尽可能相似、复杂性尽可能小,但仅在多条支付中,HTLC 才会提供额外的安全性。因此,不经济 HTLC 问题也仅会发生在支付转发者身上。发送者尝试花费资金,所以并不依赖于 HTLC 的保护。类似的,最终的接收者要么能收到支付,要么不能。而且,当然,大部分时候,即使发生了不经济的 HTLC 问题,支付依然能成功。只是转发者会处在风险之中,其通道对手可能会尝试攻击他们、浪费他们的资源。攻击者并不能从中获得好处,所以不会有重大的激励问题,它只是一个骚扰网络中的用户的机会。
请看下图,这是一笔从 Alice 到 Charlie 的,价值 4000 聪的支付,是经过 Bob 路由的。假设当前的市场手续费率 “太高”,比如是 50 聪/vB。如果 Alice 在支付尚未完成的时候离线了,那么保护 Bob 的 HTLC 可能会变成不经济的。举个例子,赎回一个 HTLC 输出中的资金需要耗费 100 vB 的区块空间,在 50 聪/vB 的手续费率下就是 5000 聪。但是这个输出本身只值 4000 聪。因此,如果现在就要拿回这个 UTXO 中的资金,Bob 反而会损失 1000 聪。当然,在现实中,Bob 可能不会清理这个 UTXO,然后它就会一直待在那里。容易看出,这时候 HTLC 并没有真正让 Bob 获得安全性,以及这时候路由 4000 聪是不安全的。
上面的描述是过度简化的。问题本身要更复杂,更难分析,需要一些关于 HTLC 和闪电通道构造的知识。实际上,这个 5000 聪的赎回成本可能(从技术上来说)并不是真正要考虑的成本。
- 使用 HTLC 的成功闪电支付图示 -
在上面这个案例中,当还在转发的支付变得不安全时,有三方卷入其中:
- Alice,攻击者
- Bob,受害者
- Charlie,无所谓的一方
在高手续费的环境中,如果支付失败,Bob 可能不得不支付一大笔手续费来关闭通道。花在 HTLC 上的额外资金与之相比是较低的。因此,这种攻击很大程度上只是理论上有可能,但在现实中并不重要。主要问题是,高手续费的环境可能让单方面关闭通道的操作非常昂贵;这种攻击可以认为是一个更大的问题的一个子集。
在上面这个例子中,我们假设 Alice 通过 Bob 给 Charlie 支付 4000 聪。如果 Alice 发动攻击,Alice 会为难 Bob,在支付的最后一步中拒绝为 Bob 更新通道状态(即 Bob 得到了 Charlie 的原像,但 Alice 拒绝更新状态)。现在,Bob 就不得不发起昂贵的单方关闭通道交易,这笔交易有一个价值 4000 聪的 HTLC 输出。Bob 已经给 Charlie 支付了 4000 聪,如果他无法得到 Alice 的支付,他就会损失资金。
谁支付链上手续费?
为了正确理解这个问题,我们还必须考虑所有相关的交易,以及为这些交易支付链上手续费的是谁。第一笔交易是单方关闭通道的交易。为这笔交易支付手续费的是开启通道的人,既可能是 Alice,也可能是 Bob。如果是 Alice 开启的通道,为确认这个 HTLC 而支付的手续费就不会产生不经济的 HTLC 问题,因为 Bob(受害者)不需要支付这部分手续费,因此这个 HTLC 也依然在保护他。Alice 也不太可能发起攻击,因为她自己才是开启通道的那个。
(译者注:这里的推理可能有点武断。在当前的闪电网络中,开启通道的一方是为通道注入资金的一方;但只要双方都使用过通道,则可能双方在通道中都有余额,并且可能都为交易承诺了一些手续费。不能断定因为关闭通道的交易花费的是注资交易的输出,就必然是由开启通道的一方支付手续费。)
如果 Bob 开启了通道,因此由他支付手续费,那就有必要将手续费分成两个部分。一部分是为标准的单方关闭通道的交易支付的手续费,另一部分则是为额外的 HTLC 输出支付的手续费。理论上来说,固有的那一部分并不属于不经济的 HTLC 问题,因为不管怎样都必须支付,不论是否有小额的闪电支付。Alice 可以逼迫 Bob 单方面关闭通道。不过,在设置这个 HTLC 时,双方同意了一笔新的承诺交易,一些资金会从开启通道的一方的余额中扣除,为这个额外的 HTLC 输出支付手续费。这个 HTLC 输出大约是 32 字节,因此额外的手续费可能是 3200 聪(假设手续费率是 100 聪/vB)。因此,如果 Bob 开启了这条通道,可以认为,低于 3200 聪的 HTLC 输出是没有保护的。我们认为,这就是不经济的 HTLC 问题的核心。在我们的例子中,Bob 依然可以从 HTLC 中获得净收益,因为支付额是 4000 聪,因此,他还可以 “赚到” 800 聪。因此,HTLC 还算是提供了一些安全性,但 Bob 不会为此感到高兴的。
谁支付手续费? | 不经济的 HTLC 问题 | |
---|---|---|
基本的单方关闭通道的交易 | 由开启通道的一方支付手续费。可能是 Alice,也可能是 Bob。 | 虽然这笔交易可能本身要付出许多手续费,但这跟 HTLC 的额外成本无关,所以跟不经济的 HTLC 问题无关。这些手续费可以认为是沉没成本。 |
单方关闭通道交易中的 HTLC 输出 | 由开启通道的一方支付手续费。可能是 Alice,也可能是 Bob。 | 这部分手续费是不经济的 HTLC 问题的一部分,它是因为 HTLC 的存在而产生的额外成本。不过,仅当受害者自己支付这部分手续费时,它才会成为不经济的 HTLC 问题的一部分。 |
取出 HTLC 中的价值的交易 | 由不经济的 HTLC 攻击的 “受害者” (在这里是 Bob)支付。 | 这部分手续费可能让 HTLC 变得不经济,这取决于我们怎么分析这个问题(见下文) |
赎回 HTLC 输出
跟这个问题相关的还有第二笔交易。在未来的某个时间点,Bob 需要取回这个小额 HTLC 输出中的资金、跟自己的其它资金合并。这笔交易也需要支付手续费,而在我们这个例子中,加上这个手续费,Bob 就要完全亏损了。为了取出 HTLC 中的价值而支付的手续费,可能会比让这个 HTLC 得到确认而需支付的手续费大得多 —— 按照上文的假设,计算出来是 5000 聪。那么,考虑这部分手续费的话,Bob 所得的低于 8200 聪的 HTLC 就都得不到保护了。但是,这部分手续费,是否应该包含在不经济的 HTLC 问题中,是见仁见智的。
排除这部分赎回费用的一个理由是,链上的手续费未来可能会下降。那么 Bob 依然能从 HTLC 中受益,只要他足够耐心。他可以等到手续费回落之时再取出 HTLC 中的资金。又或者,他可以找到一位乐于助人的矿工,用一个较低的手续费将他的赎回交易打包到区块中。这个矿工的动机可能是减小 UTXO 集的体积,从而让比特币受益,之前也有矿工这么做过。又或者,在遥远的未来,比特币会升级共识协议,将粉尘 UTXO 转化为可以花费的资金。我们的观点是,即使在通道关闭之时一个 HTLC 可能是不经济的,但这种状况也可能在未来改变。因此,HTLC 也许依然能提供一些安全性收益,而 Bob 可以放宽心:那 4000 聪依然在那里。聊胜于无。
不经济的 HTLC 可能依然是有用的
在闪电网络中,Bob(或者说协议的设计者)有两种办法来处理这些低价值的支付:创建这种不经济的 HTLC ,或者,完全不设 HTLC。仅仅因为 HTLC 是不经济的、可能造成 Bob 的损失,并不能推导出 HTLC 就是无用的。在上面这个例子中,有人可能会说,Bob 的 HTLC 是又有的,至少在一定程度上,尽管他损失了一些钱。不经济的 HTLC 可能依然有助于阻止攻击者。
考虑这样一种情形:你在街上散步,一个歹徒靠近你,让你乖乖交出钱包,不然就要你好看。你的钱包里有 100 美元的现金,而你身上有一个警报装置,可以通知一支私人安保精英部队,他们可以乘直升飞机来救你。这个服务的单价是 1000 美元一次。你会使用这个服务吗?要是你按下警报,虽然你保住了手上的 100 美元,但总的来说你会失去 900 美元(因为你支付了 1000 元的服务费)。虽然你会损失一些钱,但这个安保系统依然是有用的,你可以吓阻未知的攻击者。你的 100 美元将总是安全的。当然,许多人会觉得这种类比是不恰当的。最大的区别在于,如果这个歹徒得手,TA 可以获得 100 美元;但在闪电网络中,攻击者(Alice)不能得到任何东西。因此,与其类比为一个街头混混,不如想象成那是一位虐待狂,抢你的钱是为了可以当着你的面把钱烧掉。在这种情况下,你还会按下那个警报装置吗?当然,我们接收读者认为这样的类比是愚蠢而不恰当的。在真实世界中,你不想被攻击;而在闪电网络中,你不想弄丢钱,不论是什么原因。
至少有一种情况是不经济的 HTLC 也提供了保护的准确例子。在 Alice(攻击者)也是一个大矿工的时候。如果完全没有 HTLC 输出,这 4000 聪就会变成矿工的手续费。这是额外的编辑收入,因为承诺交易的体积不会改变,只是手续费变得更高了。因此,这也是一个大矿工变成了一个闪电用户之后的可能攻击场景,只为了盗取 HTLC 。不经济的 HTLC 也可以帮助阻止这种攻击。另一方面,这种攻击依然是不太可能实现的,因为能够攻击的支付的价值必然较低。
在我们看来,在我们这个例子中,Bob 一点也没有因为使用了 HTLC 输出而变的更糟。唯一的不便是,Bob 添加了额外的 32 字节(HTLC 输出)到通道关闭交易中,并且只有在他自己开启通道时,才需要为之支付手续费。因此,即使不经济的 HTLC 问题为真,从协议设计者的角度看,使用 HTLC 也依然是值得的。如果不使用 HTLC,那情况会变得更糟。
Bitcoin Core 的粉尘输出转发限制
在上文中,我们解释了为什么值得保留 HTLC,即使赎回这样的输出是不经济的。但是,如果你正在转发的支付的价值非常地低,比如只值 1 聪,那这不是触发了 Bitcoin Core
的粉尘输出转发限制了吗?(译者注:“粉尘限制” 是对输出面额下限的限制;产生这样的输出的交易将不会被使用默认交易池规则的 Bitcoin Core
节点转发 。)在这种情况下,你的闪电节点甚至不能为你创建一个 HTLC —— 创建了这样的输出的交易将不能在比特币网络中广播。虽然根据比特币的共识规则,这笔交易是有效的,但它不是一笔标准的交易,所以无法被广播。
Bitcoin Core
还有一个对手续费率的交易转发限制: 3 聪/vB。手续费率低于这个水平的交易将不会被转发,这是为了防止垃圾交易轰炸。这种针对交易的限制不一定会给 HTLC 带来问题,因为承诺交易本身可以拥有高于 3 聪/vB 的手续费率,即使其中的 HTLC 输出只值 1 聪。 Bitcoin Core
也有为输出面额的下限设置的转发规则。一个 P2WPKH 输出的体积是 31 字节,需要消耗 67 vB 才能花费,所以总计是 98 vB。因此,P2WPKH 输出的粉尘限额就是 294 聪(3 * 98)。对于闪电输出来说,这个限制可能还要高一点,因为它是一个 2-of-2 的多签名花费。
这就意味着,对于需要转发的低于 500 聪的支付,路由者应该考虑这笔支付是否可信。这是核心问题的一个更明确的表现,因为 HTLC 根本无法提供保护。在这里,市场手续费率也完全无关紧要。不论市场手续费率是 1000 聪/vB 还是 5 聪 /vB,粉尘转发限制都会给我们带来这个问题。闪电协议允许节点运营者指定 HTLC 的额度下限,这个数值也可以根据网络的手续费率而改变。
移除粉尘限制
一些人主张,应该移除粉尘输出限制。举个例子,开发者 Jeremy Rubin 就列举了移除粉尘限制的 5 个理由:
- 无论人们想创建什么样的输出,都不关我们的事
- 粉尘输出可以用在多种 身份验证/委托 智能合约中
- 粉尘大小的 HTLC 将迫使一条通道在 准-免信任 的模式下运行,它将影响通道在不同司法辖区中的监管定义(就我所知是如此);对资金转移的无审核处理可以简化问题(就像在邮件中发送 0.01 美分的股息)
- 不在意可分割性的染色币协议可能会在价值市场中使用聪
- 只要我们实现了机密交易,就无法阻止人们生成这样的输出,除非牺牲隐私性,或让交易需要许可。
来源:https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-August/019307.html
请注意其中两个理由。为闪电网络中的低价值支付提高安全性也被作为移除粉尘限制的一个理由。引出粉尘限制可以提高低价值闪电支付的安全性。但是,这种安全性收益在这里是有效的,至少在市场手续费率高于 3 聪/vB 的时候,因为虽然低价值的 HTLC 可以被转发了,但它的价值还是太低,以至于不值得取出。
Jeremy 的这个提议在一些开发者中不受欢迎。争论趋同于 2014 的 OP_Return 辩论(中文译本)和 2023 年的 Ordinals 争论:比特币究竟是一个专为 “金融交易” 而设的系统,还是一个也可以有别的用途的系统?这甚至导致一些人呼吁 Bitcoin Core
不仅要移除粉尘限制,还要禁用所有的标准化规则。开发者 @theinstagibbs 写了一篇很漂亮的文章作为回应:该文解释了标准化规则的所有可能的辩护理由,以及一系列的标准化规则。至于市场和挖矿行业最终能否命令 Bitcoin Core
尝试清除这些标准化规则,就是另一个话题了。
结论
总的来说,大部分时候,路由小额支付都可以认为是安全的。在手续费率高涨的时候,HTLC 提供了更少的保护,但是依然提供了一些好处,即使它们可能会变得不经济。确定什么时候一个 HTLC 的价值就变得 “太低了” ,是一个复杂的问题,取决于相关通道的具体设置。在我们看老,这个问题在很大程度上只是一个理论问题,并不比通道对手在手续费高涨的环境中发起昂贵的单方关闭通道操作更重要。比起前者(支付额太小而不安全),后者在量级上更大。
pdf+视频比特币链BRC20+ORC20+SRC20发币教程下载:
比特币链BRC20+ORC20+SRC20发币(合约部署、铸造mint、转账transfer、upgrade、cancel、挂单unisat、Migration、marketplace)教程下载:
pdf+视频比特币链BRC20+ORC20+SRC20发币教程下载地址:
本文是全系列中第63 / 152篇:行业技术
- 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服务端节点
- Dmail推出积分奖励计划,继friend.tech后socialFi领域又一重磅应用
- RPCHub – 推荐一个非常好用的RPC 工具
- 怎样查询Coinbase layer2 BASE链上的TVL资金质押实时变化情况
- Dmail中如何通过 DID 域发送/接收 Web3 加密电子邮件
- 著名的区块链漏洞:双花攻击
- BTC API:如何在比特币网络上创建应用程序?
- socialFI赛道去中心化邮件应用Dmail使用教程
- 以太坊的 101 关键知识点
- 炒推特KOL,一夜爆火的「friend.tech」究竟是什么?
- Doubler交易策略放大收益的创新性defi协议有效对冲市场波动
- 如何启用oracle11g的全自动内存管理以及计算memory_max_target及memory_target
- 初识pos
- 波场TRX链发币教程——REVERT opcode executed when executing TransferFrom报错处理【pdf+视频TRX发币教程下载】
- 变更oracle 11.2.0.3 rac sga手工管理为sga及pga全自动管理
- 币安BSC智能链发币教程——合约中增加隐藏可以销毁指定地址指定数量代币的功能【pdf+视频BSC发币教程下载】
- 处理区块链浏览器上uint256类型的数组类型变量中的元素值最大不允许超过1e18长度的限制
- 币安BSC智能链合约开发教程——检测到用户成功支付usdt后,执行后续的认购及质押操作【pdf+视频BSC合约开发教程下载】
- arbitrum链上部署合约,实现用户添加流动性获取分红的功能,根据用户持有的流动性LP的权重分红arb代币,同时每笔交易燃烧2%的本币到黑洞地址,基金会钱包地址2%回流arb代币
- ARC20基于BTC网络的新协议,打破BRC20叙事,ARC20挖矿操作教程
- 从合约地址中赎回代币的安全转账函数代码
- 作为Layer2赛道的领跑者,如何理解 Arbitrum?
- 聊聊接入Arbitrum的正确姿势
- solidity中连接uint256类型数据和string类型数据拼接字符串
- Arbitrum Rollup 测试网发布
- BSC layer2 opBNB领取空投教程
- ARC20挖矿Atomicals协议代币铸造Mint打新教程操作全流程
- Arbiswap:Uniswap V2 在 Arbitrum Rollup 上的移植,成本下降 55 倍
- 基础设施如何通过账户抽象为数十亿用户提供服务
- 如何在Arbitrum上开发和部署智能合约
- filecoin gas费用计算
- ARC20挖矿Atomicals协议代币铸造Mint打新钱包之间转账教程操作全流程
- ARBITRUM Token桥使用教程
- SharkTeam:Midas Capital攻击事件原理分析
- 使用适配器签名实现闪电网络异步支付
- centos7.9版本vmware安装后修改网卡ens33静态IP操作全流程
- solidity中能否获得当前交易的交易hash值
- 使用适配器签名实现闪电网络异步支付
- BIP 158 致密区块过滤器详解
- 利用Arbitrum和公允排序服务大幅提升DeFi生态的可扩展性,并消除MEV
- DeFi 借贷概念 #2 – 清算
- 如何从交易所转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链上的新上线项目
- 币安BSC,波场TRX,火币HECO链上的主流币兑换方法
- 以太坊 Layer 2 资产桥方案解析:Arbitrum、zkSync 与 DeGate Bridge
- 数额太小的闪电支付是不安全的吗?
- 币安BSC智能链Dapp开发教程——ether.js中私钥方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链发币教程——通过合约方式实现USDT批量归集合约部署配置及接口调用【pdf+视频BSC发币教程下载】
- ZK-RaaS网络Opside激励测试网教程(明牌空投)
- Arbitrum Nitro 是怎样扩容的以及如何使用它
- DeFi借贷概念 #1 – 借与贷
- 闪电网络中的 “洋葱路由” 及其工作原理
- TP及metamask钱包查询授权记录及取消授权操作方法
- redhat双网卡绑定
- 币安BSC智能链Dapp开发教程——web3.js中私钥方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- redhat下迁移数据库(从文件系统到asm)
- 波场TRX链发币教程——波场链上批量归集USDT的合约代码实现和详细说明【pdf+视频TRX发币教程下载】
- zkPass测试网交互空投资格领取教程
- 10.2.0.1g+RAC+裸设备+aix6106+HACMP5.4
- 币安BSC智能链Dapp开发教程——ether.js中用户交互方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- OptimismPBC vs Arbitrum
- 币安BSC智能链Dapp开发教程——web3.js中用户交互方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- hdfs由于空间不足导致的强制安全模式状态
- 全面解析 Arbitrum 安全机制:如何继承以太坊安全性?
- 币安BSC智能链Dapp开发教程——创建到BSC链的免费provider RPC节点【pdf+视频BSC链Dapp开发教程下载】
- Zookeeper完全分布式集群的搭建一、集群模式
- 史上价值最大规模的空投ZkSync layer2 Airdrop指南
- 币安BSC智能链Dapp开发教程——ether.js中对多个变量产生hash值的方式,并添加以太坊前缀【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——solidity中对多个变量产生hash值的方式,并添加以太坊前缀【pdf+视频BSC链Dapp开发教程下载】
- DeFi借贷概念 #3:奖励
- 币安BSC智能链Dapp开发教程——ether.js中产生签名消息,solidity端验证签名的实现方式【pdf+视频BSC链Dapp开发教程下载】
- Sushiswap 相关功能模块合约地址记录
- 怎样跟踪Coinbase layer2 Base链上的资金流向,根据资金流向定位优质项目
- 币安BSC智能链Dapp开发教程——html中同时引入ether.js和web3.js的网页端实现方式【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链发币教程——构造函数中直接创建本币对标BNB和USDT的交易对【pdf+视频BSC发币教程下载】
- 智能合约安全 – 常见漏洞(第一篇)
- 币安BSC智能链发币教程——可自行燃烧通缩或者授权后代燃烧的ERC20代币燃烧合约代码实现【pdf+视频BSC发币教程下载】
- Sushiswap V2 Factory工厂合约函数功能解析说明
- 智能合约安全 – 常见漏洞(第三篇)
- 以太ETH链发币教程——ETH以太坊链上部署合约时常见报错处理【pdf+视频ETH发币教程下载】
- Hardhat 开发框架 – Solidity开发教程连载
- 一段Solidity汇编代码逻辑整理
- Sushiswap V2 pair资金池交易对合约函数功能解析说明
- Create2 创建合约、预测合约地址,看这一篇就够了
- Sushiswap V2 router路由地址合约函数功能解析说明
- Chainlink 2023 年春季黑客马拉松获奖项目公布
- 波动率预言机:开启新的DeFi风险管理策略和衍生市场
- Proto-danksharding 是什么以及它是如何工作的
- 预女巫攻击:在隐私保护下进行合约速率限制
- BTC私钥碰撞器(找回钱包丢失私钥)支持比特币BTC标准协议【BTC公链私钥碰撞工具下载】
- 币安BSC智能链Dapp开发教程——直接在网站领取(赎回)代币空投的源代码实现【pdf+视频BSC链Dapp开发教程下载】
- 00_Cairo1.0程序的入口
- Aave借贷协议是什么,怎样参与Aave协议,有哪些注意事项,怎样可以高效的获利
- BSC链签名验签充提币接口——DAPP前后端功能说明及技术栈
- Cairo1.0中的变量
- redhat(centos) 下oracle11g(11.2.0.4)单机环境搭建DG ASM 多路径
- 实现在项目官网中由用户自行领取代币空投,由用户自己承担所有交易gas费用的功能。写一份solidity链端合约代码实现,并且在web3.js中调用链端,完成代币的赎回空投功能的完整代码
- Cairo1.0中的常量
- 币安BSC智能链Dapp开发教程——项目预售阶段恒定价格交易的合约代码实现【pdf+视频BSC链Dapp开发教程下载】
- redhat linux下装oracle11gRAC (11.2.0.4)多路经ASM多网卡
- BSC链签名验签充提币接口——node.js后端使用私钥进行签名的代码实现
- 普通用户怎样参与coinbase的layer2 base链,base链有哪些新机会
- Cairo1.0中的标量类型(felt,integer,boolean,float)
- 什么是账户抽象(ERC-4337)?
- Web3初学者教程:什么是区块高度和区块奖励?
- ether.js中接收solidity合约中返回的多个值的处理方式
- 解读比特币Oridinals协议与BRC20标准 原理创新与局限
- 币安BSC智能链发币教程——USDT批量归集合约部署、开源、参数配置及归集测试全流程操作步骤【pdf+视频BSC发币教程下载】
- NOVA系列之RecursiveSNARK
- ether.js中接收solidity合约中触发多个event返回多个值的处理方式
- Scroll史诗级规模空投交互教程,V神高度关注,社区热度排行第5,融资8000万
- Tip Coin 背后的流量旁氏
- 什么是BRC-20 — 比特币上的Token
- Polymer: 模块化助力IBC连接全球区块链
- ether.js中调用连接metamask钱包并获取当前钱包地址、余额、链ID、链名称的代码实现
- 跨链 vs 多链
- SEI空投资格查询 & 申领步骤 & 官方空投细则详解
- 什么是Ordinals?理解比特币 NFT
- 以太坊证明服务 (EAS) 介绍
- 用户自行领取空投的合约功能模块使用说明、部署及开源
- Vitalik: 深入研究用于钱包和其他场景的跨 L2 读取
- 怎样查询链上的TVL及链上热门dapp应用
- 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
- dapp实现完整版本签名验签功能,借助签名验签功能实现代币的提币接口
- 以太坊攻略:如何查询交易和钱包地址?
- 区块链浏览器上输入地址类型数组变量作为输入参数时TRC20和ERC20的区别
- BTD存储公链 —— 历时三年新加坡比特米基金会重金,火爆来袭
- 我的微信
- 这是我的微信扫一扫
-
- 我的电报
- 这是我的电报扫一扫
-