Capa da publicação Contratos inteligentes: introdução ao Ethereum
Capa: DepositPhotos
Artigo Destaque dos editores

Contratos inteligentes: introdução ao Ethereum

Exibindo página 1 de 2
Leia nesta página:

Ethereum é uma rede de código aberto que utiliza a tecnologia de blockchain para executar contratos inteligentes.

Resumo: O Ethereum é um blockchain descentralizado com funcionalidade de contrato inteligente. O Ether (abreviação: ETH; [a] sinal: Ξ) é a criptomoeda nativa da plataforma. Entre as criptomoedas, o ether perde apenas para o bitcoin em capitalização de mercado.[3][4] Ele é um software de código aberto.

Palavras-chave: Contratos inteligentes. Ethereum. Blockchain. Direito.


1. INTRODUÇÃO

O Ethereum foi concebido em 2013 pelo programador Vitalik Buterin.[5] Fundadores adicionais do Ethereum incluíram Gavin Wood, Charles Hoskinson, Anthony Di Iorio e Joseph Lubin.[6] Em 2014, o trabalho de desenvolvimento começou e foi financiado por crowdfunding, o financiamento coletivo, e a rede foi lançada em 30 de julho de 2015.[7] O Ethereum permite que qualquer pessoa implante aplicativos descentralizados permanentes e imutáveis nele, com os quais os usuários podem interagir.[8] Os aplicativos de financiamento descentralizado (DeFi) fornecem instrumentos financeiros que não dependem diretamente de intermediários financeiros, como corretoras, bolsas ou bancos. Isso facilita a obtenção de empréstimos contra participações em criptomoedas ou o empréstimo por juros.[9][10] O Ethereum também permite que os usuários criem e troquem tokens não fungíveis (os NFTs), que são tokens que podem ser vinculados a ativos digitais exclusivos, como imagens. Além disso, muitas outras criptomoedas utilizam o padrão de token ERC-20 no topo da blockchain Ethereum e utilizaram a plataforma para ofertas iniciais de moedas.

Em 15 de setembro de 2022, o Ethereum fez a transição de seu mecanismo de consenso de proof-of-work (PoW), prova de operação para proof-of-stake (PoS), ou prova de participação, em um processo de atualização conhecido como "the Merge, a Fusão". Isso reduziu o uso de energia do Ethereum em 99%.[11]


2. A HISTÓRIA DO ETHEREUM

2.1 Fundação (2013–2014)

O Ethereum foi inicialmente descrito no final de 2013 em um white paper, ou prosposta inicial de Vitalik Buterin,[5][12] um programador e cofundador da Bitcoin Magazine, que descrevia uma maneira de construir aplicativos descentralizados.[13][14] Buterin argumentou para os desenvolvedores da Bitcoin Core que a tecnologia Bitcoin e blockchain poderia se beneficiar de outros aplicativos além do dinheiro e que precisava de uma linguagem mais robusta para o desenvolvimento de aplicativos[15]: 88  que poderia levar a anexar ativos do mundo real, como ações e propriedades, ao blockchain.[16] Em 2013, Buterin trabalhou brevemente com o CEO da eToro, Yoni Assia, no projeto Colored Coins e redigiu seu white paper descrevendo casos de uso adicionais para a tecnologia blockchain.[17] No entanto, depois de não conseguir chegar a um acordo sobre como o projeto deveria prosseguir, ele propôs o desenvolvimento de uma nova plataforma com uma linguagem de script mais robusta - uma linguagem de programação completa de Turing[18] - que eventualmente se tornaria o Ethereum.[15]

O Ethereum foi anunciado na North American Bitcoin Conference em Miami, em janeiro de 2014.[19] Durante a conferência, Gavin Wood, Charles Hoskinson e Anthony Di Iorio (que financiou o projeto) alugaram uma casa em Miami com Buterin na qual eles poderiam desenvolver uma noção mais completa do que o Ethereum poderia se tornar.[19] Di Iorio convidou o amigo Joseph Lubin, que convidou o repórter Morgen Peck, para testemunhar.[19] Peck posteriormente escreveu sobre a experiência na Wired.[20] Seis meses depois, os fundadores se encontraram novamente em Zug, na Suíça, onde Buterin disse aos fundadores que o projeto continuaria sem fins lucrativos. Hoskinson deixou o projeto na época e logo depois fundou a IOHK, empresa de blockchain responsável pela Cardano.[19]

O Ethereum tem uma lista extraordinariamente longa de fundadores.[21] Anthony Di Iorio escreveu: "O Ethereum foi fundado por Vitalik Buterin, eu mesmo, Charles Hoskinson, Mihai Alisie e Amir Chetrit (os 5 iniciais) em dezembro de 2013. Joseph Lubin, Gavin Wood e Jeffrey Wilcke foram adicionados no início de 2014 como fundadores." Buterin escolheu o nome Ethereum depois de navegar em uma lista de elementos da ficção científica na Wikipédia. Ele afirmou: "Percebi imediatamente que gostava mais dele do que de todas as outras alternativas que tinha visto; suponho que seja o fato de [isso] soar bem e ter a palavra 'éter', referindo-se ao hipotético meio invisível que permeia o universo e permite que a luz viaje."[19] Buterin queria que sua plataforma fosse o meio subjacente e imperceptível para os aplicativos rodando sobre ela.[22]

2.2 Desenvolvimento do Ethereum (2014)

O desenvolvimento formal do software subjacente ao Ethereum começou no início de 2014 por meio de uma empresa suíça, o Ethereum Switzerland GmbH (EthSuisse).[23] A ideia de colocar contratos inteligentes executáveis no blockchain precisava ser especificada antes que pudesse ser implementada em software. Este trabalho foi feito por Gavin Wood, então diretor de tecnologia, no Ethereum Yellow Paper que especificava o Ethereum Virtual Machine.[24][25] Posteriormente, uma fundação suíça sem fins lucrativos, a Fundação Ethereum (Stiftung Ethereum), foi fundada. O desenvolvimento foi financiado por uma venda pública online de julho a agosto de 2014, na qual os participantes compraram o token de valor do Ethereum (o ether) com outra moeda digital, bitcoin. Embora tenha havido elogios iniciais para as inovações técnicas do Ethereum, também foram levantadas questões sobre sua segurança e escalabilidade.[13]

2.3 Lançamento e evento The DAO (2014–2016)

Vários protótipos de codinome do Ethereum foram desenvolvidos ao longo de 18 meses em 2014 e 2015 pela Fundação Ethereum como parte de sua série de prova de conceito.[5] O "Olympic" foi o último protótipo e pré-lançamento beta público. A rede Olympic deu aos usuários uma recompensa de bug de 25.000 ether para testar o estresse do blockchain Ethereum. Em 30 de julho de 2015, "Frontier" marcou o lançamento oficial da plataforma Ethereum, e o Ethereum criou seu "bloco de gênese".[5][26] O bloco de gênese continha 8.893 transações alocando várias quantidades de ether para diferentes endereços e uma recompensa de bloco de 5 ETH.

Desde o lançamento inicial, o Ethereum passou por várias atualizações de protocolo planejadas, que são mudanças importantes que afetam a funcionalidade subjacente e/ou as estruturas de incentivo da plataforma.[27][28] As atualizações de protocolo são realizadas por meio de um hard fork, a modificação radical do código-fonte do blockchain do projeto.

Em 2016, uma organização autônoma descentralizada chamada The DAO - um conjunto de contratos inteligentes desenvolvidos na plataforma - arrecadou um recorde de US$ 150 milhões em uma venda coletiva para financiar o projeto.[29] The DAO foi explorado em junho de 2016, quando US$ 50 milhões em tokens DAO foram roubados por um hacker desconhecido.[30][31] O evento gerou um debate na comunidade criptográfica sobre se o Ethereum deveria realizar um contencioso "hard fork" para reapropriar os fundos afetados.[32] A bifurcação resultou na divisão da rede em dois blockchains: o Ethereum com o roubo revertido e o Ethereum Classic que continuou na cadeia original.[33]

2.4 Desenvolvimento contínuo e marcos do Ethereum (2017–presente)

Em março de 2017, várias startups de blockchain, grupos de pesquisa e empresas da Fortune 500 anunciaram a criação da Enterprise Ethereum Alliance (EEA) com 30 membros fundadores.[34] Em maio de 2017, a organização sem fins lucrativos tinha 116 membros empresariais, incluindo ConsenSys, CME Group, grupo de pesquisa da Cornell University, Toyota Research Institute, Samsung SDS, Microsoft, Intel, J. P. Morgan, Cooley LLP, Merck KGaA, DTCC, Deloitte, Accenture, Banco Santander, BNY Mellon, ING e National Bank of Canada.[35][36] Em julho de 2017, havia mais de 150 membros na aliança, incluindo MasterCard, Cisco Systems, Sberbank e Scotiabank.[37]

Em janeiro de 2018, o ether era a segunda maior criptomoeda em termos de capitalização de mercado, atrás do bitcoin.[38] A partir de 2021, manteve essa posição relativa.[3][4]

Em 2019, o funcionário da Fundação Ethereum, Virgil Griffith, foi preso pelo governo dos Estados Unidos por se apresentar em uma conferência de blockchain na Coreia do Norte.[39] Mais tarde, ele se declararia culpado de uma acusação de conspiração para violar a Lei dos Poderes Econômicos de Emergência Internacional em 2021.[40]

Em março de 2021, a Visa Inc. anunciou que começou a liquidar transações de stablecoin usando Ethereum.[41] Em abril de 2021, a JP Morgan Chase, a UBS e a MasterCard anunciaram que estavam investindo US$ 65 milhões na ConsenSys, uma empresa de desenvolvimento de software que constrói infraestrutura relacionada ao Ethereum.[42]

Houve duas atualizações de rede em 2021. A primeira foi "Berlin", implementada em 14 de abril de 2021.[43] A segunda foi "London", que entrou em vigor em 5 de agosto.[44] A atualização de Londres incluiu o Ethereum Improvement Proposal ("EIP") 1559, um mecanismo para reduzir a volatilidade da taxa de transação. O mecanismo faz com que uma parte do ether pago em taxas de transação para cada bloco seja destruída em vez de entregue ao proponente do bloco, reduzindo a taxa de inflação do ether e possivelmente resultando em períodos de deflação.[45]

Em 27 de agosto de 2021, o blockchain passou por uma breve fork resultante de clientes executando diferentes versões de software incompatíveis.[46]

2.5 O Ethereum 2.0

O Ethereum 2.0 (Eth2) era um conjunto de três ou mais atualizações, também conhecidas como "fases", destinadas a fazer a transição do mecanismo de consenso da rede para proof-of-stake e escalar a taxa de transferência da rede com fragmentação de execução e uma arquitetura EVM aprimorada .[47]

A mudança de proof-of-work para proof-of-stake reduziu o uso de energia do Ethereum em 99%. No entanto, o impacto que isso tem no consumo global de energia e nas mudanças climáticas pode ser limitado, uma vez que os computadores usados anteriormente para minerar ether podem ser usados para minerar outras criptomoedas que consomem muita energia.[11]


3. O PROJETO DO ETHEREUM

3.1 O Ether

O Ether (ETH) é a criptomoeda gerada de acordo com o protocolo Ethereum como recompensa aos validadores em um sistema proof-of-stake por adicionar blocos ao blockchain. O Ether é representado no estado como um inteiro sem sinal associado a cada conta, sendo este o saldo de ETH da conta denominado em wei (10^18 wei = 1 éter).[48] Ao final de cada época, um novo ETH é gerado pela adição de valores especificados pelo protocolo aos saldos de todos os validadores daquela época, com os proponentes do bloco recebendo a maior parte. Além disso, o ether é a única moeda aceita pelo protocolo como pagamento pela taxa de transação. A taxa de transação é composta de duas partes: a taxa base e a gorjeta. A taxa base é "queimada" (excluída da existência) e a gorjeta vai para o proponente do bloco. A recompensa do validador junto com as gorjetas fornecem o incentivo aos validadores para manter o blockchain crescendo (ou seja, para continuar processando novas transações). Portanto, o ETH é fundamental para o funcionamento da rede. O Ether pode ser "enviado" de uma conta para outra por meio de uma transação, o que implica simplesmente subtrair o valor a ser enviado do saldo do remetente e adicionar o mesmo valor ao saldo do destinatário.[49]

Assine a nossa newsletter! Seja o primeiro a receber nossas novidades exclusivas e recentes diretamente em sua caixa de entrada.
Publique seus artigos

O Ether é frequentemente referido erroneamente como "Ethereum".[50]

3.2 Contas no Ethereum

Existem dois tipos de contas no Ethereum: contas de usuário (também conhecidas como contas de propriedade externa) e contratos. Ambos os tipos têm um saldo de ETH, podem enviar ETH para qualquer conta, podem chamar qualquer função pública de um contrato ou criar um novo contrato e são identificados no blockchain e no estado por um endereço de conta.[51]

Os contratos são o único tipo de conta que possui código associado (um conjunto de funções e declarações de variáveis) e armazenamento de contratos (os valores das variáveis em um determinado momento). Uma função de contrato pode receber argumentos e pode ter valores de retorno. Além das instruções de fluxo de controle, o corpo de uma função pode incluir instruções para enviar ETH, ler e gravar no armazenamento do contrato, criar armazenamento temporário (a memória) que desaparece no final da função, executar operações aritméticas e de hash, chamar as próprias funções do contrato ou funções públicas de outros contratos, criar novos contratos e consultar informações sobre a transação atual ou o blockchain.[52]

3.3 Endereços Ethereum

Os endereços Ethereum são compostos pelo prefixo "0x" (um identificador comum para hexadecimal) concatenado com os 20 bytes mais à direita do hash Keccak-256 da chave pública ECDSA (a curva utilizada é a chamada secp256k1). Em hexadecimal, dois dígitos representam um byte e, portanto, os endereços contêm 40 dígitos hexadecimais, por exemplo 0xb794f5ea0ba39494ce839613fffba74279579268. Os endereços de contrato estão no mesmo formato, no entanto, eles são determinados pelo remetente e pela transação de criação nonce.[25]

3.4 Ethereum Virtual Machine

A Ethereum Virtual Machine (EVM), a Máquina Virtual Ethereum, é o ambiente de tempo de execução para execução de transações no Ethereum. Ele inclui, entre outras coisas, uma pilha, memória, balanço de gas, contador de programa e o estado (incluindo o código do contrato). O EVM é baseado em pilha, em que a maioria das instruções extrai operandos da pilha e empurra o resultado para a pilha. A EVM foi projetada para ser determinístico em uma ampla variedade de hardware e sistemas operacionais, de modo que, dado um estado pré-transação e uma transação, cada nó produza o mesmo estado pós-transação, permitindo assim o consenso da rede. A definição formal da EVM é especificada no Ethereum Yellow Paper.[25][53] EVMs foram implementadas nas linguagens de programação C++, C#, Go, Haskell, Java, JavaScript, Python, Ruby, Rust, Elixir, Erlang e WebAssembly.

3.5 Gas

Gas é uma unidade de conta dentro da EVM usada no cálculo da taxa de transação, que é o valor de ETH que o remetente de uma transação deve pagar à rede para que a transação seja incluída no blockchain. Cada tipo de operação que pode ser realizada pelo EVM é codificado com um determinado custo de gas, que se destina a ser aproximadamente proporcional ao valor monetário dos recursos (por exemplo, computação e armazenamento) que um nó deve gastar ou dedicar para executar essa operação.

Quando um remetente está criando uma transação, o remetente deve especificar um limite de gas e um preço de gas. O limite de gas é a quantidade máxima de gas que o remetente está disposto a usar na transação, e o preço do gas é a quantidade de ETH que o remetente deseja pagar à rede por unidade de gas usado. Uma transação só pode ser incluída na blockchain em um slot de bloco que tenha um preço base de gas menor ou igual ao preço do gas da transação. A parcela do preço do gas que excede o preço do gas base é conhecida como gorjeta e vai para o proponente do bloco; quanto maior a gorjeta, mais incentivo um proponente de bloco tem para incluir a transação em seu bloco e, portanto, mais rapidamente a transação será incluída no blockchain. O remetente compra a quantidade total de gas (ou seja, seu saldo de ETH é debitado no valor: limite de gas × preço do gas) antecipadamente, no início da execução da transação, e é reembolsado no final por qualquer gas não utilizado. Se em algum momento a transação não tiver gas suficiente para realizar a próxima operação, a transação é revertida, mas o remetente ainda é reembolsado apenas pelo gas não utilizado. Em interfaces de usuário, os preços do gas são normalmente denominados em gigawei (Gwei), uma subunidade de ETH igual a 10^-9 ETH.[54]


4. APLICAÇÕES DO ETHEREUM

O conjunto de instruções do EVM é Turing-completo.[25] Os usos populares do Ethereum incluíram a criação de tokens fungíveis (ERC-20) e não fungíveis (ERC-721) com uma variedade de propriedades, crowdfunding (por exemplo, ofertas iniciais de moedas), finanças descentralizadas, trocas descentralizadas, organizações autônomas descentralizadas (DAOs), jogos, mercados de previsão e jogos de azar.

4.1 Código-fonte do contrato

Os contratos inteligentes do Ethereum são escritos em linguagens de programação de alto nível e, em seguida, compilados para o bytecode EVM e implantados na blockchain Ethereum. Eles podem ser escritos em Solidity (uma biblioteca de linguagem com semelhanças com C e JavaScript), Serpent (semelhante ao Python, mas obsoleto), Yul (uma linguagem intermediária que pode compilar para vários back-ends diferentes - EVM 1.0, EVM 1.5 e eWASM são planejadaS), LLL (uma linguagem semelhante a Lisp de baixo nível) e Mutan (baseada em Go, mas obsoleta). Havia também uma linguagem orientada para pesquisa em desenvolvimento chamada Vyper (uma linguagem decidível derivada de Python fortemente tipada). O código-fonte e as informações do compilador geralmente são publicados junto com o lançamento do contrato para que os usuários possam ver o código e verificar se ele compila para o bytecode que está na cadeia.

Um problema relacionado ao uso de contratos inteligentes em um blockchain público é que os bugs, incluindo falhas de segurança, são visíveis para todos, mas não podem ser corrigidos rapidamente.[55] Um exemplo disso é o ataque de 2016 ao The DAO, que não pôde ser interrompido ou revertido rapidamente.[30]

4.2 Tokens ERC-20

O padrão de token ERC-20 (Ethereum Request-for-Comments #20) permite tokens fungíveis na blockchain Ethereum. O padrão, proposto por Fabian Vogelsteller em novembro de 2015, implementa uma API para tokens dentro de contratos inteligentes. O padrão fornece funções que incluem a transferência de tokens de uma conta para outra, obtendo o saldo atual do token de uma conta e obtendo o fornecimento total do token disponível na rede. Os contratos inteligentes que implementam corretamente os processos ERC-20 são chamados de contratos de token ERC-20 e acompanham os tokens criados no Ethereum. Numerosas criptomoedas foram lançadas como tokens ERC-20 e foram distribuídas por meio de ofertas iniciais de moedas.[56]

4.3 Tokens não fungíveis (NFTs)

O Ethereum também permite a criação de tokens únicos e indivisíveis, chamados tokens não fungíveis (NFTs).[57] Como os tokens desse tipo são únicos, eles têm sido usados para representar coisas como colecionáveis, arte digital, memorabilia esportiva, imóveis virtuais e itens dentro de jogos.[58] O primeiro projeto NFT, Etheria, um mapa 3D de blocos hexagonais negociáveis e personalizáveis, foi implantado na rede em outubro de 2015 e demonstrado ao vivo no DEVCON1 em novembro daquele ano.[59] Em 2021, a Christie's vendeu uma imagem digital com um NFT de Beeple por US $ 69,3 milhões, tornando-o o terceiro artista vivo mais valioso em termos de preços de leilão na época, embora observadores tenham notado que tanto o comprador quanto o vendedor tinham um direito adquirido interesse em impulsionar a demanda pelo trabalho do artista.[60][61]

4.4 Finanças descentralizadas (DeFi)

As finanças descentralizadas (DeFi) oferecem instrumentos financeiros tradicionais em uma arquitetura descentralizada, fora do controle de empresas e governos, como fundos do mercado monetário que permitem aos usuários ganhar juros.[62] Os aplicativos DeFi são normalmente acessados por meio de uma extensão ou aplicativo de navegador habilitado para Web3, como o MetaMask, que permite aos usuários interagir diretamente com o blockchain Ethereum por meio de um site.[63] Muitos desses DApps podem se conectar e trabalhar juntos para criar serviços financeiros complexos.[64]

Exemplos de plataformas DeFi incluem MakerDAO e Compound.[65] A Uniswap, uma troca descentralizada de tokens no Ethereum cresceu de US$ 20 milhões em liquidez para US$ 2,9 bilhões em 2020.[66] Em outubro de 2020, mais de US$ 11 bilhões foram investidos em vários protocolos DeFi.[67] Além disso, por meio de um processo chamado "wrapping (envolver)", certos protocolos DeFi permitem que versões sintéticas de vários ativos (como bitcoin, ouro e petróleo) sejam negociáveis no Ethereum e também compatíveis com todas as principais carteiras e aplicativos do Ethereum.[67]

4.5 Softwares empresariais

Softwares e redes baseados em Ethereum, independentes da rede pública Ethereum, estão sendo testados por empresas de software empresarial.[68] As partes interessadas incluem Microsoft, IBM, JPMorgan Chase,[49] Deloitte, R3 e Innovate UK (protótipo de pagamentos internacionais).[69] Barclays, UBS, Credit Suisse, Amazon, Visa e outras empresas também estão experimentando o Ethereum.[70][71]

4.6 Livros-razão autorizados

Variantes de blockchain permissionadas baseadas em Ethereum são usadas e estão sendo investigadas para vários projetos:

Em 2017, o JPMorgan Chase propôs o desenvolvimento do JPM Coin em uma variante autorizada do blockchain Ethereum apelidado de "Quorum".[72] Ele é "projetado para seguir a linha entre o público e o privado no domínio do embaralhamento de derivativos e pagamentos. A ideia é satisfazer os reguladores que precisam de acesso contínuo aos acontecimentos financeiros, protegendo a privacidade das partes que não desejam revelar suas identidades nem os detalhes de suas transações para o público em geral."[73]

4.7 Desempenho do Ethereum

A desvantagem é que surgem problemas de desempenho porque cada nó calcula todos os contratos inteligentes em tempo real. Em janeiro de 2016, o protocolo Ethereum podia processar cerca de 25 transações por segundo; isso não mudou após a implementação da prova de participação. Em comparação, a plataforma de pagamento Visa processa 45.000 pagamentos por segundo. Isso levou alguns a questionar a escalabilidade do Ethereum.[74]

Os engenheiros do Ethereum têm trabalhado na fragmentação dos cálculos, e a próxima etapa (o Ethereum 2) foi apresentada na Devcon 3 do Ethereum em novembro de 2017.[75]

O blockchain do Ethereum usa árvores Merkle por motivos de segurança, para melhorar a escalabilidade e para otimizar o hash da transação.[76] Como acontece com qualquer implementação de árvore Merkle, isso permite economia de armazenamento, definir provas de associação (chamadas de "provas Merkle") e sincronização leve do cliente. A rede enfrentou problemas de congestionamento, como em 2017 em relação ao CryptoKitties.[77]

Assuntos relacionados
Sobre o autor
Icaro Aron Paulino Soares de Oliveira

Bacharel em Direito pela Universidade Federal do Ceará - UFC. Acadêmico de Administração na Universidade Federal do Ceará - UFC. Pix: [email protected] WhatsApp: (85) 99266-1355. Instagram: @icaroaronsoares

Como citar este texto (NBR 6023:2018 ABNT)

OLIVEIRA, Icaro Aron Paulino Soares. Contratos inteligentes: introdução ao Ethereum. Revista Jus Navigandi, ISSN 1518-4862, Teresina, ano 28, n. 7277, 4 jun. 2023. Disponível em: https://jus.com.br/artigos/104401. Acesso em: 30 abr. 2024.

Publique seus artigos Compartilhe conhecimento e ganhe reconhecimento. É fácil e rápido!
Publique seus artigos