[PT/BR] Ethereum 101 — #1 Básico

Básico

Criptografia

  • Hashing
  • Criptografia de chave pública

Estruturas de Dados

  • Árvores Merkle

Redes, P2P e Sistemas Distribuídos

  • Redes, P2P (Peer-to-Peer) e Sistemas Distribuídos

Básicos do Desenvolvimento de Software

  • Linguagens de Programação, Compiladores

Ethereum como Plataforma

  • Do ponto de vista do usuário
  • Como desenvolvedor de dApp (aplicações descentralizadas)


Inevitable Ethereum - World Computer

Ethereum in 30 minutes

O que é Ethereum? https://i.imgur.com/W8AtHjV.png

História e Filosofia

Para entender o design do Ethereum, precisamos aprender sobre os predecessores e a cultura na qual ele se baseia.

O ecossistema moderno de criptomoedas se apoia em décadas de trabalho de cientistas da computação, criptógrafos e ativistas.

Começando lá atrás, na década de 1960, UNIX é um sistema operacional e filosofia que redefiniu todo o paradigma da computação. Seu conceito fundamental de modularidade é importante para o design do Ethereum e o ambiente colaborativo aberto é semelhante ao desenvolvimento do Ethereum hoje.

Documentário com Dennis Ritchie e Ken Thompson, que captura as ideias por trás do UNIX:

https://yewtu.be/watch?v=tc4ROCJYbm0

O movimento do Software Livre é fundamental para o Ethereum e todas as criptomoedas. A cultura de desenvolvimento aberta, independente e colaborativa do Ethereum está fortemente enraizada no FOSS (Software Livre e de Código Aberto).

É necessário que o Ethereum seja implementado de forma transparente em software que ofereça total liberdade aos seus usuários.

Software livre e código aberto

Usar Software livre e de código aberto pode empoderar os usuários e os desenvolvedores, mas com isso é necessário a segurança, neutralidade e o confiar sem confiança do Ethereum.

https://yewtu.be/watch?v=Ag1AKIl_2GM

A Catedral e o Bazar

http://www.catb.org/~esr/writings/cathedral-bazaar/

A invenção da criptografia assimétrica marca o nascimento de um novo paradigma para aplicações de criptografia.

Posteriormente, a ascensão da criptografia na computação para o público geral permitiu que todos utilizassem ferramentas para privacidade digital, comunicação segura e transformou fundamentalmente a cibersegurança.

Movimentos ativistas surgem defendendo e construindo ferramentas de criptografia, enquanto os estados-nação não tinham um quadro para esses novos conceitos.

Em última análise, essas foram pessoas inventando ferramentas e ideias que se tornaram blocos de construção fundamentais das modernas criptomoedas.

Manifesto Cypherpunk
Crypto Anarchy
Cyberspace

Design do Protocolo Ethereum

Originalmente delineado em seu Whitepaper, o Ethereum busca inspiração no Bitcoin e em seu contexto (explicado acima) para criar uma plataforma de computação baseada em blockchain geral. O design foi tecnicamente especificado no Yellowpaper e evoluiu com o tempo. As mudanças são rastreadas no processo comunitário de EIPs e a especificação atual é implementada em Python como:

Para aprender sobre o consenso.

As mudanças do protocolo ocorrem ao longo do tempo, com cada atualização da rede trazendo novas melhorias. Apesar de suas constantes mudanças, a evolução da arquitetura reflete certos princípios fundamentais. Estes podem ser resumidos da seguinte forma:

Simplicidade, Universalidade, Modularidade, Não discriminação, Agilidade

Esses princípios fundamentais sempre lideraram o desenvolvimento do Ethereum e devem ser considerados com cada decisão sobre mudança de design. Além disso, ele gerencia a crescente complexidade encapsulando-a e/ou intercalando-a. A atual arquitetura da rede é o resultado de muitas iterações do histórico de atualização da rede.

O Ethereum continua evoluindo para abordar as últimas pesquisas, novos e sempre presentes desafios. Para manter a segurança e a descentralização, a tecnologia blockchain tem certos limites, principalmente sua escalabilidade. Porque o Ethereum precisa sempre aderir aos seus princípios, isso nos motiva a encontrar soluções inteligentes para esses problemas em vez de aceitar compromissos.

A pesquisa e desenvolvimento atuais são resumidos pela visão geral do Roadmap. Não há um único caminho para a P&D do Ethereum, o roadmap apenas resume sua paisagem atual. O ecossistema central é um jardim infinito sempre em crescimento.

Uma visão geral simplificada do design atual do Ethereum pode ser encontrada na documentação sobre arquitetura de nó

Implementações e Desenvolvimento

Tudo mencionado acima - as ideias, design e especificações - se resume à aplicação real aqui, em sua implementação. Uma implementação da camada de execução (EL) ou da camada de consenso (CL) é chamada de cliente. Um computador executando este cliente e se conectando à rede é chamado de .

Um nó é, portanto, um par de clientes EL e CL participando ativamente da rede.

Como o Ethereum é formalmente especificado, ele pode ser implementado de diferentes maneiras em qualquer linguagem. Isso resulta em uma variedade de implementações ao longo dos anos, com algumas já obsoletas e outras em desenvolvimento. A lista atual de implementações prontas para produção pode ser encontrada nos documentos sobre Nós e clientes

Esta estratégia é chamada de diversidade de clientes. O Ethereum não depende de uma única implementação 'oficial', mas os usuários podem escolher qualquer cliente e ter certeza de que ele faz o trabalho. Se ocorrer um problema dentro de uma única implementação de cliente, isso não afeta o restante da rede.

Testes

Com mudanças regulares e múltiplas implementações de cliente, o teste é fundamental para a segurança da rede. Há uma variedade de ferramentas de teste e cenários que são todos fortemente utilizados antes de qualquer atualização da rede.

Os testes são gerados com base nas especificações e criam vários cenários. Alguns estão testando clientes individualmente, alguns estão simulando uma testnet com todos os pares de clientes. Há diferentes ferramentas de teste usadas para diferentes partes dos ciclos de desenvolvimento e partes dos clientes. Isso inclui testes de transição de estado, fuzzing, forks sombra, testes RPC, testes de unidade de cliente e CI/CD, etc.

Aqui está uma lista curta de repositórios dedicados a testes:

Coordenação

O desenvolvimento do Ethereum é muito diferente de projetos tradicionais, corporativos. Primeiramente, é tudo aberto e público, qualquer pessoa pode revisá-lo ou contribuir.

Ao contrário da tecnologia proprietária, os desenvolvedores do Ethereum não estão competindo, mas sim trabalhando juntos. Com a complexidade sempre crescendo, basicamente não há pessoas que seriam especialistas em todo o Ethereum.

As pessoas desenvolvem expertise em domínios específicos e colaboram com outros. Isso é possível graças à modularidade do Ethereum e permite que os desenvolvedores se concentrem nos desafios que preferem pessoalmente.

O ciclo de desenvolvimento tradicional para novos recursos ou mudanças é 'Ideia - Pesquisa - Desenvolvimento - Teste - Adoção.

Para ser capaz de enviar atualizações da rede e concordar com o foco atual do desenvolvimento, precisa haver uma certa coordenação. Tudo isso também é público e pode ser seguido por qualquer pessoa interessada em aprender sobre o protocolo central.

A coordenação acontece principalmente via chamadas regulares que são agendadas no repositório PM. Há diferentes tipos de chamadas de desenvolvedor com a maior sendo All Core Devs (ACD).

É onde representantes de todas as equipes envolvidas vêm discutir o desenvolvimento atual da camada de consenso ou de execução.

As ideias e mudanças propostas pela comunidade são coordenadas usando o processo EIP. Além disso, há alguns fóruns de discussão. O maior discutindo atualizações centrais é https://ethresear.ch. Outro fórum que está conectado ao processo EIP e serve para discussão sobre propostas específicas é Ethereum Magicians.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center