在迪士尼皮克斯动画电影《机器人总动员》中,与影片同名的机器人英雄在一个废弃的地球上行走,有条不紊地压实了成堆的旧垃圾。这个星球变得贫瘠,也没有任何生命迹象,正在被泛滥的消费主义残骸所掩盖。
如果我们不小心谨慎的话,大多数公链将沦落到《机器人总动员》中地球的命运,注定要成为废弃的古代垃圾资源库:不是物理垃圾,而是垃圾数据,即无关紧要、不合时宜且已被弃置的数据。
这存在很多风险。向“高度可用的通用数据库”用例开放的区块链将遭遇以下两种惨淡的命运之一:要么节点实际上无法长期运行;要么节点运营商将丢弃数据,从而削弱了区块链不可篡改性的承诺。
尽管比特币限制区块大小的方法(因此导致了更高的费用)不鼓励在链上插入任意的非交易数据,但其他竞争者坚持追求低费用,从而有效地补贴边际使用量。这已经产生了明显的影响,并引入了必须正视的长期风险。
交易是资产还是负债?
为了理解为什么使用区块链来存储任意数据是个坏主意,让我们抽象地思考一下。区块链不断向公众拍卖区块空间,以换取费用(和补贴)。矿工们可以索取这些费用,相应地在区块链上记账验证。交易者愿意接受这些费用,因为区块链会产生强大的结算保障,这是其他地方无法找到的。
这些保障的质量很大程度上取决于安全支出,而安全支出本身就是由费用和补贴构成的。这部分费用实际上是有限的区块大小与使用这些区块空间的需求相互作用的结果。最后,请记住,节点运营商负责承担数据上链的成本。如今,上链的任何数据实际上都是节点运营商必须永久忍受的外部性。
那么,链上数据的有效载荷(交易)到底是资产还是负债呢?这要看情况定。如果满足以下两个条件,我敢说交易对区块链来说就是一种资产:
1、交易收取的费用至少与节点运营商的成本成正比;
2、数据很可能与未来的数据条目相关;这是最新的。
交易应有助于确保安全性,这一点是显而易见的。但它们不应该涉及货币。实际上,人们使用区块链的方式与其长期维护成本之间存在成熟度不匹配的情况。公链旨在永久存储数据;它们通过在许多节点上复制数据库来实现这一令人印象深刻的壮举。然而,如前所述,它们依赖于节点运营商永久性地摄取、存储和服务这些数据的意愿。如果交易相对于其对区块链安全性的贡献而言,会带来巨大的成本,那么它们就是一个净负值。
因此,我认为,如果链上数据在经济上具有相关性,并且能够通过吸引用户交易来为系统作出贡献,那么这些数据某种程度上就是一种资产。而就节点运营商必须摄入数据、验证数据、存储数据这一方面来看,它又是一种负债。如果这些数据是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输出被证明是不可开销的,并且不存在相关性。
最终,负担大量非交易数据的区块链上的节点运营商将不得不考虑定期修剪其数据集。这很方便,但与区块链所追求的数据不可篡改性和可用性的理想相抵触。如果验证者/档案管理员可以任意删除用户认为重要的数据来执行数据征用权,那么他们对该链的保证实际上是不存在的。因此,我们的情况是,这种丢弃部分数据的方案与公链为人所需要的质量(使用户可以永远获取数据)形成了直接的对立关系。
问题是,如果哪怕只有一个实体对某些干扰他人的数据存在有利益关系,验证者就不可能在不实际剥夺这个人财产的情况下消除该数据。但这里有一个巨大的不对称性:一个有经济头脑的人基本上可以强迫所有现在和未来的区块链用户摄入他们的交易。而另一个选择则是让商品节点失去权力,并选择只有最大的节点能够生存的模型。
这种紧张关系是无法解决的,除非严格限制可用的数据槽,并采用收费的方式来计量区块链的使用情况。打开计费器,要不就得面对数据丢失和用户的失望,要不就得面对无限制的状态增长和无法继续验证的情况。
无限的区块大小和零收费并不能让区块链变得更加方便,而是使其可靠性降低,无形中导致了所谓的不可篡改的数据长期丢失,或者需要在节点层面上对去中心化进行妥协。
作者简介:Nic Carter,CoinDesk专栏作家、Castle Island Ventures合伙人、Coin Metrics联合创始人。Castle Island Ventures是一家位于马萨诸塞州剑桥的专注于区块链的公共风险基金,Coin Metrics是一家区块链分析初创公司。
量观评论
Nic Carter在上文中表达主要观点是,如果把进入一个可复制的、高可用的数据库的费用门槛降低到零,然后机会主义者就会抓住机会把垃圾信息充满整个链上空间。如果我们不小心谨慎的话,大多数公链将沦落到《机器人总动员》中地球的命运,注定将成为废弃的古代垃圾资源库。那么,区块链如何避免成为数据的巨大垃圾场?笔者根据多年的研究和实践认为:
一、区块链是利用多节点分布式存储来确保链上数据的安全性和不可篡改性的,伴随着链上数据的不断增加会带来较大的数据存储成本,当该存储成本超过数据资产自身价值时,链上数据就会变成节点运营商的负债,这样的公链也就无法持续运营下去。我们不得不佩服中本聪的精巧设计,比特币区块链已经稳定运行11年了,其中的非交易数据仅占整个区块链数据开销的3%左右,占比控制较好;
二、在实际的商业化应用中,我们更多使用的是联盟链,以有限的节点参与链上共识并存储交易数据,在数据存储成本与区块链的可靠性之间寻求商业运营的最佳平衡点,这样既能有效保障链上数据的安全性(联盟链上记录的数据实际上也是很难篡改的),又能有效控制数据存储成本;
三、联盟链上存储的数据主要是摘要和索引信息,在有限的区块空间里可以存储更多的交易信息,从而可以有效降低节点运营商的数据存储成本。而且通过上链数据的摘要信息,用户可以方便地判断该数据对其是否具有一定的应用价值,通过上链数据的索引信息,用户可以较快地精准定位该数据存储的源端系统,从而可以申请授权使用该数据;
四、为了进一步降低节点运营商的数据存储成本,联盟链上存储的数据应该是价值数据。数据价值评价的简易方法就是:哪些系统的数据用户使用较多或者哪些系统上的数据能够为用户的具体业务带来更大的收益,其映射到链上的数据价值相应较大。
总之,应用区块链增加数据价值形成过程的透明性,使用户更加信任链上数据,实现价值数据在区块链网络用户之间点对点的可信共享。这样链上的价值数据对节点运营商来说就是数据资产,我们可以通过数据资产运营实现增值变现,从而使区块链避免成为数据的巨大垃圾场。