Contratos inteligentes ecológicos: há mais para bloquear o consumo de energia do que o consenso

10 milhões de pessoas colocando uma ordem hipotética de batatas fritas no Ethereum requer energia suficiente para alimentar 5,67 milhões de lares americanos por um dia.

Skylar Blocked Unblock Seguir Seguindo 6 de julho Crédito: Wikimedia

Uma crítica muito familiar da tecnologia blockchain é o fato de consumir muita energia. Uma vez que as pessoas ouvem que uma transação Bitcoin consome tanta energia quanto é necessária para abastecer 18 residências nos EUA por 24 horas, ou que anualmente o consumo de energia da rede Ethereum ultrapassou o de todo o país, elas são desligadas. Com razão.

Para aqueles que decidem começar a fazer perguntas, há aqueles em volta que serão rápidos em oferecer uma correção simples: os mecanismos de consenso de desperdício de trabalho usados pelos líderes de mercado Bitcoin e Ethereum não são uma propriedade inerente das tecnologias blockchain. De fato, existem mecanismos seguros de consenso ecológico trabalhando em blockchains públicos desde 2013, como prova de participação.

Então a conversa sobre o desperdício de energia termina.

No entanto, Ethereum, e praticamente todas as outras blockchain públicas que usam contratos inteligentes, enfrenta outra bomba-relógio relacionada à energia: contratos inteligentes são enormes porcos energéticos.

Que enorme? Bem, 10 milhões de pessoas colocando uma ordem hipotética de batatas fritas no Ethereum requer energia suficiente para alimentar 5,67 milhões de lares americanos por um dia.

Não precisa ser assim, mas para ter alguma chance de abordar esse problema, a conversa em torno de estruturas de contrato inteligente precisa de mais nuances.

O culpado: execução de contrato com estado

Em um nível alto, o problema está em como os contratos inteligentes são executados. O padrão de mercado no momento foi estabelecido pela Ethereum em 2015 e é algo a que me refiro como “execução de contrato com estado”.

Execução com estado significa que todo e qualquer nó, ou computador, na rede executa individualmente cada contrato ou programa e compara seus resultados com os demais. Supondo que mais de 50% da rede atinja o mesmo resultado, essa alteração é gravada no blockchain.

Esse design purista fazia sentido para os primeiros projetos de blockchain. A maneira mais fácil de confiar em um livro distribuído é saber que os cálculos de todos os contratos inteligentes que afetam os dados subjacentes gravados no blockchain são executados e verificados por todos os outros. Difícil de enganar se todos nós fizemos o mesmo trabalho.

Enquanto isso maximiza a confiança de que o programa funcionará como esperado, isso significa que a rede é tão rápida quanto seu nó mais lento, porque cada nó precisa fazer seu próprio trabalho antes de concordar com as mudanças. Além da velocidade, isso se traduz diretamente no consumo de energia. Em vez de apenas processar transações simples, cada nó deve executar programas completos de contrato inteligente.

Em outras palavras, em vez de simplesmente validar uma transação declarando “aceitar” ou “rejeitar”, os nós devem passar por um fluxograma da lógica “se isso, então aquilo” para chegar à decisão de “aceitar” ou "Rejeitar" uma mudança.

Os custos de energia de transações e contratos inteligentes

Uma transação normal na rede Ethereum requer 22 KWh de eletricidade, segundo estimativas da Digiconomist . Para referência, os dados da Administração de Informações de Energia dos EUA mostram que, em um mês de 30 dias, o domicílio médio dos EUA consumia 28,9 KWh de eletricidade por dia em 2017.

Contratos inteligentes na rede Ethereum são medidos usando Gas, taxas padrão para tipos variados de cálculos. Se você é novo no conceito de gás, leia mais aqui e aqui .

Depois de procurar pública de entrada e receber um feedback diretamente de Digiconomist, decidiu-se que a maneira mais precisa de conversão de gás para o consumo de energia que envolvem a olhar para a energia total consumida pela rede relação ao dia anterior e comparando-o com o gás total consumido ao longo desse mesmo período. Combinando dados do Índice de Consumo de Energia Ethereum da Digiconomist e etherchain.org , podemos chegar a uma estimativa de que:

1 Gas = eletricidade de 0,0004 KWh

Captura de tela de dados no momento do cálculo de 1 Gas = 0,0004 KWh de eletricidade

Deve-se notar que este cálculo é uma aproximação aproximada, pois só é responsável pelo consumo de energia dos validadores de mineração. Devido à falta de dados, isso não leva em consideração o consumo de energia dos nós de validação completa que não são de mineração. Recomenda-se a coleta de dados e pesquisas adicionais para avaliar de forma holística o consumo de energia da execução de contratos inteligentes.

Também sabemos que cada operação padrão na rede Ethereum, por exemplo, adicionando ou multiplicando números, é medida em Gás nas seguintes taxas:

– 3 Gás para cada cálculo que requer adição ou subtração de inteiros

– 5 Gás para cada cálculo que requer a multiplicação ou divisão de inteiros

– 20.000 Gás para cada cálculo, exigindo que uma palavra de 256 bits (texto normal) seja confirmada para armazenamento

A equação para calcular seu Gas para executar um contrato específico é:

21000 Gas para validar sua transação + o valor necessário para cobrir os cálculos em seu contrato.

A demanda de energia de 1 "killer app" é igual a 5,67 milhões de lares americanos por um dia

Imagine uma rede como a da Ethereum com seus 8000 nós existentes e 1 aplicativo matador que de repente traz 10 milhões de usuários.

Digamos que cada pessoa faça 1 pedido que envolva escrever uma palavra de 256 bits, fazer 1 cálculo adicionando alguns inteiros juntos e executar 1 computação multiplicando alguns números juntos.

Apenas para torná-lo comparável à vida real, pense em escrever a palavra “Fries” em um recibo, somando a coluna desse custo ($ 0 + o custo das batatas fritas) e multiplicando esse subtotal pelo respectivo imposto sobre vendas. Este não é necessariamente um contrato inteligente que você escreveria, mas vamos usá-lo para uma visualização fácil.

O resultado deste simples pedido é que cada pessoa precisa de 41.008 Gás, o que equivale a 16,4 KWh de eletricidade por pessoa.

16,4 KWh x 10.000.000 interações = 164.000.000 KWh

Lembre-se dos números acima e podemos avaliar que 10 milhões de pedidos de batatas fritas neste aplicativo equivalem a energia suficiente para alimentar 5,67 milhões de lares nos Estados Unidos por 1 dia a uma taxa padrão de 28,9 KWh por dia em 2017.

Contratos inteligentes verdes como alternativa

Até recentemente, acreditava que a estrutura de execução de contrato com estado era a única maneira de fazer as coisas. Acontece que, no início de 2019, uma abordagem “verde” alternativa à qual eu me referiria como execução de contrato sem estado entrou em cena.

A idéia básica é que os contratos inteligentes são armazenados no blockchain, no entanto, os contratos são executados apenas por um nó. O fluxo de trabalho básico é que alguém envia uma transação de gatilho com algumas informações de entrada que apontam para o nó que está executando o contrato, esse nó de “contrato de execução” faz alguns cálculos e, em seguida, envia uma transação de saída para consenso. Não há cálculos complexos em toda a rede, apenas uma transação normal para validar.

O Tradeoff e a Mitigação da Confiança

Isso significa que você precisa confiar no nó que está executando um programa ou contrato específico, o que significa que essa abordagem envolve o sacrifício de um grau de confiança em comparação com a execução de contrato com estado. Dito isto, medidas de mitigação podem ser incorporadas ao sistema.

Por exemplo, a plataforma Ardour inclui a capacidade de executar um nó do corredor de contrato sob um esquema de aprovação de várias assinaturas. Se o código do contrato for feito em código-fonte aberto, vários nós de verificação adicionais também poderão ser executados em paralelo e verificar o trabalho do nó do contrato, sinalizando a reprodução insuficiente.

[Divulgação completa: Eu tenho pequenos investimentos em Bitcoin, Ethereum e Ardour, bem como várias outras criptomoedas e tenho trabalhado com Jelurida.]

Um advogado da recente conferência SCIT 2019 em Nova York estava dizendo que muitos reguladores estão reprimindo as tecnologias blackbox que resultam em danos aos consumidores, e que houve uma mudança acentuada em direção ao código aberto de sourcing. A imutabilidade do blockchain quase exige tecnologia open sourcing como medida de proteção de responsabilidade.

Se essa tendência for verdadeira, o modelo de execução de contrato sem monitoração está posicionado para se beneficiar substancialmente dessa mudança, já que parece fornecer um meio transparente, escalável e sustentável de garantir a integridade dos dados. Isso também aumenta significativamente a capacidade das empresas de executar o gerenciamento do ciclo de vida do contrato real, já que tudo o que é preciso para atualizar um contrato é implantar o novo código em um nó e atualizar as referências em futuras transações de acionador e encerrar o outro com o antigo contrato.

Pensamentos Finais

A questão-chave no final do dia é se todos os nós em uma determinada rede, como Ethereum com 8000 nós, realmente precisam executar o cálculo completo de cada contrato inteligente ou se um nó sob controle de assinatura múltipla poderia fornecer o mesmo nível de integridade de dados, completando a computação em si e enviando a transação final para consenso. A execução de contratos sem estado ainda é relativamente nova no espaço do blockchain, mas, dado o claro desperdício de energia do atual padrão da indústria, essa é uma área absolutamente necessitada de mais exploração e discussão.

Adendo técnico

Baseio toda a minha análise em tecnologia na sua forma atual. A essa altura, agradeço qualquer feedback sobre como melhorar a precisão dos cálculos acima; no entanto, qualquer um que faça uma declaração em torno do Ethereum 2.0 “consertando” esses problemas deve reconhecer que, de fato, nenhuma das soluções da Ethereum mudaria a questão stateful ou stateless. Mesmo se você desenvolver um aplicativo em um fragmento Ethereum, todos os nós nesse fragmento deverão executar o contrato. Além disso, a Ethereum tem pedaços de código para uma prova do mecanismo de consenso da estaca no GitHub desde 2015 e ainda não chegou à rede, apesar dos vários anúncios de que o lançamento estava a apenas alguns meses de distância. Se você tiver comentários ou correções, mantenha a discussão focada na tecnologia que realmente funciona em uma rede pública.

Skylar Hurwitz é fundador da consultoria Blockchain Demetrius Consulting e vem revisando e analisando blockchains públicos desde 2017.