Lesson 2

Filecoin的区块链基础

本课程深入探讨了Filecoin的区块链架构,强调了其安全的分布式数据库和类似于智能合约的关键角色——actors的作用。我们将探索Filecoin的独特方面,包括它的共识机制、节点角色,以及支撑网络效率和可扩展性的创新tipset结构。

Filecoin的区块链基础

Filecoin区块链是一个复杂的分布式数据库,由一组计算机节点共享。每个节点都持有区块链的副本,确保网络中的每笔交易和合约义务都被记录且不可篡改,使Filecoin生态系统内所有活动的账本可靠且安全。

参与者(Actor):Filecoin区块链的主力

Filecoin区块链上的参与者充当以太坊虚拟机中的智能合约等价物。每个参与者封装了一组状态变量和方法来与Filecoin网络交互。它们本质上是在区块链上执行操作的代理,如管理存储交易或促进交易。

内置系统参与者

Filecoin的网络由几个处理基本功能的内置系统参与者提供支持:

  • 系统参与者:执行一般网络操作。
  • 初始参与者:负责初始化新参与者和管理网络命名协定。
  • Cron参与者:充当网络的调度程序,在每个时段触发基本功能。
  • 帐户参与者:管理超出单例模式范围的用户帐户。
  • 存储矿工参与者:协调存储挖矿操作并验证存储证明。
  • 存储市场参与者:管理网络市场内的存储交易。
  • 多重签名参与者:处理涉及Filecoin多重签名钱包的操作。
  • 支付渠道参与者:管理支付渠道的建立和结算。
  • Datacap参与者:监督datacap代币的分配和管理。
  • 已验证的注册表参与者:管理网络内已验证的客户端。
  • EVM账户参与者:代表外部以太坊身份,促进与基于以太坊的系统的互操作性。

用户可编程参与者

随着Filecoin虚拟机(FVM)的成熟,开发人员有机会编写和部署自己的参与者,类似于其他区块链上的智能合约。这些用户可编程的参与者可以通过导出的API与内置参与者交互,从而在Filecoin网络之上构建各种应用和服务。

Filecoin中的分布式随机性

Filecoin利用分布式且可公开验证的随机性协议Drand作为区块生产期间领导者选举的随机性来源。这种随机性对于确保过程不可预测、公正和可验证、维护挖矿过程的公平性和安全性至关重要。

节点及其角色

Filecoin网络上的节点主要根据它们提供的服务进行分类:

  • 链验证节点:验证区块链并执行共识规则。
  • 客户端节点:与网络交互以存储和检索数据。
  • 存储提供者节点:为网络提供存储容量并证明持续存储。
  • 检索提供者节点:在请求时快速可靠地提供存储的数据。
  • Filecoin协议的多种执行方式并存,以增强网络的安全性和韧性,确保没有单点故障,并促进健康的去中心化。

地址:识别Filecoin中的参与者

Filecoin中的地址是用于唯一标识网络上的参与者或用户的字母数字字符串,促进交易和智能合约执行等交互。这些地址有多种形式,反映了它们所代表的不同类型的参与者。

  • ID地址(f0):参与者的数字标识符,提供一种人类可读的方式来标记网络参与者。
  • Secp256k1地址(f1):源自使用secp256k1加密标准的公钥,通常用于钱包。
  • 参与者地址(f2):分配给智能合约并在网络分叉中保持强大。
  • BLS地址(f3):由BLS公钥生成,用于BLS加密的钱包。
  • 用户定义的参与者地址(f4):可以由用户可定义的地址管理参与者分配的一种灵活地址,允许自定义和可扩展的寻址方案。
  • 每种地址类型在Filecoin的生态系统中都有特定的用途,包括促进交易、管理智能合约和用户交互等。

Tipset和块

Filecoin的区块链与线性区块序列的常规模式有所不同。在这里,块被分组为“tipset”,我们可以将“tipset”理解为网络在每个区块链事件中的一个固定时间间隔的状态快照。该模型通过同时生成多个有效块来实现更灵活和高效的区块链。

Filecoin区块的结构

Filecoin中的每个区块都是一个包含区块头和一系列消息的捆绑包,这些消息表示参与者采取的行动,如交易或合约协议。区块头包括矿工的地址、票据(工作量证明)和父区块的CID等元数据。消息是区块的主要内容,记录代币转移和合约调用等状态变化。区块至少与一个父区块链接,形成与创世区块连续的链。

区块时间:实现网络的同步

Filecoin中的区块时间设置为平均30秒。这个时间间隔是一种战略性的选择,以平衡网络的响应能力和其操作的实用性。较短的区块时间可以提高网络的速度,但也会对硬件提出更高的要求,并可能导致更频繁的区块时间故障。30秒的区块时间使存储提供商有足够的时间执行必要的操作,例如密封分区和生成证明,而不会使其硬件负担过重。

Tipset:实现效率和奖励最大化

在给定的时段,多个存储提供商可以成功挖掘区块。Filecoin的tipset结构通过将所有具有相同高度和父区块的有效区块捆绑到一个组中来适应这一点。这意味着所有有效的工作都有助于网络状态的形成并能够获得奖励,这是一个鼓励矿工参与和协作的重要功能。它还确保网络能够有效地处理分叉,迅速就规范链达成共识。

与传统区块链相比,tipset系统具有多个优势:

  • 增加网络吞吐量:通过使用所有有效块来确定网络状态,Filecoin可以在每个纪元处理更多数据和交易。
  • 奖励有效工作:每个产生有效区块的存储提供商都会获得奖励,从而激励矿工为网络做出贡献,避免中心化。
  • 合作而非竞争:鼓励潜在的区块生产者合作,因为tipset结构阻止了可能对网络增长有益的区块的保留。
  • 适应分叉:通过tipset架构,Filecoin在分叉期间实现更快的聚合,确保网络稳定性。

以太坊JSON-RPC和Filecoin

值得注意的是,随着Filecoin EVM运行时的集成和以太坊JSON-RPC标准的采用,“tipset”的概念变得更加用户友好。在这种情况下,当我们谈论以太坊JSON-RPC中的“区块哈希”时,我们实际上是指tipset的哈希,它包含了该tipset中所有块的组合状态变化。

随着我们对Filecoin区块链探索的深入,我们将看到这些组件如何相互作用,以创建一个强大、高效并具有未来增长潜力的去中心化存储网络。

Filecoin共识

Filecoin的共识机制被称为预期共识(EC),是其去中心化存储网络的基石。接下来,我们将探讨EC的操作原理、技术规范以及在维护Filecoin网络完整性和可靠性方面发挥的作用。

Filecoin运行在一个独特的共识机制上,称为预期共识(EC)。与通常依赖于工作量证明(PoW)或权益证明(PoS)的传统区块链协议不同,预期共识融合了随机性、存储能力和概率拜占庭容错等元素。EC的设计的核心是使激励措施与Filecoin的主要目标保持一致,即高效可靠地存储数据。

预期共识的本质

  • 去中心化和可靠性:预期共识的主要目标是营造一个去中心化的环境,使数据存储和检索既可靠又可验证。
  • 以存储为中心的方法:与专注于计算能力或代币持有的传统区块链不同,Filecoin的预期共识重点关注存储数据的能力。

预期共识的核心机制

预期共识的操作框架围绕着几个关键组成部分展开,每个组成部分在网络的功能中发挥着至关重要的作用。

  1. 概率拜占庭容错:
    预期共识结合了拜占庭容错机制,使其能够抵御一系列对抗性条件,包括节点恶意行为或离线。

  2. 领导者选举和区块生产:
    预期共识的核心是领导者选举过程。与其他区块链中看到的确定性过程不同,预期共识采用概率方法来选择负责区块创建的领导者或矿工。

  3. 选举状态匿名性:

采用预期共识的矿工保持匿名,直到他们可以通过“选举证明”证明他们的选举状态。这种证明对于确保区块生产的公平性和不可预测性至关重要。

  1. 存储证明:

矿工需要提交“WinningPoSt”(时空证明),以验证他们对网络存储容量的贡献。

预期共识的技术规范

预期共识的技术基础是其创新性的真正体现。接下来,我们将探讨定义这种共识机制的一些关键规范:

通过DRAND的随机性:

  • 预期共识使用DRAND(一个外部的、无偏随机性信标)来促进协议各个方面的实施,包括领导者选举。

可验证随机函数(VRF):

  • 矿工利用VRF以及从DRAND获得的随机性来生成他们的选举证明。

选举证明和VRF链:

  • 选举证明对于矿工证明他们被合法选举产生区块至关重要。
  • 维护一个连续的VRF链,该链随着每个新块的产生而扩展。

存储能力和WinCount:

  • 矿工在网络中的算力与其存储能力成正比。
  • WinCount根据矿工的存储能力和VRF的结果确定矿工可以生产的区块数。

共识的安全性和公平性

安全和公平在预期共识中至关重要,它们受到以下几个机制的保障:
共识错误和处罚:

  • 预期共识定义了特定类型的共识错误(如双重分叉挖矿、时间偏移挖矿),并施加惩罚以阻止恶意行为。

图片来源: Filecoin的文档资料:https://spec.filecoin.io/algorithms/expected_consensus/

链加权和选择:

  • 该协议采用独特的链加权系统,其中,“最重”的链(表示最大累积存储能力)受到青睐。
    软终结性:
  • 预期共识采用一种软终结性形式,拒绝明显偏离链的块,从而增强网络稳定性。
  • Drand:Filecoin中的分布式随机性

Drand(分布式随机性)是Filecoin共识机制的关键组成部分,为网络的秘密领导人选举过程提供了一个可靠来源。它是一种公开可验证的随机信标协议,旨在生成一系列确定、可验证的随机值。

Drand的工作原理

  • 多方计算(MPC):Drand运行一系列MPC以生成随机值。在经过可信设置阶段之后,一组已知的Drand节点在定期发生的连续轮次中使用阈值BLS签名对给定消息进行签名。
  • 阈值BLS签名:该过程需要最少数量的节点(t/n)来对消息进行签名。任何具有t个签名的节点都可以重建完整的BLS签名。当对签名进行哈希运算时,会产生一个集体随机值,该值可以使用设置阶段的公钥进行验证。
  • 安全假设:Drand假设n个节点中至少有t个是诚实且在线的。如果这个阈值被打破,对手可以停止随机性的产生,但不能偏向随机性。

Drand随机性输出

  • Drand值格式:Filecoin节点以特定格式获取drand值。关键构成包括:
  • Signature:前一个签名值和当前整数的BLS签名。
  • PreviousSignature:来自先前Drand轮次的BLS签名。
  • Round:Drand网络生成的序列中的随机性索引。

在Filecoin中使用Drand

  • 领导者选举:Drand用于Filecoin中的领导者选举,在每个时段提供一个随机值。这种随机性对于预期共识(EC)算法至关重要,确保公平和不可预测的领导者选择。
  • 获取Drand值:Filecoin节点使用特定端点从Drand中检索最新的随机性值。然后将此信息与链上数据集成,以支持Filecoin的共识机制。
  • 证明:确保完整性和信任

Filecoin中的证明用于验证存储提供商是否按照网络标准正确存储数据。这些证明对于维护去中心化存储系统的完整性和可信度至关重要。

Filecoin中的证明类型

  • 复制证明(PoRep):在初始数据存储时使用,PoRep验证存储提供者是否已创建并存储数据的唯一副本。
  • 时空证明(PoSt):持续验证存储提供商是否随时间维护存储的数据。PoSt进一步分为WinningPoSt和WindowPoSt,在网络中用于不同的验证目的。

PoRep和PoSt的作用

  • PoRep:验证存储提供商对数据的初始复制,确保数据被唯一编码和密封。
  • PoSt:WinningPoSt用于区块共识过程,而WindowPoSt持续审核存储提供商,确保持续遵守存储协议。
  • Filecoin的共识机制结合了EC、Drand和加密证明,构成了一个强大可靠的去中心化存储网络的支柱。这些元素协同工作,确保网络保持安全、高效和公平,营造一个数据完整性至关重要的环境。随着我们对Filecoin区块链的深入,我们将会更清晰地认识到其共识模型的独创性和复杂性,彰显Filecoin彻底改变数字存储领域的潜力。
Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 2

Filecoin的区块链基础

本课程深入探讨了Filecoin的区块链架构,强调了其安全的分布式数据库和类似于智能合约的关键角色——actors的作用。我们将探索Filecoin的独特方面,包括它的共识机制、节点角色,以及支撑网络效率和可扩展性的创新tipset结构。

Filecoin的区块链基础

Filecoin区块链是一个复杂的分布式数据库,由一组计算机节点共享。每个节点都持有区块链的副本,确保网络中的每笔交易和合约义务都被记录且不可篡改,使Filecoin生态系统内所有活动的账本可靠且安全。

参与者(Actor):Filecoin区块链的主力

Filecoin区块链上的参与者充当以太坊虚拟机中的智能合约等价物。每个参与者封装了一组状态变量和方法来与Filecoin网络交互。它们本质上是在区块链上执行操作的代理,如管理存储交易或促进交易。

内置系统参与者

Filecoin的网络由几个处理基本功能的内置系统参与者提供支持:

  • 系统参与者:执行一般网络操作。
  • 初始参与者:负责初始化新参与者和管理网络命名协定。
  • Cron参与者:充当网络的调度程序,在每个时段触发基本功能。
  • 帐户参与者:管理超出单例模式范围的用户帐户。
  • 存储矿工参与者:协调存储挖矿操作并验证存储证明。
  • 存储市场参与者:管理网络市场内的存储交易。
  • 多重签名参与者:处理涉及Filecoin多重签名钱包的操作。
  • 支付渠道参与者:管理支付渠道的建立和结算。
  • Datacap参与者:监督datacap代币的分配和管理。
  • 已验证的注册表参与者:管理网络内已验证的客户端。
  • EVM账户参与者:代表外部以太坊身份,促进与基于以太坊的系统的互操作性。

用户可编程参与者

随着Filecoin虚拟机(FVM)的成熟,开发人员有机会编写和部署自己的参与者,类似于其他区块链上的智能合约。这些用户可编程的参与者可以通过导出的API与内置参与者交互,从而在Filecoin网络之上构建各种应用和服务。

Filecoin中的分布式随机性

Filecoin利用分布式且可公开验证的随机性协议Drand作为区块生产期间领导者选举的随机性来源。这种随机性对于确保过程不可预测、公正和可验证、维护挖矿过程的公平性和安全性至关重要。

节点及其角色

Filecoin网络上的节点主要根据它们提供的服务进行分类:

  • 链验证节点:验证区块链并执行共识规则。
  • 客户端节点:与网络交互以存储和检索数据。
  • 存储提供者节点:为网络提供存储容量并证明持续存储。
  • 检索提供者节点:在请求时快速可靠地提供存储的数据。
  • Filecoin协议的多种执行方式并存,以增强网络的安全性和韧性,确保没有单点故障,并促进健康的去中心化。

地址:识别Filecoin中的参与者

Filecoin中的地址是用于唯一标识网络上的参与者或用户的字母数字字符串,促进交易和智能合约执行等交互。这些地址有多种形式,反映了它们所代表的不同类型的参与者。

  • ID地址(f0):参与者的数字标识符,提供一种人类可读的方式来标记网络参与者。
  • Secp256k1地址(f1):源自使用secp256k1加密标准的公钥,通常用于钱包。
  • 参与者地址(f2):分配给智能合约并在网络分叉中保持强大。
  • BLS地址(f3):由BLS公钥生成,用于BLS加密的钱包。
  • 用户定义的参与者地址(f4):可以由用户可定义的地址管理参与者分配的一种灵活地址,允许自定义和可扩展的寻址方案。
  • 每种地址类型在Filecoin的生态系统中都有特定的用途,包括促进交易、管理智能合约和用户交互等。

Tipset和块

Filecoin的区块链与线性区块序列的常规模式有所不同。在这里,块被分组为“tipset”,我们可以将“tipset”理解为网络在每个区块链事件中的一个固定时间间隔的状态快照。该模型通过同时生成多个有效块来实现更灵活和高效的区块链。

Filecoin区块的结构

Filecoin中的每个区块都是一个包含区块头和一系列消息的捆绑包,这些消息表示参与者采取的行动,如交易或合约协议。区块头包括矿工的地址、票据(工作量证明)和父区块的CID等元数据。消息是区块的主要内容,记录代币转移和合约调用等状态变化。区块至少与一个父区块链接,形成与创世区块连续的链。

区块时间:实现网络的同步

Filecoin中的区块时间设置为平均30秒。这个时间间隔是一种战略性的选择,以平衡网络的响应能力和其操作的实用性。较短的区块时间可以提高网络的速度,但也会对硬件提出更高的要求,并可能导致更频繁的区块时间故障。30秒的区块时间使存储提供商有足够的时间执行必要的操作,例如密封分区和生成证明,而不会使其硬件负担过重。

Tipset:实现效率和奖励最大化

在给定的时段,多个存储提供商可以成功挖掘区块。Filecoin的tipset结构通过将所有具有相同高度和父区块的有效区块捆绑到一个组中来适应这一点。这意味着所有有效的工作都有助于网络状态的形成并能够获得奖励,这是一个鼓励矿工参与和协作的重要功能。它还确保网络能够有效地处理分叉,迅速就规范链达成共识。

与传统区块链相比,tipset系统具有多个优势:

  • 增加网络吞吐量:通过使用所有有效块来确定网络状态,Filecoin可以在每个纪元处理更多数据和交易。
  • 奖励有效工作:每个产生有效区块的存储提供商都会获得奖励,从而激励矿工为网络做出贡献,避免中心化。
  • 合作而非竞争:鼓励潜在的区块生产者合作,因为tipset结构阻止了可能对网络增长有益的区块的保留。
  • 适应分叉:通过tipset架构,Filecoin在分叉期间实现更快的聚合,确保网络稳定性。

以太坊JSON-RPC和Filecoin

值得注意的是,随着Filecoin EVM运行时的集成和以太坊JSON-RPC标准的采用,“tipset”的概念变得更加用户友好。在这种情况下,当我们谈论以太坊JSON-RPC中的“区块哈希”时,我们实际上是指tipset的哈希,它包含了该tipset中所有块的组合状态变化。

随着我们对Filecoin区块链探索的深入,我们将看到这些组件如何相互作用,以创建一个强大、高效并具有未来增长潜力的去中心化存储网络。

Filecoin共识

Filecoin的共识机制被称为预期共识(EC),是其去中心化存储网络的基石。接下来,我们将探讨EC的操作原理、技术规范以及在维护Filecoin网络完整性和可靠性方面发挥的作用。

Filecoin运行在一个独特的共识机制上,称为预期共识(EC)。与通常依赖于工作量证明(PoW)或权益证明(PoS)的传统区块链协议不同,预期共识融合了随机性、存储能力和概率拜占庭容错等元素。EC的设计的核心是使激励措施与Filecoin的主要目标保持一致,即高效可靠地存储数据。

预期共识的本质

  • 去中心化和可靠性:预期共识的主要目标是营造一个去中心化的环境,使数据存储和检索既可靠又可验证。
  • 以存储为中心的方法:与专注于计算能力或代币持有的传统区块链不同,Filecoin的预期共识重点关注存储数据的能力。

预期共识的核心机制

预期共识的操作框架围绕着几个关键组成部分展开,每个组成部分在网络的功能中发挥着至关重要的作用。

  1. 概率拜占庭容错:
    预期共识结合了拜占庭容错机制,使其能够抵御一系列对抗性条件,包括节点恶意行为或离线。

  2. 领导者选举和区块生产:
    预期共识的核心是领导者选举过程。与其他区块链中看到的确定性过程不同,预期共识采用概率方法来选择负责区块创建的领导者或矿工。

  3. 选举状态匿名性:

采用预期共识的矿工保持匿名,直到他们可以通过“选举证明”证明他们的选举状态。这种证明对于确保区块生产的公平性和不可预测性至关重要。

  1. 存储证明:

矿工需要提交“WinningPoSt”(时空证明),以验证他们对网络存储容量的贡献。

预期共识的技术规范

预期共识的技术基础是其创新性的真正体现。接下来,我们将探讨定义这种共识机制的一些关键规范:

通过DRAND的随机性:

  • 预期共识使用DRAND(一个外部的、无偏随机性信标)来促进协议各个方面的实施,包括领导者选举。

可验证随机函数(VRF):

  • 矿工利用VRF以及从DRAND获得的随机性来生成他们的选举证明。

选举证明和VRF链:

  • 选举证明对于矿工证明他们被合法选举产生区块至关重要。
  • 维护一个连续的VRF链,该链随着每个新块的产生而扩展。

存储能力和WinCount:

  • 矿工在网络中的算力与其存储能力成正比。
  • WinCount根据矿工的存储能力和VRF的结果确定矿工可以生产的区块数。

共识的安全性和公平性

安全和公平在预期共识中至关重要,它们受到以下几个机制的保障:
共识错误和处罚:

  • 预期共识定义了特定类型的共识错误(如双重分叉挖矿、时间偏移挖矿),并施加惩罚以阻止恶意行为。

图片来源: Filecoin的文档资料:https://spec.filecoin.io/algorithms/expected_consensus/

链加权和选择:

  • 该协议采用独特的链加权系统,其中,“最重”的链(表示最大累积存储能力)受到青睐。
    软终结性:
  • 预期共识采用一种软终结性形式,拒绝明显偏离链的块,从而增强网络稳定性。
  • Drand:Filecoin中的分布式随机性

Drand(分布式随机性)是Filecoin共识机制的关键组成部分,为网络的秘密领导人选举过程提供了一个可靠来源。它是一种公开可验证的随机信标协议,旨在生成一系列确定、可验证的随机值。

Drand的工作原理

  • 多方计算(MPC):Drand运行一系列MPC以生成随机值。在经过可信设置阶段之后,一组已知的Drand节点在定期发生的连续轮次中使用阈值BLS签名对给定消息进行签名。
  • 阈值BLS签名:该过程需要最少数量的节点(t/n)来对消息进行签名。任何具有t个签名的节点都可以重建完整的BLS签名。当对签名进行哈希运算时,会产生一个集体随机值,该值可以使用设置阶段的公钥进行验证。
  • 安全假设:Drand假设n个节点中至少有t个是诚实且在线的。如果这个阈值被打破,对手可以停止随机性的产生,但不能偏向随机性。

Drand随机性输出

  • Drand值格式:Filecoin节点以特定格式获取drand值。关键构成包括:
  • Signature:前一个签名值和当前整数的BLS签名。
  • PreviousSignature:来自先前Drand轮次的BLS签名。
  • Round:Drand网络生成的序列中的随机性索引。

在Filecoin中使用Drand

  • 领导者选举:Drand用于Filecoin中的领导者选举,在每个时段提供一个随机值。这种随机性对于预期共识(EC)算法至关重要,确保公平和不可预测的领导者选择。
  • 获取Drand值:Filecoin节点使用特定端点从Drand中检索最新的随机性值。然后将此信息与链上数据集成,以支持Filecoin的共识机制。
  • 证明:确保完整性和信任

Filecoin中的证明用于验证存储提供商是否按照网络标准正确存储数据。这些证明对于维护去中心化存储系统的完整性和可信度至关重要。

Filecoin中的证明类型

  • 复制证明(PoRep):在初始数据存储时使用,PoRep验证存储提供者是否已创建并存储数据的唯一副本。
  • 时空证明(PoSt):持续验证存储提供商是否随时间维护存储的数据。PoSt进一步分为WinningPoSt和WindowPoSt,在网络中用于不同的验证目的。

PoRep和PoSt的作用

  • PoRep:验证存储提供商对数据的初始复制,确保数据被唯一编码和密封。
  • PoSt:WinningPoSt用于区块共识过程,而WindowPoSt持续审核存储提供商,确保持续遵守存储协议。
  • Filecoin的共识机制结合了EC、Drand和加密证明,构成了一个强大可靠的去中心化存储网络的支柱。这些元素协同工作,确保网络保持安全、高效和公平,营造一个数据完整性至关重要的环境。随着我们对Filecoin区块链的深入,我们将会更清晰地认识到其共识模型的独创性和复杂性,彰显Filecoin彻底改变数字存储领域的潜力。
Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.