Filecoin网络是在互联网架构变革的中期推出的。在这场变革中,脆弱的中心化服务(依赖于受信任方),正在被基于可验证计算的弹性去中心化解决方案所取代。互联网服务正在从低效的中心化单体服务转移到网络的边缘,这其中的推手是正在崛起的p2p市场。
Filecoin代表了协议和服务的演变,以适应互联网架构变革的需要:一个开源的去中心化存储网络,内置经济激励机制,以确保数据存储的可靠性。Filecoin和其他区块链网络(如比特币和以太坊)一样,是开放服务的先驱者:去中心化的平台,商业服务提供商——无论是公司还是个人——都可以在开放的市场上竞争。
Filecoin是一个生气勃勃的项目,有很多技术奠定了Filecoin的基础。本文将追溯Filecoin这一革命性技术进化的轨迹。首先是区块链的史前时代,介绍那些孕育分布式账本的技术和概念,然后介绍Filecoin立项以来的故事,从过去、到现在,再到未来。
1、站在巨人的肩膀上
要罗列密码学、分布式系统、加密经济学以及相关领域所有对Filecoin的发展做出贡献的进展是不可能的。尽管如此,技术领域还是有一些突出的高峰。
随着James Ellis在1970年发布他所开发的公钥加密技术,以及Clifford Cocks在1973年引入RSA等效结构中的因子问题,现代密码学的时代在英国信息情报机构中秘密开始了。
然而,孕育区块链(如比特币、以太坊和Filecoin)的公开可查血统,开始于加州大学伯克利分校的本科生计算机科学课堂上,即Ralph Merkle的1974 CS 244项目——在不安全的通信渠道建立安全的通信——该提案最终发表在1978年的ACM杂志上。Ralph Merkle的论文描述了一个基于破解难题的加密系统,在这个系统中,难题采用了一种加密信息的形式,且带有一个未知的密钥——这是公钥加密的早期结构。这篇论文通常被称为“Merkle难题”,它甚至包含了一个早期的工作量证明概念——这是目前比特币、以太坊和大多数其他无许可区块链的基础结构。
Merkle的公钥加密系统基于二次复杂度的计算,对于大多数实现来说不够安全。1976年,随着密码学的继续发展,一些新的研究开始出版,Whitfield Diffie和Martin Hellman在Ralph Merkle的思想基础上设计了著名的Diffie-Hellman密钥交换算法,该算法基于一个更复杂的数学问题:离散对数。他们的开创性论文还非正式地提出了加密哈希函数的概念:一种将任意大小的数据映射到固定大小的字符串的不可逆算法。
此后不久,在1977年,麻省理工学院的Ronald L Rivest、Adi Shamir和Leonard Adleman开发了RSA加密系统,这是一种基于大质数因式分解的非对称加密算法。RSA成为第一个广泛使用的公钥加密方案之一,现在仍被用于V**服务器和客户端之间的TLS握手,以建立安全的通信通道。
1979年,Ralph Merkle在斯坦福大学的博士论文中,非正式地阐述了抗碰撞的想法——哈希函数的一种属性,即找到哈希到相同输出的两个输入非常困难——以及使用对称加密构建哈希函数的方法。密码学哈希函数的发明,以及度量这些单向函数安全性的碰撞阻力概念的发展,为在不侵犯隐私的情况下认证数据提供了一种安全的手段。
到20世纪80年代早期,密码学家和密码朋克在可信方之间的安全通信问题上取得了重大进展。但在多方通信中达成一致的问题,包括有潜在恶意或腐败的一方存在时,仍未得到解决。在1982年的论文《在存在故障的情况下达成一致》中,Leslie Lamport, Robert Shostak, and Marshall Pease 正式描述了拜占庭将军问题,即自古以来困扰分布式账本实现的困境:如何在包含不可靠或不可信组件的系统中创建一种免信任的机制来实现协调?
David Chaum在1982年加州大学伯克利分校的论文《由相互恶意的团体建立、维护和信任的计算机系统》中介绍了已知的区块链协议的第一个描述,包括比特币区块链的每个元素(除了工作量证明),以及代码实现。这篇有先见之明但未发表的作品的影响尚不清楚。虽然它缺乏对现代区块链实现至关重要的健壮共识机制——让分布式系统中的用户不需要中央仲裁就能达成共识的算法——但它预言了当前分布式账本技术的许多重要特性。
1980年代见证了密码学哈希的进一步发展:哈希函数的抗碰撞标准由Ivan Damgard在他1987年的EUROCRYPT'87论文中正式描述。几年后,在1989年,Damgard开发了一种几乎与Ralph Merkle相同的加密哈希函数方法,并在89年的一篇加密论文中证明该方法满足他之前指定的抗碰撞标准。这个想法被称为Merkle-Damgard构造,并且是一些重要哈希函数设计的一部分,如MD5(由Ronald Rivest在1991年设计)、SHA-1(1995年作为美国联邦标准发布)和SHA-2。哈希函数的SHA-2家族是2002年发布的NIST标准,用于各种安全协议,如TSL、SSL、SSH和PGP。SHA-2家族的SHA-256成员被比特币和其他区块链协议用于验证交易、计算工作量证明和权益证明。SHA-2家族更接近我们故事的核心。
抗碰撞哈希函数是Stuart Haber和W。Scott Stornetta在1991年提出的保证在创建和修改数字文档的同时保护用户隐私的方法中是不可或缺的一部分,该方法发表在《如何给数字文档加盖时间戳》一书中。后来,D。Bayer在1993年的一篇论文和1997年的ACM论文中对其进行了扩展。这三篇文章在比特币白皮书的8篇引用中占了3篇。这种相对时间戳机制——在去中心化系统中为事件的建立顺序——对于在区块链上建立交易优先级的任务至关重要。H。Massias, X。S。Avila和J。-J。Quisquater在他们1999年的论文中提出了时间戳方面的改进,“安全的时间戳服务的设计与最低的信任要求”,被直接纳入到比特币的提议中。
在许多现代分布式账本技术中,一般都引入工作量证明的基本共识机制。1992年,Cynthia Dwork和Moni Naor发布了一个基于难度计算的定价函数,作为对共享资源访问的控制方案:一种对抗垃圾邮件的实现。Dwork和Naor的论文没有使用“工作量证明”这个术语,但是论文建立了一个非对称的代价高昂的防御机制,服务请求者必须完成服务提供者可以轻松检查的工作。工作量证明后来是由Markus Jakobssen和Ari Juels在1999年的一篇论文中发明并正式确立的。这种要求可验证和高昂计算成本的工作作为共识的基础原则,后来成为比特币安全保障的关键组成部分。1997年,Adam Back的hashcash建议使用部分SHA-1冲突作为对抗垃圾邮件的工作量证明,保护和规范互联网资源使用的工作继续进行(详见2002年的论文)。
现代加密货币时代的根源可以追溯到1998年,当Wei Dai 在cypherpunks的邮件列表上发布了“电子现金,一种匿名的分布式电子现金系统”(后来以太坊的最小货币单位定义为Wei以致敬Wei Dai),描述了一种具有现代加密货币特性的协议,包括交易广播和工作量证明。同年,Nick Szabo提出了一种基于区块链的去中心化货币:“比特黄金”,这种货币基于公钥链接的工作量证明链和带有时间戳的区块元素。2004年,Hal Finney(后来成为第一个比特币接受者)创建了第一个可重复使用的工作量证明系统,他建议使用工作量证明通证作为比特黄金的一种形式。
互联网的发展促使人们进一步增强网络以防止节点的错误行为。1999年,MIT的Miguel Castro和Barbara Liskov发布了一个拜占庭容错分布式文件系统的实现,该实现能够满足现实世界异步互联网系统的性能要求。
在90年代后期,有关分布式系统的问题规范的工作也产生了有趣的结果。1999年,Henning Pagnia和Felix Gartner正式定义了“强公平交换”(strong fair exchange)问题,他们认为,如果没有可信的第三方,双方不可能保证完全公平地交换数字商品。这一发现后来对Filecoin的检索市场结构有重要的启示,促使市场参与者通过增加deal成功率来引导信任。
几年后,在21世纪初,我们可以看到与Filecoin设计直接相关的想法开始出现。2002年,David Mazieres和Dennis Shasha在“从拜占庭式存储构建安全的文件系统”中描述了多用户网络文件系统的特性,展示了可在不受信任的服务器上实现受信任的网络文件系统。同样在2002年,贝尔实验室的Sean Quinlan和Sean Dorward开发了内容寻址存储的数据模型——一种通过数据的内容而不是位置来引用数据的方法——一个名为Venti的Plan 9服务,使用SHA-1哈希函数。这种使用SHA-1的内容寻址数据模型由Linus Torvalds在2005年的Git版本控制系统中开始采用,用来避免使用集中式存储库。而BitTorrent的Bram Cohen则独立地采用同样的方法来避免使用中央追踪服务器。
2008年,中本聪(Satoshi Nakamoto)发布了比特币白皮书,它使用SHA-256 内容可寻址的交易存储方式,并将其作为工作量证明共识方案的一部分,以克服在互联网上构建分布式账本的主要障碍——拜占庭将军问题。
比特币的发布是一个“终结”的时刻:比特币证明了分布式账本技术可以在现代计算环境中大规模运行。
2、 后比特币时代
比特币的出现促进了分布式账本技术的快速发展,并开启了现代区块链时代。这一时期,无论是基础设施还是上层应用,都出现了大量的创新。
比特币的真正突破是基于工作量证明的共识算法。该算法通过创建一个可靠系统来管理和跟踪分布式系统中的通证所有权。一旦证明在现实中解决拜占庭将军问题是可能的,区块链开发人员立即开始掀起创新解决共识问题的浪潮。类似于罗杰班尼斯特在1952年第一次打破人类跑步1英里4分钟的极限,这具有里程碑的意义。
2012年,Peercoin第一个推出PoS(权益证明)共识协议,替代比特币的工作量证明协议方案。在PoS共识协议中,根据矿工对网络的投资权益(持有的证券或者是通证)来决定是否获得出块权(比例)。减少比特币区块链在挖矿上的资源浪费是共识协议创新的另外一个目标。例如,由Peercoin创始人于2013年推出的Primecoin虽然基于工作量证明的共识协议,但这种工作量略微有用:搜索质数。2014年发表的Permacoin提出了一种围绕长期数据存储建立工作量证明机制的方案。但该方案的设计有一个严重的安全性缺陷,即在整个区块链生命周期中需要使用一组固定的数据。
2013年,以太坊基于工作量证明共识协议推出了第一代以太坊公链,并计划在以太坊2.0中使用权益证明协议。毫无疑问,以太坊为区块链网络作为去中心化应用的平台奠定了基础,当然也促进了去中心化文件存储市场和其他创新应用的发展。以太坊的“区块链即平台模式(blockchain-as-a-platform)”为第三方dApps创建了一个充满活力的生态系统,也激发了一些创造性思考,例如去中心化Web和Filecoin。
3、2014年Filecoin白皮书发布
Filecoin白皮书的第一个版本在2014年发布。Filecoin是一种可以将数据存储外包给分布式服务提供商的加密货币和文件存储网络。Filecoin的目标是使数据广泛而廉价地可用,并使用浪费的计算资源来完成有用的工作,即有用共识。要实现这一设想,就需要在网络的协议层和服务层进行创新。Filecoin对区块链在概念上的主要扩展是使有用共识与网络的目标相关联:存储文件和检索文件。
在2014年的白皮书中,Filecoin的有用存储服务是建立在比特币的工作量证明共识协议之上的:除了破解密码难题,Filecoin矿工还需要完成一个可检索证明,以确定他们存储的是一个特定文件。2014年的白皮书指出,工作量证明的引入并不是最优的,并提出了从Filecoin协议中删除工作量证明的建议。这一设想形成了接下来几年里Filecoin证明系统大部分工作的基础。
4、2017年Filecoin白皮书发布
2017年,协议实验室发布了Filecoin新版白皮书。落实了在2104年白皮书中首次设想的去中心化存储网络和检索市场。在2014年版本的基础上,2017年版本引入了几个重要的概念和技术进步。
4.1、生态系统日益壮大
2014年到2017年期间,Filecoin网络最重大的概念进展之一是2015年IPFS的推出。IPFS是用于分布式文件系统中存储和共享数据的点对点超媒体协议。IPFS是对内容寻址实际用途的概念证明:通过内容(哈希指纹)引用数据,而不是通过数据在网络中的位置(IP地址)。作为Filecoin存储模型、数据访问的去中心化的一个重要组件,IPFS中的内容寻址允许对等节点在本地交换数据,而无需连接到中心路由器。在IPFS方面的工作也有助于Filecoin开发者获得有关市场结构、激励机制以及隐私保护方面的数据和直觉。
4.2、Filecoin证明系统
2017年的Filecoin白皮书描述了两种新的存储证明:复制证明(PoRep)和时空证明(PoSt)。两种证明结构基于Juels、Kaliski、Shacham和Waters等人在可证明数据持有(provable data possession,PDP)和可检索证明领域的工作,主要是防止存储证明中的三大攻击:女巫(Sybil)攻击、外包攻击和生成攻击。Filecoin的PoRep(复制证明)允许存储提供方(Filecoin网络上的矿机)证明它们存储数据的副本在物理上有独立的位置,且这种证明是可验证的。Filecoin的PoSt(时空证明)用于证明存储提供方在约定的时间段内存储了一个特定的数据副本。PoSt算法作为本质上有用的工作量证明的基础,这是2014年Filecoin白皮书明确提出的目标之一。
对Filecoin证明系统的研究还包括优化区块链中存储证明数据的方法。Filecoin使用零知识证明(zk-SNARK)技术以压缩格式发布PoRep证明数据和PoSt证明数据到区块链上。零知识简洁非交互知识证明(Zero-knowledge Succinct Non-interactive ARguments of Knowledge ,zk-SNARK)是可以公开验证的有效系统:通过一个恒定大小的单个消息,在不暴露出相关信息的隐私部分的情况下,证明某件事情是真的。
4.3、重构共识机制
Filecoin协议的关键改进之一是共识机制,即网络节点对网络状态的协定方式。与经典的比特币共识相比,Filecoin共识协议有两个效率上的优势。第一是运行能耗比比特币低。第二是Filecoin鼓励能源再生:通过为真实客户的真实数据提供可验证的加密云存储服务,而不是把能源浪费在区块链维护上。
目前的Filecoin共识也代表了2014年Filecoin白皮书中描述的系统创新。2017年Filecoin白皮书提出了一种基于有用工作量证明的共识协议,在这个协议中,矿工创建新区块的概率与他们的有效存储占全网存储的比例成正比。这个新的共识协议旨在鼓励矿工投资存储资源,与网络的目标对齐,保证存储证明的计算资源可以重新使用并参与共识,这样可以提高系统的使用效率。矿工提交给网络的时空证明可以用来计算矿工的算力,使得Filecoin中的算力公开且可公开验证。
协议实验室公开的技术报告《算力容错》一文对拜占庭容错进行了建模分析,该建模基于这样一种框架:算力在Filecoin网络中的工作方式,其本质是衡量分布式系统对拜占庭将军问题的敏感性。这种对算力的新理解被应用到Filecoin的“期望共识”(Expected Consensus)协议中,该协议通过私密领导人选举来选择矿工,通过挖出新区块来扩展区块链。Filecoin中的私密领导人选举建立在已有的协议之上,例如PoA,Snow White 和 Algorand,这些协议都是基于算力承诺来选择出块矿工。这些共识方面的技术进步借鉴了密码经济学领域的大量工作,特别是激励的一致性(incentive alignment):Filecoin的私密领导人选举和基于有用共识的区块奖励系统,在矿工和客户之间创建了一个激励机一致性,并且网络的目标是:提供有用的存储。
2017年Filecoin白皮书的出版加速了Filecoin的研究工作,这种活力贯穿了整个测试网阶段。
5、准备启动主网
2017年Filecoin白皮书和2017年Filecoin研究路线图列出了几个需要继续研究的领域。尽管这些已确定的改进中没有一个对启动主网是关键的,但是有大量工作需要推进:对证明系统的改进,可扩展的复制证明,SNARK优化以加速zk-SNARK证明的生成,这些都是从白皮书发布以来到准备启动主网期间非常活跃的研究课题。
除了优化现存协议,白皮书还包括建议扩展Filecoin的功能:建立一个类似于比特币闪电网络的支付网络,可能需要吸收Sprites系统的特性,并且实现智能合约系统:用户可以通过区块链账本与之交互的有状态程序。
当然,在准备启动主网期间,还有很多2017年Filecoin白皮没有预料到的改进。例如,ResNetLab对Filecoin的消息传播协议进行了重大改进,以保持节点同步,避免分叉,并增强网络抵御最具挑战性攻击的能力。也许在这段时间另外一个更重要的改进是Drand随机信标的引入,它利用一个去中心化的网络来产生公开可验证的、无偏的随机数。Drand项目起源于EPFL的DEDIS实验室,是可扩展的抗偏分布式随机性研究的结果,现在是Filecoin节点领导人选举的重要组成部分。Filecoin需要高熵、无偏、可公开验证、不可预测的随机数来进行领导人选举,从而决定哪个矿工将产生区块链的下一个区块,并获得该区块的奖励。另外,随机数还决定PoRep和PoSt的生成。Drand提供了这种“良好的随机性”,使得Filecoin能够保证活性(用户对Filecoin历史的共识)和可验证的存储。
6、构建未来
Filecoin网络在2020年10月出现在区块链的舞台上,为新生的Web 3.0空间引入了令人兴奋的新技术配置和激励机制。但Filecoin仅仅在现实世界中撕开了Web3.0的一条缝,并不意味着构建安全和高效数据存储技术的工作就结束了。研究人员已经开启了Filecoin开发的新阶段:将真实数据集成到研究和部署周期中。
预测和塑造一项新技术的发展轨迹是一个复杂的过程。协议实验室的研究人员,包括CryptoLab、ResNetLab和即将成立的ConsensusLab的成员,以及更广泛的研究团体,对未来的研究领域有一些思考和想法。
- 零知识证明zk-SNARK——目前积极研究的热点,包括使用SNARK聚合技术和设计新的向量承诺(vector commitment)方案,以降低Filecoin SNARK中Merkle树的开销。研究重点包括为SNARK设计更好的系统,涉及多方计算(multiparty computation,MPC)。多方安全计算是网络中的多个节点不透露输入的前提下,基于他们的输入共同计算一个函数。
- 可验证的随机函数VRF——允许公开可验证的确定性承诺。在Filecoin中,VRF作为系统的一部分,用于验证矿工所存储数据的完整性。Filecoin中产生的每个区块都包含从两个随机源(VRF和drand随机信标)中提取的值。矿工提交存储数据的证明,包括在特定时间内添加的随机数,确保矿工是在特定时间点生成的证明。未来的VRF工作将改进随机生成系统。
- 可验证的延迟函数VDF ——保证随机延迟,前提是有硬件假设和其他一部分需求。VDF在公共随机性信标、共识协议的领导人选举和复制证明中发挥重要作用。在Filecoin规范中,VDF目前还没有实现,但它是一个活跃的研究领域。
- 深度鲁棒图DRG——一种有向无环图的结构形式,在Filecoin的复制证明步骤中生成,因为原始数据需要被编码到副本中并提交给区块链。在DRG上的工作是正在进行的证明系统和图结构研究的一部分。
- 向量承诺VC——允许预先秘密承诺的密码原语,这些承诺可以在以后被验证。向量承诺是Filecoin可验证的去中心化存储模型的一个重要组成部分,而新的向量承诺技术是CryptoLab研究的一个活跃领域。
- BLS签名——数字签名的一种形式,一种验证数字数据真实性的方案。随机信标利用阈值BLS结合参与者独立产生的单个部分信标共同计算签名。安全协同计算也是无偏性的一个重要组成部分,也是未来研究的一个课题。
以上,并不是Filecoin项目未来研究方向的详尽清单。密码学专家、区块链专家Dan Boneh在他的《Filecoin Liftoff》炉边谈话中指出,区块链是“部署加密工具的一个惊人的试验场”,部分原因是“区块链的变化速度要快得多”。
研究社区的人们很高兴能够推动且加速Filecoin网络的突破发展。但真正的技术加速将是Filecoin正在被更广泛的Web 3.0社区所广泛采用,并且将研究与现实联系起来,以创造新的技术和应用。
Filecoin的学术谱系
本文是继《比特币的学术谱系》之后,另外一篇详细综述区块链的来龙去脉。有意义的是,《比特币的学术谱系》的综述更多是从数字货币的视角和比特币时代的区块链发展来展开,而本文则是从数据存储和分布式系统的发展来展开,对照阅读,相得益彰。
本文由协议实验室原创发布,taoshengshi翻译整理