1.什么是去中心化存储
去中心化存储,技术上不同于分布式存储。去中心化存储是在一个更加分散、更加不可信的网络环境中,满足一个更加安全、更加可信、更加可控的存储的需求。直白一些的理解可以认为是可以用来存储的Bitcoin。这里,要强调一点,就是区块链本身并不是用作存储的额,区块链本身是一个账本,用来记录交易的信息。至少目前的区块链技术不能直接用作存储,以后的技术发展是否可以,这个要看需求。目前看,是没有这个必要的。
2.去中心化存储是伪需求么
这是我过去一年,在推广去中心化存储的时候,面临的最大的问题。更多的人,对于去中心化存储的需求是质疑的,认为这是伪需求。“我的数据为什么要存储在别人那里呢?”类似这样的问题层出不穷。这里我来讲讲,为什么我们需要去中心化存储。去中心化存储的目标主要有:
- 安全
- 可靠
- 性能
首先,安全。指的是用户存在去中心化存储系统里的数据是绝对安全的,有非常严密的隐私保护。这是与现在中心化云存储最大的不同和优势。为了实现安全,每一份用户的数据都进行了加密、分片,并且有多分冗余在全网的节点中。这些节点可能分布在美国、日本、欧洲、南美等等。和数字货币一样,只有持有私钥的人才能够拿到数据,对数据进行解密,查看数据。另外,黑客在进行攻击是,也无法得知哪些数据对应着哪位用户。即使黑客找到了这些数据,也只能望洋兴叹。安全这个点,现在的用户似乎不在意,没有需求,但并不代表着未来也不需要。有的时候市场需要培养,做产品需要多一些耐心。最近Facebook用户数据泄露的事件,影响非常的大。这其实就是一个数据安全的典型的场景。用户的数据需要更好的管理,在去中心化存储之上,可以通过智能合约实现授权的机制。在用户授权的条件下,完成基于用户行为的模型训练。所以,去中心化存储,引入的并不只是区块链技术本身,更多的是激励生态体系。
其次,可靠。目前的云存储经过各大厂商的努力,已经做到很高的水平,非常的厉害。当然投入是巨大的,而且也有巨大的安全隐患。那去中心化存储的可靠性如何呢?从技术上客观的讲,这里有一个网络规模的问题。去中心化存储的网络越大,可靠性就越高,随着用户的认可、网络的规模越来越大,甚至可以媲美互联网的时候,数据的可靠性就是接近100%的。而且隐私安全、控制权在用户的手里。这里有一个风险点,就是早期节点数量比较小的时候,需要有一些措施保证网络的稳定运行。
最后,性能。这个大家联想一下BT、电驴就好了。如果了解技术原理,差不多也是一样的。通过一种纠删码的技术,计算适当的冗余完成性能和可靠性的权衡。这应该不用过多的解释。
3.去中心化存储如何实现
去中心化的存储实现分为两部分,存储和链。存储部分已经是比较成熟的技术了,参考BT、电驴等技术,兼顾可靠性和性能,以及资源的消耗,就足够满足需求。关键点在于链。展开来就是为什么必须要有链。
这也是个老生常谈的问题,在区块链技术作为支撑的时候如何应用。我坚定的认为去中心化的存储,是一个非常契合、落地的场景。
区块链给存储带来的是什么呢?去中心化、可信、隐私、可控,以及最重要的激励机制。如果让我设计一个去中心化存储的架构,有可能是这个样子的。
去中心化,在这里是非常关键的。以为这隐私保护,以为可以控。所以,在这个场景,我们希望是希望更多的去中心化的特性,而不是多中心——所以,这个决定了共识机制的实现。
可信,隐私。都是建立在去中心化的基础之上,并且加入了密码学的考虑。现在很多人在谈隐私保护,甚至提出了“分布式隐私”的说法,如何实现——区块链。
前面我们也提到,网络规模的大小——也就是存储节点的多少对于效果的影响很大,那么如何让大家贡献存储、网络资源呢?如何保证稳定、可靠的运行呢?这里的核心就是设计激励机制。这里是有很多难点的。目前我看到的几个存储的系统:IPFS、Sia、Storj都没有很好的解决这个问题,这里要充分的权衡多方用户之间的利益关系,至少是三方。后面把这几个项目简单分析一下。
所以上图中的“Incentive Layer”的设计是核心。上图中大家也注意到了“Smart Contract”模块。去中心化的存储,需要这个模块么?当然!很多核心的功能都是依赖智能合约来实现的。例如:用户要下载自己的文件,提供存储服务的用户要证明自己的能力,等等。
去中心化存储的实现,就聊这么多。细节上有很多内容需要考虑。欢迎大家加入知识星球,一起探讨更多的细节。这里给大家建议,先通读Filecoin、Storj、Sia的白皮书,以及把这些节点都跑起来,还是很好玩的,了解了解存储如何挖矿,硬盘会像GPU一样卖断货么?
这里特别说明一下IPFS,其野心巨大。不仅仅是存储,更重要的是想代替HTTP,非常有可能。另外,Sia整体设计的比较好,但激励机制的设计上,不够理想。生态不容易很快转起来,不容易很快的扩大。
4.从存储展开的共识畅想
前面的架构图很简单,但是信息量真的很大。仔细看的都会发现有一个共识模块——区块链的核心模块。现在有PoW、PoS以及DPoS等,满足不同的场景。大家有没有想过共识算法的本质是什么?比如PoW,他的本质是什么呢?PoW对算力进行了去中心化,依赖对电力资源的大量消耗,提升共识的可靠性。关键点是资源的消耗,那么这个资源可以是别的资源么?比如存储资源、比如网络资源、比如时间资源等等,是否可以出现一些新的共识思路呢?这里要简单提一下Genaro。之前做过简单的了解,其共识算法有一定的创新,是基于存储+PoS的机制,做了一定的权衡。具体的算法大家可以去找白皮书了解。我认为这是一个很好的方向,有更大的想象空间。就好像星云链提出来的Rank,一个美好的开始。