Você quer começar a escrever contratos inteligentes mais avançados, com funcionalidades mais sofisticadas, trabalhando no ecossistema das blockchains?
Meu nome é Vinícius Chagas e serei seu instrutor ao longo deste curso sobre blockchains! Eu sou fundador e CEO da HOUS3, uma fábrica de software focada na nova economia digital, e te dou boas-vindas diretamente do estúdio da Alura, preparado especialmente para esta jornada.
Audiodescrição: Vinícius se descreve como um homem de cabelo encaracolado castanho-escuro, barba média castanho-escura, e olhos castanho-escuros. Ele usa óculos de armação arredondada prateada, veste uma camisa preta, e está no estúdio da Alura, com um microfone preto à sua frente e uma parede clara ao fundo iluminada em degradê verde.
Este material foi preparado para quem trabalha com desenvolvimento e tem interesse em participar do ecossistema de blockchain, trabalhando com smart contracts, ou contratos inteligentes.
Para isso, é importante possuir conhecimento básico prévio em Solidity. Além disso, para a parte prática, será necessário conhecimento prévio em Node e Next.js.
Ao longo deste curso, aprenderemos como funciona a criptografia na blockchain na prática. Também entenderemos o que são e como funcionam os protocolos de consenso.
Além disso, exploraremos as soluções de segunda camada e as soluções de escalabilidade na blockchain; entenderemos o que é Oracle e como integrar soluções de oráculos em smart contracts. Por fim, abordaremos padrões mais avançados de construção com contratos inteligentes.
Consolidaremos todos esses conhecimentos em um projeto prático de crowdfunding, onde construiremos uma aplicação com um front-end integrado à blockchain.
Essa aplicação incluirá um painel administrativo para criar campanhas de crowdfunding, contribuir para elas, solicitar saques e, como pessoas administradoras, aprovar e executar esses saques. Assim, distribuiremos o dinheiro recebido durante as doações para a campanha de crowdfunding.
Lembre-se de aproveitar todos os conteúdos da plataforma que estarão à sua disposição. Além dos vídeos, temos atividades práticas, um fórum, e uma comunidade no Discord.
Vamos começar a estudar? Te aguardamos no próximo vídeo!
Como vimos no curso anterior, tivemos duas fases da blockchain. A primeira fase, com o Bitcoin, tinha um propósito específico, focado no problema das transações financeiras. Já o Ethereum surgiu como um computador descentralizado, que podemos utilizar para escrever programas.
Bitcoin:
- Limitada a transações financeiras
- Limitada para aplicações complexas
Ethereum:
- Computador descentralizado global
- Aplicações descentralizadas
Agora, vamos nos aprofundar nessa transição. Com o Bitcoin, enfrentamos um grande problema: não conseguimos utilizar aquela blockchain para escrever aplicações mais complexas devido a suas limitações. A partir de 2015, com o Ethereum, temos um computador descentralizado global, que possui uma máquina virtual, permitindo-nos escrever nossos programas, as chamadas "aplicações descentralizadas".
Chegamos à questão de como construir aplicações mais complexas que vão além de transações financeiras. Por exemplo, um jogo que utiliza blockchain para alguma regra de negócio, um sorteio, e aplicações financeiras como empréstimos e liquidações.
A grande diferença entre a blockchain de primeira geração, como o Bitcoin, e as blockchains de segunda geração, que tiveram origem no Ethereum, é a presença de um componente chamado Ethereum Virtual Machine.
Ethereum Virtual Machine, basicamente, é uma máquina virtual que nos permite escrever contratos inteligentes. Esses contratos são programas que escrevemos e enviamos para a blockchain, sendo executados a cada transação que faz uma requisição para aquele contrato.
O Ethereum surge com a visão de ser o computador global. Seu fundador, Vitalik Buterin, o apresenta como um canivete suíço. Enquanto o Bitcoin tinha uma finalidade específica de transações financeiras, o Ethereum oferece várias ferramentas para escrevermos nossas aplicações descentralizadas na blockchain, utilizando contratos inteligentes.
Um exemplo simples de contrato inteligente é uma lógica que, uma vez escrita e enviada para a blockchain, será executada quando as condições pré-determinadas forem validadas.
Imagine um contrato inteligente na blockchain para um aluguel.
Exemplo de contrato inteligente:
- O inquilino envia o pagamento;
- O contrato verifica o valor depositado;
- Contrato transfere o pagamento para proprietário.
Quando o inquilino deposita o dinheiro, o contrato identifica o depósito e pode, por exemplo, liberar o acesso ao imóvel, tudo sem a intervenção de terceiros. Essa autoexecução dos contratos inteligentes é o grande ganho das aplicações descentralizadas.
Imagine que temos um ecossistema de contratos inteligentes que gerenciam empréstimos financeiros. De um lado, temos os provedores de liquidez que colocam quantias financeiras e, do outro, os tomadores que aceitam pagar juros.
Essa relação, que no ambiente tradicional é gerenciada por bancos e financiadoras, no ecossistema descentralizado do DeFi (finanças descentralizadas), é gerenciada por contratos inteligentes. Isso não seria possível nas blockchains de primeira geração.
Outro exemplo são os NFTs, tokens que criam a representação da propriedade digital de algo único. Podemos ter aplicações que utilizam NFTs para ingressos com assentos numerados, acesso a cursos, plataformas online ou certificados digitais. Os NFTs são exemplos de aplicações que não seriam possíveis na blockchain 1.0.
Por fim, as DAOs(Organizações Autônomas Descentralizadas), surgiram com a blockchain. Basicamente, são contratos inteligentes que podem gerenciar a gestão de projetos.
Esses ecossistemas que citei como exemplos, gerenciados por contratos inteligentes com blockchain, são muito mais complexos do que simples transações financeiras.
Neste vídeo, aprendemos sobre a importância do Ethereum ao trazer programabilidade para a blockchain.
No próximo vídeo, vamos nos aprofundar no componente que possibilita isso: a máquina virtual!
No vídeo anterior, entendemos o grande avanço que tivemos da blockchain 1.0 para a blockchain 2.0. Agora, vamos falar sobre o componente que traz essa evolução: a máquina virtual do Ethereum.
Quando falamos em executar um software dentro de um ambiente descentralizado, onde não temos 100% de controle, precisamos garantir que todos esses softwares sejam executados da mesma maneira e atinjam sempre os mesmos resultados. Caso contrário, teríamos um problema de incompatibilidade.
A solução para isso na blockchain é a máquina virtual Ethereum(EVM). As blockchains que possuem esse componente são chamadas de EVMs, e ele é responsável por garantir essa uniformidade. A EVM funciona como um processador mas é um processador virtualizado, não é um processador em hardware.
Esse conceito é comum em outras linguagens de programação. Existe, por exemplo, a Java Virtual Machine, que virtualiza o ambiente e garante a execução uniforme dos componentes, independentemente do sistema operacional.
Isso é crucial para a blockchain, pois, mesmo em um ambiente descentralizado, onde qualquer pessoa, de qualquer lugar do mundo, pode rodar um nó e participar da rede, conseguimos garantir que a execução dos programas será sempre idêntica e chegará ao mesmo resultado.
A máquina virtual precisa interpretar algo, mas ela não interpreta diretamente o código escrito em Solidity, a linguagem de programação usada para contratos inteligentes.
Compilamos o contrato inteligente em Solidity para bytecode, que será interpretado pela máquina virtual. É importante compreender como o software que escrevemos é transformado em bytecode, que será interpretado e executado pela máquina virtual dentro da infraestrutura da blockchain.
A nossa máquina virtual possui características diferentes de uma máquina virtual tradicional. Precisamos de isolamento e imutabilidade. Na blockchain, quando subimos um dado ou contrato, eles são imutáveis. O código não pode ser alterado, embora possamos fazer atualizações, tema que será tratado mais adiante no curso. Quando subimos um contrato, aquela versão é imutável.
Outro ponto importante é o gas(unidade de medida), que é o custo ou taxa paga para que os contratos sejam executados. Em um ambiente descentralizado, precisamos controlar os recursos computacionais utilizados na execução.
Se os servidores estivessem abertos para qualquer um submeter um programa, a tendência seria que agentes tentassem consumir mais recursos, esgotando-os e impedindo o funcionamento da blockchain. O gas atua como limitador, cobrando mais caro por transações que consumam muitos recursos.
O ciclo de vida do contrato envolve escrevê-lo localmente, compilá-lo, implantá-lo na blockchain e, através de transações, interagir com suas funções e variáveis.
A EVM, o cérebro da blockchain, possui componentes principais:
A EVM funciona como o processador da blockchain, permitindo a escrita de programas através de contratos inteligentes.
Vamos agora explorar os opcodes, comandos que a EVM entende e executa. No site EVM Codes, encontramos uma lista de todos os opcodes.
Esses comandos são colocados na pilha, retirados e executados, resultando na dinâmica da execução. Não é necessário decorar esses comandos, mas é importante entender que o código escrito é transformado em bytecode, que contém os opcodes.
Os opcodes têm impacto muito grande, especialmente no versionamento da máquina virtual. A versão do compilador pode alterar opcodes, exigindo atenção ao escrever contratos em novas versões. A compatibilidade entre blockchains diferentes também é afetada, pois opcodes diferentes significam que uma máquina virtual não será compatível com outra.
Neste vídeo, entendemos como a blockchain permite a escrita de programas complexos e como o software em linguagem de alto nível chega à máquina virtual.
No próximo vídeo, abordaremos um dos principais componentes da blockchain: a criptografia. Veremos na prática como funcionam os principais componentes de criptografia dentro de uma blockchain!
O curso Blockchain: crie contratos inteligentes avançados possui 190 minutos de vídeos, em um total de 61 atividades. Gostou? Conheça nossos outros cursos de Computação em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.