Uma excelente introdução de Dahlia Malkhi, Lead Researcher no projeto Calibra sobre Byzantine Fault Tolerance (BFT) no CES Summit’19.

Excelente pelas seguintes razões:

  1. deu a conhecer melhor o projeto do Facebook, que considero que não teve uma boa receção por parte da comunidade de criptoentusiasas;
  2. deu a conhecer os avanços da equipa por detrás do projeto Libra, pessoas muito experientes com currículos académicos muito interessantes;
  3. deu a conhecer o sistema de consenso BFT.

NOTA: Não deixa de ser interessante o facto desta apresentação ter sido efetuada poucas semanas depois da audiência de David Marcus (Head of Calibra) sobre a Libra perante o Senado dos EUA. Nesta audiência, que recomendo a visualização, foram colocadas inúmeras questões pelo Senado, sendo uma das mais importantes sobre o seu sistema de consenso, ao qual David respondeu que a Libra Association tomará decisões por um quórum de consenso de dois-terços, mais precisamente 2/3 + 1!

Primeiro o básico: O que é o Byzantine Fault Tolerance?

Este é o melhor video introdutório que encontrei:

Portanto em poucas palavras, o BFT é a propriedade que um sistema tem de resistir a vários tipos de falhas que podem ser causadas pelo “dilema dos generais bizantinos”. Isso significa que um sistema BFT é capaz de continuar operando mesmo que alguns nós da rede falhem ou se comportem de forma maliciosa.

A BFT foi criada inicialmente com um propósito muito diferente do que o que temos hoje em dia. Malkhi fala de um cenário de um sistema de quatro computadores em rede num ambiente de missão crítica (como por exemplo o sistema de comando central de uma sonda espacial), ao qual precisam criar um sistema de controle que tenha resiliência.

Existem várias formas de resolver o problema dos generais bizantinos e, portanto, vários métodos de se construir um sistema BFT. De forma parecida, muitas abordagens podem ser exploradas para que um sistema Blockchain possa fazer o BFT funcionar corretamente, levando-nos ao tão desejado algoritmo de consenso.

Como sabemos, o Bitcoin é um caso mais conhecido de uso do BFT, contudo sabemos que não resolve todos os problemas, como:

  • desperdício de energia;
  • escala; e
  • não sendo a solução que dará adoção global (adoção séria pelas empresas).

Foi este contexto que nos últimos anos tem surgido imensa produção de conhecimento na área sobre a criação de novas ideias e projetos originais, a fim de apresentar uma alternativa à BFT.

Isto porque, se foram precisos 17 anos desde a criação do BFT à primeira solução prática (o Bitcoin), a atenção que este novo tema tem gerado seguramente trará novas disrupções em períodos mais curtos.

E assim chegamos ao projeto Libra.

Porque a libra é diferente?

  • Construído em uma blockchain segura, escalável e confiável;
  • Apoiado por uma reserva de ativos que garante valor intrínseco;
  • Governado pela Associação Libra independente, encarregada de desenvolver o ecossistema;
  • Projectado para colaborar e cumprir com os regulamentos estabelecidos pelos governos, ao contrário de outras redes que ignoram os regulamentos;
  • Aproveita os recursos de distribuição de empresas globais que ajudarão na adoção de maneira compatível.

Libra mantém um banco de dados de recursos programáveis ​​via Consenso de BFT

Atualmente o consenso permitido com base no consenso HotStuff BFT, mas futuramente transitará para um sistema mais descentralizado, com recurso ao PoS (Proof-of-Stake ou “prova de participação).

 

Sendo que Libra será o nome da criptomoeda e ‘Calibra’ a carteira (wallet), com lançamento planeado para 2020, ou melhor:

Libra – blockchain é a infraestrutura comum (a rodovia)

Calibra – é a carteira – apenas a 1ª aplicação (automóvel)

 

Ir além das abordagens clássicas dos protocolos de consenso

Na abordagem clássica aos protocolos de consenso (como BFT), temos:

  1. o administrador faz suposições (é a rede, sincronia ou parcial ou assincronismo)
  2. segue-se a revisão de literatura “de consenso” para encontrar os melhores protocolos de consenso (PBFT Tolerando 1/3 de falhas bizantinas em um ambiente parcialmente síncrono);
  3. depois de encontrar a solução pretendida segue-se a implementação.

Sendo assim então por que precisamos de algo novo? Tivemos uma evolução muito boa, mas a questão é: o modelo é o certo?

Temos portanto de procurar um novo modelo:

Limitação #1 O modelo é o correto?

(Falhas de benignas)

Limitação #2 Estamos indo para um modelo estático?

(podemos suportar várias implementações dentro dessa estrutura?) Ou sejam, podemos acomodar Ao executar os sistemas, podemos aprender mais que podemos mudar

Limitação #3 Sem recuperação?

(E se suposições violadas => colapso total) O que acontece com uma violação? Perder tudo?

Limitação #4 Nenhuma resiliência a desastres?

(o que acontecerá se um desastre realmente acontecer?)

 

Soluções

  1. assumir menos falhas bizantinas
    – talvez a maioria seja benigna, talvez não seja necessária. “Bizantino” é o pior tipo de falhas
  2. modelos flexíveis de BFT
    – aqui não se assume que o bizantino é o pior tipo de falha.

E chegamos ao trabalho conjunto de Dahlia Malkhi, Kartik Nayak e Ling Ren de nome: “Flexible Byzantine Fault Tolerance

É um Modelo híbridos de falhas, que mesmo assim assume que o “Bizantino” é o pior tipo de falha

Em poucas palavras:

A Flexible BFT (em tradução livre: Tolerância a Falhas Bizantina Flexível) fornece 2 contribuições:
(uma nova abordagem para projetar soluções BFT)

  1. maior resiliência – Tolerar um número maior de falhas do que o que é conhecido;
  2. diversidade – Coexistência de alunos com diferentes crenças e suposições sobre o mesmo mecanismo de consenso.

 

Contribuição #1 uma nova linha de falha: alive-but-corrupt – ABC (tradução livre: falha viva-mas-corrompida).

um adversário que ataca a segurança, mas não a vivacidade. Isto porque um adversário tem interesse em manter o sistema ativo e receber compensações dele. Ele pode apenas querer quebrar a consistência: p.ex. double spend, gastar dinheiro, etc. sem quebrar o sistema.

total de falhas: # falhas bizantinas + # falhas a-b-c

isto significa que podemos tolerar um número maior de falhas totais.

Contribuição #2 apoiar a diversidade (a administração faz todas as suposições)

Ou seja, mesmo protocolo mas suposições diferentes

os utilizadores iniciais fazem suas próprias suposições e interpretam o transcrito gerado pelas réplicas.

(suposições de rede, tipo e número de falha, Delta)

BFT flexível: uma família de protocolos que separam o modelo de falha da solução

Contribuição #3 podemos apoiar a recuperação

se um aluno faz uma suposição incorreta e falha, ele pode se recuperar escolhendo suposições mais seguras.

 

Quais são as aplicabilidades do Flexible BFT?

  • alternar (assíncrona) quando o nível de corrupção se aproxima de 1/3;
  • (sincronização) alterna para o modo assíncrono contra ataque de assíncrona;
  • recuperar de confirmações conflitantes (fork);
  • executar pontos de verificação periódicos de segurança;
  • proteger transações de alta participação.

 

Legenda:

BFT – área cinzenta

Flexible BFT – área verde (synchronous assumptions)

Flexible BFT – área laranja (asynchrounous assumptions)

Conclusão

Confesso que o projeto Libra tem sido uma agradável surpresa. A minha primeira impressão não foi positiva, fruto da contaminação por parte da comunidade cripto, sempre muito resistente às incursões corporativas no meio. Mas a verdade é que o projeto Libra não é de todo apenas mais um marcar de presença, existe aqui muito risco envolvido, desde corporativo, reputacional e até regulamentar (daí a audiência de David Marcus) e existe disrupção, se o Flexible BFT se tornar realidade irá tornar-se uma referência na história ainda recente das criptomoedas e fator critico de sucesso para a tão esperada adoção em massa.

De resto, o que mais posso dizer senão “what a time to be alive!“. Um artigo científico publicado em junho de 2019, uma equipa de investigadores de luxo e um projeto suportado logística e financeiramente pela 6ª empresa mais rica do mundo (Facebook, com um marketcap de 511,35 Bi USD). Se vai correr certo não será garantido, mas o seu impacto no ecosistema já se está a sentir.

 

Para aprenderem mais sobre Flexible BFT, aqui estão algumas fontes: