
MEMO 去中心化存储全面解读:实现 Ethereum、Solana 等生态的跨链融合
1.前言
区块链大爆发已经持续了三年之久,随着以太坊生态规模越来越大,产生的数据越来越多,链上处理交易的压力骤增,如今的一些 Layer2 方案(OP/ZK rollup)便成为了当下很好的扩容方式。但链上压力的缓解随之带来的是开发者和交易量持续扩张,Rollup 规模越来越大,需要上传的数据量也在同步上升,这个时候,问题出现,一方面,以太坊链上负担急剧增加,而另一方面,Layer2 的成本也在逐渐增加。为了缓解以太坊和 Layer2 的数据存储压力,同时保证数据可用性,MEMO 分散式存储网络给出了答案。
2.MEMO 简介
2.1 兼容 EVM 的 MEMO 去中心化存储网络
MEMO 分散式存储网络构建于 2017 年,一开始是作为区块链底层存储设施而构建,借助自身研发的数据中间件协议,构建了一个可以同时兼容 EVM、FVM 等主流环境的 dApp 容器,主要用于存储区块链本身以及链上应用产生的各种数据,如文本、图像和影音等,并且和 Arweave 一样支持永久存储。
2.2 降低 Layer2 方案的存储压力
后来随着以太坊生态大爆发,实际交易量远大于链上处理能力,Layer2 也开始发展,OP/ZK rollup 逐渐成为 Layer2 的主要方案,但随着数据量的不断攀升,Rollup 的数据存储压力也随之而来,得益于已初具规模的分散式节点网络,MEMO 打造了新一代存储 + 数据可用性并行的扩容方案,庞大的空间不仅具备大量数据存储能力,还可以以较低的成本专门存储 Rollup 的交易数据,确保交易数据存储在 MEMO 网络中,并允许链上节点轻松访问和查看交易数据。
一方面,MEMO 构建了基于分散式存储系统的的 Rollup 数据存储方案,另一方面,MEMO 也基于数据中间件协议实现了跨链存储、交互的生态融合。
以下将详细介绍 MEMO 分散式存储网络的技术架构、角色信息、存储技术、存储费用以及应用场景,让大家确切的了解 MEMO 整个生态的技术路线。
3.网络架构
3.1 各角色信息及存储流程
3.1.1 角色信息
在 MEMO 的组织架构中,设计了 User、Provider、Keeper 三个角色,其中 User 是存储消费者,Provider 是存储空间提供者,Keeper 是协调管理者。角色的注册地址会成为被标识的唯一用户特点保存在智能合约中,受到到智能合约里面角色信息系统的管理,智能合约会匹配服务和建立交易,并对违反规则的角色实施处罚。
这三个角色中,Keeper 充当着第三方审计角色,会定期对 Providers 发起挑战并验证他们是否完好存储数据,这也是 Rollup 数据可用性解决方案的重点。
3.1.2 存储流程
MEMO 的数据存储主要由以上三个角色互相配合完成,具体存储流程如下:
当 User 发起存储数据请求时,文件首先被进行分片,然后 Keeper 会根据信誉机制分配多个 Provider 存储执行节点。执行节点将根据每个设备的信誉和资源状况选择存储设备,将这些分片数据传递给他们,然后在链上记录相应的元数据。根据存储证明机制,Keeper 需要定期向 Provider 进行存储证明验证,如果 Keeper 对存储证明验证失败,存储节点将受到惩罚。
3.2 数据验证
3.2.1 验证原理
每一次的数据验证工作都由 Keeper 发起,Keeper 生成 VRF 密钥对,并在保存 VRF 私钥至本地的同时,将 VRF 公钥发送给对应的数据存储方 Provider,这意味着 Provider 利用 VRF 公钥对函数的可靠性进行验证。同样的,之后 VRF 计算生成的随机数和响应证据会被一起发送给 Provider,用于之后的验证过程。也就是说,Keeper 作为计算方掌握私有信息,Provider 作为验证方掌握公开信息,从而使得 Keeper 的随机过程具有可验证性。
在确保了随机阶段的可验证性之后,还需要对随机过程做到公开验证。可以看到,合谋攻击的本质在于随机数相关的过程隐秘性过强,其产生过程并不透明,这使得产生随机数的可靠性难以得到验证。可验证随机函数利用一种类似于公钥加密方式的承诺方案,其中的证明者通过私钥和黑盒模式的函数保障不可预测性,验证者则利用公钥和完全公开的函数输出保障可验证性,从而达成了两种必备性质的有效结合。
图:验证证明中各角色的交互流程
3.2.2 验证流程
1.数据预处理
在上传数据前,User 首先会对数据进行预处理。User 根据参数计算生成公开信息和私有信息,公开信息发送至 Keeper 存储,私有信息保存在用户本地;并且,User 需要对将要存储到 Provider 的外包数据进行签名,生成相对应的标签信息,之后用户把外包数据和标签信息进行组合并发送给 Provider。
User 对将要存储到数据存储方的外包数据切分成数据片,同时按照递增的整数给数据命名索引,然后根据数据片和索引生成标签进行签名,之后用户把外包数据和标签信息进行组合并发送给 Provider。
图:用户对数据块进行计算产生标签的过程
2.生成挑战信息
Keeper 接收 User 的公开信息即相当于接受了该 User 的挑战委托,因此选择一种会发生变化、且变化不可预测的信息作为后续计算的输入。Keeper 生成属于自己的可验证随机函数的密钥对,并将挑战信息发送给 Providers,这个挑战信息就是 Keeper 根据可验证随机函数生成的公钥。
3.生成数据持有性证明
收到挑战信息后,Provider 首先对其进行验证,若验证通过,则生成对应的数据持有性证据并发回 Keeper。
4.验证证明
最后由 Keeper 根据存储的用户的公开信息,对收到的数据持有性证据依次进行两步验证,当且仅当两步验证的结果均为通过时,可表明 Provider 正确且完整地存储了外包数据。
3.3 数据安全
3.3.1 数据加密
1.非对称加密:User 上传数据并生成私钥,只有 User 自己的私钥才能对数据进行解密
2.数字签名:User 通过非对称密码算法私钥加密后生成一个信息摘要,附在消息后面;Provider 得到这个数字签名及签名前的信息内容,使用该 User 分发的非对称密码算法公钥,就可以检验签名前的信息内容在传输过程或分发过程中是否己被篡改,并由此确认 User 的身份。
3.3.2 容错机制
MEMO 以各数据的体量和应用特点为依据,采用多副本与纠删码相结合的容错方式,体量小的元数据采用多副本技术,而体量大的数据默认采用纠删码容错。但用户对数据拥有自主选择权,既可以选择纠删码,也可以选择多副本模式。这种灵活的多层次容错机制一是为了有效提升存储空间利用率,二是能够有效保障用户的自主选择权。
因为数据与元数据只是存在体量差异、功能差异,而两者均存储在分散式存储模型中的存储层,即均存储在一个低可信度的环境中,在此阶段也需对数据进行正确性验证,出于与元数据容错机制中相同的考虑,对数据使用 BLS 签名的正确性验证策略。
3.3.3 数据修复
RAFI 风险感知的数据失效确认策略:RAFI 通过优化风险分类和确认策略这两个步骤,能够通过快速识别那些具有较高丢失风险的数据而从而加快修复进程。
4.存储费用:简单描述,存储、读取、删除等各项费用及实现原理
4.1 费用:存储费用根据用户存储的有效数据的大小以及存储提供者实际消耗的计算能力来确定。
4.2 条件:用户部署付款合约,将足够用于支付的资金转入合约。触发付款条件后,合约将自动计算金额并实施自动付款。
4.3 策略:延迟支付 + 间隔付款,延迟付款机制保证 Keeper 及 Provider 的积极合约,间隔付款则保证 Provider 的用户利益。
5.应用场景
5.1 跨链的去中心化的数据库和 dApp 容器
在服务层,MEMO 提供一个去中心化的数据库和基于 MEMO 分散式云存储系统的 dApp 容器,此容器目前兼容 EVM 及 FVM 环境,确保 dApp 数据以用户控制的方式进行存储,并对其数据拥有自主控制权。通过它,用户数据被存储在一个由用户自己控制的位置,dApp 需要用户授权才能读取数据,每个用户都有自己对 dApp URL 的访问权,这个 URL 通过分散的 DNS 进行解析。交易结算方式通过对应链上支付方式结算,无需进行货币转换。
5.2Layer2——数据可用性解决方案
MEMO 的数据可用性方案是帮助 Layer2 项目取缔在以太坊上的直接存储交易指令,将交易分批次转存至 MEMO 系统然后在以太坊上发布交易批次对应的存储索引,节点可通过该索引值从 MEMO 获取交易数据。
此方案的优势在于 MEMO 系统较低存储费用和更高的吞吐量,另外计算和交易指令产生的其他原始数据都将存储在 MEMO 系统中,凭借索引值可以在任何阶段调取。
合作案例:2021 年 MEMO 和 L2 明星项目 Metis 达成合作,为其提供数据打包及批处理服务,2022 年双方加深合作,Metis 交易数据逐渐上传至 MEMO 系统。
5.3 数据存储服务
提供各生态构建的基本存储设施,借助 MEMO 存储 API 可以在其它生态构建存储应用,用于存储在使用过程中所产生的应用数据或数字资产包括 NFT、文本、图片等,并提供钱包服务,除了区块链存储 MEMO 同时也支持互联网存储的构建。
应用案例:当前由 MEMO 社区开发者开发的存储类网盘应用 EthDrive 已经上线,主要为个人用户提供数据存储、跨链传输以及资产管理功能,EthDrive 官网:ethdrive.net
6.总结
基本数据存储服务或是数据可用性方面,MEMO 目前都处于应用阶段,对 EVM 等环境的兼容、缓解以太坊生态压力对 MEMO 来说开了一个好头,通过不断扩张节点网络将为 MEMO 带来持续性的存储空间和更全面的存储服务。
多年来 MEMO 团队坚持区块链技术研究,专注于为 Web3.0 时代的数据存储寻找出路,如今解决了部分 Layer2 的存储压力和数据可用性问题,提供了新时代的存储基本功能,随着 AI 的强势入局,真正的区块链技术也将迎来属于自己的时代,随着建设者越来越多,生态或将迎来更为复杂的局面,MEMO 应该坚守本心,维护好数据交互,助力生态繁荣。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。