区块链技术研究

PP.io的三个阶段,“强中心”——“弱中心”——“去中心”

2018-11-21  本文已影响0人  omnigeeker

什么是PP.io?

PP.io是我和Bill发起的存储项目,目的在于为开发者提供一个去中心化的存储和分发平台,能做到更便宜,更高速,更隐私。

当然做去中心化存储的项目也有好几个,FileCoin,SiaCoin,MaidSafe等,但是仔细看看他们流出的资料,官网,白皮书,文章以及各个社区的言论,可以看出他们注重这几点,完全去中心化,安全性,完全的社区化治理,几乎像比特币一样地宣传区块链精神,以便于把币的价值通过共识做起来。甚至可以说,这些项目都是把存储项目纯粹当作区块链项目来做得, 但是这样能把去中心化存储做好吗?

首先要定义,什么是“做好去中心化存储”?

首先,去中心化存储也是数据的网络存储,数据存储和比特币等数字货币其实是不同的。

数字货币是钱,钱对安全性的要求非常高。每当我支付出一笔钱出去,我手上的钱就会变少,而钱支付的快和慢不是那么重要。

数据网络存储是使用场景,在互联网上到处都需要数据存储。对于个人用户而言,苹果的iCloud,Google Drive, 微软的OneDrive就是数据存储;而对于开发者而言,AWS S3和微软的Axure就是对开发者的存储服务。存储是真正需要使用的产品,所以服务质量非常重要,贵了,慢了,数据丢了,网盘服务关停了,都有可能是用户不使用的理由。在这个场景下,存储价格合理,服务质量高,就非常重要了。所以存储价格合理,服务质量高,才是真正地做好去中心化存储。

可以再看看前面提到的几个项目,他们输出的资料、官网、白皮书、文章中几乎没有提到过服务质量(QoS)。甚至在社区里还有人抱怨,去中心化存储的价格相对于传统云存储的价格,不但没有变低,反而还高了很多。

再仔细一想,去中心化存储是现在才出现的吗?其实不是,早就有了,如BitTorrent,Emule以及我之前设计的PPTV (数据早就存在很多节点上,并且广阔地部署在全网,然后相互免费共享)。它们本质就是去中心化存储。

所以我在设计PP.io项目的时候,想法和Filecoin、SiaCoin等几个项目有很大的不同。我是把传统P2P项目的精髓结合区块链项目的特点来做,提出以用户服务质量为导向的去中心化存储项目。 也因为如此,PP.io项目的实施过程并上来就直接完全去中心,而要经历3个阶段,”强中心“、”弱中心“、”完全去中心“。

你没有看错,我们没有一开始就直接完全去中心。这不同于现在的区块链项目。下面详细说一下,我是怎么思考的。

首先我的观点:区块链解决的是信任问题,不是数据存储问题。所以我在设计PP.io的时候,不会将存储文件放在链上,在链上只存放资产,合约,证明等和激励相关的信息。数据存放在分散的存储节点节点上,使用P2P存储技术来分配和调度,不存入区块链,数据是可以被所有者删除的,但也只能被数据所有者删除。就像比特币,只有所有者能发起转账一样。

从本质上来说,PP.io拥有两个系统:

  1. 一个是分布式存储系统,是由P2P存储技术构建,以Qos为导向,目标是做出不低于AWS S3的Qos(服务质量)

  2. 另外一个是区块链系统,是由区块链技术构建,以经济激励为导向,目标是做出良性的市场经济,让真正价廉物美的服务商获得收益

图1:分布式存储系统 和 区块链系统

这里,我解释一下我说的“中心”是什么意思。

首先,我在设计PP.io的时候,存储方面从头到尾都是去中心的,数据永远存放在去中心化的网络中。但是一个高效的P2P系统并不是只有存储节点,还有一些中心化的服务器。这些服务器是用于管理大量的索引信息,跟踪信息等,让节点之间相互发现对方,让节点之间相互协调。就像Bitorrent系统中的Tracker服务器角色。这些服务器是不存放数据的,但是如果没有这些中心化服务器,P2P网络会变得非常低效。PP.io系统中也存在这样的角色,这就是我所谓的“中心”。

简单地说,区块链,激励,存储都是始终去中心的, 只有类似于Bittorrent的Tracker角色,才需要经历3个阶段。

这里,我先详细介绍一下PP.io中的存储角色:

  1. 用户节点:PP.io的消费者,通过消耗一定的PP.io Coin,来获得存储或下载数据的服务。

  2. 发布源节点:发布内容服务的节点,属于一种特殊的用户节点,它们通常不下线,且能够长期提供下载服务;发布源节点类似于IPFS

  3. 存储节点:通过提供存储空间和带宽服务来获得PP.io Coin激励的节点。

  4. 检索调度节点:可同时提供检索和调度两种服务, 并可获得PP.io Coin激励的节点,检索功能方便为用户快速定位到指定数据的位置,调度功能管理数据的上传和下载,并根据供需关系调整存储数据副本的流动。

  5. 监督节点:承担存储证明中的验证任务并可获得激励的节点,监督节点确认存储节点的总存储容量,验证用户数据存储下载,检查存储时空和下载带宽的有效性;

其他去中心化存储,如FileCoin, MaidSafe,都没有单独的监督节点角色,都要用他们的矿工节点兼做监督节点。我们核算了矿工节点的性能,如果承担监督工作,会有大量的密码学工作,就会要求所有矿工配置更高。FileCoin里面的矿工作用,有点类似PP.io里面的存储节点,我们PP.io为了降低存储节点的门槛,将提供存储服务的角色和监督角色分开,所以将监督节点独立出来了。

差不多介绍了基本信息后,我该详细介绍PP.io未来发展的3个阶段了。

“强中心”阶段 "##

这些节点是去中心化的:用户节点,发布源节点,存储节点。

这些节点是中心化的:检索调度节点,监督节点。

除此之外,我们还有一个结算中心,也是中心化的。负责计算节点之间的Token的支付。

这个阶段,区块链只有一条主链。主链上我们只存放资产信息,也就是用户有多少币,相应的转账记录。

图2:“强中心”阶段的架构图

其实,StorJ现在也处于这个状态,它的分布式存储是自己做得,它的激励直接使用的是以太坊上的ERC20代币。它是靠中心化统计,然后每个月按时给矿工发工资的方式来激励的。

“弱中心”阶段##

这些节点是去中心化的:用户节点,发布源节点,存储节点

这些节点是联盟部署的:检索调度节点,监督节点。

联盟部署就是必须有PP.io的许可才能加入并部署这样节点。这样做的目地是使用人为的方式来避免这些节点作恶,从而降低这个阶段的开发难度。

之前的结算中心服务器,在这阶段演化成了一组侧链,每条侧链上有多个节点交替产生区块。由出块节点做结算,其他节点对结算的结果做验证。侧链和主链之间分别做共识,侧链和主链之间通过预言机机制来通讯。

这条侧链我们称为合约链。如果这条侧链的性能不够,可以分裂出多条合约链。

这个阶段,区块链只有一条主链和多条合约链构成,资产,合约,证明均写在区块链上。但是合约链相关的节点是必须有授权才能部署的,简单地说,合约链处于联盟链状态。

图3:“弱中心”阶段的架构图

“去中心”阶段##

这个阶段,所有节点都是去中心化的。这是PP.io的最终状态,之前在”弱中心“状态下联盟部署的节点,如检索调度节点,监督节点在这个阶段就没有接入限制了,任何人都可以加入PP.io网络并进行部署这些节点。

这个阶段,区块链依然保持一条主链和多条合约链构成。合约链也不在是联盟链,变成了公链。区块链共识算法也会在这段阶段实现最终共识算法。

图4:“去中心” 阶段的架构图

这里我详细解释了PP.io的三个阶段。这篇文章我先说到这里,可能你有不少问题。不要着急,下一篇文章我会讲解为什么要把PP.io设计成三个阶段。

文章作者:Wayne Wong

转载请注明出处

如果有关于区块链学习的交流,可以通过下面的方式联系我:

加我微信,注意备注: 区块链

wechat:omnigeeker

github: omnigeeker (Wayne Wong)

上一篇下一篇

猜你喜欢

热点阅读