O que é Zilliqa? - Mago do Mercado
Publicado por magodomercadoem 8 março, 2021 em Criptomoedas, Zilliqa
Apesar de ser uma das altcoins com menor valor atualmente – cotada, no momento desse artigo a apenas 12 centavos de dólar – a Zilliqa é uma criptomoeda que tem chamado bastante atenção do mercado cripto principalmente em função do potencial que representa para resolver o problema de escalabilidade da blockchain – um problema que a Ethereum tem tido dificuldade em resolver – e possibilitar o avanço de aplicações financeiras descentralizadas, o chamado DeFi.
Mas como a Zilliqa busca exatamente resolver esses problemas? É o que veremos nesse artigo.
Sharding – Conceito geral
Como já sabido, um dos principais obstáculos a adoção de moedas digitais como o Bitcoin, Ethereum ou qualquer outra para o comércio do dia a dia é sua falta de escalabilidade. A blockchain atual do bitcoin processa apenas 7 transações por segundo, enquanto a do Ethereum não fica muito melhor, com apenas cerca de 20 transações por segundo. Quando comparamos esse número com as gigantes do pagamento eletrônico, como Visa e Mastercard, que processam mais de 65.000 transações por segundo, fica nítido que ainda há um longo trabalho para resolver o problema da escalabilidade da blockchain das criptomoedas e possibilitar sua adoção em massa.
A rede da Zilliqa tenta resolver esse problema por meio da aplicação de um conceito chamado Sharding, que nada mais é do que dividir uma rede maior em várias subredes menores. Assim, a blockchain da Zilliqa, é dividida em vários fragmentos, ou shards, e cada um desses fragmentos valida transações por si só, formando um microbloco de transações, e depois comunica o que foi validado a rede central, que irá agregar todas as informações de cada um dos fragmentos em seu bloco principal.
Quando comparamos isso com a blockchain do bitcoin, por exemplo, na qual cada transação deve ser validada por toda a rede, é fácil perceber como a rede da zilliqa tem o potencial para ser muito mais escalável, aumentando a taxa de transações a medida em que novos mineradores vão se juntando a rede e se tornando nós, gerando novos shards ou fragmentos que se juntarão aos demais para validar um maior número de transações por segundo.
Cada shard deve possuir pelo menos 600 nós até que um próximo shard possa ser formado. Esse número foi calculado pelos pesquisadores e desenvolvedores da Zilliqa como sendo o número de nós por shard ideal para garantir a melhor relação entre segurança e eficiência, evitando que um ataque malicioso consiga tomar conta da maior parte de um shard e validar fraudulentamente as transações que são alocadas aquele shard.
Assim, se imaginarmos um cenário com 4.200 nós, teremos 7 shards dentro da rede (600 nós por shard), validando 7 transações simultaneamente ao invés de apenas uma, como ocorre no bitcoin. A medida em que mais mineradores vão se juntando a rede e o número de nós aumenta, maior é o número de transações validadas simultaneamente pois o número de shards também aumentará. Atualmente, a Zilliqa já é capaz de validar 2.000 transações por segundo.
Estrutura da rede da Zilliqa
Para ter uma visão mais clara de como a blockchain da Zilliqa opera, podemos dividi-la em 3 partes principais:
Directory Service Comitte (DS) – É um grupo de nós eleitos pela rede após realizar o proof-of-work que auxiliam na alocação de cada nó da rede a um shard específico em cada época, e após o final das validações compilam todos os microblocos gerados por cada um dos shards e enviam para o bloco de transações principal daquela época. Uma época é o período de tempo necessário para que um bloco principal de transações seja fechado.
Ledger principal – Esse é o ledger que agrega as transações dos blocos principais de cada época, que por sua vez, são compostos pelos microblocos de cada shard daquela época.
Shards de rede – São os grupos de nós alocados aleatoriamente a cada shard, 600 por vez, que validam uma parte das transações daquela época e geram um microbloco.
Além desses 3 tipos de estruturas, podemos falar também em 3 tipos de sharding diferentes dentro da rede:
Network Sharding – É o processo aleatório pelo qual cada nó da rede é alocado para um shard específico dentro daquela Época, O comitê (DS) auxilia nesse processo validando o proof-of-work realizado por cada nó, de modo a dificultar que um agente externo tente se infiltrar na rede pra cometer fraudes, já que com o proof of work o custo pra essa tentativa de ataque se torna proibitivo. Somente após a validação feita pelo DS o nó é alocado a algum dos shards da rede.
Sharding de transações – É o processo de alocação de cada transação para um shard específico da rede. Há algumas regras e processos que precisam ser observados aqui para garantir que problemas não ocorram. Assim, qualquer transação que é criada e esteja em conflito com uma transação atual ainda pendente de confirmação precisa ser distribuída para o mesmo shard que esta verificando aquela transação, de modo a evitar que, por um problema de lag na rede, uma transação dupla, ou double spending, possa ocorrer.
Outra regra é que cada transação é alocada a um shard de acordo com os primeiros bits de dados da transação. O processo de alocação assim é pseudo aleatório, haja vista que a aleatoriedade é balizada em algumas regras que visam tornar o processo mais robusto e livre de potenciais erros.
Sharding computacional – Esse tipo de sharding é utilizado para resolver o problema gerado através da integração de aplicativos descentralizados desenvolvidas na plataforma zilliqa com o fato de que todos os dados da plataforma são distribuídos de modo pseudoaleatório para diferentes shards.
Para lidar com isso, os tipos de transações que podem ser realizados na plataforma são divididos em 3:
Tipo 1: Transações simples, que envolvem somente a transferência de uma quantia de moeda de um endereço para outro dentro da blockchain
Tipo 2: Transações que envolvem somente um agente e um smart contract programado na rede, como p. ex. um usuário da rede enviando moedas para um evento de arrecadação de fundos.
Tipo 3: Transações mais complexas, envolvendo um usuário e um smart contract que pode chamar por outros smart contracts de acordo com a sua função até que chegue, após a execução dos códigos, a um outro usuário final. Nesse caso, há um número bem maior de variáveis, com mais de um agente, assim como no tipo 1, mas também envolvendo múltiplos smart contracts executáveis ao longo do processo, gerando uma quantidade de informação total muito maior do que no caso dos outros dois tipos.
Tendo isso em mente, é útil considerar dois exemplos para entender como o sharding computacional funciona. Se uma transação do tipo 2 envolve um usuário e um smart contract que se localizam dentro do mesmo shard, então a validação das operações envolvendo esses dois elementos será alocada aquele shard. Entretanto nos casos mais complexos, em que pode haver um ou mais usuários e uma multiplicidade de smart contracts que não necessariamente estão localizados dentro de um mesmo shard, então a questão é delegada ao DS (Directory Service comitte) para que seja decidida a forma mais eficiente de alocar a transação.
Assim, o sharding computacional prevê regras que determinam como as informações vão ser distribuídas ao longo dos fragmentos da rede de modo a permitir que múltiplas transações ocorram em paralelo, o que dá a Zilliqa o seu diferencial de escalabilidade.
A Zilliqa é uma plataforma que busca resolver de forma bastante engenhosa um dos problemas centrais da tecnologia blockchain, a escalabilidade. Para as perspectivas dela pelo futuro, é realmente impressionante que esta criptomoeda ainda não seja tão conhecida e custe apenas 12 centavos de dólar. Caso o ethereum 2.0 não saia por qualquer motivo e portanto, não consiga resolver o problema da falta de escalabilidade e das altas taxas de ethereum, a Zilliqa com certeza tem um grande espaço para crescer e, de qualquer modo, é uma excelente moeda para se ficar de olho.