正反观点激烈交锋:铭文是对比特币网络的漏洞攻击还是安全创新

LukeDashjr提出禁止铭文,因为它会破坏比特币网络的去中心化,但它也可以增加用户和网络的直接连接,提升安全性。BRC20的余额不一致,但用户通过社会共识实现了一致性,说明这种模式是可行的。铭文协议可以有多种解决方案,未来是否能变成长期博弈系统,取决于早期参与者和基础设施提供者的行为。

摘要由 Mars AI 生成

本摘要由 Mars AI 模型生成,其生成内容的准确性、完整性还处于迭代更新阶段。

反对观点:铭文是一种漏洞,损害比特币网络去中心化

作者:比特币开发者、Nostr Damus 创始人 William Casarin

原文:

https://habla.news/jb55/1701876273423

我将作为辩论小组的一员,反驳有关铭文对比特币有益的观点。我决定研究一下铭文的技术细节。我开始明白luke的观点,即它是如何利用比特币反数据垃圾机制的漏洞的。

在比特币中存储数据的“标准”方式

向比特币添加“数据”的标准方式是调用 OP_RETURN 操作码。比特币开发人员注意到人们通过大型多重签名交易将数据(如比特币白皮书)存储在 UTXO 集合中。问题在于,这个集合是不可修剪的,并且可能会随着时间的推移而增长。另一方面,OP_RETURN 输出是可证明可修剪的,不会增加 UTXO 膨胀。

以下是 2014 年 3 月 0.9.0 版本发布说明的摘录,其中讨论了这个问题:

关于 OP_RETURN:社区中存在一些混淆和误解,涉及到 0.9 版本和区块链中的 OP_RETURN 功能以及数据。这个改变并不是对在区块链中存储数据的认可。OP_RETURN 的改变创建了一个可证明可修剪的输出,以避免一些已经部署的存储任意数据(如图像)作为永远不能花费的交易输出的数据存储方案,使比特币的 UTXO 数据库膨胀。在区块链中存储任意数据仍然是一个不好的主意;在其他地方存储非货币数据的成本更低效率更高。

Bitcoin Core的许多工作都集中在确保系统在去中心化的情况下继续以预期目的运作。人们试图滥用它存储数据,Bitcoin Core一直不鼓励这样做,因为它不是为存储图像和数据而设计的,而是用于在网络空间中传输数字货币。

为了激励人们不要做愚蠢的事情,OP_RETURN 交易没有被设为非标准,因此它们可以被节点和矿工中继,但有一个附加条件:

● 它们只能推送 40 字节(后来增加到 80、83,我猜是为了支持更大的根默克尔哈希,因为这是 OP_RETURN 的唯一明智的用例)

● 比特币还添加了一个称为 -datacarriersize 的选项,它限制了从这些输出中中继或挖掘的总字节数。

为什么铭文在技术上是一种漏洞

铭文通过在 OP_IF 块内使用 OP_PUSH 将数据伪装为比特币脚本程序数据,绕过了 datacarriersize 限制。Ordinals不使用 OP_RETURN,并且不受 datacarriersize 限制的约束,因此节点运行者和矿工目前对于他们希望中继和包含在区块中的此数据的总大小具有有限的控制权。Luke 的 Bitcoin Knots有一些选项来对抗这种垃圾数据,所以希望不久的将来我们也能在Bitcoin Core中看到这一点。

铭文还利用了 segwit v1(见证折扣)和 v2/taproot(没有任意脚本大小限制)中的特性。这些特性中的每一个都有其引入的有趣且合理的理由。

见证折扣的目的是降低花费许多输出的成本,有助于减少 UTXO 集的大小。铭文利用这个折扣来存储伪装成比特币脚本的猴子jpeg。请记住,比特币不是用来存储数据的,所以任何时候比特币开发者都无意让它变得便宜和容易中继数据,所以这应该被视为一个漏洞。希望它得到修复,或者至少为节点运行者提供工具来对抗这种垃圾数据。

未来将何去何从

这个故事的有趣之处在于人们似乎对存储在比特币区块链上的图像赋予了价值,并且愿意支付费用将其收入区块中,因此没有意识形态的矿工和不关心比特币的健康和去中心化的人们很高兴支付或收取费用然后继续前进。

数据不应该打折,人们应该为存储数据支付全价。他们应该只使用 OP_RETURN 和哈希,比如 opentimestamps 或任何其他在比特币中存储数据的合理协议。

经过这次分析,我认为这是一种相当糟糕的垃圾数据漏洞,比特币开发人员应该着手于解决方案。像 Luke 这样实际关心网络健康和去中心化的意识形态开发人员正在这样做,我很高兴看到这一点。

正面观点:铭文是一种创新,并让比特币网络更安全

作者:jolestar

原文:

Bitcoin 开发者 LukeDashjr 要禁止铭文(Inscription)的推文引起激烈讨论,他的主要理由是这是个 Bug,会影响 Bitcoin 网络的安全。

Bug 还是 Feature 之争影响深远,如果它是个 Bug,那修复它的版本就是延续了当前版本的正统版本,但如果它是个 Feature,修复它就是要删除这个 Feature,那修复版本就是一个分叉版本,所以值得深入讨论一下。

如何度量区块链网络的安全,一直是一个有争议的话题。一个经常被人拿来用的度量的维度是出块节点的数量(miner 或者 validator)。这点上 PoW 系统不占优势,经常被 PoS 推崇者嘲讽。还记得当初 EOS 用的 21 个节点嘲笑 BTC 不够去中心化,不够安全的文章么?

而 Bitcoin 开发者们经常用的一个度量方法是全节点的数量。为了让个人 PC 都能运行全节点,所以要严格限制区块大小,以及 UTXO 集,以降低全节点的成本。但多少个全节点算够呢?铭文在多大程度上会影响 Bitcoin 的全节点数量呢?反倒从当前的统计图上能看出,大约因为铭文的热度,很多人需要和 Bitcoin RPC 交互,增加了 Bitcoin 全节点的数量。

从全节点这个角度衡量,也不能说铭文影响了 Bitcoin 网络的安全。

区块链是一个公开账本,关心账本是否正确的人越多,这个账本越安全。而用户为什么关心这个账本?因为这个账本上记载了和他利益相关的东西,无论它是 BTC 也好,还是其他什么东西也好,只要他觉得有价值,他就会关心这个账本。

而用户关心账本的方式也并不是只有自己运行全节点一个途径。用户只要直接和 Bitcoin 网络发生连接,就有这个效果。比如用户安装链上钱包,查看链上交易,带来的安全保证就高于用户把 Bitcoin 托管在交易所或者托管钱包里。

而我们能看到的现象是,这波铭文热明显的带来了用户和 Bitcoin 网络更多的直接连接(浏览器钱包),带来了 DApp 应用生态的雏形(网站上挂铭文通过 psbt 链上交易),有更多用户关心这个账本上记录了什么东西了(区块链浏览器的涌现和访问量)。所以说,即便是从安全的角度,铭文对 Bitcoin 网络的安全是有提升的。

铭文乍一看没有太多技术含量,只是简单粗暴的往 Bitcoin 网络上写数据,还依赖一个中心化的 Indexer。

但我们可以把它理解成一种把 Bitcoin 当数据可用层(DA)的 Sovereign Rollup,只是在这个模式里,由客户端直接写 DA,可以叫做 DA first 模式,而 Indexer 相当于模块化区块链里的 Bitcoin 执行层,所以也可以认为 Indexer 实际上就是 Bitcoin 的 L2。

这个模式的缺点很明显,没有排序器(Sequencer)批量打包交易,用户体验很差,交易费也很贵,没有欺诈证明,安全性也受质疑。如果有技术团队设计了这样一个方案,肯定没有投资人愿意投资,但市场的魅力就在于,用户把它给玩出来了。前一段时间 BRC20 的余额在不同交易所的数据不一致,用户通过发推来社会共识,最终也实现了一致性,正好说明它是可行的。

但这个模式的优点是它是协议先行,先设计公开的协议和数据格式,链上只保存协议必须的数据,执行和校验在链下。而任何一个团队都可以实现一个 Indexer 接入这个 L2 的执行层网络,整个 DA 的数据是共享的。而 Ethereum 的 L2 方案里,每个 L2 相当于在 L1 的 DA 上圈了一块地,各自抢占空间,数据并没有共享。

这会完全呈现出不同的竞争态势。因为任何 L1 的空间总是有限的,如果 L2 没能开拓出新的,让用户信任的空间,那实际上并没有实现扩容。

所以说铭文是对 Bitcoin 作为 DA 的价值发现,同时配合 Indexer 的这种玩法展示了一种新的 L2 的构建途径,对 Bitcoin 生态有重大意义,它是个 Feature 不是 Bug。

可能的解决方案

当然,Bitcoin 开发者们担心的 UTXO 集膨胀的问题也是存在的。但它并不是无解的,因为铭文协议是一种链下共识的协议,只要 Indexer 以及社区达成共识,可以有非常多的解决方案,我这里拍脑袋写几个。

1. 用 Hash 替代铭文的内容。现在铭文包含了各种媒体文件,json 等,体积比较大。但实际上,只要 indexer 层成熟了,完全可以实现只写 Hash 到 L1,原始内容保存在 Indexer 或者用户的钱包里。

2. 设计一套协议,支持铭文在链上和链下之间的迁移。铭文迁移到链下的时候,相当于在 L1 销毁,UTXO 也就消费掉了。如果要再次回到链上,用户需要提供 Off-chain 转移的签名聚合,这样 Indexer 之间就可以校验。

还有一种方式是采用类似 Taproot 那样的稀疏默克尔树的校验方式,来实现链上链下的迁移。这个我原来设计过一个 Ethereum NFT 的迁移方案,但可惜 Ethereum 上的 NFT 是通过 Interface 定义的,不是数据对象模式,很难发挥出这种优势,而铭文的这种模式非常适合。感兴趣的朋友也可以看下这个链接:

https://github.com/rooch-network/rollup-nft

更多的方案就不写了。我想说的是,技术是一个生态系统,它需要随着用户的使用和反馈来生长。很多创新都不是开发者们在电脑前规划设计出来的,而是随机的尝试,然后和用户的反馈碰撞涌现出来的。

引用我在《语言是一个去中心化系统》中的一句话:接受一个系统是去中心化的,那就得接受它会演化出你不喜欢的东西,也得接受它的演化过程中的各种失败的尝试。

未来

现在这些协议发的资产大都属于 meme 币范畴,meme 币能否从有限次博弈变成一个长期的博弈的系统,主要看几方博弈:

1. 早期获利的参与者 holder 是否愿意持续投资生态,给资产提供应用场景,类似 Bitcoin 早期 holder 们投资各种基础设施。如果都套现离场,那就只是一场 meme 游戏。

2. 基础设施提供者能否提供这样的空间和场景。这一方面取决于 Bitcoin L2 等基础设施提供的能力,另外一方面也受包括 Bitcoin 核心开发者在内的 Bitcoin 社区态度的影响。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年12月11日 下午12:44
下一篇 2023年12月11日 下午12:45

相关推荐

正反观点激烈交锋:铭文是对比特币网络的漏洞攻击还是安全创新

星期一 2023-12-11 12:45:01

反对观点:铭文是一种漏洞,损害比特币网络去中心化

作者:比特币开发者、Nostr Damus 创始人 William Casarin

原文:

https://habla.news/jb55/1701876273423

我将作为辩论小组的一员,反驳有关铭文对比特币有益的观点。我决定研究一下铭文的技术细节。我开始明白luke的观点,即它是如何利用比特币反数据垃圾机制的漏洞的。

在比特币中存储数据的“标准”方式

向比特币添加“数据”的标准方式是调用 OP_RETURN 操作码。比特币开发人员注意到人们通过大型多重签名交易将数据(如比特币白皮书)存储在 UTXO 集合中。问题在于,这个集合是不可修剪的,并且可能会随着时间的推移而增长。另一方面,OP_RETURN 输出是可证明可修剪的,不会增加 UTXO 膨胀。

以下是 2014 年 3 月 0.9.0 版本发布说明的摘录,其中讨论了这个问题:

关于 OP_RETURN:社区中存在一些混淆和误解,涉及到 0.9 版本和区块链中的 OP_RETURN 功能以及数据。这个改变并不是对在区块链中存储数据的认可。OP_RETURN 的改变创建了一个可证明可修剪的输出,以避免一些已经部署的存储任意数据(如图像)作为永远不能花费的交易输出的数据存储方案,使比特币的 UTXO 数据库膨胀。在区块链中存储任意数据仍然是一个不好的主意;在其他地方存储非货币数据的成本更低效率更高。

Bitcoin Core的许多工作都集中在确保系统在去中心化的情况下继续以预期目的运作。人们试图滥用它存储数据,Bitcoin Core一直不鼓励这样做,因为它不是为存储图像和数据而设计的,而是用于在网络空间中传输数字货币。

为了激励人们不要做愚蠢的事情,OP_RETURN 交易没有被设为非标准,因此它们可以被节点和矿工中继,但有一个附加条件:

● 它们只能推送 40 字节(后来增加到 80、83,我猜是为了支持更大的根默克尔哈希,因为这是 OP_RETURN 的唯一明智的用例)

● 比特币还添加了一个称为 -datacarriersize 的选项,它限制了从这些输出中中继或挖掘的总字节数。

为什么铭文在技术上是一种漏洞

铭文通过在 OP_IF 块内使用 OP_PUSH 将数据伪装为比特币脚本程序数据,绕过了 datacarriersize 限制。Ordinals不使用 OP_RETURN,并且不受 datacarriersize 限制的约束,因此节点运行者和矿工目前对于他们希望中继和包含在区块中的此数据的总大小具有有限的控制权。Luke 的 Bitcoin Knots有一些选项来对抗这种垃圾数据,所以希望不久的将来我们也能在Bitcoin Core中看到这一点。

铭文还利用了 segwit v1(见证折扣)和 v2/taproot(没有任意脚本大小限制)中的特性。这些特性中的每一个都有其引入的有趣且合理的理由。

见证折扣的目的是降低花费许多输出的成本,有助于减少 UTXO 集的大小。铭文利用这个折扣来存储伪装成比特币脚本的猴子jpeg。请记住,比特币不是用来存储数据的,所以任何时候比特币开发者都无意让它变得便宜和容易中继数据,所以这应该被视为一个漏洞。希望它得到修复,或者至少为节点运行者提供工具来对抗这种垃圾数据。

未来将何去何从

这个故事的有趣之处在于人们似乎对存储在比特币区块链上的图像赋予了价值,并且愿意支付费用将其收入区块中,因此没有意识形态的矿工和不关心比特币的健康和去中心化的人们很高兴支付或收取费用然后继续前进。

数据不应该打折,人们应该为存储数据支付全价。他们应该只使用 OP_RETURN 和哈希,比如 opentimestamps 或任何其他在比特币中存储数据的合理协议。

经过这次分析,我认为这是一种相当糟糕的垃圾数据漏洞,比特币开发人员应该着手于解决方案。像 Luke 这样实际关心网络健康和去中心化的意识形态开发人员正在这样做,我很高兴看到这一点。

正面观点:铭文是一种创新,并让比特币网络更安全

作者:jolestar

原文:

Bitcoin 开发者 LukeDashjr 要禁止铭文(Inscription)的推文引起激烈讨论,他的主要理由是这是个 Bug,会影响 Bitcoin 网络的安全。

Bug 还是 Feature 之争影响深远,如果它是个 Bug,那修复它的版本就是延续了当前版本的正统版本,但如果它是个 Feature,修复它就是要删除这个 Feature,那修复版本就是一个分叉版本,所以值得深入讨论一下。

如何度量区块链网络的安全,一直是一个有争议的话题。一个经常被人拿来用的度量的维度是出块节点的数量(miner 或者 validator)。这点上 PoW 系统不占优势,经常被 PoS 推崇者嘲讽。还记得当初 EOS 用的 21 个节点嘲笑 BTC 不够去中心化,不够安全的文章么?

而 Bitcoin 开发者们经常用的一个度量方法是全节点的数量。为了让个人 PC 都能运行全节点,所以要严格限制区块大小,以及 UTXO 集,以降低全节点的成本。但多少个全节点算够呢?铭文在多大程度上会影响 Bitcoin 的全节点数量呢?反倒从当前的统计图上能看出,大约因为铭文的热度,很多人需要和 Bitcoin RPC 交互,增加了 Bitcoin 全节点的数量。

从全节点这个角度衡量,也不能说铭文影响了 Bitcoin 网络的安全。

区块链是一个公开账本,关心账本是否正确的人越多,这个账本越安全。而用户为什么关心这个账本?因为这个账本上记载了和他利益相关的东西,无论它是 BTC 也好,还是其他什么东西也好,只要他觉得有价值,他就会关心这个账本。

而用户关心账本的方式也并不是只有自己运行全节点一个途径。用户只要直接和 Bitcoin 网络发生连接,就有这个效果。比如用户安装链上钱包,查看链上交易,带来的安全保证就高于用户把 Bitcoin 托管在交易所或者托管钱包里。

而我们能看到的现象是,这波铭文热明显的带来了用户和 Bitcoin 网络更多的直接连接(浏览器钱包),带来了 DApp 应用生态的雏形(网站上挂铭文通过 psbt 链上交易),有更多用户关心这个账本上记录了什么东西了(区块链浏览器的涌现和访问量)。所以说,即便是从安全的角度,铭文对 Bitcoin 网络的安全是有提升的。

铭文乍一看没有太多技术含量,只是简单粗暴的往 Bitcoin 网络上写数据,还依赖一个中心化的 Indexer。

但我们可以把它理解成一种把 Bitcoin 当数据可用层(DA)的 Sovereign Rollup,只是在这个模式里,由客户端直接写 DA,可以叫做 DA first 模式,而 Indexer 相当于模块化区块链里的 Bitcoin 执行层,所以也可以认为 Indexer 实际上就是 Bitcoin 的 L2。

这个模式的缺点很明显,没有排序器(Sequencer)批量打包交易,用户体验很差,交易费也很贵,没有欺诈证明,安全性也受质疑。如果有技术团队设计了这样一个方案,肯定没有投资人愿意投资,但市场的魅力就在于,用户把它给玩出来了。前一段时间 BRC20 的余额在不同交易所的数据不一致,用户通过发推来社会共识,最终也实现了一致性,正好说明它是可行的。

但这个模式的优点是它是协议先行,先设计公开的协议和数据格式,链上只保存协议必须的数据,执行和校验在链下。而任何一个团队都可以实现一个 Indexer 接入这个 L2 的执行层网络,整个 DA 的数据是共享的。而 Ethereum 的 L2 方案里,每个 L2 相当于在 L1 的 DA 上圈了一块地,各自抢占空间,数据并没有共享。

这会完全呈现出不同的竞争态势。因为任何 L1 的空间总是有限的,如果 L2 没能开拓出新的,让用户信任的空间,那实际上并没有实现扩容。

所以说铭文是对 Bitcoin 作为 DA 的价值发现,同时配合 Indexer 的这种玩法展示了一种新的 L2 的构建途径,对 Bitcoin 生态有重大意义,它是个 Feature 不是 Bug。

可能的解决方案

当然,Bitcoin 开发者们担心的 UTXO 集膨胀的问题也是存在的。但它并不是无解的,因为铭文协议是一种链下共识的协议,只要 Indexer 以及社区达成共识,可以有非常多的解决方案,我这里拍脑袋写几个。

1. 用 Hash 替代铭文的内容。现在铭文包含了各种媒体文件,json 等,体积比较大。但实际上,只要 indexer 层成熟了,完全可以实现只写 Hash 到 L1,原始内容保存在 Indexer 或者用户的钱包里。

2. 设计一套协议,支持铭文在链上和链下之间的迁移。铭文迁移到链下的时候,相当于在 L1 销毁,UTXO 也就消费掉了。如果要再次回到链上,用户需要提供 Off-chain 转移的签名聚合,这样 Indexer 之间就可以校验。

还有一种方式是采用类似 Taproot 那样的稀疏默克尔树的校验方式,来实现链上链下的迁移。这个我原来设计过一个 Ethereum NFT 的迁移方案,但可惜 Ethereum 上的 NFT 是通过 Interface 定义的,不是数据对象模式,很难发挥出这种优势,而铭文的这种模式非常适合。感兴趣的朋友也可以看下这个链接:

https://github.com/rooch-network/rollup-nft

更多的方案就不写了。我想说的是,技术是一个生态系统,它需要随着用户的使用和反馈来生长。很多创新都不是开发者们在电脑前规划设计出来的,而是随机的尝试,然后和用户的反馈碰撞涌现出来的。

引用我在《语言是一个去中心化系统》中的一句话:接受一个系统是去中心化的,那就得接受它会演化出你不喜欢的东西,也得接受它的演化过程中的各种失败的尝试。

未来

现在这些协议发的资产大都属于 meme 币范畴,meme 币能否从有限次博弈变成一个长期的博弈的系统,主要看几方博弈:

1. 早期获利的参与者 holder 是否愿意持续投资生态,给资产提供应用场景,类似 Bitcoin 早期 holder 们投资各种基础设施。如果都套现离场,那就只是一场 meme 游戏。

2. 基础设施提供者能否提供这样的空间和场景。这一方面取决于 Bitcoin L2 等基础设施提供的能力,另外一方面也受包括 Bitcoin 核心开发者在内的 Bitcoin 社区态度的影响。