Lição 2

Noções básicas de blockchain do Filecoin

1

Fundamentos do Blockchain no Filecoin

O blockchain Filecoin é um intrincado banco de dados distribuído compartilhado entre uma rede de nós de computador. Cada nó possui uma cópia do blockchain, garantindo que todas as transações e obrigações contratuais na rede sejam registradas e imutáveis. Isto fornece um registro confiável e seguro de todas as atividades dentro do ecossistema Filecoin.

Atores: os burros de carga do Blockchain do Filecoin

Os atores no blockchain do Filecoin servem como equivalentes aos contratos inteligentes na Máquina Virtual Ethereum. Cada ator encapsula um conjunto de variáveis de estado e métodos para interagir com a rede Filecoin. Eles são essencialmente os agentes que realizam ações na blockchain, como gerenciar acordos de armazenamento ou facilitar transações.

Atores de sistema integrados

A rede do Filecoin é alimentada por vários atores de sistema integrados que lidam com funções essenciais:

  • Ator do Sistema: Executa operações gerais de rede.
  • Ator Init: Responsável por inicializar novos atores e gerenciar convenções de nomenclatura de rede.
  • Ator Cron: Atua como agendador da rede, acionando funções essenciais em cada época.
  • Ator de conta: gerencia contas de usuário além do escopo do padrão singleton.
  • Ator do Minerador de Armazenamento: Coordena as operações de mineração de armazenamento e valida as provas de armazenamento.
  • Ator do mercado de armazenamento: gerencia negócios de armazenamento no mercado da rede.
  • Ator Multisig: Lida com operações envolvendo a carteira multi-assinatura do Filecoin.
  • Ator de Canal de Pagamento: Gerencia o estabelecimento e liquidação de canais de pagamento.
  • Ator do Datacap: supervisiona a alocação e o gerenciamento de tokens do datacap.
  • Ator de registro verificado: gerencia clientes verificados na rede.
  • Ator de conta EVM: Representa identidades externas do Ethereum, facilitando a interoperabilidade com sistemas baseados no Ethereum.

Atores programáveis pelo usuário

À medida que a Máquina Virtual Filecoin (FVM) amadurece, os desenvolvedores têm a oportunidade de escrever e implantar seus próprios atores, semelhantes aos contratos inteligentes em outras blockchains. Esses atores programáveis pelo usuário podem interagir com os atores integrados por meio de APIs exportadas, permitindo que uma ampla gama de aplicativos e serviços sejam construídos na rede Filecoin.

Aleatoriedade distribuída no Filecoin

Filecoin utiliza um protocolo de aleatoriedade distribuído e publicamente verificável conhecido como Drand como fonte de aleatoriedade para eleição de líder durante a produção de blocos. Esta aleatoriedade é essencial para garantir que o processo seja imprevisível, imparcial e verificável, mantendo a justiça e a segurança do processo de mineração.

Nós e suas funções

Os nós da rede Filecoin são classificados principalmente pelos serviços que fornecem:

  • Nós verificadores de cadeia: valide o blockchain e aplique regras de consenso.
  • Nós clientes: interagem com a rede para armazenar e recuperar dados.
  • Nós do provedor de armazenamento: oferecem capacidade de armazenamento à rede e comprovam armazenamento contínuo.
  • Nós do provedor de recuperação: forneça dados armazenados de forma rápida e confiável quando solicitado.
  • Múltiplas implementações do protocolo Filecoin coexistem para melhorar a segurança e a resiliência da rede, garantindo que não haja nenhum ponto único de falha e promovendo uma descentralização saudável.

Endereços: Identificação de atores no Filecoin

Os endereços no Filecoin são cadeias alfanuméricas que identificam exclusivamente atores ou usuários na rede, facilitando interações como transações e execuções de contratos inteligentes. Esses endereços assumem diversas formas, refletindo os diferentes tipos de atores que representam:

  • Endereços de ID (f0): Identificadores numéricos para atores, fornecendo uma maneira legível para fazer referência aos participantes da rede.
  • Endereços Secp256k1 (f1): Derivado de chaves públicas usando o padrão de criptografia secp256k1, comumente usado para carteiras.
  • Endereços de atores (f2): atribuídos a contratos inteligentes e permanecem robustos em todas as bifurcações da rede.
  • Endereços BLS (f3): Gerados a partir de chaves públicas BLS e usados para carteiras com criptografia BLS.
  • Endereços de atores definidos pelo usuário (f4): endereços flexíveis que podem ser atribuídos por atores de gerenciamento de endereços definidos pelo usuário, permitindo esquemas de endereçamento personalizados e extensíveis.
  • Cada tipo de endereço atende a um propósito específico dentro do ecossistema do Filecoin, desde facilitar transações até gerenciar contratos inteligentes e interações de usuários.

Dicas e blocos

A blockchain do Filecoin se desvia da norma de uma sequência linear de blocos. Aqui, os blocos são agrupados em “tipsets”, que podem ser considerados instantâneos do estado da rede em cada época ou um intervalo de tempo fixo no jargão do blockchain. Este modelo permite um blockchain mais flexível e eficiente, permitindo a produção de vários blocos válidos ao mesmo tempo.

A anatomia de um bloco Filecoin

Cada bloco no Filecoin é um pacote contendo um cabeçalho e uma série de mensagens que representam as ações realizadas pelos atores, como transações ou acordos contratuais. O cabeçalho do bloco inclui metadados como o endereço do minerador, o ticket (comprovante de trabalho) e os CIDs dos blocos pais. As mensagens são a essência do bloco, registrando mudanças de estado, como transferências de tokens e chamadas de contrato. Os blocos estão ligados a pelo menos um bloco pai, formando uma cadeia contínua de volta ao bloco gênese.

Blocktime: sincronizando o pulso da rede

O tempo de bloqueio no Filecoin é definido em uma média de 30 segundos. Esse intervalo foi estrategicamente escolhido para equilibrar a capacidade de resposta da rede e a praticidade de sua operação. Um tempo de bloqueio mais curto poderia aumentar a velocidade da rede, mas também imporia maiores demandas de hardware e poderia levar a falhas de tempo de bloqueio mais frequentes. O tempo de bloqueio de 30 segundos permite que os provedores de armazenamento tenham tempo suficiente para realizar as operações necessárias, como selar setores e gerar provas, sem sobrecarregar seu hardware.

Tipsets: Maximizando a Eficiência e a Recompensa

Em uma determinada época, é possível que vários provedores de armazenamento extraiam blocos com sucesso. A estrutura tipset do Filecoin acomoda isso agrupando todos os blocos válidos com a mesma altura e pai em um único grupo. Isto significa que todo trabalho válido contribui para o estado da rede e é recompensado, uma característica importante que incentiva a participação e colaboração entre os mineiros. Também garante que a rede possa lidar com bifurcações de maneira eficiente, alcançando rapidamente um consenso na cadeia canônica.

O sistema tipset oferece diversas vantagens sobre os blockchains tradicionais:

  • Maior rendimento da rede: Ao usar todos os blocos válidos para determinar o estado da rede, o Filecoin pode processar mais dados e transações em cada época.
  • Recompensando Trabalho Válido: Todo provedor de armazenamento que produz um bloco válido recebe uma recompensa, incentivando assim os mineradores a contribuir com a rede e desencorajando a centralização.
  • Colaboração em detrimento da concorrência: Os potenciais produtores de blocos são incentivados a colaborar, uma vez que a estrutura do tipset desincentiva a retenção de blocos que poderiam ser benéficos para o crescimento da rede.
  • Resiliência aos Forks: Com a arquitetura tipset, o Filecoin alcança uma convergência mais rápida durante os forks, garantindo a estabilidade da rede.
  • O Ethereum JSON-RPC e Filecoin

É importante notar que com a integração do tempo de execução Filecoin EVM e a adoção dos padrões Ethereum JSON-RPC, a noção de ‘tipset’ torna-se ainda mais fácil de usar. Neste contexto, quando falamos sobre um 'hash de bloco' no Ethereum JSON-RPC, estamos na verdade nos referindo ao hash de um tipset, que abrange as mudanças de estado combinadas de todos os blocos dentro desse tipset.

À medida que continuamos a explorar o blockchain do Filecoin, veremos como esses componentes interagem para criar uma rede de armazenamento descentralizada que seja robusta, eficiente e preparada para crescimento futuro.

Consenso sobre Filecoin

O mecanismo de consenso do Filecoin, conhecido como Consenso Esperado (EC), representa uma pedra angular na sua rede de armazenamento descentralizada. Este capítulo tem como objetivo fornecer uma introdução ao EC, aprofundando-se nos seus princípios operacionais, especificações técnicas e no papel que desempenha na manutenção da integridade e fiabilidade da rede Filecoin.

Filecoin opera em um mecanismo de consenso único denominado Consenso Esperado (EC). Ao contrário dos protocolos blockchain tradicionais que muitas vezes dependem de Prova de Trabalho (PoW) ou Prova de Participação (PoS), o EC combina elementos de aleatoriedade, poder de armazenamento e tolerância probabilística a falhas bizantinas. Na sua essência, o EC foi concebido para alinhar os incentivos com o objetivo principal do Filecoin: armazenar dados de forma eficiente e fiável.

A Essência da CE

  • Descentralização e Confiabilidade: O objetivo principal da CE é promover um ambiente descentralizado onde o armazenamento e a recuperação de dados sejam confiáveis e verificáveis.
  • Abordagem centrada no armazenamento: Ao contrário dos blockchains tradicionais que se concentram no poder computacional ou na posse de moedas, o EC do Filecoin prioriza o poder de armazenamento – a capacidade de armazenar dados.

Mecânica Central do Consenso Esperado

O quadro operacional da CE gira em torno de vários componentes-chave, cada um desempenhando um papel vital na funcionalidade da rede.

  1. Tolerância probabilística a falhas bizantinas:
  • O EC incorpora mecanismos bizantinos de tolerância a falhas, tornando-o resiliente a uma série de condições adversárias, incluindo nós agindo maliciosamente ou ficando offline.
  1. Eleição de Líder e Produção de Bloco:
  • No cerne da CE está um processo de eleição de líderes. Ao contrário dos processos determinísticos vistos em outras blockchains, a EC emprega um método probabilístico para selecionar líderes ou mineradores responsáveis pela criação de blocos.
  1. Anonimato até comprovada eleição:
  • Os mineiros dentro da CE permanecem anónimos até que possam provar o seu estatuto eleitoral através de uma 'ElectionProof'. Esta prova é fundamental para garantir justiça e imprevisibilidade na produção de blocos.
  1. Prova de armazenamento:
  • Os mineiros são obrigados a submeter um ‘WinningPoSt’ (Prova de Espaço-Tempo), validando a sua contribuição para a capacidade de armazenamento da rede.

Especificações Técnicas da CE

Os fundamentos técnicos da CE são onde a sua natureza inovadora realmente brilha. Aqui, exploramos algumas das principais especificações que definem esse mecanismo de consenso:

Aleatoriedade via DRAND:

  • A CE usa DRAND, um farol de aleatoriedade externo e imparcial, para facilitar vários aspectos do protocolo, incluindo a eleição de líderes.

Função Aleatória Verificável (VRF):

  • Os mineradores utilizam um VRF, juntamente com a aleatoriedade obtida do DRAND, para gerar seu ElectionProof.

Cadeia ElectionProof e VRF:

  • O ElectionProof é crucial para os mineradores demonstrarem que foram eleitos legitimamente para produzir um bloco.
  • Uma cadeia VRF contínua é mantida, estendendo-se a cada novo bloco produzido.

Potência de armazenamento e WinCount:

  • O poder de um mineiro na rede é proporcional à sua capacidade de armazenamento.
  • WinCount determina o número de blocos que um minerador pode produzir, com base em seu poder de armazenamento e no resultado de seu VRF.
  • Segurança e justiça de consenso

A segurança e a justiça são fundamentais na CE, com vários mecanismos em vigor para salvaguardar estes princípios:

Falhas e penalidades de consenso:

A CE define tipos específicos de falhas de consenso (por exemplo, Double-Fork Mining, Time-Offset Mining) e impõe penalidades para impedir comportamentos maliciosos.

Fonte das imagens: Documentação do Filecoin aqui: https://spec.filecoin.io/algorithms/expected_consensus/

Ponderação e Seleção da Cadeia:

  • O protocolo emprega um sistema único de ponderação de cadeia, onde a cadeia “mais pesada”, indicativa do poder de armazenamento mais cumulativo, é favorecida.

Finalidade Suave:

  • A CE emprega uma forma de finalidade suave, rejeitando blocos que se desviem significativamente da cadeia, reforçando assim a estabilidade da rede.

Drand: Aleatoriedade Distribuída no Filecoin

Drand (aleatoriedade distribuída) é um componente crítico do mecanismo de consenso do Filecoin, fornecendo uma fonte imparcial de entropia essencial para o processo secreto de eleição do líder da rede. É um protocolo de beacon aleatório publicamente verificável, projetado para gerar uma série de valores aleatórios determinísticos e verificáveis.

Como funciona Drand

  • Computações multipartidárias (MPCs): Drand executa uma série de MPCs para produzir valores aleatórios. Após uma fase de configuração confiável, um grupo de nós drand conhecidos assina uma determinada mensagem usando assinaturas BLS de limite em rodadas sucessivas que ocorrem em intervalos regulares.
  • Limite de assinaturas BLS: O processo requer um número mínimo de nós (t-de-n) para assinar uma mensagem. Qualquer nó com t de assinaturas pode reconstruir a assinatura BLS completa. Esta assinatura, quando hash, produz um valor aleatório coletivo que pode ser verificado em relação à chave pública desde a fase de configuração.
  • Premissas de segurança: Drand assume que pelo menos t dos n nós são honestos e online. Se esse limite for quebrado, o adversário pode interromper a produção de aleatoriedade, mas não pode distorcer a aleatoriedade.

Saídas de aleatoriedade Drand

Formato de valor Drand: os nós do Filecoin obtêm valores drand em um formato específico. Os principais componentes incluem:

  • Assinatura: Uma assinatura BLS no valor da assinatura anterior e no número da rodada atual.
  • PreviousSignature: A assinatura BLS da rodada Drand anterior.
  • Rodada: O índice de aleatoriedade na sequência produzida pela rede Drand.

Usando Drand no Filecoin

  • Eleição de Líder: Drand é usado para eleição de líder no Filecoin, fornecendo um valor aleatório em cada época. Essa aleatoriedade é crítica para o algoritmo de Consenso Esperado (EC), garantindo uma seleção de líderes justa e imprevisível.
  • Buscando valores de Drand: os nós do Filecoin recuperam o valor de aleatoriedade mais recente de Drand usando endpoints específicos. Essas informações são então integradas aos dados da rede para apoiar o mecanismo de consenso do Filecoin.

Provas: Garantindo Integridade e Confiança

As provas no Filecoin servem para validar se os provedores de armazenamento estão armazenando dados adequadamente de acordo com os padrões da rede. Estas provas são essenciais para manter a integridade e a confiabilidade do sistema de armazenamento descentralizado.

Tipos de provas no Filecoin

  • Prova de replicação (PoRep): usada no momento do armazenamento inicial de dados, o PoRep verifica se um provedor de armazenamento criou e está armazenando uma cópia exclusiva dos dados.
  • Prova de espaço-tempo (PoSt): verifica continuamente se o provedor de armazenamento está mantendo os dados armazenados ao longo do tempo. O PoSt é ainda dividido em WinningPoSt e WindowPoSt, atendendo a diferentes propósitos de validação na rede.

Papel do PoRep e PoSt

  • PoRep: valida a replicação inicial de dados por um provedor de armazenamento, garantindo que os dados sejam codificados e lacrados de forma exclusiva.
  • PoSt: WinningPoSt é usado no processo de consenso de bloco, enquanto o WindowPoSt audita continuamente os provedores de armazenamento, garantindo a conformidade contínua com os contratos de armazenamento.

O mecanismo de consenso do Filecoin, com sua mistura única de EC, Drand e provas criptográficas, forma a espinha dorsal de uma rede de armazenamento descentralizada robusta e confiável. Estes elementos funcionam em conjunto para garantir que a rede permaneça segura, eficiente e justa, promovendo um ambiente onde a integridade dos dados é fundamental. À medida que nos aprofundamos nas nuances da blockchain do Filecoin, a engenhosidade e a sofisticação do seu modelo de consenso tornam-se cada vez mais evidentes, sublinhando o potencial da rede para revolucionar o cenário do armazenamento digital.

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 2

Noções básicas de blockchain do Filecoin

1

Fundamentos do Blockchain no Filecoin

O blockchain Filecoin é um intrincado banco de dados distribuído compartilhado entre uma rede de nós de computador. Cada nó possui uma cópia do blockchain, garantindo que todas as transações e obrigações contratuais na rede sejam registradas e imutáveis. Isto fornece um registro confiável e seguro de todas as atividades dentro do ecossistema Filecoin.

Atores: os burros de carga do Blockchain do Filecoin

Os atores no blockchain do Filecoin servem como equivalentes aos contratos inteligentes na Máquina Virtual Ethereum. Cada ator encapsula um conjunto de variáveis de estado e métodos para interagir com a rede Filecoin. Eles são essencialmente os agentes que realizam ações na blockchain, como gerenciar acordos de armazenamento ou facilitar transações.

Atores de sistema integrados

A rede do Filecoin é alimentada por vários atores de sistema integrados que lidam com funções essenciais:

  • Ator do Sistema: Executa operações gerais de rede.
  • Ator Init: Responsável por inicializar novos atores e gerenciar convenções de nomenclatura de rede.
  • Ator Cron: Atua como agendador da rede, acionando funções essenciais em cada época.
  • Ator de conta: gerencia contas de usuário além do escopo do padrão singleton.
  • Ator do Minerador de Armazenamento: Coordena as operações de mineração de armazenamento e valida as provas de armazenamento.
  • Ator do mercado de armazenamento: gerencia negócios de armazenamento no mercado da rede.
  • Ator Multisig: Lida com operações envolvendo a carteira multi-assinatura do Filecoin.
  • Ator de Canal de Pagamento: Gerencia o estabelecimento e liquidação de canais de pagamento.
  • Ator do Datacap: supervisiona a alocação e o gerenciamento de tokens do datacap.
  • Ator de registro verificado: gerencia clientes verificados na rede.
  • Ator de conta EVM: Representa identidades externas do Ethereum, facilitando a interoperabilidade com sistemas baseados no Ethereum.

Atores programáveis pelo usuário

À medida que a Máquina Virtual Filecoin (FVM) amadurece, os desenvolvedores têm a oportunidade de escrever e implantar seus próprios atores, semelhantes aos contratos inteligentes em outras blockchains. Esses atores programáveis pelo usuário podem interagir com os atores integrados por meio de APIs exportadas, permitindo que uma ampla gama de aplicativos e serviços sejam construídos na rede Filecoin.

Aleatoriedade distribuída no Filecoin

Filecoin utiliza um protocolo de aleatoriedade distribuído e publicamente verificável conhecido como Drand como fonte de aleatoriedade para eleição de líder durante a produção de blocos. Esta aleatoriedade é essencial para garantir que o processo seja imprevisível, imparcial e verificável, mantendo a justiça e a segurança do processo de mineração.

Nós e suas funções

Os nós da rede Filecoin são classificados principalmente pelos serviços que fornecem:

  • Nós verificadores de cadeia: valide o blockchain e aplique regras de consenso.
  • Nós clientes: interagem com a rede para armazenar e recuperar dados.
  • Nós do provedor de armazenamento: oferecem capacidade de armazenamento à rede e comprovam armazenamento contínuo.
  • Nós do provedor de recuperação: forneça dados armazenados de forma rápida e confiável quando solicitado.
  • Múltiplas implementações do protocolo Filecoin coexistem para melhorar a segurança e a resiliência da rede, garantindo que não haja nenhum ponto único de falha e promovendo uma descentralização saudável.

Endereços: Identificação de atores no Filecoin

Os endereços no Filecoin são cadeias alfanuméricas que identificam exclusivamente atores ou usuários na rede, facilitando interações como transações e execuções de contratos inteligentes. Esses endereços assumem diversas formas, refletindo os diferentes tipos de atores que representam:

  • Endereços de ID (f0): Identificadores numéricos para atores, fornecendo uma maneira legível para fazer referência aos participantes da rede.
  • Endereços Secp256k1 (f1): Derivado de chaves públicas usando o padrão de criptografia secp256k1, comumente usado para carteiras.
  • Endereços de atores (f2): atribuídos a contratos inteligentes e permanecem robustos em todas as bifurcações da rede.
  • Endereços BLS (f3): Gerados a partir de chaves públicas BLS e usados para carteiras com criptografia BLS.
  • Endereços de atores definidos pelo usuário (f4): endereços flexíveis que podem ser atribuídos por atores de gerenciamento de endereços definidos pelo usuário, permitindo esquemas de endereçamento personalizados e extensíveis.
  • Cada tipo de endereço atende a um propósito específico dentro do ecossistema do Filecoin, desde facilitar transações até gerenciar contratos inteligentes e interações de usuários.

Dicas e blocos

A blockchain do Filecoin se desvia da norma de uma sequência linear de blocos. Aqui, os blocos são agrupados em “tipsets”, que podem ser considerados instantâneos do estado da rede em cada época ou um intervalo de tempo fixo no jargão do blockchain. Este modelo permite um blockchain mais flexível e eficiente, permitindo a produção de vários blocos válidos ao mesmo tempo.

A anatomia de um bloco Filecoin

Cada bloco no Filecoin é um pacote contendo um cabeçalho e uma série de mensagens que representam as ações realizadas pelos atores, como transações ou acordos contratuais. O cabeçalho do bloco inclui metadados como o endereço do minerador, o ticket (comprovante de trabalho) e os CIDs dos blocos pais. As mensagens são a essência do bloco, registrando mudanças de estado, como transferências de tokens e chamadas de contrato. Os blocos estão ligados a pelo menos um bloco pai, formando uma cadeia contínua de volta ao bloco gênese.

Blocktime: sincronizando o pulso da rede

O tempo de bloqueio no Filecoin é definido em uma média de 30 segundos. Esse intervalo foi estrategicamente escolhido para equilibrar a capacidade de resposta da rede e a praticidade de sua operação. Um tempo de bloqueio mais curto poderia aumentar a velocidade da rede, mas também imporia maiores demandas de hardware e poderia levar a falhas de tempo de bloqueio mais frequentes. O tempo de bloqueio de 30 segundos permite que os provedores de armazenamento tenham tempo suficiente para realizar as operações necessárias, como selar setores e gerar provas, sem sobrecarregar seu hardware.

Tipsets: Maximizando a Eficiência e a Recompensa

Em uma determinada época, é possível que vários provedores de armazenamento extraiam blocos com sucesso. A estrutura tipset do Filecoin acomoda isso agrupando todos os blocos válidos com a mesma altura e pai em um único grupo. Isto significa que todo trabalho válido contribui para o estado da rede e é recompensado, uma característica importante que incentiva a participação e colaboração entre os mineiros. Também garante que a rede possa lidar com bifurcações de maneira eficiente, alcançando rapidamente um consenso na cadeia canônica.

O sistema tipset oferece diversas vantagens sobre os blockchains tradicionais:

  • Maior rendimento da rede: Ao usar todos os blocos válidos para determinar o estado da rede, o Filecoin pode processar mais dados e transações em cada época.
  • Recompensando Trabalho Válido: Todo provedor de armazenamento que produz um bloco válido recebe uma recompensa, incentivando assim os mineradores a contribuir com a rede e desencorajando a centralização.
  • Colaboração em detrimento da concorrência: Os potenciais produtores de blocos são incentivados a colaborar, uma vez que a estrutura do tipset desincentiva a retenção de blocos que poderiam ser benéficos para o crescimento da rede.
  • Resiliência aos Forks: Com a arquitetura tipset, o Filecoin alcança uma convergência mais rápida durante os forks, garantindo a estabilidade da rede.
  • O Ethereum JSON-RPC e Filecoin

É importante notar que com a integração do tempo de execução Filecoin EVM e a adoção dos padrões Ethereum JSON-RPC, a noção de ‘tipset’ torna-se ainda mais fácil de usar. Neste contexto, quando falamos sobre um 'hash de bloco' no Ethereum JSON-RPC, estamos na verdade nos referindo ao hash de um tipset, que abrange as mudanças de estado combinadas de todos os blocos dentro desse tipset.

À medida que continuamos a explorar o blockchain do Filecoin, veremos como esses componentes interagem para criar uma rede de armazenamento descentralizada que seja robusta, eficiente e preparada para crescimento futuro.

Consenso sobre Filecoin

O mecanismo de consenso do Filecoin, conhecido como Consenso Esperado (EC), representa uma pedra angular na sua rede de armazenamento descentralizada. Este capítulo tem como objetivo fornecer uma introdução ao EC, aprofundando-se nos seus princípios operacionais, especificações técnicas e no papel que desempenha na manutenção da integridade e fiabilidade da rede Filecoin.

Filecoin opera em um mecanismo de consenso único denominado Consenso Esperado (EC). Ao contrário dos protocolos blockchain tradicionais que muitas vezes dependem de Prova de Trabalho (PoW) ou Prova de Participação (PoS), o EC combina elementos de aleatoriedade, poder de armazenamento e tolerância probabilística a falhas bizantinas. Na sua essência, o EC foi concebido para alinhar os incentivos com o objetivo principal do Filecoin: armazenar dados de forma eficiente e fiável.

A Essência da CE

  • Descentralização e Confiabilidade: O objetivo principal da CE é promover um ambiente descentralizado onde o armazenamento e a recuperação de dados sejam confiáveis e verificáveis.
  • Abordagem centrada no armazenamento: Ao contrário dos blockchains tradicionais que se concentram no poder computacional ou na posse de moedas, o EC do Filecoin prioriza o poder de armazenamento – a capacidade de armazenar dados.

Mecânica Central do Consenso Esperado

O quadro operacional da CE gira em torno de vários componentes-chave, cada um desempenhando um papel vital na funcionalidade da rede.

  1. Tolerância probabilística a falhas bizantinas:
  • O EC incorpora mecanismos bizantinos de tolerância a falhas, tornando-o resiliente a uma série de condições adversárias, incluindo nós agindo maliciosamente ou ficando offline.
  1. Eleição de Líder e Produção de Bloco:
  • No cerne da CE está um processo de eleição de líderes. Ao contrário dos processos determinísticos vistos em outras blockchains, a EC emprega um método probabilístico para selecionar líderes ou mineradores responsáveis pela criação de blocos.
  1. Anonimato até comprovada eleição:
  • Os mineiros dentro da CE permanecem anónimos até que possam provar o seu estatuto eleitoral através de uma 'ElectionProof'. Esta prova é fundamental para garantir justiça e imprevisibilidade na produção de blocos.
  1. Prova de armazenamento:
  • Os mineiros são obrigados a submeter um ‘WinningPoSt’ (Prova de Espaço-Tempo), validando a sua contribuição para a capacidade de armazenamento da rede.

Especificações Técnicas da CE

Os fundamentos técnicos da CE são onde a sua natureza inovadora realmente brilha. Aqui, exploramos algumas das principais especificações que definem esse mecanismo de consenso:

Aleatoriedade via DRAND:

  • A CE usa DRAND, um farol de aleatoriedade externo e imparcial, para facilitar vários aspectos do protocolo, incluindo a eleição de líderes.

Função Aleatória Verificável (VRF):

  • Os mineradores utilizam um VRF, juntamente com a aleatoriedade obtida do DRAND, para gerar seu ElectionProof.

Cadeia ElectionProof e VRF:

  • O ElectionProof é crucial para os mineradores demonstrarem que foram eleitos legitimamente para produzir um bloco.
  • Uma cadeia VRF contínua é mantida, estendendo-se a cada novo bloco produzido.

Potência de armazenamento e WinCount:

  • O poder de um mineiro na rede é proporcional à sua capacidade de armazenamento.
  • WinCount determina o número de blocos que um minerador pode produzir, com base em seu poder de armazenamento e no resultado de seu VRF.
  • Segurança e justiça de consenso

A segurança e a justiça são fundamentais na CE, com vários mecanismos em vigor para salvaguardar estes princípios:

Falhas e penalidades de consenso:

A CE define tipos específicos de falhas de consenso (por exemplo, Double-Fork Mining, Time-Offset Mining) e impõe penalidades para impedir comportamentos maliciosos.

Fonte das imagens: Documentação do Filecoin aqui: https://spec.filecoin.io/algorithms/expected_consensus/

Ponderação e Seleção da Cadeia:

  • O protocolo emprega um sistema único de ponderação de cadeia, onde a cadeia “mais pesada”, indicativa do poder de armazenamento mais cumulativo, é favorecida.

Finalidade Suave:

  • A CE emprega uma forma de finalidade suave, rejeitando blocos que se desviem significativamente da cadeia, reforçando assim a estabilidade da rede.

Drand: Aleatoriedade Distribuída no Filecoin

Drand (aleatoriedade distribuída) é um componente crítico do mecanismo de consenso do Filecoin, fornecendo uma fonte imparcial de entropia essencial para o processo secreto de eleição do líder da rede. É um protocolo de beacon aleatório publicamente verificável, projetado para gerar uma série de valores aleatórios determinísticos e verificáveis.

Como funciona Drand

  • Computações multipartidárias (MPCs): Drand executa uma série de MPCs para produzir valores aleatórios. Após uma fase de configuração confiável, um grupo de nós drand conhecidos assina uma determinada mensagem usando assinaturas BLS de limite em rodadas sucessivas que ocorrem em intervalos regulares.
  • Limite de assinaturas BLS: O processo requer um número mínimo de nós (t-de-n) para assinar uma mensagem. Qualquer nó com t de assinaturas pode reconstruir a assinatura BLS completa. Esta assinatura, quando hash, produz um valor aleatório coletivo que pode ser verificado em relação à chave pública desde a fase de configuração.
  • Premissas de segurança: Drand assume que pelo menos t dos n nós são honestos e online. Se esse limite for quebrado, o adversário pode interromper a produção de aleatoriedade, mas não pode distorcer a aleatoriedade.

Saídas de aleatoriedade Drand

Formato de valor Drand: os nós do Filecoin obtêm valores drand em um formato específico. Os principais componentes incluem:

  • Assinatura: Uma assinatura BLS no valor da assinatura anterior e no número da rodada atual.
  • PreviousSignature: A assinatura BLS da rodada Drand anterior.
  • Rodada: O índice de aleatoriedade na sequência produzida pela rede Drand.

Usando Drand no Filecoin

  • Eleição de Líder: Drand é usado para eleição de líder no Filecoin, fornecendo um valor aleatório em cada época. Essa aleatoriedade é crítica para o algoritmo de Consenso Esperado (EC), garantindo uma seleção de líderes justa e imprevisível.
  • Buscando valores de Drand: os nós do Filecoin recuperam o valor de aleatoriedade mais recente de Drand usando endpoints específicos. Essas informações são então integradas aos dados da rede para apoiar o mecanismo de consenso do Filecoin.

Provas: Garantindo Integridade e Confiança

As provas no Filecoin servem para validar se os provedores de armazenamento estão armazenando dados adequadamente de acordo com os padrões da rede. Estas provas são essenciais para manter a integridade e a confiabilidade do sistema de armazenamento descentralizado.

Tipos de provas no Filecoin

  • Prova de replicação (PoRep): usada no momento do armazenamento inicial de dados, o PoRep verifica se um provedor de armazenamento criou e está armazenando uma cópia exclusiva dos dados.
  • Prova de espaço-tempo (PoSt): verifica continuamente se o provedor de armazenamento está mantendo os dados armazenados ao longo do tempo. O PoSt é ainda dividido em WinningPoSt e WindowPoSt, atendendo a diferentes propósitos de validação na rede.

Papel do PoRep e PoSt

  • PoRep: valida a replicação inicial de dados por um provedor de armazenamento, garantindo que os dados sejam codificados e lacrados de forma exclusiva.
  • PoSt: WinningPoSt é usado no processo de consenso de bloco, enquanto o WindowPoSt audita continuamente os provedores de armazenamento, garantindo a conformidade contínua com os contratos de armazenamento.

O mecanismo de consenso do Filecoin, com sua mistura única de EC, Drand e provas criptográficas, forma a espinha dorsal de uma rede de armazenamento descentralizada robusta e confiável. Estes elementos funcionam em conjunto para garantir que a rede permaneça segura, eficiente e justa, promovendo um ambiente onde a integridade dos dados é fundamental. À medida que nos aprofundamos nas nuances da blockchain do Filecoin, a engenhosidade e a sofisticação do seu modelo de consenso tornam-se cada vez mais evidentes, sublinhando o potencial da rede para revolucionar o cenário do armazenamento digital.

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.