XPET 宠物游戏系统开发技术
随着 Web3 相关技术的发展,人们逐渐发现,数据所有权的问题愈来愈重要。
如今,对于一个用户而言,XPET 宠物游戏系统开发询阿李:132 薇 4z77 电 z558,DAPP 软件开发技术,自己的数据往往被分散存储在了不同的应用中,由不同的红心话存储服务商所把持。一个 OG 可能在 Twitter,Youtube,知乎,微博都有自己的社交账号,同样的一条 Thread 的数据,在不同的社交平台却被不同的公司所控制,他们可以随意删除和修改自己的信息——用户数据的所有权似乎并不归用户所有。有没有办法能够让用户真正拥有数据所有权?
去中心化存储提供了这样的可能。在去中心化存储基础设施中,用户的数据不再由单一的服务提供商所拥有,而是分散后被网络中不同的节点所保存。在使用时,用户可以从不同的节点拿到「碎片」,并复原自己的数据。
利用去中心化存储基础设施,应用可以做到:不再把持或储存用户的数据,而是对用户发布在去中心化存储设施中的数据进行「索引」,并提供相应的服务。例如,Twitter 可以帮助用户发布自己的想法,并提供点赞和转发之类的服务功能,但数据仍然归用户所控制。这样的做法也并不和监管相对抗:当一条数据产生了恶劣的影响或者违背法律时,应用只需要不对该数据进行索引和展示即可,但数据本身仍然可以完整地保存在去中心化的系统中。
可以想像,利用上面的思路,一个用户可以让自己的数据在不同应用中流通,打破「数据的孤岛「。一言以蔽之,打造一个」万物互联「的 DApp 世界。
2.2 为什么需要去中心化存储
去中心化存储的发展,可以归因于两个动机:
2.2.1 数据所有权、安全性的需要
在存储领域,数据安全有三个重要的定义(CIA):
机密性(Confidentiality)。即用户的数据隐私不被泄漏。
完整性(Integrity)。即用户的数据不会被轻易的增删,用户可以拿到自己存储的完整数据。
可用性(Availability)。即用户可以随时拿到自己的数据,不会因为系统宕机或者被用户被禁止访问等原因,造成数据不可用的问题。
随着时间的推移,人们越来越意识到数据安全和数据所有权的重要性。在当前的中心化存储模式下,用户将个人数据上传到中心化存储服务中,很难避免隐私数据泄漏的问题。同时,云存储服务提供商可能会因为政治或者相关利益问题对用户的数据进行增删和修改。这样,用户数据的完整性往往和服务提供商的信用进行了绑定。而服务提供商的存储系统,面对越来越大的需求和性能压力,也可能出现宕机等问题,进而使得用户数据的可用性受到损害。
Bitcoin 第一次让人们去中心化系统的强大,在 Bitcoin 发行至今,整个网络几乎没有出现过宕机的情况。去中心化存储系统本身就有着更好的机密性和抗审查能力。人们开始畅想,去中心化存储是否能在数据所有权和安全性上提供更好的保障。
2.2.2 智能合约、DApp 的需要
自从 Ethereum 引入智能合约和 EVM 以来,区块链变成了去中心化的、可编程的分布式账本。智能合约的发明推动了 NFT、Defi 等场景和应用的萌芽。
作为图灵完备的编程语言,智能合约可以让不同的区块链节点执行相同功能的代码,并让他们对代码执行的结果产生共识。但是智能合约无法储存大量的数据。这是 Ethereum 等区块链本身的设计决定的。
Ethereum 数据存储设计图
在 Ethereum 中,各个账户的余额、Nonce 值等信息并不会直接存储在区块里,而是由各个节点计算整个世界状态树(包含各个账户的信息),并将状态树根的哈希值存储在区块中。而各个账户的信息,以及各个智能合约(智能合约是一种特殊的账户)存储的信息,就保存在状态树中。在 Ethereum 客户端的设计中,这些数据实际上是由各个节点保存在链下的 LevelDB 或者 RocksDB 中,由状态树根进行共识。因此,直接向区块链上的智能合约中存储数据是较为昂贵的。
实际应用中,我们需要安全可靠地保存一些关键数据。例如,在 NFT 应用中,我们可以在链上记录每个 NFT 的 ID 及其拥有者的对应关系,但是对于 NFT 本身的关键数据(metaData),却不能在链上进行持久化的存储,否则会带来大量的 Gas 开销。我们需要额外的方式对这些数据进行存储。
评论