WEB3DEV

Cover image for Near: por trás dos panos
Lorenzo Battistela
Lorenzo Battistela

Posted on

Near: por trás dos panos

A NEAR é uma plataforma decentralizada de aplicações que roda em cima da blockchain do Protocolo NEAR. Essa blockchain, que roda através de milhares de computadores, é organizada para ser liberal, com boa perfomance e segura o suficiente para criar uma camada forte e decentralizada de dados para a nova web. A NEAR tem o potencial de mudar a maneira como os sistemas são pensados, a forma como aplicações são construídas e como a web funciona.

Visando contribuir com a Internet aberta, a NEAR usa o mesmo core de tecnologia que fez o Bitcoin uma moeda imortal, combinando isso com avanços de ponta nos quesitos consenso de comunidade, sharding de base de dados e usabilidade. Na NEAR, a usabilidade vem primeiro, e o modelo de segurança progressiva implementado permite que os desenvolvedores criem experiências mais familiares para seus usuários, removendo a necessidade do aprendizado de conceitos de blockchain, diminuindo a barreira de entrada para novos usuários. Além disso, a escalabilidade também é muito valorizada, e a NEAR usa uma aproximação diferente para o sharding, que permite que a rede aumente sua capacidade quando nós adicionais participam da blockchain. Isso é feito dividindo dinamicamente os nós da rede em shards múltiplas quando o uso é grande o suficiente e paralelizando a computação através dessas shards. Com essa solução, a rede pode escalar continuamente com o aumento da demanda.

Além disso, a NEAR provê monetização para desenvolvedores e empreendedores de uma maneira mais legítima, robusta e menos intrusiva. Quando um contrato é chamado, uma porção das taxas geradas pela rede é automaticamente alocada para o contrato e pode (se programado da maneira correta) ser retirada pelo desenvolvedor.

A NEAR utiliza, em seus endereços públicos, endereços legíveis para o ser humano por padrão, o que melhora a acessibilidade. Em comparação, a rede Ethereum possui essa opção, mas é paga.

No quesito desenvolvimento da NEAR, a mesma utiliza a estrutura de guildas. Guildas são grupos de pessoas que fazem coisas para a NEAR, como se fossem diferentes departamentos. Comparável às DAOs.

Os princípios de design nos quais a NEAR se apoiou em seu desenvolvimento são:

  • Usabilidade
  • Escalabilidade
  • Simplicidade
  • Descentralização sustentável

Mas como a NEAR funciona?

Como descrito anteriormente, a NEAR faz uso de diversos recursos para incrementar a funcionalidade e usabilidade dos seus processos. Nessa seção, alguns conceitos importantes como o Sharding utilizando o Nightshade, elementos da plataforma da NEAR e segurança serão aprofundados e explicados.

Sharding

Anteriormente, o Sharding foi mencionado como um grande diferencial da NEAR. Mas o que exatamente é sharding?

Sharding refere-se ao armazenamento de dados em múltiplos locais, é uma partição horizontal de dados. Isso acontece, por exemplo, em bancos de dados, que são divididos em partições menores e mais gerenciáveis, visando diminuir o tempo de resposta, melhorando assim o desempenho. Na blockchain, isso significaria dividir a rede em fragmentos individuais (shards), onde cada fragmento manteria um conjunto de dados (smart contracts, saldos de contas...). A ideia é que ao dividir a blockchain em segmentos menores e gerenciáveis, a taxa de transferência de transações aumentaria, superando problemas de escalabilidade enfrentados por muitas blockchains atuais.

Atualmente, temos duas categorias de sharding:

  • Escalonamento vertical: atingido através de melhorias na performance de um hardware existente do sistema. Nesse caso, em sistemas de blockchain, significa basicamente rodar uma rede contendo menos nós, mas que exigem melhor hardware. Isso limita o escalonamento com a adoção de mais usuários.
  • Escalonamento horizontal: atingido adicionando mais hardware ao sistema. No caso de blockchains, significa aumentar o número de nós participando na rede, aumentando a performance da mesma, por exemplo, paralelizando a computação através de múltiplas shards.

A NEAR utiliza a segunda aproximação, que permite incrementar a escala ao passo que novos usuários adotam a plataforma.

Comunicação Cross-Chain e Cross-Shard

A comunicação através das redes ou das shards é uma grande dificuldade no mundo de blockchains, e isso ocorre devido a necessidade de validar uma transação vinda de outra chain. Essa validação pode ocorrer de três maneiras, sendo elas a validação Dual, na qual os validadores que validam na cadeia ou shard de recebimento também validem na cadeia/shard de envio. Essa aproximação acaba trazendo prejuízos para o escalonamento. Outra maneira é confiar na transação, assumindo que se uma transação foi recebida, é válida. Dessa forma, é visível que a camada de segurança diminui muito, visto que transações fraudulentas não tem nenhum tipo de bloqueio. A terceira aproximação, a qual a NEAR utiliza, é uma cadeia Beacon com Rollback. Uma cadeia beacon verifica as transições de estado de todas as outras cadeias usando um pequeno subconjunto de validadores e, se um problema for detectado, todas as cadeias são revertidas.

Assumindo que um usuário malicioso não pode corromper os validadores de uma shard dentro de um dia, os validadores de cada shard sofrem um rodízio diário para ajudar a adicionar uma camada de segurança.

Para mais um incremento na segurança, visto que só o citado acima não previne todos os ataques nessa parte do processo, outros processos utilizam um comitê menor que faz os rodízios mais rápido. Mas o custo de mandar o estado de cada shard com as mudanças é muito alto. E é aí que o Nightshade entra.

Nightshade

O Nightshade modifica a abstração típica de um sharding e assume que todas as shards combinam-se juntas para formar um único bloco. Esse bloco é produzido com uma cadência regular, independentemente de cada fragmento individual ter produzido seu pedaço para essa altura de bloco específica. Um validador é colocado para produzir cada bloco.

Para cada shard e período individual, um único validador é colocado para produzir o seu fragmento. Se o validador não estiver presente, a shard vai ficar parada, bloqueada, por um período. Cada shard tem uma pequena pool de validadores. A posição de líder da shard é rotacionada dentro dessa pool da mesma forma que o líder do bloco é selecionado. Assim, se um validador estiver ausente e a shard ficar travada por um tempo, o próximo validador entra em cena e continua a operação da cadeia no período seguinte.

Validadores Escondidos

Para prover maior segurança, a NEAR usa validadores escondidos. Eles são um comitê pequeno para cada shard que verifica cada fragmento. Ao invés da escolha de cada validador estar na blockchain publicamente visível para todos os participantes, esses validadores escolhem eles mesmos através de uma função feita pela NEAR (de maneira aleatória).

Dessa maneira cada validador individual está ciente de qual shard ele precisa verificar, e o número de validadores escondidos para cada bloco é aleatório.

Pescador (Fishermen)

Além da segurança trazida pelos validadores escondidos, qualquer outro nó operador pode participar como um pescador. Esse nó vindo de fora pode prover a mesma prova de fraude que um validador escondido poderia, e assim começar o processo de reversão caso alguma transação fraudulenta tenha sido encontrada.

A plataforma da NEAR e suas ferramentas

É importante lembrar que a NEAR possui intenso foco no desenvolvedor e no usuário. Assim, para entender o funcionamento da NEAR, serão introduzidas algumas ferramentas para o entendimento do workflow na NEAR.

  • NEAR SDKs: o kit de desenvolvimento de software da NEAR inclui suporte a Rust e AssemblyScript para escrever contratos inteligentes. Além disso, ele envolve estruturas de dados padrão, exemplos e ferramentas de teste para essas duas linguagens, com premissas futuras de adicionar algumas outras como o Solidity.
  • Gitpod para a NEAR: a NEAR usa uma tecnologia existente (gitpod) para criar uma experiência de integração para os desenvolvedores. O gitpod providencia uma IDE, que a NEAR customizou para permitir que os desenvolvedores escrevam, testem e façam deploy de smart contracts a partir do navegador.
  • Carteira NEAR: uma carteira é um lugar básico para desenvolvedores e para usuários para armazenar bens digitais que utilizados na rede.
  • NEAR explorer: um explorer que ajuda no entendimento da rede e de smart contracts, além de ajudar na depuração de erros, apresentando informações sobre a blockchain de um jeito fácil de ler.
  • Ferramentas de linha de comando da NEAR: o time da NEAR providencia um conjunto de ferramentas de linha de comando que permitem que os desenvolvedores crie, testem e implementem aplicações a partir de seus ambientes locais.

Observação: todas as ferramentas mencionadas estão sendo construídas de maneira open-source.

Confira a organização da near: https://github.com/near

Extra - características gerais da NEAR:

  1. A NEAR usa o mecanismo de consenso Proof Of Stake, e usa uma ferramenta chamada doomslug.
  2. Utilização de endereços legíveis, (Ex: lorenzo.near) melhorando a acessibilidade e diminuindo a barreira de entrada para usuários menos entendidos em conceitos de blockchain.
  3. A NEAR utiliza guildas no seu desenvolvimento, que são basicamente grupos de pessoas que fazem algo para a NEAR (algo como departamentos).

Tokenomics

  • A moeda é inflacionária, com aproximadamente 5% de tokens extras vindo das recompensas do processo de staking.
  • O token apresenta governança, com novas ideias para serem votadas com a comunidade do projeto.
  • Período de bloqueio (vesting) para investidores (não podem retirar o dinheiro até certa data), dando mais credibilidade ao projeto.
  • Grandes investidores, como a Coinbase e Andreesen Herowitz (a16z).

Conclusão

A NEAR é um projeto com grandes ambições, mas também grande e sólida infraestrutura e muito material de estudo e ferramentas para desenvolvedores e usuários. É importante ressaltar que a parte tecnológica da NEAR vai mais a fundo ainda, por isso o planejamento são sequências mais aprofundadas do presente artigo.

É visível o esforço da NEAR em compreender as necessidades da rede tanto em segurança quanto em performance, a maneira como os mecanismos foram criados e como funcionam.

Assim, com o entendimento do funcionamento geral da tecnologia da NEAR, é possível até mesmo contribuir com a criação e evolução da mesma, também contribuindo com o meio open source e com uma internet menos centralizada, e ao mesmo tempo, segura.

Latest comments (0)