Segurança

15 fev, 2019

Nova criptomoeda promete ser mais rápida e eficiente que as atuais

Publicidade

Pesquisadores do MIT desenvolveram uma nova criptomoeda que reduz drasticamente a quantidade de dados necessária para que os usuários acessem redes e verifiquem transações. De acordo com os teste realizados pela equipe, a diferença é de 99%, comparado às criptomoedas populares de hoje, resultando em uma rede muito mais escalável.

Em um artigo que será apresentado na Network and Distributed System Security Symposium (NDSS) ainda neste mês, os pesquisadores do MIT introduziram a Vault, uma criptomoeda que permite aos usuários entrarem nas rede baixando apenas uma fração do total dos dados da transação.

Uma de suas tecnologias permite que a nova criptomoeda delete contas vazias que ocupam espaço e permite que usuários façam verificações usando somente as transações mais recentes, que são divididas e compartilhadas pela rede, minimizando, dessa forma, os requisitos de armazenamento de dados do usuário e processamento.

Durante alguns experimentos realizados pelo grupo, a Vault reduziu em 99% a largura da banda para acessar a rede, comparado às criptomoedas mais eficientes de hoje. A nova criptomoeda também garante que todos os nodes validem todas as transações, elevando o nível de segurança.

“Atualmente há muitas criptomoedas, mas elas estão chegando no gargalo quando falamos sobre acessar um sistema como novo usuário e armazenamento. O objetivo principal aqui é permitir que criptomoedas escalem para mais usuários”, afirmou o co-autor, Derek Leung, estudante graduado na Computer Science and Artificial Intelligence Laboratory (CSAIL).

Junto com Leung, no artigo, estão os pesquisadores da CSAIL, Yossi Gilad e Nickolai Zeldovich, que também é professor no Departamento de Engenharia Elétrica e Ciência da Computação (EECS).

Vaulting sobre os blocos

Cada bloco em uma rede de criptomoedas contém uma timestamp, sua localização na blockchain, e uma sequência de números e letras de comprimento fixo, chamada de “hash”, que é basicamente a identificação do bloco. Cada novo bloco contém a hash do bloco anterior no blockchain.

Os blocos na Vault também contêm até 10.000 transações – ou 10 megabytes de dados – que devem ser todos verificados pelos usuários.

A estrutura do blockchain e, em particular, a cadeia de hashes, garantem que um usuário mal intencionado não possa hackear os blocos sem detecção.

Novos usuários entram nas redes de criptomoedas, ou fazem um “bootstrap” ao baixarem os dados da transação anterior para garantir que eles estão seguros e atualizados.

Para entrar na Bitcoin no ano passado, por exemplo, um usuário teria que fazer o download de 500 mil blocos, totalizando cerca de 150 gigabites.

Os usuários também precisam armazenar todos os balanços das contas para ajudar a verificar novos usuários e garantir que eles tenham fundos suficientes para completar transações. Os requisitos de armazenamento estão se tornando substanciais, enquanto a Bitcoin expande, ultrapassando 22 milhões de contas.

Os pesquisadores projetaram o sistema em cima de uma nova rede de criptomoedas, chamada Algorand – inventada por Silvio Macali, professor Ford de Engenharia no MIT – é segura, descentralizada, e mais escalável que outras criptomoedas.

Com criptomoedas transacionais, os usuários competem para resolver equações que validam os blocos, como o primeiro a resolver sendo premiado com fundos. Enquanto a rede escala, isso desacelera o tempo de processamento das transações.

Cada bloco possui uma informação chave para validar o certificado imediatamente, o que significa que novos usuários devem começar pelo primeiro bloco na cadeia, juntamente com seu certificado e em sequência, validar cada um deles na ordem, o que pode consumir tempo.

Para agilizar o processo, os pesquisadores fornecem cada nova informação de verificação de certificado com base em um bloco de algumas centenas ou mil blocos atrás dele – chamada “breadcrumb”.

Quando um novo usuário entra, eles correspondem à migalha de um bloco inicial Blocos à frente. Esse breadcrumb pode ser combinado com outro breadcrumb de 1.000 blocos à frente e assim por diante.

Fragmentação

Para reduzir os requisitos de armazenamento de dados, os pesquisadores projetaram o Vault com um novo esquema de “fragmentação/sharding”. A técnica divide os dados da transação em partes menores – ou fragmentos – compartilhados na rede, de modo que os usuários individuais tenham que processar somente pequenas quantidades de dados para verificar as transações.

Para implementar a fragmentação de forma segura, o Vault usa uma estrutura conhecida, chamada árvore binária Merkle. Em árvores binárias, um único nó superior ramifica-se em dois nós “filhos”, e esses dois nós se dividem em dois nós filhos cada, e assim por diante.

Nas árvores Merkle, o nó superior contém um único hash, chamado hash raiz. Mas a árvore é construída de baixo para cima. Ela combina cada par de hashes filho ao longo da parte inferior para formar o hash pai. Esse processo é repetido na árvore, atribuindo um nó pai de cada par de nós filhos, até combinar tudo no hash raiz.

Em criptomoedas, o nó superior contém um hash de um único bloco. Cada nó inferior contém um hash que significa as informações do saldo de uma conta envolvida em uma transação no bloco. O hash de equilíbrio e o hash de bloco são interligados.

Para verificar qualquer transação, a rede combina os dois nós filhos para obter o hash do nó pai. Esse processo se repete trabalhando na árvore. Se o hash combinado final corresponder ao hash raiz do bloco, a transação poderá ser verificada. Mas com criptomoedas tradicionais, os usuários devem armazenar toda a estrutura da árvore.

Com o Vault, os pesquisadores dividem a árvore Merkle em fragmentos separados atribuídos a grupos separados de usuários. Cada conta de usuário sempre armazena os saldos das contas em seu shard atribuído, assim como os hashes raiz.

O truque é ter todos os usuários armazenando uma camada de nós que corta toda a árvore Merkle. Quando um usuário precisa verificar uma transação de fora de seus shards, eles traçam um caminho para essa camada comum. A partir dessa camada comum eles podem determinar o saldo da conta fora de seu shard e continuar a validação normalmente.

“Cada fragmento da rede é responsável por armazenar uma fatia menor de uma estrutura de big data, mas essa pequena fatia permite que os usuários verifiquem transações de todas as outras partes da rede”, diz Leung.

Além disso, os pesquisadores projetaram um novo esquema que reconhece e descarta das contas de fragmento atribuídas pelo usuário que tiveram saldo zero por um determinado período de tempo.