区块链如何存储数据?

  区块链技术在数字世界中实现了对货币的映射,产生了一系列同质化加密数字货币,造就了近几年加密货币的投资浪潮。而非同质化通证NFT的出现,让我们看到了映射整个现实世界的可能。

  除了货币以外,现实世界中的大多数物体都是独一无二的,它们的性状和价值都不尽相同,NFT的特征可以完美适配这种情况,为不同的物体实现在数字世界中的通证化,利用区块链不可篡改、公开透明、可追溯等特性,完成现实世界向数字世界的映射,进而构造那个我们期待已久的乌托邦之城——元宇宙。

  而受限于目前的技术瓶颈,NFT还未能完美达成上述这个设想,因链上拥堵的通信状况、有限的可扩展性和高额的gas费用等原因,NFT的元数据和媒体数据并没有完全存储在链上,而是选择了在链下存储,失去了区块链技术的保护,这部分数据并不是完全安全可靠的,也就是说现在的NFT还未能做到像比特币等加密货币一样的可靠性,而这一点却淹没在了对NFT的狂热情绪之中,很少受到关注。

  根据coingecko的数据,截至发稿前,NFT市场总市值为229.7亿美元,占全球加密货币市值的1.2%,24小时交易量32.5亿,仍在保持强劲的增长势头。NFT庞大市值背后的安全性却十分脆弱,因链下存储的不确定性,NFT丢失事件时有发生,一旦其相对应的元数据和媒体数据失效,在链上所保存的NFT所有权凭证,只是一张没有承兑方的无价值支票。目前应用范围最广的NFT标准ERC721作者William Entriken曾说:「只有在你信任实际管理你资产的保管人的前提下,你那个被记录在账本上的资产所有权才有效。」

  NFT现在并不安全,比特币等加密货币涉及交易的信息是完全存储在链上的,而NFT则不同,虽然它的交易流程也是在链上完成,但由于其特殊性,往往会涉及复杂的元数据和所需存储空间较大的媒体数据,通常会存储在链下的项目自有中心化服务器、第三方云服务器、IPFS或者是MEFS(MEmo File System)等NFT存储项目中,这些错综复杂的「保管人」相较于链上存储都存在不同的风险因素。

  鉴于NFT存储已成为目前NFT这个木桶中的最短一块木板,且其作为元宇宙的关键基础设施,在未来新社会生态中将发挥重要作用。本文将从NFT的底层架构出发,总结NFT存储现状,深入探究NFT存储方面面临的机遇和挑战。

  NFT全称为Non-FungibleToken,中文名是非同质化通证。 是一种源于以太坊智能合约的非同质化通证,其作为独特的数字资产,具有不可分割、不可篡改、不可替代、独一无二等特性。

  相对而言, FT(FungibleToken)也就是同质化通证,以以太坊为例,每个以太坊都是同质化的,相互之间没有任何区别,且可以拆分成更小的单位。而每个NFT都拥有独特且唯一的标识,无法两两互换,也无法拆分。

  NFT以其独有的特性赋能各领域创作者,提供了一种更方便可靠的数字资产确权方式。创作者们可以很容易的通过NFT证明数字作品的存在性和所有权,包括但不仅限于图片、视频、艺术品、门票等形式。此外,创作者们还可以在每次NFT的交易流通过程中赚取版权税。

  区块链:区块链最早是作为比特币的分布式账本而被人们所熟知。区块链是一种分布式的且不可篡改的数据库,它实质上一个记录数据信息的列表,并使用加密协议对其中的信息进行保护。区块链为长期存在的拜占庭问题提供了可行的解决方案。

  智能合约:智能合约加速了数字协议的执行和验证过程。基于区块链的智能合约使用图灵完备的脚本语言来实现复杂功能的兼容,并通过依靠共识算法来进行执行,以保证一致性。智能合约让不依赖第三方信用中介的公平交易成为可能,可以实现跨行业、跨领域、跨生态的价值交互。

  链上交易:链上交易需要通过区块链地址和交易指令来实现。区块链地址由固定数量的字母、数字和字符组成,它是一个类似于银行账户的独特标识符,供用户来发送和接收资产。并且有一对相互对应的公钥和私钥,以验证交易的真实可靠性。

  数据编码:通过数据编码,可以将文件压缩成有效格式来节省存储空间。在进行NFT的资产确权时,其实是对NFT创造者所签署的哈希值进行确权,其他人可以复制这些元数据,但他们不能证明对其的所有权。

  NFT建立的底层逻辑是以分布式账本为基础,同时其交易依赖于点对点的网络,如果将区块链这个分布式账本看做一种特殊类型的数据库的话,那么NFT就将存储于这个数据库之中实际NFT的存储现状要更复杂一些。假如这个数据库具有基本的安全性、一致性、完整性和可用性等特征,那么整个NFT生态闭环主要包括以下几个场景。

  ①NFT数字化:NFT创作者将检查文件、标题、描述语句是否完全准确,然后将NFT的元数据转化为适当的格式。

  ②NFT存储:NFT创作者可以选择链上和链下两种方式来存储元数据,链上存储费用较高、交通拥堵但元数据会与通证一起永久存在,链下存储限制较小但理论上存在元数据丢失的风险。目前链下存储可选择的解决方案有集中式数据存储、IPFS和分散式云存储等。

  ③NFT签名:NFT创作者对包含NFT数据哈希值在内的信息进行签名,然后发送给智能合约。

  ④NFT铸造和交易:智能合约在收到NFT的完整信息后,便可以开始铸造同时启动交易流程,其主要机制是由通证标准来制定的。

  ⑤NFT确认:一旦交易信息在链上得到确认,NFT的铸造流程就完成了,被铸造的NFT将永久性地链接到一个独一无二的区块链地址以证明它的存在。但NFT的实际内容通常存储在链下,与NFT的所有权分属两个存储系统。

  NFT本质上是一种dApp,即去中心化的应用,因此它拥有来自底层公共账本所赋予的各种特性,大致可以总结为以下几点:

  ①可验证性:NFT的通证元数据和所有权可以公开验证。这个前提是元数据在链上存储,如果存储在链下,则由链下存储系统决定是否可以公开验证。集中式存储是无法公开验证的,设备所有者可以随意更改数据;IPFS可以通过CID验证数据是否被篡改,而无法验证存储状态;MEFS等分散式云存储系统不仅可以验证数据是否被篡改,同时可以验证数据的存储和冗余状态。

  ②交易透明:NFT从铸造到出售再到购买,整个流程都是公开透明的。但NFT元数据和媒体数据的存储并不是完全公开透明的,NFT创作者会自行选择存储方式,但大部分存储方式的安全性并无法清晰地评估。

  ③可用性:NFT所依赖链上系统永远不会瘫痪,只要是已发行的NFT,不存在无法出售和购买的可能性。而NFT链下存储的数据会存在不可用的风险,目前除了MEFS等分散式云存储系统有完善的风险控制措施以外,中心化存储和IPFS并未有可控措施。

  ④防篡改性:NFT的元数据和完整的交易记录,一旦被确认以后,永久存储,且只能添加新信息,不能修改过往信息。如果元数据存储在中心化服务器中,服务运营商可以随意篡改数据,IPFS和MEFS等文件系统具有不可篡改的特性。

  ⑤易于流通:每个NFT用户所看到的信息都是即时更新的,消除了传统生产者-信用中介-购买者之间的信息壁垒,信息清晰,易于流通。

  ⑥原子性:NFT的交易可以在一个原子性、一致性、隔离性和持久性(ACID)的系统中完成。

  ⑦可交易性:NFT及其相应的产品能够任意的进行交易和交换。而NFT的存储标准是其价值的主要支撑,所交易NFT的价值构成有待考量。

  NFT系统是由区块链、存储和网络应用集合而成的技术,其安全保障具有一定的挑战性,每一个组成部分都有可能成为安全的短板,致使整个系统受到攻击。本文采用STRIDE方法进行威胁建模,从仿冒(Spooling)、篡改(Tampering)、抵赖(Repudiation)、信息泄露(Information Disclosure)、拒绝服务(Dos)和权限提升(Elevation of privilege)等方面,全方位评估NFT系统所存在的风险可能。

  ①仿冒:仿冒与真实性相对应,是一种在系统中冒充另一个人或物的能力。当用户铸造或者交易NFT时,恶意攻击者可能利用认证漏洞或者窃取用户私钥来非法获得NFT的所有权。建议对NFT智能合约进行正式验证,并使用冷钱包与线上数据隔离,防止私钥泄露。

  ②篡改:篡改与完整性相对应,是指对NFT数据进行恶意修改。区块链是一个强大的分布式账本,其使用的哈希加密算法是具有原像抗性和次原像抗性,如果NFT的元数据存储在链上,那么交易一旦确认,NFT的元数据和所有权是不能被恶意篡改的。但如果是存储在链下的NFT元数据,以及存储在链下的媒体数据,这些数据是有可能被操纵的。建议使用去中心化的分散式云存储系统,以保障数据的安全可靠性。

  ③抵赖:抵赖与不可拒绝性相对应,是指NFT创作者或者所有者在交易信息通过链上确认后,无法拒绝或者撤回。这一流程的安全性由区块链分布式账本的特性和签名的不可伪造性进行保证,但其中涉及到的哈希值有可能被恶意攻击者窃取或者替换。建议使用多签名验证的智能合约,可以规避掉部分风险。

  ④信息泄露:信息泄露与保密性相对应,是指NFT的相关信息泄露给未经授权的用户。由于在NFT系统中,智能合约的状态信息和交易指令代码都是完全透明的,任何人都可以公开访问,这种情况下存在多种信息泄露风险。即使只获取到NFT的哈希值,恶意攻击者就可以利用哈希值与交易信息的关联性作恶。建议NFT创作者使用保护隐私的智能合约来替代普通的智能合约,以保护隐私。

  ⑤拒绝服务:拒绝服务与可用性相对应,是指恶意攻击者攻击dApp或者链下存储的原始数据,导致其对NFT系统拒绝服务。得益于区块链的高可用性,用户可以随时调用自己所需要的信息,不用担心链上系统拒绝服务的情况。但由于链上有限的空间和通讯压力,部分NFT的功能需要依赖链下系统来实现,比如元数据和媒体数据的存储,中心化的网络应用和存储系统仍有遭受传统DoS攻击的风险,进而拒绝对NFT系统进行服务。建议使用新的混合区块链架构,或者去中心化的分散式云存储系统。

  ⑥权限提升:权限提升与授权性相对应,是指攻击者通过利用智能合约的漏洞获取NFT相关权限,或者通过攻击NFT链下相关系统获取非法权限。NFT的授权完全由智能合约进行管理,设计不良的智能合约会存在授权方面的风险,同时存储在链下的NFT元数据或者媒体数据,也有可能对权限造成影响的风险。比如,篡改或者删除存储在链下的元数据或者媒体数据,将使NFT的所有权失去意义。建议创作者在铸造NFT时使用成熟完备的智能合约,在不考虑成本的情况下将数据全部存在链上,或者使用更可靠的去中心化分散式云存储系统降低成本。

分享: