让我们先回顾上一期【进阶小课堂】的内容,上一期进阶小课堂,我们通过协议实验室关于复制证明的最新视频,了解了什么是复制证明以及复制证明是怎么工作的,点击下方图片可以回顾往期内容。
! 是什么让 Filecoin 与众不同?来听听胡安的解答
Filecoin 的共识机制由“复制证明(PoRep)+ 时空证明(PoSt)+ 预期共识 (EC)”所组成,当初为何选用这些机制?这些机制到底有什么魅力,又能带给 Filecoin 多大的不同?
今天,我们就一起来看看胡安对于 Filecoin 共识机制的理解。

概要
和其它大型技术创新一样,区块链是我们已经使用和信任了几十年的几种成熟技术的结合体。“共识机制”自上世纪 70 年代开始研究,并在 90 年代发展成为一种打击垃圾邮件的工具,它让分布式系统中的用户无需中央仲裁者就能达成协议。Filecoin 是建立在空间证明变化上的,它还与权益证明相关。因为权益关系不只是将通证作为权益关系,而是以已证明的存储量存在,它决定了矿工出块的概率。在构建分布式存储网络时,我们着手构建一个证明结构。在这个结构中,共识是通过产生数据存储来实现的。随着 testnet 的发布,我们将推出一组新的基于存储的证明系统,以实现去中心化的共识。
当我们在 2017 年宣布 Filecoin 的时候,我们开始着手创建一个建立在强大的去中心化市场上的去中心化存储网络。为了培育这个市场,分散市场职能,鼓励早期矿工的参与,我们创建了一个加密通证,这是 Filecoin 共识的副产品。此通证是在有用的工作_(即有用的复制证明和时空证明)_的基础上生成的。

关于证明的故事 J uan Benet 最近在 Zero Knowledge 播客的采访中探索了 Filecoin 证明结构的历史。以下是这次采访的摘录 : “Filecoin 以多种不同的方式推动区块链的发展。
复制证明是一个证明系统,用来验证存储矿工确实拥有他们所存储的内容,并且没有作弊。但你如何向网络证明,你确实在存储一些东西,而不是撒谎 ? Filecoin 还试图解决其它一些有趣的问题,包括更高的吞吐量一致性和可互操作、内容可寻址的链接数据结构等。
说到底,这一切都是为了利用地球上所有未使用的存储空间,用激励措施来组织它们,建立最强大的计算存储网络,并压低这种存储的价格。 Filecoin 对复制的证明既是对存储的证明,也是对空间的证明,两者略有不同。在 Filecoin 中,数据单元存储在所谓的扇区中。你会以缓慢的编码过程将磁盘上扇区中的特定数据密封起来,并将验证提交给区块链。密封是一项耗费大量精力的工作。想要伪造这样的证明,你必须使用客户端存储在 Filecoin 上的原始数据来完成特定的工作。证明系统是一种密码协议,其中有证明者和验证者——证明者将向验证者证明一些东西。例如,在 POW 中,证明者需要做了一些计算,或者花费了一些计算周期。他们的典型证明就是哈希。存储证明(Proofs of Storage)是证明我拥有某些数据的简单证明系统。比如:我可以向你证明我有数据 X,不需要显示数据 X,或者数据是几个 GB 大,而是以更简洁的方式。
数据可恢复证明(Proof of Retrievability),我不仅要证明我有 X,而且这些证明可以用来恢复 X,以防我有恶意,想要隐瞒 X。空间证明(Proofs of Space)是另一种类型——我可以向你们保证我花费了一定的存储空间。如果我存了 1gb,然后生成一个随机的 GB,那么我就可以证明我存储了这个随机的 GB,而不是在存储其它东西。这让矿工可以使用存储空间作为工作的证明。有趣的部分是将空间证明与数据持有的普通证明结合起来——我希望 X 是有用的,而不仅仅是一个随机字符串。最难的部分是创建一个空间证明,它也被用来存储有用的数据。这就是 Filecoin 网络的密码协议中的复制证明——作为基本原语。 其它存储证明是为了创建更值得信任的云,因为它们可以向你证明它们正在备份你的数据。但是它们在正常的中心化云环境中完全没有使用,因为信任是契约式的。现在它们被用于整个去中心化领域,因为这是我们使用激励结构来保证事情而不是合同协议。 我们还使用 SNARKs 来证明一些复制的实际证明,这些证明产生了大量的输出。我们想在这些复制证明上做很多挑战,把它们聚合起来这样它们就能以一种非常小、紧凑的方式进行链式反应。SNARKs 是一个很好的方法,它给了你一种方法去证明你的正确性,然后你就可以把这个 SNARK 证明放在链上。接着,各方现在可以自己验证一些极少的输入,以及实际的 SNARK 证明,并知道证明已经正确生成。 在复制证明的过程中,我们使用,比如 32GB,并应用非常慢的编码,从而在一个节点可能是 32 字节段的层中生成类似于网格的图。生成一个图需要一个连续的过程,并对每个节点进行连续哈希。因为哈希函数,它必须一个接一个地完成。

一种生成的图是 DRG_(深度-半径-图)_它们与这些扩展图相连,形成一个复杂的晶格结构。最后,我们将原始数据编码为我们所称的副本,并将其提交为一个值。你可以获取相同的源数据,并可以对其进行多次编码,最终你将得到多个不同的、唯一编码的副本。
现在我们已经做到了,为了证明我们已经正确地进行了编码,我们可以只取样几个挑战来证明我们已经存储了这个。假设我们在整个证明中随机抽取了 1000 个挑战,然后在 SNARK 中进行计算。我们取源编码的数据,然后解码,然后显示它一直回到我们承诺的根。这就是我们想要简洁的证明。否则它就是一个 32 字节的“叶子”,整个 Merkle 链一直回到根将会是一个相当大的数据量,然后乘以 1000。如果用 100 KB 或 MB 来生成一个证明,我们可以用 SNARK 压缩它,我想大概是 200B 左右。

关于所有这些工作的一个伟大的故事就是我们所说的证明过山车。随着时间的推移,你最终会创建大量不同的结构,所有这些不同的参数服务于所有这些不同的用例。 这个参数的选择,在 Filecoin 中证明的选择是我们花了这么长时间来发布所有这些东西的最大原因。因为你选择了一个结构,它有特定的形状,产生了特定大小的 artifacts ,也许这很好,然后你调整一些参数,比如,“嘿,也许我们想要扇区稍微大一点。“这使得其它一些参数必须改变。 很快你就进入了一个很大的、有很多不同变量的参数空间,一旦你在这里调整一个东西,就会还有很多其它的东西也必须跟着改变。因为很多算法都在优化,做复杂性管理,是非常困难的。因为很多这样的结构、缓慢的编码,你想用足够慢的速度来证明它,但又要足够快让它不是很贵。进行拨号以使其恰到好处是一个非常困难的挑战,然后钉上特殊的 SNARK 结构,以确保你可以高效,简洁地完成此操作。所有这些参数优化可能是如此紧张和困难,以至于我们实际上不得不编写软件来处理这些问题。我们有一个约束求解器来处理约束优化问题,即选择 Filecoin 中的证明结构和参数。这是一个出乎意料的结果,其他团体现在可以用它来让他们的生活更容易,但是我们必须写这个。

Orient 工具
我们使用了一个叫做 Orient 的工具,它在 Github 上,所有东西都是开源的_(见 Filecoin 在 Orient 和 Ubercalc 中的参数)。它有一种特殊的语言,你可以在其中定义特定的算法和它们生成的 artifacts ,然后将它们组合成更大的算法,并使用所有这些变量和参数。 然后你可以做实验结果,比如某个哈希函数需要多长时间,把数据代入一些参数然后计算出其它一些参数。例如,基于此哈希函数以及在 SNARK 内部或外部花费的时间,这就是你想要使用的特殊的构造,因为它可以将时间最小化或将链上足迹最小化,而所有这些东西都是通过此求解器计算出来的。
制造区块链技术,因为它的结构是如此的复杂——无论是单独的原语还是它们是如何被编织成链的,所以我们需要这个软件来帮助我们写软件。就像芯片制造一样,芯片制造一直很顺利,直到达到一定的密度,然后他们就不能手工生产芯片了。他们不得不开始使用软件来布置芯片。我认为我们已经在区块链上达到了这一点,我们正在做的一些结构,就需要软件来帮助我们设计。 我认为没有其它网络使用复制证明,这是我们的一个优势,我们创造了这个领域。这是一个区分因素。
我们也是唯一一家拥有这种流动性市场结构的公司,这种结构意味着要根据一个要求和出价结构进行优化,在这种结构下,矿工和客户能够一起对价格进行推理,然后据此达成交易。
我认为,我们也是唯一以有效的存储为后盾达成共识的。对于其它的网络,这可能是一种共识,并得到了空间证明的支持,但在我们的例子中,它是有用的。这是 Filecoin 最大的三个区别因素。 然后是通过 libp2p 与 IPFS 的紧密集成,以及其他一些已经在 IPFS 上大量使用的东西
,_将所有这些数据直接备份到 Filecoin 中会很容易。值得一提的是,IPFS 是一个开放的网络,我们已经看到其它网络开始增加对它的支持,这一点也是非常酷的。
关于 IPFS 和 Filecoin 有任何问题,欢迎添加矿哥的微信交流(微信号:kuangge2018)


Filecoin 主网上线在即 点击下图 抢 Filecoin 头矿红利


! 是什么让 Filecoin 与众不同?来听听胡安的解答
! 是什么让 Filecoin 与众不同?来听听胡安的解答! 是什么让 Filecoin 与众不同?来听听胡安的解答! 是什么让 Filecoin 与众不同?来听听胡安的解答


公众号后台
回复【社群】 加入 IPFS 中国社区官方社群回复【合伙人】 加入 IPFS 中国社区节点合伙人