从Luke Dashjr方案看区块链的本质

发表时间: 2023-12-07 16:20

·Ordinals协议是⼀个为聪(SATS,⽐特币最⼩单位)编号的系统,或者说是以比特币UTXO作为数据存储媒介的衍生协议,本质是“染色币”那套;

·Luke Dashjr更多想解决BRC-20和Ordinals给比特币主网带来“垃圾数据”的问题,是想减轻比特币身上的包袱,保证其简洁性和去中心化,并非对BRC-20本身的绝对否定;

·单从Luke的方案看,只要有一个矿池愿意打包Ordinals和BRC-20交易数据,两者就能够在比特币网络存活,只是UX会明显变差(BRC-20交易待处理延时会变长);但这也昭示了比特币Layer2的潜力与机遇;

·如果“美元替代品”“Code is Law”之类的乌托邦口号可以在时间推移中被不断证伪,那么比特币和区块链的存在意义又是什么?它真正能解决的问题到底是什么?

近期,比特币社区元老Luke Dashjr针对BRC-20的激进言论引发了无数人的讨论。Luke认为,BRC-20和铭文协议绕过了比特币区块对数据大小的限制,强行往区块内塞进了大量”垃圾数据",这种做法会给节点造成不必要的负担,因为这会增加节点在网速带宽和存储能力上的开销,如果这种情况长期延续下去,会不断降低比特币网络的去中心化程度,最终瓦解这个“最去中心化的blockchain生态”那赖以维系的优良传统。

其实Luke的担心并不是空穴来风。在今年2月1日,比特币网络内出现了其“有史以来最大的区块”,大小为3.96MB,只因为这个区块内包含了一个名为Taproot Wizards 的NFT。这种现象在当时便被Luke Dashjr 等人认定,会使得比特币的区块大小居高不下,进而提高全节点的硬件设备要求,而去中心化的重要一环恰恰在于降低用户的节点运行成本。如果未来的比特币变得像Solana和Sui一样,人们只能把节点运行在第三方机房里,这未尝不是比特币社区乃至整个Web3的悲哀。

在增加节点带宽/存储开销并削弱去中心化的同时,大区块本身也会对安全性造成影响,因为区块越大,在网络内传播的速度越慢,节点的数据一致性越差,孤块率和账本分叉率越高,此前Conflux团队曾多次强调过这一点,而以太坊基金会也一直在评估EIP-4844上线后,区块尺寸变大对安全性的影响,这种事情必然会“牵一发动全身”。

抛开BRC-20和Ordinals对比特币网络底层安全与去中心化的负面影响,把衍生资产套在比特币UTXO内的“套娃”做法,也是新的风险所在,这本质是把衍生资产自己需要解决的安全问题,直接转嫁给比特币网络去承担,如果这些衍生品的总价值超过保证比特币网络安全所需的资产/算力价值,就可能出现“头重脚轻,上层过重”的问题,而这个风险点在POS以太坊身上已经表现的越来越露骨。此前”技术圈名人“响马在访谈中,也表达了对这个问题的担忧。

但有趣的是,Luke虽然在部分言论中对BRC-20和各种铭文表达了消极态度,并表示如果新版的节点客户端代码发布并被广泛采用,届时BRC-20和Ordinals可能消失,但当其他人指出可以把比特币Layer2作为BRC-20新的归宿,以避免对比特币主网造成负担时,Luke肯定了这种看法,并没有对BRC-20进行“意识形态”上的绝对否定。后来Luke本人更是直言:不是非要铲除所有铭文,才能给比特币网络带来益处。

归根结底,Luke不满之处似乎在于,各种衍生产物引发的数据膨胀给比特币主网带来的风险,而不是对这些衍生品本身“赶尽杀绝”,更多是想把Ordinals这类“不速之客”驱逐到比特币主网之外的设施上,这恰恰给比特币Layer2本身带来了机遇。但Luke的激进做法本身也引发了许多人的争议,他的行为不但涉及到比特币生态话语权的纠纷,也反映出了BTC与ETH在产品设计哲学上的本质不同——多年前Vitalik曾在类似的事情上与Luke等人意见相左,间接导致前者决心自己做一条链。

下文中,我们将对Ordinals协议与Luke的解决方案进行技术面的解析,并对Luke为代表的“中本聪主义者”与BRC-20玩家为代表的“投机客”各自的问题展开简要阐述。如果Web3并不像某些人所说的那般宏大美好,那么它的价值究竟是什么?

简析Ordinals协议的原理

单从技术的角度去看,Ordinals协议是⼀个为聪(SATS,⽐特币最⼩单位)编号的系统,或者说是以比特币UTXO作为存储媒介的衍生协议。Ordinals为每个聪赋予⼀个序号,再附加上额外的数据(⽂本、图⽚、代码等),使每个聪都变成独一无二的NFT,这个过程称之为“铭刻”。

BRC-20 在Ordinals的基础上,⼜推出了类似ERC-20同质化代币的发⾏⽅法。但BTC脚本并不图灵完备,⽆法实现以太坊那样复杂的智能合约系统。以最简单的transfer功能为例,基于Ordinals协议的衍生资产需要在脚本中写⼊如下内容:

可以看到这是⼀个纯⽂本的交互,⽐特币⽹络本身对BRC-20的交易内容不进⾏任何运算和状态结算。⽤户看到的BRC-20转账成功等消息,都是那些认同Ordinals协议的节点自己将BTC链上的原始脚本解析+计算后,得到的最终结果。

如果你只有100个ORDI,但在transfer的时候数量写成10000个,也是可以发送这笔交易⾄⽐特币⽹络的,但相关节点和浏览器并不会将其解析为⼀笔有效的转账。

所以Ordinals本质上只是将⽐特币⽹络当做永存数据且不可更改的⽹盘,链上只铭刻了元数据、操作声明等,但所有操作的运算和状态结算,全部都位于链下的数据索引⽹站的服务器中。这种思路和Arweave生态的项目EverPay几乎如出一辙。

综合来看,Ordinals有下列问题:

  1. 没有统⼀共识的状态运算层。不同钱包、浏览器等解析出的数据并不一定相同,此前曾多次发生用户资产在不同钱包上有不同显示结果的现象。
  2. 依赖中⼼化的Indexer基础设施。以区块链的标准来看,这种应⽤对安全性是没有严格要求且不可靠的。
  3. 使⽤场景狭窄。在以太坊中⼀系列复杂的DeFi活动都不可能基于简单的Ordinals协议完成,甚⾄⽬前的Ordinals交易只能通过挂单来完成,⽽⾮采用流⾏的AMM。所以,Ordinals这类产物似乎在以太坊上实现会更好。

4. ⽹络污染。Ordinals对聪的操作形式,如数千名⽤户在短时间内只操作Ordinals对聪的操作形式,如数千名⽤户在短时间内只操作$0.1的价值却⽀付$10的转账费⽤,在BTC原教旨主义者眼中⾮常类似粉尘攻击,在这些⽤户或开发者眼中,BTC主要是⽤于储值和转账,⽽Ordinals活动严重⼲扰了正常的⽹络运转。.1的价值却⽀付的转账费⽤,在BTC原教旨主义者眼中⾮常类似粉尘攻击,在这些⽤户或开发者眼中,BTC主要是⽤于储值和转账,⽽Ordinals活动严重⼲扰了正常的⽹络运转。

5.增加了⽤户的使⽤成本。各种铭文抬高了比特币主网的手续费,对其他用户造成了影响,而且BRC-20和Ordinals引入的新基础设施需要⽤户理解和使⽤新钱包、新⼯具等。

Luke的解决思路

面对BRC-20和Ordinals问题,Luke并没有直接修改共识层,⽽是通过修改Spam Filter(policy)模块,使节点在收到P2P广播消息时,直接拒收Ordinals交易。在policy中,有多个isStandard系列函数来检查交易的各个⽅⾯是否符合标准,如果不符合,则节点收到的这笔交易很快就会被抛弃。

换句话说,Ordinals最终可以上链,但大多数节点不会把这样的数据放进交易池里,这会延长Ordinals数据传递给 愿意将其打包上链的矿池 的延时。但如果有矿池广播了一个包含BRC-20交易的区块,节点们还是会认可。

来源:
https://twitter.com/BenWAGMI/status/1732423859092247013

Luke已经在Bitcoin Knots客户端中提交了policy的修改,在Bitcoin Core客户端中,他也想将相同的提交加⼊进去。而在policy.cpp中,他新增了⼀个名为
g_script_size_policy_limit的参数,该参数在多个位置对脚本⼤⼩进⾏了限制。

之前的客户端中对Pay-to-Taproot(也即Ordinals使⽤的交易类型)的脚本⼤⼩没做限制,最终在此补上

其中,
g_script_size_policy_limit默认值为1650 Bytes,会限制许多Ordinals中使⽤的脚本,下图为⼀个NFT相关脚本的⼤⼩:

但由于该参数仅仅是⽤于Spam Filter模块,⽽⾮共识模块,所以节点可以⾃⾏修改该参数的⼤⼩,来接收更⼤脚本的交易。这些交易虽然不符合Core开发者的预期,但仍然可以被⽐特币的共识协议所接受,也就是说,只要有一个矿池愿意打包Ordinals相关的交易数据,Ordinals就依然可以在比特币网络存活,只是相关用户的UX会比现在更差(响应延时会变得比现在长)。

这种⽅法⽆法做到完全消除Ordinals的链上活动,不会引⼊任何硬分叉。虽然⼀定会有节点不遵守新的Policy,但由于之前根本没有该Policy,那么更新后只要有节点遵守,就可以降低Ordinals活动数量。

Luke的预期是⼤部分节点都会遵守他提出的policy。这个更新总体上来说是柔性的。只要有一个矿池愿意打包BRC-20和Ordinals数据,后两者就依然可以在比特币主网延续下去,只是相关用户体验会变的很差。但只要比特币Layer2快速启动,BRC-20和Ordinals在Layer2上一样可以“风生水起”。

Luke Dashjr行为背后隐藏的区块链信仰危机

那么该如何评价Luke Dashjr的这种行为?这一切真的只是“大区块与小区块”之争那么简单吗?诚然,如果单从技术和产品的角度看待这一切,似乎Luke只是在捍卫比特币社区长期以来的极简哲学与去中心化理念,这种与以太坊截然不同的保守主义思路,一直都是“区块链世界里不可或缺”的一环。

也有人认为,比特币本身就是一个巨大的社区治理实验田,Luke Dashjr只是代表了其中的一派势力,而比特币不是属于一个人的,是矿工、交易所、开发者、用户之间多方博弈下形成的混合产物,无论Luke怎么针对BRC-20,那些眼花缭乱的铭文都会在比特币生态内找到合适的归宿。

但本文并不想对上述两点做出更多讨论,打算引申出大多数人并没有意识到的问题:

如果从意识形态的角度去考察最近的“Luke Dashjr”事件,不难将其抽象为“技术派”和“交易派”之间的冲突,此前Blast与Polygon zkEVM之间的唇枪舌剑,已经将两大派系间的矛盾显露无疑,而Luke Dashjr则进一步激化了两者之间的分歧,使人们对比特币乃至于区块链的”所有权“本身产生思考:究竟谁可以代表比特币生态?是那些打着中本聪后继者旗号的OG贡献者们,还是那些整天对炒币交易乐此不疲的投机客们?

如果站在Luke等比特币社区OG的角度去看,大多数BRC-20爱好者都是些“两耳不闻窗外事,一心只赚链上钱”的唯利是图之人,这些“自私自利”之徒的利益似乎不值得去维护,而将BRC-20从比特币网络驱逐,有利于BTC生态的长期利益,这要比满足炒币用户的贪欲更为“重要”。

但反过来想,那些将BRC-20和Ordinals的价值彻底否定,不顾及“Web3主流用户”利益的人,似乎同样是自私和缺乏思考的,如果他们一直以为“高贵”和“正确”的东西本身就是不切实际、虚伪不堪的,那么站在制高点去鄙视那些“庸俗之人”,是否也只是在走五十笑百步?

归根结底,金融市场本身并不包含道德,很难说谁的行为更道德,谁的行为不道德,一切都只靠机制和规则来决定(索罗斯所言),而区块链推崇的Permissionless并没有一口否定BRC-20这类“空气币”的存在,那么单纯打着遥不可及的“比特币原教旨”旗号去挤兑那些铭文玩家们,本身是否也是一种违背Permissionless精神的行为?如果从这个角度去思考,Luke的行为是否真的值得肯定?支持他或反对他的人,又是否对这一行为进行过反思?

虽然有无数人曾就区块链可以带来的宏大愿景做出过激情澎湃的描绘,曾不止一次推崇所谓的“中本聪精神”与“Trustless最大主义”,但为什么中本聪和Gavin Wood等人所幻想的“美元替代品”与”下一代互联网“还没有到来,先到来的却是一系列“上不了大雅之堂”的东西?这是否是拜“去中心化网络”本身极差的UX与使用门槛所致?

对于一个对用户不友好、几乎永远无法在用户体验上与Web2抗衡的东西,又能给人们带来哪些Web2所没有的场景?如果它很难取得Web2所不具备的产品优势,所谓的“去信任化”Slogan又真的能够被大多数人所接受吗?单纯空谈那些遥不可及的“不需要人治的Trustless” “mass adoption”,却不想善待位居主流用户画像中的羊毛党,这种态度本身是否是一种孔乙己式的虚伪自私?

或许技术至上主义者的确有资格嘲笑BRC-20玩家们唯利是图,可以认为区块链并不该沦为”链上赌场“,但我们更应该认真思考区块链的意义所在。如果它并不像中本聪所说的那般宏大可敬,它所鼓吹的许多乌托邦式的思想在时间的推移中被不断证伪,那么所谓的“code is law”以及”Mass Adoption“乃至”Web3.0“背后,又是否隐藏着一场堪比尼采式“上帝之死”的重大信仰危机?如果所谓的“中本聪主义”只是一种类似于Marx主义的空中楼阁,那么我们是否该反思Web3真正能够解决的问题究竟是什么?

来源:
https://zhuanlan.zhihu.com/p/49059750

也许我们并不能对上述问题给出直接答案,但毋庸置疑的是,区块链本身的可分叉、多元社区属性,终究会赋予人们比现实政治中更高的自由选择权,在这个不完美的Web3世界中,不会只有一个版本的chain。相比于现实中的主权国家,这个能够按照不同群体的意愿,去打造多元”国度“的Blockchain,终究会成为现实民主治理之上的一种补充与优化,而不是单纯作为“美元替代品”“Web2掘墓人”这样不切实际的无聊口号,很多时候,解决眼前的现实问题,远比沉浸于一些“永远存在于明天”的美好幻觉要重要的多。