1  Introdução às Tecnologias Blockchain

Visão Geral

Resumo
Blockchain é uma tecnologia nova e considerada revolucionária e disruptiva, sendo até mesmo comparada, quanto ao impacto, ao surgimento da Internet. Nesta aula serão apresentados conceitos e alguns fundamentos básicos relacionadas à Tecnologia Blockchain. Nesta aula é apresentada uma Visão Geral sobre rede Ethereum, componentes do Ecossistema Ethereum, a Ethereum Virtual Machine (EVM) e Contratos Nativos. Além disso, uma perspectiva do usuário é apresentada, mostrando a estrutura dos blocos do blockchain da Ethereum, Wallets e softwares clientes, nós e mineradores, ferramentas e APIs, protocolos e Linguagens de Programação Suportados.

1.1 Objetivos

Apresentação de uma Visão Geral sobre o Ecossistema de Tecnologias relacionadas a Blockchain. Surgimento e contexto histórico vinculado ao Bitcoin. Mas o foco principal está na rede Ethereum e componentes do seu Ecossistema. Falaremos um pouco sobre a Ethereum Virtual Machine (EVM) e Contratos Inteligentes. Além disso, uma perspectiva do usuário é apresentada, mostrando a estrutura dos blocos do blockchain da Ethereum, Wallets e softwares clientes, nós e mineradores, ferramentas e APIs, protocolos e Linguagens de Programação Suportados.

Ideia Geral da Disciplina

1.2 Interesse no termo “blockchain” ao longo do tempo

Pesquisas sobre o termo “blockchain” Fonte: Google Trends

1.3 Como um Blockchain funciona

Funcionamento de um Blockchain

1.4 Definição de Blockchain

[alertblock]{Definição de Gosh}

A blockchain is a digital distributed ledger, where transactions are stored in blocks linked to each other with a singly linked list. A block contains a link pointing to its predecessor. New blocks can be appended to the head of a blockchain. Existing blocks cannot be modified or deleted.

[/alertblock]

[alertblock]{Definição de Layman}

Blockchain is an ever-growing, secure, shared recordkeeping system in which each user of the data holds a copy of the records, which can only be updated if all parties involved in a transaction agree to update.

[/alertblock]

[alertblock]{Definição Técnica}

Blockchain is a peer-to-peer distributed ledger that is cryptographically-secure, append-only, immutable (extremely hard to change), and updateable only via consensus or agreement among peers.

[/alertblock]

[framebreak]

  • Peer-to-peer
  • Distributed Ledger (livro-razão distribuído)
  • Criptograficamente Seguro
  • Append Only (Permitido somente anexar novos blocos)
  • Atualizável via consenso dos pares.

1.5 Como a Tecnologia Blockchain foi desenvolvida

1950s – Hash functions

1970s – Merkle trees - hashes in a tree structure

1970s continued – Research in distributed systems, consensus, state machine replication

1980s – Hash chains for secure logins

1990se-Cash for e-payments

1991 – Secure timestamping of digital documents.

1992 – Hashcash idea to combat junk emails

1994 – S/KEY application for Unix login.

1997/2002Hashcash

2008/2009 – Bitcoin (the first blockchain)

1.6 Visão Arquitetural de um Blockchain

1.7 Estrutura Genérica de um Blockchain

Estrutura Genérica de um Blockchain

Organização Blockchain
  • Para evitar overhead, os registros são agrupados em blocos. Os registros em um bloco são organizados em uma estrutura de árvore chamada de Merkle tree [Merkle 1989] para acesso mais rápido.

1.8 Estrutura Genérica de um bloco

Estrutura de um Bloco

1.9 Benefícios e Limitações de um Blockchain

[columns]

[column=0.5]

Benefícios

Descentralização

Transparência

Confiança

Imutabilidade

Alta disponibilidade

Altamente Seguro

Simplificação de paradigmas atuais

Transações rápidas

[column=0.5]

Limitações

Escalabilidade

Adaptabilidade

Regulação

Tecnologia Relativamente Imatura (Ainda)

Privacidade

[/columns]

1.10 Características Principais

  • Consenso Distribuído

  • Verificação de Transações

  • Plataforma para smart contracts

  • Transferência de valores entre pares

  • Generação de criptomoedas

  • Provedor de Segurança

  • Imutabilidade

  • Unicidade ou singularidade (Uniqueness)

2 Bitcoin

2.1 Bitcoin

  • Surgiu em \(2008/2009\), sendo a primeira rede Blockchain.
  • Rede voltada para a Criptomoeda – Bitcoin (BTC).

2.2 Bitcoin na perspectiva de usuário 

  • Passos de como enviar e receber pagamentos:
    • A transação começa com um remetente assinando a transação com sua chave privada. 
    • A transação é serializada para que possa ser transmitida pela rede.
    • A transação é transmitida para a rede.
    • Mineradores que escutam transações pegam a transação.
    • A transação é verificada quanto à sua legitimidade pelos mineradores.
    • A transação é adicionada ao bloco candidato/proposto para mineração.
    • Uma vez minerado, o resultado é transmitido para todos os nós da rede Bitcoin.
    • Normalmente, neste momento, os usuários aguardam até seis confirmações para serem recebidas antes que uma transação seja considerada final; no entanto, uma transação pode ser considerada final na etapa anterior.
    • As confirmações servem como um mecanismo adicional para garantir que haja probabilidade muito baixa de uma transação ser revertida, mas, caso contrário, uma vez que um bloco minerado seja finalizado e anunciado, as transações dentro desse bloco serão finais nesse ponto.

2.3 Chaves Criptográficas 

[columns]

[column=0.5]

  • Private keys na rede Bitcoin
    • Private keys são usadas para assinar digitalmente transações, comprovando a propriedade dos bitcoins.
  • Public keys na rede Bitcoin 
    • As chaves públicas são usadas pelos nós para verificar se a transação foi realmente assinada com a chave privada correspondente.
  • Endereços na rede Bitcoin
    • Um endereço Bitcoin é criado pegando a chave pública correspondente de uma chave privada e fazendo hash duas vezes, primeiro com o algoritmo SHA256 e depois com RIPEMD160.
  • Endereços Bitcoin são codificados usando Base58Check.

[column=0.5]

[/columns]

2.4 Não perder as chaves é importante

[columns]

[column=0.5]

[column=0.5]

[/columns]

O Bitcoin Enterrado: A Caça ao Tesouro de James Howells na Vida Real

2.5 Script

  • Linguagem simples baseada em pilha usada para descrever como os bitcoins podem ser gastos ou transferidos.
  • Avaliada da esquerda para a direita usando uma pilha Last in, First Out (LIFO).
  • Composta por dois componentes: elementos e operações.
  • Scripts usam vários opcodes para definir suas operações.

2.6 Opcodes

  • Aqui estão alguns exemplos de alguns opcodes úteis usados ​​na linguagem Script no blockchain do Bitcoin.

2.7 Uma Visualização da Blockchain do Bitcoin

2.8 Bloco Genesis

[alertblock]{Bloco Genesis}

O Bloco Genesis ou bloco \(\#0\) foi hardcoded (codificado) por suas características especiais: ele é o único que não aponta para nenhum bloco anterior. No seu hash foi encriptado o bloco junto com a mensagem “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”, manchete do jornal naquele dia. Além de servir como prova datada, a manchete escolhida representa justamente uma crítica ao sistema bancário.

[/alertblock]

[framebreak]

[columns]

[column=0.5]

[column=0.5]

Fonte: https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp

[/columns]

[framebreak]

/**
 * Build the genesis block. Note that the output of its generation
 * transaction cannot be spent since it did not originally exist in the
 * database.
 *
 * CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashMerkleRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1)
 *   CTransaction(hash=4a5e1e, ver=1, vin.size=1, vout.size=1, nLockTime=0)
 *     CTxIn(COutPoint(000000, -1), coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73)
 *     CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)
 *   vMerkleTree: 4a5e1e
 */
static CBlock CreateGenesisBlock(uint32_t nTime, uint32_t nNonce, uint32_t nBits, int32_t nVersion, 
const CAmount& genesisReward)
{
  const char* pszTimestamp = "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks";
  const CScript genesisOutputScript = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;
  return CreateGenesisBlock(pszTimestamp, genesisOutputScript, nTime, nNonce, nBits, nVersion, genesisReward);
}

[framebreak]

2.9 A carteira de Satoshi

[framebreak]

  • Detalhes da Transação:

[framebreak]

Saldo em 21/11/2023

Saldo em 13/08/2024

Saldo em 21/11/2023 Fonte: blockchain.com

Saldo em 13/08/2024 Fonte: blockchain.com

Saldo em 16/06/2025 Fonte: blockchain.com

3 Mas afinal, quem é Satoshi Nakamoto?

3.1 Quem é Satoshi Nakamoto?

Elon Musk Fonte: CanalTech

Dorian Nakamoto Fonte: Livecoins

Linus Torvalds Fonte: Livecoins

Linus Torvalds Fonte: cointelegraph

Craig Wright Fonte: BBC 19/12/2024

[columns]

[column=0.5]

[column=0.5]

[/columns]

Lista de suspeitos no decorrer da história: https://www.infomoney.com.br/perfil/satoshi-nakamoto/

3.2 Tamanho do Blockchain do Bitcoin

  • O Blockchain do Bitcoin tinha em October 29, 2017, aproximadamente: \(139GB\)

[framebreak]

  • A figura mostra a evolução de Aug 2017 para Jul 2020. Aproximandamente, \(286 GB\).

[framebreak]

  • A figura mostra a evolução de Jan 2009 para Set 2022. Aproximandamente, \(426.7 GB\).

Tamanho em 14/04/2023 Fonte: ycharts
  • Tamanho em 09/08/2023: \(502.06 GB\)

Tamanho em 09/08/2023 Fonte: ycharts
  • Tamanho em 21/11/2023: \(527.47 GB\)

Tamanho em 21/11/2023 Fonte: ycharts
  • Tamanho em 13/08/2024: \(592.72 GB\)

Tamanho em 13/08/2024 Fonte: ycharts
  • Tamanho em 16/12/2024: \(622.77 GB\)

Tamanho em 16/12/2024 Fonte: ycharts

[framebreak]

  • Tamanho em 16/06/2025: \(665.07 GB\)

Tamanho em 16/06/2025 Fonte: ycharts

3.3 Consumo de Energia

  • Pico em Janeiro de 2022: \(204.5~TWh\) por ano.

Consumo de Energia Fonte: digiconomist
  • Em 21/11/2023: \(137.68~TWh\) por ano.

Consumo de Energia Fonte: digiconomist

[framebreak]

  • Em 13/08/2024: \(172.26~TWh\) por ano.

Consumo de Energia Fonte: digiconomist
  • Em 16/12/2024: \(175.87~TWh\) por ano.

Consumo de Energia Fonte: digiconomist
  • Em 16/06/2025: \(175.87~TWh\) por ano.

Consumo de Energia Fonte: digiconomist

Artigo: “Cryptocurrencies on the road to sustainability: Ethereum paving the way for Bitcoin” (December 2022); Bitcoin’s biggest competitor, Ethereum, has reduced its electrical energy requirement by at least 99.84% by changing its method of production.

3.4 Leitura Recomendada

[alertblock]{Leitura Recomendada}

Capítulo 5/6: Introduction Bitcoin: IMRAN BASHIR. Mastering Blockchain : Distributed Ledger Technology, Decentralization, and Smart Contracts Explained, 2nd Edition.

[/alertblock]

3.5 Projetos de Pesquisa

Título: Estudo Exploratório De Técnicas E Mecanismos Para Paralelização Automática E Offloading De Código Em Sistemas Heterogêneos (Pa-Code-Offload).

Pesquisa em Computação Paralela.

Título: Investigação sobre Infraestrutura e Suporte ao Desenvolvimento de Aplicações utilizando Tecnologias Blockchain (PRO-BLOCKCHAIN).

Pesquisa em Tecnologias Blockchain.

3.6 Projetos de Extensão

Título: Escola de Computação Paralela (ECP 2024).

Preparar e ministrar minicursos em temas de Computação Paralela.

Título: Academia Blockchain.

Preparar e ministrar minicursos relacionados às Tecnologias Blockchain.

3.7 Grupo Estudos

GEDVAC: Grupo de Estudos sobre Desempenho, máquinas Virtuais, Arquitetura de computadores e Compiladores da UTFPR-CM.

4 Referências

4.1 Word Cloud

4.2 Referências

Antonopoulos, A. M., and G. Wood. 2018. Mastering Ethereum: Building Smart Contracts and DApps. O’Reilly Media, Incorporated. https://books.google.com.br/books?id=SedSMQAACAAJ.
Grigg, Ian. 2001. “Financial Cryptography in 7 Layers.” In Financial Cryptography, edited by Yair Frankel, 332–48. Berlin, Heidelberg: Springer Berlin Heidelberg.
Imran, Bashir. 2018. Mastering Blockchain : Distributed Ledger Technology, Decentralization, and Smart Contracts Explained, 2nd Edition. Packt Publishing. https://search.ebscohost.com/login.aspx?direct=true&db=e000xww&AN=1789486&lang=pt-br&site=eds-live&scope=site.