吴为龙:分布式存储结合公链激励的工程实践 | 巴比特加速器技术公开课

吴为龙:分布式存储结合公链激励的工程实践 | 巴比特加速器技术公开课

李小平 发布在 区块链 22721

巴比特加速器推出的全球线上区块链技术深度对话栏目Geekhub Global Online,定期邀请世界各地的资深技术大咖连线对话。同时Geekhub技术社区成员也可以参与直播互动。

11月28日-30日每天14:00,Geekhub 技术社区将举行【Geekhub Global Online】技术公开课第三期的活动,主题为“分布式存储,数字基石”。

11月29日14时,Genaro Network创始人吴为龙带来了题为“分布式存储结合公链激励的工程实践”的线上分享。

Genaro Network 是首个结合去中心化存储网络的图灵完备公有链,它为区块链开发人员提供了一站式解决方案,在部署智慧合约的同时,可以存储用户资料。同时,Genaro 也为每个人建立一个可靠的互联网与共享小区。

QQ浏览器截图20181129204351_看图王

 

以下为直播文字实录,由巴比特整理发布:

 

大家好,我是Genaro Network(GNX)创始人吴为龙,很高兴来到这里,我今天分享的主题是“分布式存储结合公链激励的工程实践”。

 

分布式存储

 

我先来介绍一下分布式存储的概念。分布式存储指的是使用分布式节点存储本地文件的方式

与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。
经典的分布式存储项目有Sia、Storj、Maidsafe、IPFS。
Maidsafe是最早的分布式存储项目,但是一直停留在α版本; Sia是一个基于POW的区块链去中心化存储的项目,以挖矿为主; Storj是一个中心化的奖励机制,即每个月storj官方根据各矿工每月的存储量来发放奖励; IPFS虽然也提供去中心化的云存储服务,但在实现机理上是在基础层而不是应用层去改变云存储。
刚才我简单解释了分布式存储的概念,现在讲一讲什么是集中式存储和云存储。
集中式存储指的是由一台或多台主计算机组成中心节点,数据集中存储于这个中心节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有的功能均由其集中处理。

云存储本质上也是一种分布式存储,传统的云存储公司购买或租用服务器来存储他们的客户文件,同时使用RAID方案或 多数据中心的方法来保护数据的安全性。

在比较了分布式存储、集中式存储和云存储之后,我们要去思考一个问题:为什么要使用分布式存储呢?主要有三个理由:
1.无论是计算,还是存储,分布式最大的特点就是低成本。分布式存储让最大化使用低成本的存储; 2.用了分布式存储之后,就可以用一些无服务器的系统。下一代互联网将以无服务器为起点的; 3.区块链本身存储量很大,分布式存储也可以用于链的部分。
分布式存储方法也叫分布式哈希表(Distributed Hash Table, DHT)。通俗的讲就是,在 DHT 中,某些被标记的信息,按照某种约定或协议被储存在多个分散的节点上,可以有效地避免中心化服务器宕机故障而带来的整个网络瘫痪。

和中心化服务器不同,DHT 网络中的各节点并不需要维护整个网络的信息,而是只在节点中存储其临近的后继节点信息,大幅减少了带宽的占用和资源的消耗。DHT网络还在与关键字最接近的节点上备份冗余信息,避免了单一节点失效问题。

接下来,我们来看一下分布式存储需要实现的四个目标

1.DHT来保证的部分节点部分数据,路由连接; 2.节点ID和Key值的关系确定了文件存取的方向; 3.节点List按照时间顺序存储其它节点的信息; 4.主要适用于Key精确查找,很快迭代寻找。
分布式存储有两个现存的问题
1.上述只保证了节点寻址和对应的上传下载,并没有对其存储过程进行保障; 2.需要特定共识保证系统中存储的文件都可以被下载,而不是跳转几次节点后都找不到value。
 

分布式存储与共识机制结合

 

我们发现,存储本身是有规律可循的,就是缺少共识来检验过程。这里就要引入“分布式存储共识”的概念,它指的是能够保证文件存储后能够被下载的共识。这个共识很可能只做一件事,就是保证这个文件能被下载。

那么这个共识能否用PoW呢?其实这并不是一回事儿,因为分布式存储的共识不等于区块链的共识。区块链共识保障的是所有区块链的节点是维护同一个表单的;分布式存储共识里是保障存储节点能够给予心跳,而不是保障所有节点维护同一个表单。

Genaro Network使用的是两个共识,因为一个共识只能做一件事。共识的设计基础:

9_看图王

共识设计基于分布式系统的CAP原理;链式共识主要保证了A(可用性)和P(分区容错性),每个全节点存储的是相同的东西;存储共识不需要每一个节点存储一样的东西(DHT的设计),所以需要相对独立的设计。

我们需要看在以往的工程经验中,到底有没有对存储共识的相关设计。

10

可收回证明(PoR,Proof of Retrievability)共识算法,是一种紧凑证明,表示文件系统(证明者)中的目标文件 F 对客户端(验证者)而言是完整的。由于使用 PoR 比传输文件 F 本身而言具有更低的通信复杂性,因此 PoR 对于构建高可靠的远程存储系统是一种颇具吸引力的构建模块。作为一种共识算法,PoR 对于云存储非常有用。

11

Genaro对共识做了一些改进,改进的方式是:

由于文件不能被细分成特别小的shard(过多的验证时间),所以存在重放攻击隐患;

重放攻击需要通过增加challenge来防止,需要由链部分的hash提供给辅助信息,用指纹组来代替单一指纹;

Prover部分需要额外处理,本身Prover是中心化节点,需要来保证challenge可靠性。

12

这就是Genaro改进Prover的思路,如何将中心化的Prover变得更去中心化呢?如上图。

在Genaro网络中,每个区块由存储活动产生,矿工被称为收据制造者(Receipt Maker),他们被节点选中为存储活动生成收据。收据见证人(Receipt Prover)为网络提供算力,证明存储有效性以获得奖励。

Genaro存储网络结构基础:

13

 

分布式存储与公链激励结合

 

虽然分布式存储的成本很低,但是如果存储节点还是不愿意用这么低的成本去获得收益,那该怎么办?Genaro这半年来就是尝试将分布式存储与公链激励结合起来。

首先,存储节点需要的是激励;然后,激励节点可以解决分布式存储的,由于成本过低导致无法长期在线的问题;最后,公链本身的机制是激励出块节点(写节点)。

公链激励的设计实现如下:

公链共识分为写节点竞争或者写节点轮训,无论在什么情况下都是要提供时间属性,否则轻易被分叉。比如PoS的long range attack; 存储节点的验证后,提供的心跳可以提供时间属性; 公链可以使用时间属性完成PoS中时间缺失的问题。
17

实现共识与激励的Genaro公链整体结构

18

由刚才的VM设计出的不同的opcode以及状态上的改动,这里称之为“特殊交易”或“结算方式”。把这些功能交给由RAFT组成的Tunnel,剩下的存储部分不用改变原有的情况。

那么每一次相关的心跳都是通过状态交给链,这样就能保证每一次有效存储是在挖矿。

 

海报预览:

 

微信图片_20181128135649

评论
登录 账号发表你的看法,还没有账号?立即免费 注册