查看原文
其他

是什么让你如此卓尔不群: Filecoin的证明系统

胡飞瞳 胡飞瞳 2023-04-21

本文主要参照 Filecoin.io 2020年2月18日的博客,但不拘泥于此博客的内容。Filecoin团队最近有一些市场动作,不是那种直面投资者或小白的活动,而是秉承其一贯的风格,学术性较强,更多面向开发者和专业人士。Filecoin的证明系统运行了许多这两年研究的最新成果,也是区块链行业最重要的创新。



区块链世界丰富多彩,区块链技术包罗万象,是大量已经经过验证的组合式创新。区块链中最为重要的共识机制最初是一种于垃圾邮件作斗争的工具。其最初的研究开始于上世纪70年代,开发于90年代。志在建立一套无需仲裁的分布式系统来使用户达成协议。


比特币的创新在于把共识系统与激励机制与区块链紧密结合,完全实现去中心化。但比特币并不完美。共识机制有不同的形式,POW(工作量证明)是一种最成熟和最成功的模式。然而,由于工作量的竞争对能源消耗越来越大。你一定听说过:比特币网络每年消耗的电力比整个瑞士都多。


这些电力(工作量)消耗除了选举出块矿工之外,是否可以有其他用途呢?Filecoin正在给出答案。Filecoin建立在空间证明之上。从矿工选举的角度而言,它是一种权益证明(POS)。但是,与大多数权益证明不同,权益并不是以通证(Token)的抵押来获取的,而是通过验证存储来得到。验证存储在Filecoin中成为时空证明(PoSt)。但在此之前,需要有一个获得存储的过程,这个过程通过复制证明(PoRep)来实现。


Filecoin的目标是创建一个基于强大的分散市场的分散存储网络。这个网络是去中心化。证明架构和机制是其中的基石。为了启动和推进这个市场,Filecoin创建了FIL通证(一种可交易的加密货币),这是Filecoin的副产品。FIL通过整个证明过程和选举过程,依靠存储提供者(矿工)来进行铸造和记录。


关于Filecoin相关技术的介绍,Juan Benet 去年12月4日在零知识挣证明播客 https://www.zeroknowledge.fm/106 做了一个小时的演讲,其中也包含证明部分。


Filecoin

验证数据的存储


Filecoin证明的一个重要目的就是验证数据的存储没有问题,被有效地存储了,而且一直存在。这包括前面提到的复制证明(PoRep)和时空证明(PoSt)。两个证明都利用了密码学与存储相关的最新成果。


在Filecoin网络中:“每一个存储矿工都必须提交证明,以表明其持续存储了用户的数据,并在证明的基础上,来获得用户的付费和FIL奖励。”


复制证明(PoRep):

在Filecoin中成为Seal。字面意思可以理解为把用户数据密封,并提交证明密码学保证的承诺。


Sealing(密封)是一个耗时的、线性的过程;也就是说不能并行计算。在完成计算之后,矿工需要提交公开的证明到Filecoin区块链上。从而表明本矿工确实对所承诺的数据做了一个独一无二的编码复制。


时空证明(PoSt):

当然,一次承诺还不够,矿工需要持续地证明数据仍然存在,没有损坏,这个过程就是时空证明。


时空证明是一个持续不断的过程,同时证明的时间点是随机的,矿工不能事先知道。在Filecoin中,为了提高链本身的效率,证明也不是要求对每一片用户数据都需要证明,而是同样采用随机选取的方式进行。


只要选取的数据片,和证明需要的相关输入参数不能事先获知,矿工将难以作弊。


时空证明是一个要求“速度快”。相对于复制证明而言,时空证明所需要的时间要短得多。当然,复制证明所需要的时间相对于时空证明而言越长的话,就越安全,作弊就更加困难。关于这一点,与各种攻击相关。这里不赘述。


但基于实际存储网络的考虑,最后设计选取的耗时长度相比可能会在数百倍至数千倍之间。以维持安全性和可用性的平衡。



Juan Benet

关于证明的一些解释

(预警:下文中有些文字来自Google翻译)

(注:这个颜色的注来自于本文作者

协议实验室的创始人胡安在上面提到的播客中,对Filecoin证明的构建做了一些说明。说的内容较多,这里就全文照搬了。有兴趣的可以去听那篇播客,或者直接看Filecoin的播客。下面列出一些我觉得有意思的部分(注意下面蓝色斜体的注是我加的):


“ Filecoin以多种不同方式推动了区块链的前沿。复制证明最终是一个证明系统,用于验证存储矿工是否确实拥有他们正在存储的内容并且没有作弊。在这些系统中,这是一个非常棘手的问题:如何向网络证明您确实存储了某些东西,而不是撒谎?


“Filecoin尝试解决其他有趣的问题,包括更高的吞吐量共识以及Filecoin使用的可互操作的,内容可寻址的链接数据结构。但归根结底,这一切都是为了利用地球上所有未使用的存储并进行激励性组织,以建立最大,最强大的计算存储网络并降低该存储的价格。”


注:再次强调:目标是建立存储市场,Token是副产品,是手段。


“证明系统是一种加密协议,其中有一个证明者和验证者,证明者将向证明者证明某些内容。



   复制证明   

存储证明是简单的证明系统,可以证明我拥有一些数据。数据所有权证明的一个例子是:我可以向您证明我有数据X,当数据量很大时,不使用数据,而是采用简洁的证明。然后是可检索性证明,在这里,我不仅要证明我有X,而且这些证明可以用来重建X,以防万一我不怀好意并想向您隐瞒X。


空间证明是另一种类型,在这里我可以向您保证我要花一定数量的存储空间。如果我承诺存储1 GB,并且生成一个随机GB,则可以向您证明我正在存储该随机GB,而不存储其他东西。这样就可以将存储空间用作工作量证明。”


注:空间证明和存储证明是不同的,Filecoin可能分别处理。


在复制证明中,我们获取大量的源数据(如32GB),并应用非常慢的编码,从而在节点可能为32字节段的层中生成这些类似于格子的图形。这是一个连续的过程,不断产生一个图形,并且每个节点都按顺序散列。由于哈希函数,它必须一个接一个地完成。”

注:从分形几何里面找一个图出来说明这个问题?这个有点扯。而且分形计算是可以并行的嘛,这和Filecoin的复制证明不符。这个图与实际证明没有一毛钱关系。但其主要意思就是说,这个有点复杂,你只能慢慢算,一步一步来,别想着走捷径,没门儿。


“生成的一种图形是DRG(深度鲁棒图),它们与EG(扩展图)相连,并且存在一个整体复杂的多层结构。最后,我们现在已经将原始数据编码为我们称为的副本,该副本作为值提交。您可以根据需要获取相同的源数据并对其进行多次编码,最终会得到多个唯一编码的不同副本。


“现在,我们已经完成了这一工作,为了证明我们已经正确完成了此编码,我们可以在SNARK内进行整个编码,这将是非常昂贵的,或者我们可以抽样一些挑战证明我们已经存储了这个。假设我们在整个证明中抽样了1000个随机挑战,然后在SNARK内进行了计算。我们获取源编码的数据,然后对其进行解码,然后证明它一直追溯到我们致力于的根。这就是我们要简洁的证明。因为否则它将是32字节的叶节点,然后整个Merkle链一直回到根,将是相当大量的数据,然后乘以一千。100s KB或MB产生一个证明。使用SNARK,我们可以将其压缩,我认为它可以压缩到200B或类似的水平。”


注:几个有意思的信息,说清楚了,但是不一定能看明白。上一段说复制证明是基于两个图来做的。一个叫DRG,一个叫EG。这个图很复杂,一个最重要的特点就是计算慢。而且可以是多次编码,这样,计算量就增加了。下一段是说SNARK(零知识证明算法)在证明中起到的作用,主要目的是要大大缩小证明占用的字节数。Juan认为可以只用200个字节在链上就可以证明一个32G的sector(扇区)。




时空证明    


“关于时空证明我们做个无数探索,所有这些工作是一个伟大故事。我们称之为时空证明过山车(各种证明的尝试和实验)。随着时间的推移,您最终将创建大量不同的证明方式,而所有这些不同的参数将为所有这些不同的用例提供服务。


“与Filecoin中的证明相比,这种参数选择可能是我们花了这么长时间进展到这个阶段的最大原因。因为您选择一种方式,其中包括设定的模式、参数和证明数据大小选择。如果还不错,然后您调整一些参数,例如“嘿,也许我们希望扇区(sector)稍大一些。”这使得其他一些参数必须更改。


“我们在Github上使用了一个名为Orient的工具,并且所有工具都是开源的(请参阅Orient和Übercalc中Filecoin的参数)。它使用一种特殊的语言,您可以在其中定义特定的算法及其生成的模式,然后将它们与所有这些变量和参数组合成更大的对象。”


注:好了,大家知道了,为什么一再延迟呢?因为我们找了很多方向,各种不同的尝试。六种PoSt的方式我们都有尝试,不同的方式通过不同的参数进行测试,各种结果的对比、改进,再测试。

Orient / Übercalc:这个东西使用 Lisp,可以帮忙做很多模拟计算。可以帮忙生成优化的算法参数。也就是帮助我们设计程序调优。厉害了。

但是,Juan没有说,这个工作是不是结束了。


最后,Juan自豪地说:
“我想目前还没有任何其他的网络在使用复制证明。我们创造了复制证明这个新领域。这是我们的一个优势和与众不同之处,这是我们区别于其他链的一方面;另一方面,通过矿工和用户各自报价、自由撮合、达成交易,我们创建了一个可优化的流动市场,相信这也是我们独有的; 另外,基于空间证明的共识机制,使得达成共识的过程变得有用,Filecoin是第一个达成此目标的。这3点,我想,是支撑Filecoin卓尔不群的最主要因素。


注:Filecoin的证明机制是Filecoin最重要的特色。Filecoin为分散的存储市场而生。一切将为此服务。当Filecoin在艰难推进的时候,IPFS的前进步伐一直没有停止,IPFS目前已经有大量的应用。我们希望看到在Filecoin网络启动之后,真实的存储市场可以建立起来。IPFS为Filecoin提供的技术和数据在这其中也能起到支撑和推动作用。




我的相关文章






您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存