Smart Contract Design in Times of Congested Networks

Updated on: August 12th, 2020
This content has been Fact-Checked.
Smart Contract Design in Times of Congested Networks

Neste artigo, vamos entender o que significa o gás Ethereum e por que ele disparou recentemente. Depois disso, veremos como outras plataformas de contratos inteligentes, como RSK e EOS, lidam com os preços do gás quando se trata de Design de contratos inteligentes.

Ethereum tem um problema de gás. Por mais engraçado que pareça, podemos garantir que os desenvolvedores estão fazendo qualquer coisa, exceto rindo dessa declaração.

A crescente demanda por aplicativos DEFi (finanças descentralizadas) aumentou o congestionamento na principal cadeia de blocos Ethereum. Isso, por sua vez, disparou os preços do gás na cadeia principal. De acordo com Bitinfocharts, as taxas de transação medianas atingiram seus níveis mais altos desde o início de 2018.

Contrato inteligente e Ethereum Virtual Machine (EVM)

Contratos inteligentes são contratos automatizados. Eles são auto-executáveis com instruções específicas escritas em seu código, que são executadas quando certas condições são feitas.

Você pode saber mais sobre contratos inteligentes em nosso guia detalhado aqui.

Contratos inteligentes são como as coisas são feitas no ecossistema Ethereum. Quando alguém quer fazer uma tarefa específica em Ethereum, eles iniciam um contrato inteligente com uma ou mais pessoas.

Contratos inteligentes são uma série de instruções escritas usando a linguagem de programação “solidez”, que funciona com base na lógica IFTTT, também conhecida como a lógica IF-THIS-THEN-THEN-THE THA. Basicamente, se o primeiro conjunto de instruções for feito, execute a próxima função e depois a próxima e continue repetindo até chegar ao final do contrato.

Este é o princípio fundamental por trás dos contratos inteligentes. Isto é o que nos permite ter um acordo vinculativo entre várias partes supervisionado por código, em vez de um terceiro, como um advogado.

O que é a Máquina Virtual Ethereum?

As máquinas virtuais Ethereum são ecossistemas nos quais você executa contratos inteligentes. A funcionalidade adequada do contrato inteligente requer três coisas significativas:

Determinística.

Exterminável.

Isolado.

Funcionalidade #1: Determinística

Um programa é determinístico se ele dá a mesma saída para uma determinada entrada cada vez. Por exemplo. Se 3+1 = 4 então 3+1 será SEMPRE 4 (assumindo a mesma base). Então, quando um programa dá a mesma saída para o mesmo conjunto de entradas em computadores diferentes, ele é chamado determinístico.

Recurso #2: Terminável

Na lógica matemática, temos um erro chamado “problema de parada”. Basicamente, ele afirma que há uma incapacidade de saber se um determinado programa pode ou não executar sua função em um limite de tempo. Trata-se, obviamente, de um problema com os contratos inteligentes, uma vez que os contratos, por definição, têm de ser capazes de rescisão num determinado prazo. Os contratos inteligentes precisam de um ambiente onde possam integrar um mecanismo de parada.

Funcionalidade #3: Isolado

Em uma cadeia de blocos, qualquer um e todos podem carregar um contrato inteligente. No entanto, devido a isso, os contratos podem, conscientemente e sem saber, conter vírus e bugs. Se o contrato não for isolado, isso pode prejudicar todo o sistema. Portanto, é fundamental que um contrato seja mantido isolado em uma caixa de areia para salvar todo o ecossistema de quaisquer efeitos adversos.

Ethereum fornece todas essas funcionalidades através do EVM. É uma simples e poderosa máquina virtual de 256 bits Turing Complete.

O que é Ethereum Gás?

O gás é uma unidade que mede a quantidade de esforço computacional que será necessário para executar determinadas operações. Todos os contratos inteligentes executados no EVM são codificados usando solidez (o Ethereum está planejando passar para o Viper da Solidez no futuro.) Cada linha de código em solidez requer uma certa quantidade de gás para ser computada.

A imagem abaixo foi tirada do Ethereum Yellowpage e pode ser usada para ter uma ideia aproximada de quanto as instruções específicas custam gás.

Imagem Cortesia: Papel amarelo Ethereum

Para entender melhor como o gás funciona em Ethereum, vamos usar uma analogia. Suponha que você está indo em uma viagem. Antes de fazer isso, siga estas etapas:

Você vai ao posto de gasolina e especifica a quantidade de gasolina que você quer encher em seu carro.

Encha o gás no seu carro.

Você paga ao posto de gasolina a quantidade de dinheiro que deve a eles pela gasolina.

Agora, vamos desenhar paralelos com Ethereum.

O carro é a operação que você deseja executar, como um gás ou um contrato inteligente.

O gás está bem... gás.

O posto de gasolina é o seu mineiro.

O dinheiro que lhes pagou são as taxas dos mineiros.

Todas as operações que os usuários desejam executar em ethereum devem fornecer gás para o seguinte:

Para cobrir seus dados, conhecido como gás intrínseco.

Para cobrir toda a sua computação.

Agora que cobrimos o básico, talvez você faça a seguinte pergunta.

Por que temos esse sistema de gás?

A resposta é simples... incentivo.

Como qualquer sistema de prova de trabalho peer-to-peer, Ethereum é fortemente dependente da hashrate de seus mineiros. Mais os mineiros, mais o hashrate, mais seguro, e rápido o sistema.

Para atrair mais mineiros para o sistema, eles precisam tornar o sistema o mais rentável e sedutor possível para os mineiros. Em Ethereum, há duas maneiras que os mineiros podem ganhar dinheiro:

Por blocos de mineração e recebendo recompensas de bloco.

Tornando-se ditadores temporários de seus blocos minados.

Vamos explorar o segundo ponto.

Os mineiros são responsáveis por colocar transações dentro de seus blocos. Para isso, eles devem usar seu poder computacional para validar contratos inteligentes. O sistema de gás permite que eles cobrem uma taxa específica para fazê-lo.

Esta taxa é conhecida como taxa do mineiro e ajuda a incentivá-los o suficiente para participar ativamente do ecossistema.

Então, quanto taxas eles podem cobrar? Antes de calcularmos isso, vamos entender como medimos o gás.

A menor unidade de medida de gás é wei. Então, se gastarmos 1 unidade de gás durante uma operação, chamamos de 1 wei.

As unidades de medidas aumentam assim:

Crédito de Imagem: Steemit

Antes de prosseguirmos, é importante conhecer o conceito de Limite de Gás.

O que é o limite de gás?

Para obter uma operação feita em Ethereum, o gerador de operação (ou seja, a pessoa que inicia a transação ou o criador de contrato inteligente) deve especificar um limite de gás antes de enviá-lo aos mineiros. Quando um limite de gás tiver sido definido, só então os mineiros começarão a executar a operação.

Ao enviar um limite de gás, os seguintes pontos devem ser considerados:

Operações diferentes terão custos de gás diferentes (como foi mostrado anteriormente).

Os mineiros vão parar de executar no momento em que o gás acabar.

Se houver algum gás sobrando, ele será imediatamente reembolsado para o gerador de operação.

Vamos ver isso em operação em um cenário hipotético.

Suponha, estamos adicionando dois números e para isso o contrato deve fazer as seguintes ações:

Armazenando 10 em uma variável. Digamos que esta operação custa 45 wei de gás.

Adicionando duas variáveis, digamos que isso custa 10 wei gás.

Armazenar o resultado que novamente custa 45 wei gás.

Suponha que o limite de gás seja 120 wei.

O gás total utilizado pelo mineiro é (45+10+45) 100 wei.

As taxas que são devidas a eles assumindo 1 wei custos 0,02 micro ETH é (100*0,02 micro ETH) = 0,000002 ETH.

Agora, quanto gasolina sobrou?

120 — 100 = 20 wei.

O 20 wei é reembolsado de volta para o gerador de operação.

Então, tendo especificado que, há dois cenários que se deve considerar:

O limite de gás está muito baixo.

O limite de gás é muito alto.

Cenário #1: O limite de gás é muito baixo

Se uma operação ficar sem gás, então ela é revertida de volta ao seu estado original como nada realmente aconteceu, no entanto, o gerador de operação AINDA deve pagar aos mineiros a taxa por seus custos computacionais e a operação é adicionada à cadeia de blocos (mesmo que não tenha sido executada).

Voltando para a nossa analogia viagem de estrada, se você não tiver enchido gasolina suficiente em seu carro, então você não será capaz de chegar ao seu destino, mas mesmo assim você pagou o posto de gasolina o dinheiro para o combustível certo?

Vamos ver como isso funciona em nosso hipotético contrato inteligente de adição. O passo foi:

Armazenando 10 em uma variável. Digamos que esta operação custa 45 wei de gás.

Adicionando duas variáveis, digamos que isso custa 10 wei gás.

Armazenar o resultado que novamente custa 45 wei gás.

No entanto, desta vez, o limite de gás é de 90 wei.

Agora, sabemos que o gás que será necessário para cumprir o contrato é de 100 wei, mas só temos 90 wel limite.

Neste cenário, o mineiro fará 90 wei valor de computação e, em seguida, cobrar as taxas do gerador de operação para o 90 wei que acaba por ser (90 * 0,02 micro ETH) 0,000018 ETH.

Além disso, o contrato volta ao seu estado original e é adicionado à cadeia de blocos.

Cenário #2: O limite de gás é muito alto

Então, e se definirmos o limite de gás muito alto?

Isso faria sentido fazer o certo? Depois de tudo o que é sobra é reembolsado para o gerador de operação certo?

Isso soa bem no papel, mas na realidade não funciona muito bem. Você tem que lembrar que cada bloco em Ethereum tem um limite geral de gás. Os mineiros só podem adicionar operações que se somem a ser menor ou igual ao limite de gás do bloco.

Imagem cortesia: Hackernoon

Suponha que haja uma transação A que tem um limite de gás de 42.000 e duas transações B e C que têm limites normais de 21.000.

O que fará mais sentido para um mineiro colocar em seu bloco?

Eles vão colocar na transação A e reembolsar uma enorme quantidade de gás?

Ou eles vão colocar as transações B e C e reembolsar pouco ou nada de volta?

O segundo ponto faz mais sentido para eles economicamente certo?

É precisamente por isso que ter um limite de gás inchado não é o caminho sensato a percorrer.

Gás Alto e Baixo vs Taxa Alta e Baixa

Deve ficar claro para você até agora que o gás e o éter não são a mesma coisa. Gás é a quantidade de energia computacional necessária, enquanto éter é o preço aka as taxas que se deve pagar por esse gás.

Agora, com o conhecimento de tudo o que obtivemos até agora, vamos passar por certos cenários de gás e taxas.

Se uma operação tem gás LOW, então os mineiros não vão mesmo pegá-lo porque ele não tem gás suficiente para terminar o cálculo.

Se uma operação tem taxas BAIXAS, então ela pode ter apenas gás suficiente para cobri-la, mas ainda assim os mineiros não estarão mastigando os pedaços para pegá-lo porque uma operação com taxas baixas não é economicamente viável para eles.

Se uma operação tiver gás ALTO, isso significa que a operação está inchada com um alto limite de gás e, portanto, os mineiros não o pegarão.

Se uma operação tem altas taxas, então os mineiros sabem que eles vão ganhar muito dinheiro e pegá-lo instantaneamente.

Os preços de gás recomendados para diferentes taxas de transação, de acordo com a ethgasstation são:

Aumento dos preços do gás Ethereum

O Ethereum blockchain tem visto maior uso nos últimos tempos. Isto deve-se ao aumento do uso de contratos inteligentes mais complicados.

De acordo com o posto de gasolina Ethereum, moedas estáveis como USDT e trocas descentralizadas como Uniswap são os contratos inteligentes mais fome de gás no espaço. Esse aumento de uso solicita que os usuários paguem taxas mais altas para que suas transações sejam processadas mais rapidamente. Como tal, quando há muita atividade, as taxas de taxa podem rapidamente subir.

Para entender o quão drástica é a situação, considere isso. De acordo com a Coin Metrics, em um ponto, o custo médio por transação subiu para uma média de 7 dias de cerca de 91 centavos, de cerca de 8 centavos no início de 2020. Connor Abendschein da Digital Assets Data observa:

“A partir de agora, altas taxas de gás estão impedindo que os jogadores menores possam participar de alguns dos protocolos mais interessantes da DEFi, como o Synthetix.”

Isto é uma vergonha absoluta, porque o Ethereum e o Defi estão a construir um sistema financeiro global aberto e facilmente acessível.

A pior parte é que este problema só vai piorar à medida que protocolos DEFi mais complicados e usuários entram no ecossistema.

Então, como os concorrentes do Ethereum estão lidando com o problema do gás? Vamos dar uma olhada...

Design de contrato inteligente em EOS: Modelo de propriedade

O sistema de gás Ethereum pode ser pensado como um modelo de aluguel. Ethereum é um supercomputador global, em que você alugar recursos (gás) para criar e executar seu aplicativo.

O EOS, por outro lado, usa um modelo de propriedade. Em vez de ser um supercomputador descentralizado, o EOS planeja se tornar um sistema operacional descentralizado que os desenvolvedores do Dapp podem utilizar para criar e codificar vários Dapps. Os tokens EOS atuam como uma cabine de pedágio, e segurá-los dá acesso a vários recursos, como largura de banda, computação e RAM.

Como esses recursos são escassos, o EOS não quer que você mantenha seus tokens por muito tempo. A empresa por trás da EOS, Block.one, mencionou explicitamente na constituição da plataforma que os membros da EOS que não usam seus tokens por três anos teriam sua conta encerrada.

Ao apostar e bloquear tokens EOS, você é fornecido uma quantidade equivalente de recursos em rede e largura de banda da CPU em troca. No entanto, como a RAM é um recurso escasso, você não obtê-lo automaticamente por estaking. Então, para obtê-los, você precisará comprá-lo diretamente do mercado RAM.

Cada vez que alguém compra ou vende RAM, uma taxa de 0,5% é aplicada tanto ao lado do comprador quanto ao lado do vendedor (1% no geral). Isso realmente dá aos usuários um incentivo econômico para vender sua RAM e desencoraja o marketing especulativo e a inflação, pois as taxas coletadas são prontamente queimadas (removidas do ecossistema).

Este mercado interno de RAM irá certificar-se de que há uma disponibilidade constante de RAM e irá compensar qualquer futura escassez prevista. Você será capaz de comprar RAM com base no preço que o sistema define, com base no fornecimento de RAM atualmente disponível.

Ao comprar e usar esses recursos, os desenvolvedores são capazes de criar aplicativos descentralizados.

Custos de desenvolvimento de EOS

Ao contrário de Ethereum, você não precisa pagar os preços do gás em EOS. Você precisa estocar seus tokens EOS para receber largura de banda, CPU e armazenamento para seu contrato inteligente. Junto com tudo isso, você ainda precisará de RAM. Uma vez que a RAM é um recurso tão raro, você precisa comprá-lo de um mercado interno de RAM. De acordo com o planejador de recursos da EOS, a RAM custa $0.154 USD por KiB

Então, com todas essas informações em mente, vamos ver quanto EOS você terá que apostar para executar um aplicativo. Vamos supor que vamos fazer um aplicativo para 1000 usuários. Você precisará considerar as seguintes métricas:

Pague por cada conta de usuário.

Você precisará pagar por seu armazenamento

Você também precisará ter em conta a largura de banda da rede e a largura de banda da CPU que você precisará também.

RSK - A ponte entre Bitcoin e Ethereum - Design de contrato inteligente

Rootstock (RSK) é uma plataforma de contrato inteligente que está conectada à cadeia de blocos Bitcoin através da tecnologia sidechain. Rootstock nasceu para ser compatível com os aplicativos da Ethereum (o modelo Web3/EVM/Solidity) e bitcoin como a criptomoeda subjacente. A idéia por trás da criação do RSK era dar ao Bitcoin blockchain funcionalidades de contrato inteligente. No seu núcleo, Rootstock é uma combinação de:

Uma máquina virtual determinística contabilizada por recursos Turing-completa (para contratos inteligentes) compatível com o EVM da Ethereum.

Um sidechain Bitcoin bidirecional (para comércio denominado BTC) baseado em uma federação forte

Um protocolo de consenso de fusão SHA256D (para segurança de consenso dependendo dos mineiros da Bitcoin) com intervalo de bloqueio de 30 segundos. (para pagamentos rápidos).

O RSK permite que você crie pontes de token que se conectam diretamente ao Ethereum blockchain. Isso permite que o criador do contrato aproveite as vantagens de ambas as cadeias de blocos, mas também permite a criação de um ecossistema próspero e interoperável entre os dois.

Então, como isso se traduz em preços do gás? RSK tem sido historicamente mais barato do que Ethereum quando se trata de custos de gás.

A linha azul acima é o preço do gás da Ethereum, enquanto a linha verde abaixo é o preço do gás da RSK. Se você precisar de mais esclarecimentos sobre quanto mais eficiente de gás RSK é quando comparado com Ethereum, então confira isso:

Aqui está a média de taxas de transação de Ethereum e RSK nos últimos dez dias. Então, o que isso significa é que não só o RSK é mais barato, mas também traz a segurança geral da cadeia de blocos Bitcoin, dando-lhe uma vantagem distinta sobre Ethereum e EOS.

Conclusão

À medida que entramos em uma nova era de inovação e adoção mais ampla, os desenvolvedores precisarão de uma plataforma onde possam desenvolver seus aplicativos de forma eficiente. Embora ninguém negue que Ethereum é um primeiro motor, outras plataformas como a RSK definitivamente fizeram casos fortes como potenciais rebatedores pesados do futuro. Se levarmos em consideração o fato de que o desenvolvimento de contratos inteligentes e todos os tipos de tokens fungíveis e tokens não fungíveis é um processo contínuo no RSK, os desenvolvedores têm grandes incentivos para testar esta plataforma de contrato inteligente.

Rajarshi Mitra
Rajarshi started writing in the blockchain space after listening to Andreas Antonopoulos’ podcast with Joe Rogan. A content generating machine, Rajarshi has been consistently producing high-quality guides and articles for us since late 2016. His articles have been shared extensively in social media and several start-ups have used his guide as learning material for their staff. He is continuously invited all over his country to give talks in various crypto seminars and conferences. He has gained a solid reputation as a speaker/educator on top of being one of the most promising writers in the crypto space. When he is not busy nerding out over the latest in the blockchain/crypto space, he is usually busy watching re-runs of top gear and MMA.

Like what you read? Give us one like or share it to your friends and get +16

1,102
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In