Grin: Analisando sua tecnologia

Anonimidade e escalabilidade

Postado por Bruno Garcia em 2 de Fevereiro, 2019

A criptomoeda Grin chegou ao mercado com uma proposta muito diferente das demais e por isso tem sido muito comentada. A Grin é nada mais, nada menos, do que uma implementação do protocolo MimbleWimble feita por desenvolvedores anônimos. Embora muitas pessoas fiquem com um pé atrás com projetos os quais seus desenvolvedores são anônimos, a Grin inova nessa questão, pois é uma moeda sem um “time oficial”, sem ICO, pre-mined ou qualquer coisa do tipo.

Imagem apresentando o logo da Grin Logo da Grin

Mas o que é o protocolo MimbleWimble?

MimbleWimble é um protocolo com foco em privacidade e escalabilidade muito similar as Transações Confidenciais, a principal diferença é que no MimbleWimble o destinatário de uma transação seleciona aleatoriamente um intervalo de “blinding factors” (que funciona como se fosse um “segredo”/ “senha”) para ser usado como prova de propriedade, isso é, uma prova de que as moedas são suas e portanto você pode ‘gastá-las’. Além disso, o protocolo MimbleWimble é conhecido pela simplicidade, um bloco consiste em uma lista de inputs, uma lista outputs, assinaturas e SÓ! Essa simplicidade torna o protocolo leve, e portanto, escalável

Sobre a Grin

Além de seguir o protocolo MimbleWimble a Grin possui uma implementação limpa, e um código fonte bem simples. Outras características dela são:

  • Cuckoo Cycle Proof of Work
  • Intervalo entre os blocos curto: 1 minuto
  • Recompensa do bloco fixa
  • Ajuste da dificuldade de maneira suave
  • Não há endereços
  • Não há transações
  • Você deve estar se perguntando, como assim não há transações? Bem, no Bitcoin uma transação é composta por inputs e outputs, e um bloco é composto por um conjunto de transações (esse é o motivo de tanta discussão com relação ao tamanho do bloco, pois com o aumento do tamanho do bloco seria possível “colocar” mais transações nele). No caso da Grin, o próprio bloco funciona como se fosse uma enorme transação e toda a associação entre inputs e outputs é perdida. Essa falta de associação entre inputs e outputs é justamente um pilar da anonimidade.

    O código fonte da Grin é escrito em Rust, e possui hoje 109 colaboradores. Analisei o código dela, e realmente o protocolo é bem simples, o código é bem modularizado e muito fácil de ler. Essa simplicidade com certeza pode atrair novos colaboradores ao projeto de maneira fácil.

    O uso de Cuckoo Cycle é um ponto positivo para a Grin. Cuckoo Cycle é o primeiro Proof of Work que explora ao máximo as memórias e ainda sim mantém uma verificação instantânea. Além disso, se compararmos com o Hashcash, o Cuckoo Cycle leva vantagem pois é totalmente imune à aceleração quântica pelo algoritmo de busca de Grover.

    Cuckoo Cycle também é conhecido por ser simples, no próprio GitHub diz:

    “Com uma especificação completa de 42 linhas, o Cuckoo Cycle tem menos da metade do tamanho do SHA256, Blake2b ou SHA3 (Keccak) usado em Bitcoin, Equihash e Ethash. Simplicidade é importante.”

    Outro ponto muito importante da Grin é que sua leveza permite com que os nós na rede se sincronizem de maneira rápida. A leveza também reduz o custo de armazenamento.

    Por ser um projeto diferente dos demais, principalmente pelo fato de não lidar com endereços, o projeto ainda não está preparado para adoção, tendo em vista que ainda não possuem carteiras com boa interfaces. Entretanto, esse é um “problema” comum em criptomoedas recém lançadas, com o tempo a comunidade acaba desenvolvendo boas carteiras, tutoriais para iniciantes, entre outras coisas.