paint-brush
Entendendo “rollups” em cripto: reduzindo taxas e congestionamentopor@0xkishan
274 leituras

Entendendo “rollups” em cripto: reduzindo taxas e congestionamento

por Kishan Kumar7m2023/07/17
Read on Terminal Reader

Muito longo; Para ler

No momento, o Ethereum só consegue lidar com cerca de 15 transações por segundo. os validadores escolherão um conjunto de transações de um pool de transações que ainda não foi confirmado, e a forma como eles selecionam essas transações está relacionada ao seu lucro. Portanto, você tem que lutar para que sua transação seja incluída porque existem apenas tantas transações que podem ser processadas por vez.
featured image - Entendendo “rollups” em cripto: reduzindo taxas e congestionamento
Kishan Kumar HackerNoon profile picture
0-item
1-item
2-item

No momento, o Ethereum só consegue lidar com cerca de 15 transações por segundo; o que isso significa é que os validadores escolherão um conjunto de transações de um pool de transações que ainda não foi confirmado, e a maneira como eles selecionam essas transações está, de fato, relacionada ao seu lucro. Portanto, você tem que lutar para que sua transação seja incluída, porque existem apenas tantas transações que podem ser processadas por vez.


Você sabe, os validadores recebem taxas quando incluem sua transação em um bloco. Agora pense a partir de uma perspectiva de validador; há duas transações atualmente no pool de transações esperando para serem selecionadas por um validador. Uma transação está disposta a pagar $ 10 e a outra transação está pagando apenas $ 1 como taxa. Qual transação você escolherá?


O de $ 10 dólares, certo? Porque se você incluir essa transação no bloco, receberá $ 10 dólares como taxa.

Mas isso significa que minha transação só será retirada se eu definir minhas taxas altas?

Deixe-me explicar isso de uma maneira simples. Ao interagir com a rede Ethereum, você geralmente invoca certos contratos inteligentes. Contratos inteligentes são um conjunto de instruções; pense neles como um programa. Cada instrução exigirá algum poder computacional.


O seguinte é um contrato simples em linguagem de solidez.


 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract HelloWorld { string public message; constructor() { message = "Hello World"; } function getMessage() public view returns (string memory) { return message; } function setMessage(string memory newMessage) public { message = newMessage; } }


Se você é um Solidez desenvolvedor, você pode estimar o gás que este contrato exigirá se implantado no EVM.


Quando você implanta esse contrato, a primeira coisa que é chamada é seu construtor , que define a variável de message como “Hello World” . Isso altera o estado do blockchain . Qualquer mudança de estado requer taxas. Vamos supor que armazenar uma string em uma variável custe 1$.


Se você quiser definir a mensagem para outra coisa, digamos, “Bem-vindo ao artigo de Kishan” , você precisará invocar o método setMessage() no contrato, passando sua mensagem necessária, e isso novamente exigirá algumas taxas porque você estão alterando o estado. Digamos que exigiu 1 $ novamente.


E se eu quiser ver qual é a mensagem? Você pode simplesmente chamar getMessage(); isso não exigirá nenhuma taxa, pois não altera o estado. Tendo explicado isso, vamos voltar à nossa discussão.


Digamos que, por algum motivo, sua transação que estava atualmente no pool de transações invoque esse contrato inteligente HelloWorld e defina a mensagem com seu nome.


Agora suponha que um validador escolha sua transação hipoteticamente, ele verá que você definiu as taxas para $ 1, e a invocação do contrato inteligente em si levará $ 1. Então, ele mesmo não recebeu nada em troca. Todas as taxas foram usadas interagindo com o contrato inteligente. Por que ele vai pegá-lo? Essa transação será rejeitada porque não há incentivo para o validador processá-la e incluí-la na cadeia. Portanto, você terá que tentar novamente com taxas maiores para atrair o validador para escolher sua transação.


A taxa de gás pode ficar realmente competitiva quando muitos usuários estão fazendo transações no Ethereum. Sim, você pode definir as taxas manualmente, mas cuidado, pois pode levar muito tempo para ser confirmado, porque os validadores selecionarão apenas as transações que os beneficiarão.


Se sua transação for sensível ao tempo, por exemplo, você deseja que uma negociação seja fechada o mais rápido possível, isso representa um risco de liquidação. Nesse cenário, é melhor definir as taxas o mais alto possível ou usar uma das carteiras que fornecem uma estimativa de taxas que confirmarão sua transação em segundos. Porque economizar combustível pode fazer com que todo o seu portfólio seja apagado.


Essas altas taxas impediram muitos entusiastas de criptografia de realizar transações no Ethereum, e há muitas outras camadas 1 que foram introduzidas para resolver esse problema. Mas todos eles carecem de descentralização, e é por isso que qualquer um mudaria para web3.


Então, há alguma solução para isso?

Queremos usar a descentralização e a segurança oferecidas pelo Ethereum, mas, ao mesmo tempo, não queremos perder nosso bolso com essas altas taxas.


Uma maneira de resolver esses problemas é o Rollups, uma solução de dimensionamento de camada 2.

Rollups

Rollups são uma forma de agregar transações e processá-las fora da cadeia e publicar o resultado de volta na cadeia.


Tudo isso off-chain e on-chain pode gerar dúvidas no entendimento, então deixe-me esclarecer um pouco mais. Pense nos rollups como um processo que pode reduzir significativamente as taxas e o congestionamento do blockchain Ethereum. A maneira como esse trabalho é rolando (agregando) um grande lote de transações e movendo-as para fora da cadeia, como cadeia paralela, VM etc. Essas cadeias paralelas são operadas por redes de camada 2, como Arbitrum, zkSync , Otimismo, etc

Quem agrega a transação?

A agregação é feita por uma entidade chamada rollup operator, cujo trabalho principal é coletar transações de diferentes usuários e executá-las em um ambiente off-chain. Novamente, off-chain pode significar muitas coisas, dependendo da implementação, como uma máquina virtual, uma sidechain ou outro protocolo de camada 2.


Depois de executar as transações, ele envia os dados agregados (bloco rollup) para a cadeia Ethereum como calldata, juntamente com a prova de que o executou corretamente. Até aqui, estamos claros, mas o que é calldata ?


Pense em calldata como um tipo especial de dado que pode ser armazenado no Ethereum sem ser executado ou afetar seu estado.


Os operadores de rollup precisam pagar uma taxa ao validador Ethereum para incluir os dados de chamada em um bloco. Uma vez incluído. O operador rollup monitora o contrato rollup (explicado na próxima seção) para quaisquer contestações ou disputas de outros usuários ou validadores. Se houver alguma disputa, ele responde de acordo.

Quem o verifica?

Um contrato rollup é responsável por verificar os dados da transação e comprovantes presentes nos calldata enviados por nossa operadora rollup. É um contrato inteligente implantado no Ethereum que gerencia o estado e a lógica do rollup.


Um contrato rollup recebe os dados da transação e as provas do operador rollup como calldata, verifica-os, atualiza o estado dos rollups e emite um evento para qualquer alteração de estado.

Como funciona?

Vamos combinar tudo o que aprendemos e resumir usando um exemplo:

  1. Digamos que você queira enviar 1 ETH para seu amigo Ram usando um rollup.


  2. Você especifica o endereço do Ram e o valor a ser enviado em sua carteira e assina a transação.


  3. Depois disso, você envia a transação para um operador de rollup, que é responsável por agregar transações de diferentes usuários e executá-las no ambiente de execução off-chain.


  4. O operador rollup agrupará sua transação com outras transações no chamado bloco rollup e o enviará à cadeia Ethereum como calldata . Em seguida, paga as taxas aos validadores por incluí-lo no bloco.


  5. Agora, dependendo do tipo de rollup, o operador de rollup pode precisar enviar uma prova ou uma afirmação adicional da validade do bloco de rollup junto com os dados da chamada.


  6. Feito isso, o bloco rollup é então processado pelo rollup contract , que é um contrato inteligente implantado na cadeia Ethereum que gerencia o estado e a lógica do rollup. O contrato verifica a prova ou afirmação, atualiza o estado dos usuários de rollup e emite um evento para qualquer alteração de estado.


  7. Finalmente, Ram recebe 1 ETH de você em sua conta rollup.

Tipo de Rollups

Rollups otimistas

Rollups otimistas são otimistas. O que quero dizer é que eles assumem que todas as transações no lote são válidas. Mas há um porém. Eles dão um período de carência em que um usuário ou um validador que pensa que a transação é inválida pode contestá-la enviando uma prova de fraude. A rede principal do Ethereum então o verifica e, se o desafio for bem-sucedido, o bloco de rollup é rejeitado e o operador desonesto é fortemente penalizado.


Se não houver disputa após o término do período de carência, o lote de transações é ancorado no Ethereum e as mudanças de estado que ele inclui são finalizadas.


Embora forneça maior escalabilidade e taxas de gás reduzidas, ele vem com um atraso na finalização da transação porque é preciso aguardar o período de carência.


Existem dois cavalos principais na corrida:

  1. Arbitrum ,
  2. Otimismo .

acúmulos zK

Escrevi um artigo detalhado explicando zk-rollups aos quais você pode se referir. De qualquer forma, eu daria a você uma breve visão geral do que é e como funciona.


Os rollups zk, ao contrário dos rollups otimistas, assumem que todas as transações são inválidas até que se prove que são válidas. Ele usa “provas de conhecimento zero” para validar a autenticidade da transação. Depois de passar por todas as transações no lote, ele envia uma única transação de volta ao Ethereum, junto com a prova de que o contrato rollup pode ser facilmente verificado.


É mais seguro em comparação com um rollup otimista. Como não há prazo de carência, as transações têm finalização instantânea, pois a validade já é comprovada via prova criptográfica. No entanto, gerar a prova requer poder de computação e experiência significativos para implementá-la. Isso pode aumentar a complexidade em comparação com os rollups otimistas.


Dois cavalos principais na corrida são:

  1. Polígono zkEVM

  2. zkSync-Era


Obrigado por tomar o tempo para ler este artigo.

Leitura Adicional:

Referências:

  1. Dimensionamento de camada 2: zk-rollups e rollups otimistas | Gêmeos
  2. Rollups de conhecimento zero | ethereum.org
  3. Rollups otimistas | ethereum.org
  4. Camada 2 | ethereum.org
  5. O que são “Rollups” em criptografia? | Coinbase
  6. O que são Rollups Otimistas? - 101 Blockchains