一文读懂如何实现分布式存储
今天我们以Filecoin为例,讲解怎么实现分布式存储?
为什么以Filecoin为例来讲解分布式存储,因为就目前来看团队实力最强,融资最多,呼声最高的就是这个项目。不过本文我不准备讲解零知识证明zk-SNARKs这些概念,业内资深从业者如果不是对密码学和软件编程都通晓的专家,很难完全理解这其中的奥秘,我一直怀疑很多矿机厂商的技术人员以及协议实验室(Protocol Lab:IPFS/Filecoin项目方)自己是不是能说得清楚零知识证明(开个玩笑)。
本文的讲解会以类比的方式,在尽量抓住核心信息的前提下增强各位读者对分布式存储实现路径的理解,放心,大家一定看得懂。
怎么实现?
为了实现分布式存储,Filecoin白皮书中提到了几种证明机制,其中,最具特色的是复制证明和时空证明。这两种证明机制就是分布式存储项目Filecoin目前需要做到的实现方式。什么是复制证明和时空证明?怎么通俗的理解?我在这里给大家讲一个简化后的例子:
假如有个朋友小王要把车存在你的车库里(或者车位上),你呢很有钱,所以你在北京(或者上海)有好几个车位。不过你也有点吝啬(这只是思维试验,不要代入自己)也就是很小气,你说如果要把车存在你的空车位上,需要收费。因为你的车位特别棒,可以遮风挡雨,保证车子存进来的时候什么样,你的朋友提走的时候就是什么样。
复制证明
这时候如何证明你存了这个车呢?首先,需要把车存到车库里停到车位上,这时候你提交一个证明,比如说你对着车和车位拍个照发给小王,证明你确实把车放到车库里了。把文中的车换成数据,这就是复制证明。
时空证明
然后朋友小王在你的车位上停了一个月,他旅游去了,他之所以付钱一方面是因为你有车位;一方面你的车位很安全,遮风挡雨,不担心车被损坏。
这时候你怎么向你的朋友证明,这个车子就放在车位上一动不动呢?谁知道你有没有找个拖车把车拖走到垃圾场先放着,等他快回来的时候,再给他洗一下车,反正也看不出来。而且你的车位收费很贵,先把车拖走,然后留出了空车位,可以存另一个朋友小李的车。然后你再把小李的车也拖走放到更便宜的地儿,留出空位给小张存车。这样你一个车位,可以同时服务小王、小李、小张。
这当然不诚信,但是可以用一个车位赚出来几份钱。对应到分布式存储就是说,人家存到你硬盘上的东西,你谈好价格要收费,收了费就把人家的东西给删除了,去存其他人的东西。人家回来拿资料的时候,你来个磁盘恢复,把数据找回来,这不是一块硬盘当两块用了吗?
怎么办?时空证明可以解决,顾名思义就是指时间和空间。比如说,小王把车停到你的车库里,这就是空间;你每隔5min给车和车位拍个照片(区块链高度、时间戳)盖上时间戳,证明“你看,我没有移动过你的车,你的车一直在车位上停着” 。把上面内容的车换成“数据”,这就是时空证明。
这就是Filecoin分布式存储方案的核心,复制证明是确认矿工确实存了对应的有效数据,时空证明是确认有效数据被时刻保存在矿工的存储设备之中。
简化可以理解为:第一,复制证明是证明别人的车(数据)存到了你的车库(硬盘);第二,时空证明是证明别人的车在你的车库一直存着。
Scan QR code with WeChat