# Trilema da escalabilidade

O Trilema da Escalabilidade estabelece que sistemas baseados em Blockchain só podem ter duas das três propriedades: segurança, descentralização e escalabilidade. O termo foi cunhado por Vitalik Buterin, criador do Ethereum, em discussões acerca dos desafios para adoção massiva de tecnologias blockchain e estabelece que uma arquitetura de blockchain deve balancear as três propriedades em sua aplicação de acordo com seu uso.

## Definição

O trilema afirma que os sistemas blockchain só podem ter, no máximo, duas das três propriedades a seguir:
* Descentralização (definida como o sistema capaz de executar em um cenário em que cada participante tenha acesso somente à O(c) recursos, ou seja, um laptop comum ou um pequeno VPS)
* Escalabilidade (definida como a capacidade de processar transações O(n) > O(c) )
* Segurança (definida como defesa contra invasores de O(n) recursos)
c refere-se a quantidade de recursos computacionais (incluindo poder de computação, largura de banda e armazenamento) disponíveis para cada nó, e n refere-se ao tamanho do ecossistema em um sentido abstrato; Assumimos que a carga de transação, o tamanho do estado e o valor de mercado de uma criptomoeda são todos proporcionais a n. O principal desafio da escalabilidade é encontrar uma maneira de alcançar todos os três na camada de base.

## Contexto

A utilização de sistemas baseados em blockchain em diferentes setores do mercado mundial está entre as promessas tecnologias mais faladas no cenário de empreendimentos atual. Desde a introdução do Bitcoin em 2008, as tecnologias blockchain avançaram muito os conceitos de ambientes sem confiança e de registros distribuídos, tornando-se uma consideração importante para todas as áreas de processos de negócios, particularmente em relação a empreendimentos financeiros. Por muitos anos, o único caso de uso do blockchain foi como criptomoeda. No entanto, as implicações e benefícios da tecnologia blockchain vão muito além do uso como apenas um ativo digital e estão se tornando amplamente visadas. Para ser ter uma noção de impacto, é esperado que o mercado de tecnologia blockchain alcance a marca de $13,96 bilhões perto do ano de 2022.
Entretanto, a tecnologia não é considerada estável por muitos para utilização em larga escala. O fator principal que inibe a adoção generalizada da tecnologia blockchain é sua incapacidade de escalar (lidar com os requisitos de taxa de transferência para um grande conjunto de usuários). O problema de escalabilidade da blockchain fica claro quando se analisa os números: Enquanto tecnologias baseadas em blockchain como Bitcoin e Ethereum conseguem realizar 7 e 15 transações por segundo, respectivamente, tecnologias de pagamento centralizado como a da VISA podem realizar cerca de 24.000 transações por segundo. Essas limitações tecnológicas foram comprovadas quando o jogo baseado em blockhain CryptoKitties congelou toda a rede blockchain do Ethereum após o aumento repentino de sua popularidade.
Nesse contexto, Vitalik Buterin estabeleceu o trilema da escalabilidade, onde nenhuma tecnologia pode ter segurança, descentralização e escalabilidade ao mesmo tempo. Vitalik afirma que um desenvolvedor deve conhecer bem os três aspectos dos trilema de forma a implementar uma Blockchain que satisfaça suas condições de uso. O trilema da escalabilidade vem se tornando uma referência para comparação de diferentes propostas de Blockchain, apontando os pontos fortes e fracos de cada arquitetura.

## Aspectos do trilema
### Descentralização

A descentralização, como a palavra sugere, refere-se ao grau de diversificação em posse, influência e valor na blockchain. O conceito importante aqui é que é o “grau de descentralização” - não é um atributo binário. Ethereum é muito descentralizado; Eos é parcialmente descentralizado; Twitter não é de todo descentralizado. Um equívoco comum é que as redes podem simplesmente ser rotuladas em descentralizadas ou não. Outra é que todos os blockchains são descentralizados no mesmo grau.
Normalmente, empresas não funcionam em um blockchain. Uma empresa ou corporação é controlada por um pequeno grupo de indivíduos no topo - a equipe de gerenciamento. Eles normalmente controlam a maioria da propriedade da empresa e são tomadores de decisão ao lado de um conselho de assessores. Esta é a natureza da maioria das empresas hoje em dia, seja uma parceria, C-Corp ou estrutura 501 (c) 3.
Redes descentralizadas são controladas, na maior parte, pelos usuários. Os usuários coletivamente têm a capacidade de usar suas participações para votar, usar serviços na plataforma e se beneficiar financeiramente. Isso está em contraste com as decisões que uma equipe gerencial tomaria normalmente em torno da estratégia, das operações e dos direitos dos acionistas.
Outro elemento importante da descentralização é que a maior parte do valor se acumula na comunidade. Não existe uma “equipe gerencial” e, portanto, nenhuma parte centralizada faz um corte antes que os acionistas sejam compensados. Efetivamente, a maioria dos projetos de criptografia é totalmente de propriedade de seus acionistas ou usuários, e não dos fundadores. Esta é obviamente uma proposta mais atraente para aqueles que não são os fundadores. Um bom exemplo para o caso esta presente na industria da musica. A Apple (iTunes) recebe um corte de 30% nas taxas de vendas para hospedagem e distribuição, com os 70% restantes indo para os criadores de conteúdo. Se a transmissão de músicas fosse executada em um blockchain, mais de 90% do valor provavelmente seria acumulado para os criadores de conteúdo. Uma pequena parte iria para as entidades envolvidas na gestão da rede, mas a maior parte do valor é revertida para o produtor de valor, em vez de um intermediário.
Entretanto, a descentralização tem seu preço. Os protocolos descentralizados, como o Bitcoin ou o Ethereum, costumam usar a mineração por prova de trabalho para produzir novos blocos. Esta forma de mineração requer validadores para resolver quebra-cabeças difíceis que confirmem a autenticidade dos blocos. Como resultado, isso não só usa grandes quantidades de energia, mas também compromete o desempenho e a velocidade. Isso pode ser problemático para casos de uso que exigem alta taxa de transferência.
A descentralização tem em sua essência a ausência de um moderador central na rede. Para certos casos de uso, como as mídias sociais, isso possibilitaria a publicação de discursos de ódio ou notícias falsas, por exemplo.
Por fim, mais descentralizada uma rede é projetada, mais difícil se torna para se desativar a rede, caso seja necessário, pois não há um servidor central. Embora essa característica seja declarada como um dos principais benefícios, em um cenário em que um caso de uso destrutivo surgisse, não seria algo tão fácil de resolver.

### Segurança

Segurança refere-se ao nível de defesa que uma blockchain tem contra ataques de fontes externas. Internamente, ou dentro do blockchain em si, é uma medida de quão imutável o sistema deve mudar. Para a maioria dos blockchains, existem muitos riscos potenciais de segurança. A descentralização e segurança andam de mãos dadas. Em muitos casos, quanto mais nós houver na rede, menos confiável a rede estará em uma parte centralizada e, portanto, menor o risco de ter um ponto central de falha. Há, no entanto, uma série de outras formas de ataque que representam riscos para redes descentralizadas, incluindo:
* Ataque 50%+ : uma entidade (ou conjunto de entidades) que possui mais de 50% do total de fichas pendentes, detém efetivamente a rede/
* Ataque Sybil: - uma entidade (ou conjunto de entidades) poderia forjar múltiplas (centenas, milhares ou mais) identidades em um sistema, a fim de efetivamente controlar uma participação significativa na propriedade e / ou tomada de decisão da rede.
* Ataque de gasto de trocos: uma entidade (ou conjunto de entidades) que inunda a rede com transações de baixo valor para impedir que a rede seja executada
* Ataque distribuído de negação de serviço (DDoS): ocorre quando há intenção de interromper o tráfego em uma rede, inundando a rede com transações mal-intencionadas
* Ataque de Colusão: uma ou mais entidades (ou nós) decidem coligar em conjunto para realizar algumas operações maliciosas na rede
Entretanto, um alto nível de segurança normalmente vem com altos custos, sejam de infraestrutura ou de tempo computacional. Por exemplo, o algoritmo de prova de trabalho, que é tido como uma das principais formas de segurança de tecnologias como o Bitcoin, adiciona um gargalo grande no poder de processamento da rede que atualmente é o principal fator que impede a escalabilidade de tais tecnologias.

### Escalabilidade

O grau de escalabilidade é importante porque determina a capacidade eventual de qualquer rede. Dito de outra forma, determina o limite superior de quão grande uma rede pode crescer. É uma das questões mais importantes a se pensar ao avaliar uma rede - quantos usuários esta rede pode sustentar? Por exemplo, Bitcoin atualmente tem entre 2,9 e 5,8 milhões de portadores de carteira; O Facebook tem 4 bilhões de usuários; Eos tem alguns milhares. O Nano é talvez uma das plataformas mais escaláveis, por alguns motivos: 1) Condensa transações em micro pacotes UDP (semelhante a um arquivo zip), de forma que até o hardware de computador mais básico pode processar transações; 2) Cada usuário fornece o poder para suas próprias transações, em sua própria blockchain ou seja. Não há blockchain massivo que outros usuários tenham que suportar; e 3) blockchains individuais armazenam somente o último saldo em cada conta de usuário, não todo o histórico de transações do usuário (o backup é feito separadamente na rede, disponível para aqueles que solicitam).
No entanto, existem compensações para alcançar escalabilidade alta. Escalabilidade e descentralização podem coexistir, mas os riscos de segurança se tornam maiores. Os desenvolvedores escolherão a plataforma mais adequada às suas necessidades e os usuários escolherão as plataformas que funcionarem melhor, de acordo com eles. Alguns usuários podem estar dispostos a sacrificar a segurança pela escalabilidade; outros, escalabilidade para ter segurança.

## Soluções propostas

Diversas propostas para soluções estão sendo desenvolvidas e testadas em diferentes partes da comunidade blockchain, especialmente a comunidade do Bitcoin. Essas soluções variam de adições ou modificações na arquitetura existente até a proposta de uma arquitetura totalmente nova para Blockchain. Algumas das soluções mais discutidas atualmente são:

### Aumento do Tamanho do Bloco

Esta solução afirma que um aumento no tamanho do bloco aumentará a escalabilidade. O raciocínio é que, aumentando o tamanho do bloco, mais transações podem caber em um único bloco e, portanto, um lote maior de transações pode ser processado, aumentando, portanto, o número de transações que podem ser processadas por segundo. No entanto, a limitação dessa solução é que ela acaba resultando na centralização de nós na rede.
Aumentar o tamanho do bloco exigiria que os nós possuíssem melhores capacidades de computação para processar transações. Isso pode levar a um cenário no qual uma rede é efetivamente mantida por um punhado de supercomputadores que têm a capacidade de processamento necessária para lidar com um aumento nas transações por bloco.

### Lightning Network

A Lightning Network é chamada de solução de "camada 2" para a blockchain do Bitcoin. Seu objetivo principal é estender a capacidade de blockchains existentes para que as transações possam ser mais baratas e frequentes. Transações menores e menos significativas são armazenadas numa "off-chain", e são essencialmente agrupadas e validadas independentemente por pequenas comunidades antes de serem enviadas de volta ao Blockchain principal, onde podem ser processadas como uma única transação
Uma maneira mais simples de pensar nisso é como uma guia de compras, onde todas as suas compras são mantidas em registro no mês e, finalmente, no final do mês, o caixa aceita um único pagamento para todas as transações feitas durante seu mês de compras. Em última análise, essas soluções significam que podemos reduzir várias transações para apenas 2 no Blockchain principal; um para abrir a transação entre o Blockchain principal e o off-chain, e um para fechá-lo;
A Lightning network é a solução de escalabilidade mais promissora para a blockchain do Bitcoin. Semelhantemente, a comunidade do Ethereum tem trabalhado numa solução de camada 2 chamada Plasma.

### Sharding

Sharding é um conceito amplamente usado em bancos de dados para torná-los mais eficientes. Um shard é uma parte horizontal de um banco de dados, com cada shard armazenado em uma instância de servidor separada. Isso espalha a carga e torna o banco de dados mais eficiente.
No caso do blockchain, cada nó terá apenas uma parte dos dados no blockchain, e não toda a informação, quando o sharding for implementado. Os nós que mantêm um shard mantêm informações apenas nesse shard de maneira compartilhada, portanto, dentro de um shard, a descentralização ainda é mantida. No entanto, cada nó não carrega as informações em todo o blockchain, ajudando na escalabilidade.
Como você pode ver agora, o algoritmo de consenso de prova de trabalho não pode ser usado em conjunto com sharding, pois, afinal, como todos os nós participantes podem estar envolvidos na validação da transação, onde os nós têm informações sobre apenas um shard, isto é, onde ele está? Os blockchains que implementam sharding usam o algoritmo de prova de participação (PoS).

### Altcoins

Altcoin é uma abreviação de “Bitcoin alternative”. Atualmente, a maioria das altcoins são forks do Bitcoin, com pequenas alterações no algoritmo de prova de trabalho (POW) da blockchain do Bitcoin. A Altcoin mais popular atualmente é a Litecoin. O Litecoin introduz mudanças no protocolo original do Bitcoin, como menor tempo de geração de blocos, maior número máximo de moedas e diferentes algoritmos de hash.