【TokenGazer深度研究】Lambda:主链落地存疑,有一定风险(1)区块链
1. 投资要点 云存储是目前增长很快的行业,大多采用中心化解决方案,去中心化目前没有大规模应用。 现有区块链存储项目SiaCoin已经落地...
1. 投资要点
2. 产业背景
2.1 云存储行业
近年云基础设施服务(IaaS)发展迅速,其中云主机、云存储是需求最大的两个领域。云存储通常采用中心化解决方案,大企业有亚马逊,微软,阿里等。
数据来源:Gartner
2.2 去中心化存储
提到去中心化存储,可能会想到eMule和BT,两者都是利用P2P网络进行文件传输,eMule有客户端软件能够搜索文件;BT仅是一个协议,通过BT种子和文件资源建立链接。eMule和BT价值在于利用用户的闲置带宽,需要一个文件在多人电脑上存储,作用是分享资源,主要用于视频资源。而个人网盘,企业网盘,数据库等资源没有其他用户愿意备份在自己设备上,不适合采用BT、eMule等去中心化模式,目前以中心化解决方案为主。
2.3 区块链去中心化存储项目对比
目前区块链存储项目有Sia、Storj、FileCoin、Lambda等
表:区块链存储项目特点
Sia无众筹,为挖矿币种,总量无上限,目前供应量360亿,进入缓慢挖矿阶段。Storj为众筹币种,是Storj项目的以太坊代币,流通量1.35亿,总量4.25亿。
数据来源:CoinMarketCap,2018.8.29
3. 技术分析
3.1 多层链结构
Lambda采用多层链设计,包括一条主链,多条同构工作链。多层链设计主要目的是方便完成数据库设计,主链(MainChain)实现基本功能作为总账本,WorkChain(虚拟层,WorkChain0到 WorkChainN)实现特定功能,多层链设计的目的是让数据库设计更容易,数据库的更新升级只需要调整工作链,无需变动主链。任意一条WorkChain都是由MainChain指派的验证人节点负责交易的打包和出块。
工作链根据需求进行分片,例如验证子链节点不能所有节点(几千个)同时去验证一个文件,这是极大的资源浪费。为了使Lambda中主账本与分片账本相互验证形成网状的互验证结构,每个MainChain的新区块中包含了ShardChain所有新区块的哈希(除非部分Shard-Chain在超时时间内未出区块),ShardChain的新区块包含了上一个MainChain的区块的Hash。
3.2 共识机制
Lambda三个角色的设计分别是提名人、验证人和钓鱼人:
3.2.1 验证人:
– 负责打包出块;
– 抵押token可推举验证人;
– 硬件环境必须符合要求;
– 验证节点被随机分配到不同的WorkChain和ShardChain;
– 主链和子链都是每间隔5秒出一个块,每过1024个节点轮换;
– WorkChain,ShardChain节点验证存储证明,访问控制等是否合法;主链节点验证子链签名是否合法。
3.2.2 提名人:
提名人是一个拥有权益的群体,推举验证人,将安全性押金委托给验证人。
3.2.3 钓鱼人:
钓鱼人和区块打包的过程并不相关,他们的角色类似于现实世界中的“赏金猎人”,发现并举报有存在非法行为的参与方(有抵押的参与方),举报后会进行更严格的验证,成功举报非法行为可以获得奖励。
3.3 区块链存储项目如何完成文件去中心化验证
区块链存储项目涉及去中心化文件系统和去中心化数据库。去中心化文件系统是去中心化数据库基础。现有区块链项目大多只实现了去中心化文件系统,本质上是去中心化网盘。
表:区块链存储项目涉及的关键问题
数据持有证明(PDP)需要做到:1)文件无备份认证,在保存少量认证元数据的情况下验证数据是否完好无损;2)文件公开认证,认证元数据公开的情况下完成数据认证。
复制证明(PORep):确保文件被存储多个副本。
3.3.1 Storj通过Merkle tree实现无备份认证
Storj用户将要存储的文件分成若干块[m1 ,m2 …mn ],以Merkle Tree的形式建立文件索引,将本地保留Merkle Tree,文件块的Hash值作为认证元数据集(Key),文件[m1 ,m2 …mn ]上传到远程服务商(证明者)。用户定期向服务商提交验证请求,要求服务商返回指定数据块[mi ],用户比对:
H[mi ]=?Key
由于Hash能够将可变长度数据转化为固定长度数据,用户存储少量证据可以完成数据持有证明。
Storj是一个基于以太坊ERC20发行的token,严格说Storj不是区块链项目。而是一个中心化的奖励机制,即每个月storj官方根据各矿工每月的存储量来发放奖励。
Storj是一个基于以太坊ERC20发行的token,严格说Storj不是区块链项目。而是一个中心化的奖励机制,即每个月storj官方根据各矿工每月的存储量来发放奖励。
3.3.2 SiaCoin实现文件公开验证
SiaCoin实现了文件公开验证(实际上SiaCoin项目要早于Storj),区块链网络自动完成数据持有证明,任何矿工都可以验证服务商是否存储了文件F。用户公开文件索引的Hash值作为证据,矿工完成验证,做法和本人验证相同,最后对验证结果数字签名后放到链上。服务商需要提交原文件进行验证,由于Hash逆向计算是非常难的, 如果服务商知道Hash不知道原文件是无法通过验证的。链上验证解决两个问题:1.用户可能说谎,有可能验证通过用户声称未通过;2. 用户不可能实时在线。
SiaCoin是一个早期区块链项目,采用POW机制,10分钟出一个块,没有考虑区块链扩容问题,客户端同步很慢,TokenGazer在测试时用了2天时间完成同步。
3.3.3 FileCoin
FileCoin是基于IPFS的一激励层,最主要特点是复制证明和时空证明,概念有点抽象,在此尽量通俗解释。
复制证明:用户要求服务商存储一份文件F,为了安全要求存储F的n个副本, 服务商存储少于n个副本也难以发现。解决方案是对文件F进行加密,形成n个不同的副本,分别要求服务商存储,相当于存储了多个不同文件。
时空证明:服务商可能完成验证后删除文件,不断进行复制证明可以实现时空证明。FileCoin时空证明之所以复杂,是因为FileCoin计划利用时空证明实现POW机制。
3.3.4 Lambda验证方案BLS-PDP基于BLS同态签名算法
Lambda验证流程和SiaCoin相似:链上节点存储认证元信息(Key),每过一定时间向服务商发起挑战。
图:lambda验证流程
每次验证需要提交一部分文件数据,通讯量仍然较高,容易泄露隐私。Lambda验证方案中的BLS-PDP基于BLS同态签名算法,由于BLS签名机制具有同态特性,可以将多个签名聚集成一个签名。这两点好的特性使得基于BLS签名的PDP机制可以获得更少的存储代价和更低通信开销来实。证明者可以将多个认证数据块相加产生一个数据块返回给证明者(黄色标记部分),通过这种方式大幅降低通讯量,并且有一定隐私保护功能。
缺点是要进行umi 计算,计算上难以实现。项目方计划将数据块映射为大素数,实现通讯量和计算量两方面都可控,由于项目方没有公布实施细节,安全性和计算量方面TokenGazer团队目前还没办法评估。
另外Lambda采用POS和分片机制,预计TPS会远高于SiaCoin,能够更频繁进行存储验证。
3.3.5 数据可恢复证明(POR)
Lambda和Storj都声称实现了数据可恢复证明(POR),数据可恢复证明(POR)不仅能识别数据是否损坏,而且能在数据损坏程度低于某一阈值的情况下恢复文件,认证过程和PDP差别是,数据损坏低于某一阈值时通过认证。
Storj白皮书POR章节偷换概念写了数据持有证明(PDP),Lambda白皮书也没有介绍POR如何实现。TG认为POR是服务商自己考虑的问题,并且也有比较成熟的存储协议来完成数据恢复,链上只需要服务商证明数据的完整性。
3.4 数据布局算法
3.4.1 CCHDP异构系统解决方案
数据布局算法解决如何将文件分配到不同的存储节点,目前,大部分布局算法面对同构系统,而互联网设备主要是异构设备,为了便于理解,在此仅考虑磁盘大小,存储项目需要根据调整不同设备写入数据的规模,通常解决方案是运行虚拟机,比如性能最差的设备运行一台虚拟机,性能好的运行多台虚拟机,这样将异构系统虚拟化成同构系统,但运行虚拟机越多浪费系统资源越高,这就要求集群中设备性能尽量相似。
Lambda使用的CCHDP(clustering-based and consistent hashing-aware data placement)算法。CCHDP的概念最早于2010年提出,由陈涛、肖侬、刘芳以及付长胜所撰写的论文《基于聚类和一致Hash的数据布局算法》发布在软件学报网站,大概思路是将异构系统中性能相近的设备归为一类,每个集群有性能相近的设备组成,达到同构系统的效果,这种做法在中心化系统中是一个可行的方案,但白皮书没有写明去中心化系统如何实现CCHDP算法。
3.4.2 虚拟节点
每个集群内部布局机制使用一致 hash 方法进行数据的再次分配,将数据布局到具体的设备上。Lambda DB构造了一个特殊的逻辑结构,所有组成单元连接在一起形成一个固定长度的环,环的 最大值单元和最小值单元连到一起。节点加入一个数据库集群时,根据Hash(key)值加入环中。
Lambda DB系统中的每一个节点在刚刚加入集群时,会被分配一个随机的位置,由于算法的随机性可能会导致不同节点处理的范围有所不同,最终每一个节点的负载也并不同。为了解决这个问题,Lambda DB使用了一致性哈希算法的变种,将同一个物理节点分配到环中的多个位置,成为多个虚拟节点。
3.4.3 数据库和区块链关系
Lambda DB是一个分布式对等网络节点系统,每一个节点从逻辑上都含有一个ShardChain(WorkChain2)的账本和一个数据库系统的运行时系统。数据库节点之间按照一定规则组成小网络集群,集群的种子路由信息存在链上,路由表本身在存在P2P系统之上。客户端在使用系统的时候,通过区块链系统完成缴费,并获得数据库系统的访问权限。由此,整个MainChain链本身是一个低频交易系统,WorkChain1是一个持续计费的高TPS系统,数据库是一个兼顾高频和低频的数据访问系统,数据库本身通过WorkChain2对数据的响应进行统计,并在检查点的时候对请求和响应信息进行对账。从思路来说,链提供的是类似于公有云的计费系统,并提供了跨越多个物理IDC的信息连接能力。
3.4.4 哪些信息放到WorkChain链上
1. 节点信息
2. 路由信息
3. 底层文件哈希
4. 持有性验证和完整性验证
……
3.5 基于属性加密的访问控制
数据库系统需要进行访问控制,然而区块链上的数据都是公开可访问的,这极大限制了数据的使用场景,为了扩展使用场景,Lambda提供了基于多授权机构属性加密的访问控制方案。属性基加密(attribute-based encryption,简称ABE)机制以属性为公钥,将密文和用户私钥与属性关联,满足某些属性的用户可以访问数据库,能够灵活地表示访问控制策略,从而极大地降低了数据共享细粒度访问控制带来的网络带宽和发送结点的处理开销。
项目方没有披露ABE方案,但基于属性的加密是非对称加密算法的变种,计算开销一般是对称加密的N(密钥长度)倍,1024位的密钥就是对称加密计算开销的1024倍,并且随属性数量增加,因此ABE不适合长消息加密,也不适合频繁加密解密。面对以上的挑战, Lambda采用了一个在线- 离线的多授权机构属性基加密(Online/Offline Multi-Authority Attribute BasedEncryption,简称OO-MA-ABE)方案,其主要思想是把用户端在线计算代价转移到离线阶段或者云服务器上。
BLS-PDP数据持有证明,基于属性加密的访问控制(ABE),应用CCHDP数据布局算法是项目的技术特色。BLS-PDP计算上难以实现,ABE计算上可实现但计算量很大。白皮书没有披露CCHDP数据布局算法如何上链。
4. 生态分析
4.1 代币经济
Lambda的经济系统的角色由以下几类组成:
链节点:
链节点上又分为验证人、提名人和钓鱼人,第三章已经介绍;
存储节点:
存储节点,也是云服务商;
存储节点的主要收入来自用户支付的费用;
存储节点需要预先质押一部分资金,并获得POS的分成受益;
存储节点需要定期向验证人发送心跳信息,其中的幸运者可以获得一些奖励,这个设计主要是为了激励存储节点的在线;
用户:
用户是采购并使用存储节点的人,通常来说,会是其他应用链和Dapp;
投资人:
投资人投资于Lambda项目,并分享LAMB上涨带来的收益;
交易所:
数字货币交易所;
4.2 项目启动
存储节点:通过矿工招募可完成,目前设备和资源过剩,无存储类合适币种可挖矿
验证节点:基金会孵化一部分,另外通过社区竞选产生,验证节点的收益比较客观,社区成员有动力参加竞选。
钓鱼人:加入门槛低,加入规则公开。
SiaCoin项目存储节点提供4.0PB容量,用户只使用了1.77TB。同样1TB数据,亚马逊需要需要6美元/月,SiaCoin只需要0.3美元/月,TokenGazer认为无法应用的一大原因是慢,TG团队尝试使用了SiaCoin客户端,10小时同步了45%。可以说目前区块链存储项目都没有规模化应用,Lambda后发优势比较明显。
注:由于本篇报告篇幅较长,故分为两篇报告上传,其他内容见下一篇内容。
责任编辑:ToeknGazer
本文为TokenGazer原创内容,转载请注明出处。
1.TMT观察网遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.TMT观察网的原创文章,请转载时务必注明文章作者和"来源:TMT观察网",不尊重原创的行为TMT观察网或将追究责任;
3.作者投稿可能会经TMT观察网编辑修改或补充。