在皮克斯动画电影《机器人总动员》中,与影片同名的机器人英雄在一个废弃的地球上行走,有条不紊地压实了成堆的旧垃圾。这个星球变得贫瘠,也没有任何生命迹象,被泛滥的消费主义残骸所掩盖。 如果我们不谨慎的话,大多数公共区块链将沦落到《机器人总动员》中地球的命运,注定将成为废弃的古代垃圾资源库:不是物理垃圾,而是垃圾数据,无关紧要,不合时宜且已被弃置的数据。 这存在很多风险。向“高度可用的通用数据库”用例开放的区块链将遭遇以下两种惨淡的命运之一:要么节点实际上无法长期运行;要么节点运营商将丢弃数据,削弱不可篡改性的承诺。 尽管比特币限制区块大小的方法(因此导致了更高的费用)不鼓励在链上插入任意的非交易数据,但其他竞争者坚持追求低费用,从而有效地补贴边际使用量。这已经产生了明显的影响,并引入了必须正视的长期风险。 交易属于一种资产抑或负债? 为了理解为什么使用区块链来存储任意数据是个坏主意,让我们抽象地思考一下。区块链管理着不断向公众拍卖区块空间,以换取费用(和补贴)。矿工们可以索取这些费用,相应地在区块链记账验证。交易者愿意接受这些费用,因为区块链会产生强大的结算保障,这是其他地方无法找到的。 这些保证的质量在很大程度上是一个确保安全支出的功能,而安全支出本身就是由费用和补贴构成的。这部分费用实际上是有限的区块大小与使用这些区块空间的需求交互作用下的结果。最后,请记住,节点运营者是承担数据上链的成本的一方。今天上链的任何数据实际上都是节点运营者必须永远忍受的外部性。 那么,一个数据的有效载荷—交易—到底是资产还是负债?这要看情况。如果以下两个条件成立,我敢说交易对区块链来说就是一种资产: 交易的费用至少与节点运营商的成本成正比; 数据很可能与未来的数据条目相关;它是当前的。 交易应有助于确保安全性,这一点是显而易见的。但它们应该涉及到货币,这一点并不明显。实际上,人们使用区块链的方式和区块链的长期维护成本之间存在着成熟度上的差异。公共区块链旨在永久存储数据;它们通过在许多节点上复制数据库来实现这一令人印象深刻的壮举。然而,如前所述,它们依赖于节点运营商愿意永远摄取、存储和服务这些数据的意愿。如果交易相对于其对区块链安全的贡献而言,会带来巨大的成本,那么它们就是一个净负值。 因此,我认为,如果链上数据在经济上具有相关性,并且能够通过吸引用户交易来为系统作出贡献,那么这些数据某种程度上就是一种资产。而就节点运营者必须摄入数据、验证数据、存储数据这一方面来看,它又是一种负债。如果这些数据是UTXO,那么它在未来极有可能是相关的。交易者最终会花掉自己的代币。如果是与空投相关的垃圾数据,可能就再也没有相关性了。而哪个节点运营商愿意为那些不相关、不经济的巨额数据买单呢? 未标价的外部性 说白了,比特币一类的区块链模型并不完美。比特币依赖于节点操作者无偿下载和传播区块的意愿,这在一个由自由市场激励机制强烈驱动的系统中是有点怪异的。为了考虑到这一点,比特币的开发者们一直在小心翼翼地限制区块空间的规模,使节点操作对于矿工而言仍然具有可操作性。整个区块链即使在运行了11年后,其规模仍然只有274GB左右。而其他区块链,由于急于与比特币及其所谓的高额收费区分开来,则竞相创造了一个零收费或低收费的环境。 但是,当然,收费是作为一种财务性的工作量证明。这要求交易者仅将自己认为值得为之付费的信息上链。这使得产生垃圾信息的成本更高,并阻止了浪费的使用模式。由于对永久的、高可用的存储需求几乎是无限的,因此,只要有足够的时间,低费链或无费链很可能会被垃圾数据填满。 可以预见的是,这其实就是现在在发生的事。把进入一个可复制的、高可用的数据库的费用门槛降低到零,然后机会主义者就会抓住机会把垃圾信息充满整个链上空间。这方面的例子比比皆是。在Stellar上的交易中,曾有很大一部分与一个名为Diruna的服务有关,该服务显然是激励用户在区块链上增加垃圾信息。Diruna现在似乎已经不存在了。但它在区块链上的足迹依然存在,而且实际上是不可磨灭的。比特币现金和莱特币上都有一个叫“Bitcoin Aliens”的应用程序的印记,这个工具向用户支付微薄的广告费。 OP_RETURN脚本 比特币解决这个问题的方法是指定一个操作码,作为一种非交易数据的沉淀池。此前,人们都是直接将数据编码在地址中,这与正常的交易大多没有区别。因此,OP_RETURN被专门选择用来处理任意数据,所以它可以被节点识别和剪掉,难度不大。 事实证明,比特币的协议是为了培养自己的UTXO集而设计的。OP_RETURN看到了Omni(为Tether交易提供动力)和Veriblock的大量使用,但几乎没有其他的使用。对区块链的影响相当低;Strehle和Steinmetz发现,比特币中的OP_RETURN数据占整个区块链数据开销的3%左右。然而,如果它出现增长,节点将可以选择完全丢弃OP_RETURN输出,因为从交易的角度来看,OP_RETURN输出被证明是不可开销的,而且不存在相关性。 最终,区块链上的节点操作人员如果因大量非交易性数据而不堪重负,就必须考虑定期为其数据集减负。这很方便,但与区块链所追求的数据不可篡改性和可用性的理想相抵触。如果验证者/档案管理员可以任意删除用户认为重要的数据来执行数据征用权,那么他们在链上的保障实际上就不存在了。因此,我们的情况是,这种丢弃部分数据的方案与公链为人所需要的质量(使用户可以永远获取数据)形成了直接的对立关系。 问题是,如果哪怕只有一个实体对某些干扰他人的数据的存在有利益关系,验证者就不可能在不实际剥夺这个人的财产的情况下消除该数据。但这里有一个巨大的不对称性。一个有经济头脑的人基本上可以强迫所有现在和未来的区块链用户摄入他们的交易。而另一个选择则是让商品节点失去权力,选择只有最大的节点才能生存的模式。 这种紧张关系是无法解决的,除非严格限制可用的数据槽,并采用收费的方式来计量区块链的使用情况。打开计费器,要不就得面对数据丢失和用户的失望,要不就得面对无限制的状态增长和无法继续验证的情况。 无限的区块大小和零收费并不能让区块链变得更方便,而是使其可靠性降低,无形中导致了所谓的不可篡改的数据长期丢失,或者需要在节点层面上对去中心化进行妥协。 (责任编辑:admin1) |