LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 行走笔记:1475杨明,三个关键词分享Filecoin的技术本质

行走笔记:1475杨明,三个关键词分享Filecoin的技术本质

2020-10-15 行走 来源:区块链网络

本篇笔记是火星财经Filecoin主网上线前12小时直播的第一篇笔记。来自1475团队创始人杨明。介绍的是Filecoin技术底层的三个关键词:PoReP、PoSt和EC。讲得还是比较通俗易懂。以下,Enjoy:


我之前从事的是技术和算法,对经济模型会有一些自己的看法。今天借此机会跟大家,我们先不聊市场,不聊币价,聊聊Filecoin底层的技术。我会介绍三个Filecoin偏微创新的点。这些技术词汇可能大家经常听到,今天我会用更偏生活化的方式来讲清楚。Filecoin是如何构造去中心化存储的网络。

一、PoReP,复制证明

PoReP,俗称是复制证明。要做分布式存储,第一个要解决的问题是如何非常准确的证明矿工存储了指定的数据。这是去中心化最难做的,或者说是链上必须要解决的问题。

举个例子让大家更清楚。比如有人的钱包掉了,有人捡到了。那如何验证钱包是属于失主的呢?一般失主会回忆钱包里有多少钱,比如有1475块。里面身份证的名字是谁,出生年月日是什么。用这种方式证明他对钱包里东西的特征有一定的了解。从而向验证者或挑战者证明我真的存储了这个数据。

PoReP是Filecoin微创新的算法原理。那它如何实现的呢?主要是利用一些原始的源数据要存储的真实需求,把它标准化成10个亿的数据,每个亿是32个字节,也就是大约32GB的封装数据。当中应该也会支持其他的比如64G的分装。然后通过加密,经过8叉树的构造,形成一条对于原始数据加密之后的路径。这个路径就是例子里说的,证明你说的钱包里有多少钱,和真实的钱包里有多少钱能对得上的很重要的反馈。

如何证明矿工一定存储了这个数据?Filecoin的解决方案是,只要你基于链上的随机数据提供给我一个你钱包里的特征,我验证这个特征是对的。比如我基于链上的随机数据里面有多少钱?矿工反馈说里面有1475块。验证者一看,确实是1475块,,那就验证了这个矿工在这个时候一定存储了这个数据。

PoReP是基于之前很多共识协议或存储协议,Filecoin的一个创新。白皮书我也看了好几遍,应该说在技术领域还有一定的创新。

二、PoSt 时空证明

PoReP只是证明了你存储了这个数据。但真实世界里的存储是有时间期限的。比如我要存储从2020年的7月1号到2021年的7月1号,存一年。那怎么证明矿工在一年里都存了这个数据呢?这就是Filecoin中的一个新的算法PoSt,时空证明。

PoSt要解决的,就是如何证明矿工一直存储了这个数据,中间没有删除掉。举生活中的一个案例。大家会看到朋友圈有很多人会健身打卡。说这是我健身的第133天,然后配一张图片。他通过发朋友圈,APP打卡的方式,告诉所有的人,他每天都在健身。其实Filecoin也是同样的道理。

Filecoin如何证明旷工持续的在存储数据,中间没有删除,没有作弊呢?作弊的方式其实有很多,包括外包,做女巫等等。从算法上,Filecoin有两个PoSt:

一个是window。每30分钟会做一次PoSt,一天的周期里会做48次。核心就类似每天的健身打卡。30分钟要打一次卡,如果30分钟数据不存储的话,那相对的你的成本是非常高的。一个算力相当于是32GB,对于外包的带宽的限制以及时间的限制是非常高的。

第二个是,比如我做生成攻击,就是我没有存储数据,数据已经删除了。当你来挑战我,验证我的时候,我临时生成一个数据来满足你验证的需求。这时候Filecoin又有另外一个叫SDR的算法,就是俗称的分装。分装的时间是很长的。我们也做过一些算法的优化,最短也要一个多小时,甚至两三个小时才能够完成一个分装。但windowPoSt只给了30分钟的时间。

所以这个算法本质上是一个有时间限制的打卡证明。是作弊者完全不太可能实施的可能性。你不可能在30分钟里生成一个完整的数据,也不可能通过网络传输来解决。Filecoin以此解决外部攻击和生成攻击。

第一个打卡验证是30分钟,第二个是30秒,当你挖到一个区块,产生收益的时候,还要做一次随机的挑战,但只挑战一个扇区。这就类似于一些抽检,比如一年或一个月抽检一次,以此来保证你确实是存在这个数据。如果你没存这个数据是得不到区块奖励的。这就是Filecoin从算法层面解决矿工要在一定时间阶段存储客户的真实数据的解决方案。

总结一下,PoReP复制证明解决的是矿工真的有分装和存储客户的数据。PoSt解决的是,矿工要在一定时间阶段里,分装和保存客户的数据。我希望这次对这两个算法的解释,能让大家更了解Filecoin底层技术的本质。

三、EC

大家都知道,比特币用的是谁算的最快,是最长链的法则。EC要解决的是保证大家一致性的问题。比如烽火传信,以及大家达成共识,都要基于一个共同的价值观,或者一个目标。EC代表的就是链的同步。如何保障我的链和其他人的链,或者说几万个矿工的链是一模一样的,并且要尽快的收敛,要保证大家整个账本是一致的。这个事情就要有一套机制来保证,大家的链能很快收敛,保持一致,并且验证下来的账本是一模一样的。

这里要保证,一是整个链上要有一套同步机制;二是在链上的block中的拿捏和选择,需要有一个共识;第三,message进入到账本里,要按照一定的次序进入,以确保大家的账本是一模一样的。这三个点都是Filecoin要用算法解决的事情。

比特币最长链的算法本质是,谁先通过链上的随机数据,7个字节80KB的哈希碰撞,能够算出网络难度以内的值出来,就是它的运气碰撞出了一个节点,就拥有打包权。大家都达成共识,只要它满足小于网络的目标值,达到某一个标准的时候就有打包权。大家在选择区块的时候就达成了共识。

Filecoin是怎么做的呢?他用的第一个是保证链是统一的,就是最重链法则。每一个区块都有一个重量的加权,每个链都有一个全网重量的值。那么如果两条链不同的时候听哪一条链,靠的就是最重链的值来判断。我的是10003,别人的是10004,,我就听它的,我就会把它的链同步过来,把我的交叉部分丢弃掉。

第二个是,大家达成共识链就同步了,同步之后,还有一个重要的事情,是在message上要和账本保持一致。这就涉及到很多message上的处理和有序性的问题。

整体来说,我认为EC是解决不确定因素方案中的一个比较好的方法。当然确实没有白皮书上面写的那么的完美,还是差一些火候。比如每个固定出多少块会一定出发,没有空块,这些问题从某种意义上都没有解决掉。但也不妨碍EC会成为区块链史上一个非常里程碑的共识。

从底层来说,Filecoin的东西大概就是这些。其实它还有一些算法,但有些并不是它独创的,比如零知识证明,其实像很早以前Zcash就已经用了很长时间了。所以在其他项目上已经用到的算法我就不分享了。今天和大家分享的就是这三个关键词。希望对大家有一定的帮助。

以上就是笔记的全部内容。

利益相关声明:行走持有Filecoin的云算力产品

—-

编译者/作者:行走

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...