Lambda价值互联网存储基础设施
发布:中币网 时间:2020-12-23 05:39:31 加入收藏 打赏
Lambda是一个安全、可靠、无限可扩展的去中心化存储网络,基于Lambda Chain 共识网络之上实现数据的去中心化存储、数据的完整性和安全性验证和市场化存储交易的运行,为新一代价值互联网提供可无限扩展的数据存储能力。
去中心化存储数据存储安全是核心,Lambda采用PoST时空证明算法保证数据的存储安全,同时Lambda Chain实现了VRF+BFT的共识算法保证共识网络的运转效率与可靠性。同时Lambda通过交易市场连接存储供应方(矿工)与存储需求方(用户),在链上完成去中心化交易。存储方面Lambda首先实现一个分布式数据分发存储网络,具体存储形态将逐步完善并应用到实际的业务系统中。
技术组件
Lambda主要由以下组件构成:
共识网络,Lambda共识网络由千个节点组成,基于VRF和BFT作为共识协议、该网络中可完成LAMB交易、并作为存储资源提供者与存储用户的连接器为双方提供匹配、计费、奖励、惩罚、数据验证等能力,是去中心化存储的安全、可验证、弹性的保证。
存储网络,Lambda系统中存储网络与共识网络是逻辑解耦的,存储网络可以为多样的,去中心化的或其他方式提供存储能力,存储网络是一个异构的网络,但是需要遵循Lambda数据完整性验证的交互协议。
交易市场,Lambda需要为存储服务提供者与用户之间提供交易的能力,用户租用存储空间,并为之付费,存储服务提供者获取应得的服务收益,交易的达成是非高频操作,交易完成后用户可以实时获取存储服务能力,而无需实时匹配存储与检索资源,达到资源实时访问能力,从而使Lambda真正成为程序可访问的存储公链。
开发包,开发包是Lambda存储生态重要的技术组件,Lambda开发包提供通用的存储访问能力,包含数据上行与下行接口,且该接口遵循已有云存储接口规范,使得用户可以无缝切入到Lambda系统中。该开发包也提供其他存储方案接入到Lambda的能力,使得Lambda可以成为一个异构的存储网络,为不同的存储需求提供存储服务。
流程概述
Lambda是一个去中心化存储网络。该生态中发行原生LAMB数字货币,LAMB数字货币登记在账本之上,由Validator组成的共识网络负责维护账本,在此过程中,Validator获得出块奖励。同时,Validator也负责存储矿工证明数据的验证。存储矿工是整个网络的核心,存储矿工首先向整个生态系统提供存储能力,负责存储用户的数据,并在每一个出块周期内向全网提供存储证明。存储证明和存储容量数达到一定阈值的存储矿工可通过竞争成为Validator候选人,同时需要向网络质押LAMB,成为出块的候选节点,也就是Validator,Validator有动态的更新机制,会在固定的周期之后进行更新,增选新的存储矿工成为Validator,同时淘汰不能及时提供存储证明的Validator。
存储与检索矿工:提供全网的存储与检索服务。存储矿工完成资源准备,向网络质押与存储资源量相当的LAMB成为矿工。检索矿工直接向网络质押极少量LAMB成为检索矿工。存储与检索矿工通过提供服务获取LAMB。存储矿工通过积累信誉与存储量晋升为Validator,获取共识网络的出块奖励。尚未晋升为Validator的存储矿工也有机会获取部分出块奖励。
存储与检索交易:存储矿工与检索矿工完成质押后进入内置交易市场,Lambda内置交易所将存储矿工按照挂单价格与存储量进行池化合并。客户提出购买订单时系统根据价格、存储空间等条件自动完成匹配,客户消费资金将被一次性托管到网络中。共识网络根据存储矿工与检索矿工实际提供的服务量进行周期性的资金结算。
存储证明:存储矿工通过周期性的提供存储证明,以获得用户支付的存储费用。存储证明根据前块中的随机挑战字段生成挑战参数根据LAMB-PDP算法生成一段时间内的证明集合,并广播到网络中,由Validator对证明集合进行验证并标记状态,并对该结果通过共识协议确认存储到区块链中用于奖励惩罚、修复订单、清算费用等。
术语约定
Validator
Validator,作为共识候选节点负责打包交易、共识出块、验证存储证明、执行合约对存储与检索订单进行匹配与费用清算;成为Validator有两种方式,第一种是系统内置的Validator,初期对Lambda生态作出贡献可成为Validator,此类Validator有特殊标识,有可能不参与出块奖励,并需要逐步退出。第二种是通过矿工升级成为Validator,最终,全部的Validator都是由矿工升级而来。因此,从这个意义上说,Lambda网络是一个对等网络的p2p系统,不存在中心化节点,也不存在默认可信的超级节点。
StorageMiner
存储矿工,提供存储服务的节点称为存储矿工,存储矿工通过质押LAMB成为矿工,存储矿工可以通过为需求方,也就是用户提供存储能力并提供存储证明获取存储收益,同时有机会成为潜在的Validator。
RetrievalMiner
检索矿工,为下载资源的用户提供下载服务,检索矿工质押少量LAMB可以随时接入系统为用户提供下载服务,检索矿工主要为检索数据获取按量计费的收入。
LAMB-PDP
Lambda数据完整性证明基于PDP、POR证明,Lambda对公开可验证方案进行了优化,使得存储证明的挑战输入由链上参数进行生成,存储矿工执行预定义的证明函数生成多次证明的证据链,证据链提交到网络中,由出块的Validator进行验证。
Local Node
链本地节点,存储矿工需要加入分布式存储系统,同时需要运行Local Node加入链中,用于执行链上的操作,如质押、提交订单、清算验证等,Local Node可以为全节点参与账本的完整验证,也可以为轻节点只用于完成链上操作。
Sector
扇区,存储矿工使用扇区为单位对存储资源进行划分与链上登记,以扇区为单位对数据进行完整性验证,用户以订单文件为单位向系统进行购买存储空间,存储矿工以实际存储数据量进行费用的结算,通常结算周期为N个块周期,N为可变参数。扇区为虚拟的数据结构,是存储在矿工处的数据的组织形式。
Order
订单,存储客户以扇区为单位进行存储空间的购买,即 /GB/C为单价,C为系统可变参数,通常为M个出块周期,等同于天、月、年等。
Piece
片段,通常一个客户的大文件需要进行分片上传到存储矿工处,片段长度固定为L,L为系统参数,L后续可能根据系统需要由社区进行修改,如文件小于L长度,则按照L长度计费。
ProofSet
证明集合,存储矿工以扇区为单位进行存储证明,存储证明为链式数据,证明结果集广播到共识网络中,由Validator进行验证与打包,证明集合保存到区块链中。证明集也需要存储矿工的辅助保存,用于较少整个系统的通信流量。
Wallet
Lambda 钱包,钱包中包含LAMB交易功能、LAMB余额查询功能、用户方历史购买订单与有效期展示功能,矿工方扇区质押信息与使用信息、费用结算信息等。
ConsensusNode
共识节点,所有Validator都有可能成为ConsensusNode,ConsensusNode是临时角色,每个出块周期都需要通过VRF重新选举。
ValidatorTable
Validator节点表,保存一定时期内所有有效的Validator,初始Validator在网络启动时初始化写入,后续节点的新增与淘汰由社区治理合约进行修改,并经过共识同步全网。
SystemContracts
系统合约,系统合约为内置合约,Lambda系统中有若干默认合约,在出块时自动执行,包括社区治理、默认交易市场、费用清算、订单修复等。
SpaceID
显式存储空间识别码,Space ID可以在内置交易中心中购买,用于与矿工一定存储空间的唯一绑定,SpaceID在存储交易市场订单匹配时具有优先匹配权。一个SpaceID代表一定存储量的匹配权。系统中SpaceID供给总量与矿工的总存储空间相关,SpaceID可以在矿工之间交易转让。
Exchange
交易市场,交易市场这里特指存储交易市场或检索交易市场,Lambda系统中支持多个交易市场,由不同的独立第三方运营,运营者可以自己定义商业规则,争取更多的矿工和用户使用该交易市场,同时会获得更多的收益。
交易与合约
交易
转账交易:指LAMB在不同账户中转移的交易,包含交易量、手续费等。
质押空间交易:指矿工使用一定量的LAMB将待售卖的存储空间注册到网络中,包含空间、质押量等。
撤销质押空间交易:指满足最小质押周期后,矿工可以取消质押空间,收回LAMB,包含质押ID等信息。
Validator质押交易:指矿工满足一定条件后可质押固定数量的LAMB晋升成为Validator参与共识网络。
Validator撤销交易:指Validator主动撤销共识节点身份,收回LAMB的交易。
出售空间交易:指矿工质押空间后,在交易市场中公布其价格的交易,包含空间量、价格、有效期等。
出售流量交易:指检索矿工通过指定的交易市场出售流量的交易,包含价格等。
购买空间交易:指用户通过指定的交易市场自动发起的买单交易,包含空间量、价格、有效期、安全级别等。
购买流量交易:指用户通过指定的交易市场Agent自动发起的购买流量的交易。
购买Key交易:指矿工通过购买Key增加自身信誉度,以更好优先级匹配到订单。
封装存储转售交易:矿工可以将已经存储的订单转售,集合更多的存储空间以实现利益最大化。
合约
矿工质押合约:该合约完成矿工空间的质押、撤回等并进行相应安全检查。
Validator质押合约:该合约完成Validator质押,以及Validator表的更新操作。
存储交易市场合约:该合约可由不同主体运营多个,完成矿工和用户的存储需求匹配。
检索交易市场合约:该合约可由不同主体运营多个,完成矿工和用户的检索需求匹配。
封装存储转售合约:该合约完成存储空间的转售以及利益分配关系的维护。
借贷合约:该合约可允许LAMB持有者存入LAMB以收取利息,也可为矿工或用户提供借贷服务,收取利息。
协议与合约
Validator
Lambda 采用Validator维护共识网络,系统内的Validator数目= 初始官方运营数 + 其他友好第三方运营数 + 矿工晋升数 == 1024个。其中,矿工晋升数最终会达到1024,其他节点则有序退出。
存储矿工需要质押扇区PledgeSector<SIZE,LAMB>,正式成为候选矿工,订单匹配后封装扇区并在链上查询到PoST证明后成为正式存储矿工,存储矿工达到一定晋升条件成为Validator。
Validator Table的更新是周期性的,每经过M个周期进行更新,M为参数,可以进行调整。
Validator晋升机制:
1. 存储矿工根据自身存储量、综合信誉值、资源准备情况、自身意愿发起Validator Login交易申请成为Validator。Login交易检查条件如下,如出现条件不符者需要burn掉一部分质押金额,以防频繁尝试:
a. 对Validator Login质押金额进行检查。
b. 对存储矿工存储的实际需求量进行检查,需要满足:
2. 对以上存储矿工列表进行遍历检查N个周期内未出现PoST证明失败。
3. 对存储矿工表按照S持有量进行排序,取值TOP(x),X为需要补增的Validator数量。
4. 更新后的Validator表统一按照算法进行排序,SortValidator(HASH(ValidatorID+BlockHeight))。
Validator退出机制:
1. 对Validator表进行遍历检查最近一次Validator为退出交易状态Validator Logout。
2. 状态为Login但不满足该条件存储容量条件。
3. 对以上Validator列表遍历检查N个周期内出现了M次扇区证明失败。
4. 对以上Validator列表遍历检查N个周期内出现了参与共识失败或其他恶意行为。
Lambda Consensus
· 共识输入条件:
· Height,区块高度
· Max Block Interval,出块超时时间
· Max Block Size,块最大值
· Election Seed,VRF随机种子
· Validator Table,Validator列表
· VT Update Circle,Validator表更新周期
· Difficulty,时间参数,用于动态调整出块周期
· Block Reward,块奖励函数
· Reward Curve, 激励曲线
共识流程如下图:
Lambda Consensus算法是基于当前 Validator Table。
Lambda Consensus算法基本步骤如下:
1) 根据当前块信息新区块号、当前块的ConsensusNodeHash、当前块HASH、当前块VRFSeed组成VRFParameter。
2) 根据VRFParameter使用VRF函数生成新一轮的VRFSeed。
3) 根据新一轮的VRFSeed与ValidatorTable生成 ConsensusNodeList = GetConsensusNodeList(ValidatorTable,Index(VRFSeed),TotalConsensusNode)。
4) 从ConsensusNodeList中对预选区块进行验证,并获取权重最高的区块进行投票,权重与Validator的Sector个数与节点Hash相关。
5) 对投票后的区块进行BFT共识,并广播区块。
数据完整性
PDP
(a) 用户为待外包的每块数据生成一个 tag,这个 tag 是经由用户签名的;
(b) TPA 随机地对用户外包数据中的一块或多块发起 challenge,这个 challenge 中包含由 TPA 生成的随机数;
(c) 存储矿工根据被挑战的数据块内容、tag 信息、challenge 信息以及自己生成的一个随机数计算得到一个 proof;
(d) TPA 以 challenge、proof 及用户公钥为参数,通过映射函数 的双线性性质检验存储矿工是否持有数据。
PDP形式化定义如下图:
LAMB-PoST
PDP方案面临的问题如下:
· Challenge随机挑战信息的生成依赖于TPA,这个随机挑战值是否安全。发起Challenge时为了更高的检测率,需要一次性完成多块数据的检测,对每一块都需要生成随机挑战参数,大大增加了发起挑战的通信复杂度。
· 交互式的挑战要求必须为强同步网络,并且<challenge,prove>交互次数过多造成系统的网络负载增加。
· 存储矿工存储了大量的碎片订单,如果每次挑战针对一个订单,挑战数量会严重影响系统的负载。
· 如果一份数据以多副本方式保存,或匹配到多个矿工时,如何解决女巫攻击和多副本的虚假保存。
· 在生成证明时可以证明当前时刻保存了文件,如何确保在两个检测周期之间是否存储了文件。
· LAMB-PDP方案在PDP算法之上需要解决以上的问题,基本流程如下图所示。
· 矿工将多个文件片段封装到一个扇区中,同时将tag信息、公共参数、片段/文件索引记录到区块链中。
· 矿工从最新的区块中获取挑战随机种子R,矿工计算本次需要挑战的扇区S,矿工应确保每个
· Sector在M个周期内提交存储证明,以获取相应收益。
· 矿工根据GenChallenge(R , S , Index) -> challenge生成挑战。
· 矿工根据GenProof(data, challenge, tag) -> proof 生成证明。
· 矿工使用GenNextChallenge() 生成挑战 ,重复进行t次证明并生成ProofSet。
· 矿工将ProofSet提交到网络中,等待被Validator验证与打包。
· 矿工需要对扇区持续提供PoST存储证明,T个周期未收到PoST则认为扇区丢失。
· 将扇区标记为丢失状态,并更新相应惩罚记录、扇区内包含的订单数据进行重新匹配或修复
· 修复工作也可由用户完成。
激励机制与费用模型
激励机制
共识激励
共识节点是通过VRF在Validator表中随机产生的,每次新的区块产生后都会为下一区块共识节点选举生成种子并写入新区块中。每个出块周期中共识节点个数为固定值,如出现某个共识节点未参与共识过程则不参与分配出块奖励,多次出现该行为则被退出Validator列表。共识节点的出块奖励为:
Lambda出块奖励总数为40亿,初始阶段每个块奖励160 LAMB,以后每4年区块奖励减少1/2,最终减少到每年0.5%后不再改变。出块奖励还受限于Lambda生态的发展程度,全网的存储供应量和需求量共同决定,挖矿曲线及系数表如下:
举例1:全网供应容量5PB、全网需求容量1PB、Validator参选条件为5PB/2/512 = 4.88TB、共识节点每次选取10个,假设抽取到的样本为【20T、10T、6T、30T、32T、36T、8T、6T、10T、6T】。矿工A实际存储量为20TB数据,出块奖励为:[160/2*0.5+160/2*0.5]*(20T/164T)*0.7=6.82LAMB,在共识节点抽取样本不变得情况下,每天约收益约1150 LAMB
举例2:全网供应容量120PB、全网需求容量60 PB、Validator参选条件为120PB/2/1024 =117TB、共识节点每次选取10个,假设抽取到的样本为【200T、300T、120T、140T、380T、210T、130T、170T、260T、320T】。矿工A实际存储量为200TB数据,出块奖励为:[160/2*1+160/2*1]*(200/2230)*0.7=10.045LAMB,在共识节点抽取样本不变得情况下,每天收益约847 LAMB
矿工激励
矿工包含存储矿工与检索矿工,为了Lambda网络能够吸引地理位置分散的资源、更多存储节点以及检索节点的加入,在矿工晋升为Validator前能够获得更多的回报并不断的升级存储与检索资源,非Validator矿工也可以获得系统的出块奖励,出块奖励为N个节点平均分配(Block Reward * 30%),N作为系统参数待确定,N约为活跃矿工数的5%比例。
矿工列表维护条件:
1) 存储矿工质押了扇区,检索矿工质押了LAMB;
2) 矿工在M个块周期内,接收了订单或提交了PoST证明,检索矿工为用户提供了检索服务;
3) 根据矿工ID与Block HASH 进行列表排序,并取前N个矿工予以奖励。
MinerListSortBy(HASH(node id + block hash))
举例3:全网供应容量5PB、非Validator矿工平均存储容量2TB,共1250个非Validator矿工。非Validator存储矿工存储容量为2TB,8640*256/1250=1769.472次机会被选中。每天收益约:[160/2*1+160/2*1]*0.3=24/256=0.09375,每天收益约1769.472*0.09375=165 LAMB
费用模型
手续费用构成
转账交易手续费
Lambda网络中每笔转账交易均有手续费,手续费用的多少由网络当前运行的负荷量决定,手续费是否足额决定了交易的打包优先次序。转账交易手续费由 价格和数量两个因子共同确认。手续费用由转账发起人支付,转账交易的手续费用受益人为共识网络中的Validator角色。
存储订单手续费
存储订单手续费是指,矿工卖单与用户买单撮合后的成交订单的手续费用,手续费用为订单金额的固定比例,该固定比例为系统参数,主网启动时决定。存储订单手续费由存储矿工的存储收益部分中结算时进行支付。存储手续费用受益方分为两部分,一部分为共识网络中的Validator,大部分为交易市场的运营者。运营者为第三方角色,可公开注册并运营。
检索订单手续费
检索订单手续费是指,矿工与资源下载用户撮合后的成交订单的手续费用,手续费用为订单金额的固定比例,该固定比例为系统参数,主网启动时决定。存储订单手续费由存储矿工的检索收益部分中结算时进行支付。存储手续费用受益方检索交易市场的运营者。运营者为第三方角色,可公开申请并运营。
质押费用构成
存储空间质押
存储空间质押金额总体无限趋向于全网Coin发行量的40%,这一过程可能需要约数年时间,随着矿工质押空间逐渐增加,单位空间质押量将逐步下降,单位空间质押金额与矿工自身质押累计量相关,关联曲线与计算公式如下:
未成交的存储质押可以撤销质押,已成交存储质押需要在申请撤销后,由系统重新匹配订单并成功转移数据后可撤销,且最短质押时长不低于四周。
Validator质押
Validator质押前提条件为该节点作为矿工,已经满足当前Validator的最低存储要求,此时存储矿工需要运行独立的共识节点程序,并质押一定数量的LAMB,质押数量为一个固定的金额, Validator可撤回质押,质押的LAMB可在四周内退回。质押金额也可能被扣减燃烧,如出现双签、离线、未投票等行为。
检索矿工质押
检索矿工少量质押,防止恶意攻击,为固定数量LAMB,质押金额可以在检索矿工撤销检索挂单后,检索订单服务完成后实时撤回全额检索质押。
用户消费保证金
用户需要按照实时订单金额足额提供保证金,如存储10GB、一年、需要足额资金。存储矿工在提交存储证明后网络会从用户提交的消费金额中按比例支付。用户需至少存储一周后方可取消订单,同时将未消费部分返还用户。
存储设施
整体架构
Lambda存储网络首先是一个DHT网络,所有存储矿工通过节点自动发现加入到网络中,路由信息存储在整个DHT网络中,并能够实现点对点的数据传输。DHT网络是Lambda存储的网络基础,在此至少我们去构建丰富的存储类型。但这里所有的技术细节通过访问短的Agent进行封装,对于使用者来说与使用传统数据存储设施有相同的体验。在DHT网络中交换的只是数据片段,存储矿工并不清楚数据的内容与意义。
基于DHT分布式网络之上,Lambda逐步开发不同存储类型,如对象存储、文件存储、KV存储、部分关系型存储类型,这也需要Agent的同步开发以降低不同存储类型使用的开发难度。区块链上的数据都是可公开访问的数据,这极大限制了数据的使用场景,为了扩展使用场景,Lambda提供了基于多授权机构属性基加密的访问控制方案,并提供了数据加密的能力,以及通过代理加密对属性撤销的能力,安全访问控制通过链上进行授权。
业务流程
Lambda网络交易市场连接了矿工与用户,矿工通过资源准备、质押、价格发布完成进入市场的动作,用户根据存储需求准备资金,用户可选择合适的交易市场后由Agent自动完成存储、检索挂单并通过选择的交易市场完成订单匹配,之后进行权限验证与数据交换。具体流程如下图:
可视化与扩展
钱包
Lambda钱包主要包含首页视图、矿工视图、消费者视图、Validator视图。在钱包内可完成余额、转账、借款、出借等交易功能,在矿工视图中可完成设备注册、空间质押、销售挂单、订单跟踪、取消质押、矿机下架、转让封存空间、加入矿池等功能;在消费者视图中可跟踪订单与支付信息,获取访问授权等操作;在Validator视图中可跟踪Validator资格验证、Validator申请、撤销、出块跟踪等功能。该钱包为引导性示例,在发布时具备上述功能。同时Lambda会开发API可由第三方开发、发布。
浏览器
后续工作
· 存储接口的详细定义与Agent开发;
· 提供第三方运营存储于检索市场的能力,合约能力的开放;
· 访问控制与授权部分的完善;
· 存储证明根据存储类型的调整与优化;
· Validator存储验证的性能优化;
· 数据检索市场与实时数据流的支持;
来源:Lambda黄皮书
来源:中币网 https://www.zhongbi.net/news/blocknews/196431.html 声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。