BTCStudy 精选

2024年09月11日更新 63 人订阅
专栏简介 理解 Taproot Assets 协议 多方共享的 UTXO:形式与特性 影响 0.21.0 以前版本 Bitcoin Core 软件的漏洞披露 Taproot Assets:协议、闪电网络兼容性 从 Lamport 签名中获得脚本状态 在 ECDSA 之上使用 Lamport Signature 签名比特币交易 别再管这叫 MEV 了 探明道路:深入 LND 的寻路机制 闪电网络中的洋葱路由:Sphinx 包裹的构造 BitVM 2:比特币上的免许可验证 Swaproot:更便宜、更隐私的链上入账体验 闪电网络:技术与用户体验(六):只有一种比特币 闪电网络:技术与用户体验(五):流动性获取 闪电网络:技术与用户体验(四):收款码 闪电网络:技术与用户体验(三):路由 闪电网络:技术与用户体验(二):通道与支付 离线支付的过去、现在与未来 闪电网络:技术与用户体验(一):用户体验的基本元素 什么是 “JIT 通道”? 见证数据的折扣:为什么有些字节比别的字节 “更轻” 运行 v0.7 及更早版本的 Bitcoin Core 闪电网络的未来:LSP 规范与互通性 闪电网络中的 “多路径支付” 在闪电通道内使用限制条款聚合 HTLC 输出 Payjoin 与更好的比特币 为什么比特币钱包需要区块过滤器? 闪电通道 “拼接” 的原理 比特币钱包找回指南 什么是 “替代交易循环攻击”? BitVM:任意计算都可以在比特币上验证 闪电节点的备份形式简介 闪电网络上的暂缓支付发票 展望未来:2025 年的闪电支付 假通道 DoS 攻击 何以我们需要 “Vlidating Lightning Signer”? 交易包的交易池把关规则 交易包转发提议 针对闪电通道的攻击与交易包转发提议 等待确认(九):交易池规则新提议 等待确认(八):交易池规则是个接口 BTC 交易池 - 等待确认(七):网络资源 比特币中的限制条款:用于评审的分类学 等待确认(六):规则一致性 BTC 交易池-等待确认(五):用于保护节点资源的规则 扩展公钥与扩展私钥 BIP 158 致密区块过滤器详解 使用适配器签名实现闪电网络异步支付 如何利用 RGB 在闪电网络上转移另类资产 什么是 “闪电网络服务商”? 比特币钱包备份方案简史 基于 Taproot 的闪电通道 闪电网络常见疑问与解答 什么是 “闪电网络 offer(BOLT12)”? 闪电网络中的 “洋葱路由” 及其工作原理 闪电网络深入解读(下):HTLC 与支付路由 闪电网络深入解读(上):支付通道 理解闪电网络,Part-3:结算并关闭支付通道 理解闪电网络,Part-2:构建网络 理解闪电网络,Part-1:构建比特币的双向支付通道 有趣的比特币脚本(五):闪电通道与闪电网络 有趣的比特币脚本(四):哈希锁 有趣的比特币脚本(三):时间锁 有趣的比特币脚本(二):多签名 有趣的比特币脚本(一):基本介绍

等待确认(九):交易池规则新提议

  • BTCStudy
  • 发布于 2023-08-01 10:15
  • 阅读 4046

上周的文章介绍了 “锚点输出” 和 CPFP carve out,这种方法仍然有一些不足之处,本篇文章探讨了目前为解决这些和其他限制所做的努力。

作者:Gloria Zhao

来源:<https://bitcoinops.org/zh/newsletters/2023/07/12/>

译者:Primitives Lane

本文为 Gloria Zhao 在 Optech Newsletter 上编写的 “交易池” 系列周刊的第九篇。

前篇见此处

上周的文章介绍了 “锚点输出” 和 CPFP carve out,以确保通道双方任意一方都可以在不需要协作的情况下来对他们共同的承诺交易进行费用提升。这种方法仍然有一些不足之处:通道资金被绑定以创建锚点输出;承诺交易费率通常高于交易池最低费率以确保其能够被尽快打包。而且,CPFP carve out 只允许一个额外的后代。锚点输出也不能为三方或更多方共享的交易如 coinjoin 或多方合作协议提供相同的手续费提升能力。本篇文章探讨了目前为解决这些和其他限制所做的努力。

交易包中继(package-relay)” 提议包括点对点协议和规则变更,以使得交易组的传输和验证得以实现。这将允许承诺交易即使未达到交易池的最低费率,也可通过子交易进行费用提升。此外,“包 RBF” 可让追加手续费的子交易替换掉与其父交易发生冲突的交易。包中继旨在消除基础协议层的一般限制。然而,由于它在共享交易费用提高方面的实用性,它也催生了一些旨在消除特定情况下交易钉死攻击的尝试和努力。例如,包 RBF 允许承诺交易在广播其各自的费用提升子交易时互相替换,从而消除了每个承诺交易上需要多个锚点输出的需要。

需要注意的是,现有的 RBF 规则要求替换交易支付的绝对费用高于所有待替换交易支付的累计费用。此规则有助于防止通过重复替换来发起的 DoS,但允许恶意用户通过附加高费用但低费率的子交易来增加替换其交易的成本。这种通过阻止善意用户发起高手续费率的替代交易包、从而阻碍交易被挖出的不公平情形,通常被称为,“针对规则 3 的交易钉死”。

开发人员还提出了完全不同的给预签名交易增加费用的方式。例如,使用 SIGHASH_ANYONECANPAY | SIGHASH_ALL 签署交易输入,可以允许交易广播者通过在交易中附加额外的输入来提供费用,而不改变输出。然而,由于 RBF 没有任何规则要求替代交易具有更高的“挖矿分数”(即会更快地入选一个区块),攻击者可以通过创建来自低手续费率祖先交易的替换交易,来钉死这些类型的交易。评估交易和交易包“挖矿分数”的准确性变得复杂的原因在于现有的祖先和后代限制不能限定该计算的计算复杂性。任何关联的交易都会影响交易被挑选到区块中的顺序。一个完全连接的组合(称为_集群_)可以是给定的当前祖先和后代限制的任何大小。

解决一些交易池不足和 RBF 钉死攻击的长期解决方案是重构交易池数据结构,以跟踪集群而不仅仅是祖先和子孙集合。这些集群的大小将受到限制。限制集群的大小会限制用户使用未确认的UTXO的方式,但可以使用基于祖先分数的挖矿算法快速线性化整个交易池,极快地构建区块模板,并添加条件:要求替换交易需要具有比待替换交易更高的挖矿分数。

即便如此,可能没有一套规则能够满足交易中继的广泛需求和期望。例如,尽管批量付款交易的收款方受益于能够花费未确认的输出,但相对宽松的后代限制会给共享交易的绝对费用留下包 RBF 钉死攻击的空间。为此,针对 “v3 交易中继规则” 的一个提议被制定出来,以允许合约协议选择更严格的一套包限制要求。V3交易仅允许大小为二的包(父级与子级),并限制子交易的重量。这些限制将减轻通过绝对费用钉死 RBF 的攻击,并为集群交易池提供一些好处,而无需重构交易池。

临时锚点” 提议建立在 v3 交易和交易包中继属性之上,以进一步改进锚点输出。它使得零费用 v3 交易所属的锚点输出免于粉尘限制,但前提是该锚点输出被费用提升的子级花费。由于零费用交易必须由一个子级(孩子)进行费用提升(否则矿工不会被激励将其包含在区块中),因此此锚点输出是“短暂的”,不会成为 UTXO 集的一部分。临时锚点提案隐含地阻止了在未确认时花费非锚点输出,而不需要设立 1 OP_CSV 时间锁,因为唯一允许的子级必须花费锚点输出。这也使得使用 CPFP 作为通道关闭交易的费用提供机制的 LN symmetry 协议成为可能。它还使得这种机制可用于多于两个参与者共享的交易。开发者一直在 signet 上使用 bitcoin-inquisition 来部署临时锚点以及各种软分叉提议,以构建和测试这些多层次的变化。

在本文中提到的钉死问题,以及其他问题,在去年引起了许多关于改进 RBF 规则得讨论和建议,这些讨论和建议的平台包括邮件列表、PR、社交媒体和面对面会议。开发人员提出并实施了各种解决方案,从小的修改到完全改版的方案都有。-mempoolfullrbf 选项旨在解决钉死问题和 BIP125 实现中的差异,突显了交易中继规则中合作的重要性和困难。虽然已经做出了真正的努力并使用了常规的方式让社区参与进来,包括提前一年开始 bitcoin-dev mailing 对话,但很明显,现有的沟通和决策方法并没有产生预期的结果,需要改进。

去中心化的决策过程具有挑战性,但是它对于支持使用比特币交易中继网络的协议和应用程序的多样化生态系统来说是必要的。下周将是我们系列文章的最后一篇,我们希望鼓励我们的读者参与并改进这个过程。

本文首发于:https://www.btcstudy.org/2023/07/28/waiting-for-confirmation-9-policy-proposals/

点赞 2
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论