本文来自微信公众号“沈阳四块科技”。
这是一个真正有争议的用例,即便很多人接受了区块链其他用例。在区块链领域,有一种普遍观点认为,区块链只应在真正需要且无法避免的情况下使用,在其他地方我们应该使用其他工具。
在交易费用非常昂贵且区块链效率极低的世界里,这种观点是有道理的。但在具有rollups和分片以及交易费用降至几分钱的区块链中,这种想法就不那么合理了。在这样的世界里,区块链和非区块链去中心化存储之间的冗余差异可能只有100倍。
即便在这样的世界里,将所有数据都存储在链上也是不明智的。但小型文本记录呢?绝对可以。为什么?因为区块链实际上是一个非常方便存储东西的地方。我在IPFS上保存了这个博客的副本。但上传到IPFS通常需要一个小时,它需要中心化的网关才能让用户以接近网站级延迟的速度访问,有时文件会消失,无法再查看。另一方面,将整个博客转储到链上将彻底解决这个问题。当然,即使是在分片之后,博客也太大了,无法实际转储到链上,同样的原则适用于较小的记录,
一些可能将数据存储在链上的小型案例示例包括:
增强秘密共享:将密码分成N部分,其中任何M=N-R部分都可以恢复密码,但你可以选择所有N部分的内容。例如,这些片段可能都是密码的哈希值、通过其他工具生成的秘密或安全问题的答案。通过在链上发布额外的R部分(看似随机),并对整个集合进行N-of-(N+R)秘密共享。
ENS优化。通过将所有记录合并为一个哈希值,仅在链上发布哈希值,并要求访问数据的任何人从IPFS获取完整数据,ENS可以变得更加高效。但这会显著增加复杂性,并增加对另一个软件的依赖性。因此,即使ENS的数据长度超过32字节,也会保留在链上。
社交元数据-与你帐户相关联的数据(例如用于以太坊登录),你希望公开,而且长度非常短。对于文本记录来说可以,但通常不适用于较大的数据,例如个人资料图片(如果图片恰好是一个小的SVG文件,可能适用)。
认证和访问权限。特别是当存储的数据小于几百字节长时,在链上存储数据可能比将哈希放在链上和数据放在链下更方便。
在许多情况下,权衡的不仅仅是成本,还包括密钥或密码被破解的极端情况下的隐私。有时,隐私只是在某种程度上很重要,与其担心泄露的密钥或量子计算带来的偶然隐私损失,还不如确保数据可以始终可靠地访问。毕竟,在您的“数据钱包”中存储的链下数据也可能被黑客攻击。
但有时,数据特别敏感,这可能只是另一个反对将其放在链上而是将其存储在本地作为第二层防御的论据。但请注意,在这些情况下,隐私需求不仅是反对区块链的论点,也是反对所有去中心化存储的论据。