Como funciona um #blockchain?
Como funciona o Bitcoin Blockchain
Uma analogia de planilha
Imagine um blockchain como uma planilha. Todos têm acesso aos dados em cada célula individual e salvam uma cópia em seus computadores pessoais. Os dados da planilha são compartilhados entre várias pessoas. No entanto, ninguém pode alterar uma célula individual ou alterar as informações existentes. No mundo do blockchain, chamamos isso de “imutável” – a incapacidade de mudar ou modificar algo ao longo do tempo.
Agora, imagine que você queira adicionar uma nova célula à planilha. Isso exigiria a aprovação dos membros que têm acesso aos dados da planilha. Depois que a maioria dos proprietários da planilha aprovar a nova célula, os dados serão adicionados à planilha principal.
Voltar para Bitcoin
Como um aparte, você notará que usamos “Bitcoin” com B maiúsculo para nos referirmos ao blockchain geral e “bitcoin” com b minúsculo para nos referirmos à criptomoeda da rede Bitcoin.
A seguir, vamos aplicar os conceitos acima para entender melhor como funciona a blockchain Bitcoin. Se Alice negociasse um bitcoin com Bob, essa transação seria registrada no livro razão do blockchain do Bitcoin. A visualização do livro-razão mostraria quanto bitcoin foi trocado quando a transação ocorreu e os endereços bitcoin correspondentes de Alice e Bob que enviaram e receberam as transações.
Mineiros de bitcoin
Uma vez que a transação foi feita, ela deve ser verificada por pessoas chamadas mineiros. Quando ocorre uma transação – como a transação de Alice com Bob – ela é agrupada em um “bloco” protegido matematicamente com outras transações que aconteceram no mesmo período de tempo. Os mineiros então usam computadores com incrível poder de computação para resolver o bloco matematicamente. Os primeiros mineiros a resolver o bloqueio e validar as transações são recompensados com bitcoin. Esta é a única maneira pela qual o bitcoin pode ser criado. Finalmente, cada bloco é conectado ao bloco verificado anteriormente, criando uma cadeia de blocos, daí o nome blockchain (sabemos, super criativo).
Mais uma coisa que você precisa entender sobre o blockchain é que ele é imutável, o que significa que, uma vez que os dados foram adicionados a um bloco, eles nunca (como nunca) podem ser alterados. Em uma aplicação prática, uma vez que Alice negocie seu bitcoin e a transação seja verificada, ela não pode recuperá-lo ou cancelar a negociação. Foi-se. No entanto, é importante notar que isso beneficia pessoas físicas e jurídicas que lidam com transações com cartão de crédito, que não são liquidadas até datas posteriores. Um indivíduo mal-intencionado, usando um cartão de crédito, pode comprar um item e, em seguida, cancelar a transação, deixando um indivíduo ou empresa com perda de receita.
Algoritmo de consenso
Quando Alice troca seu bitcoin para Bob, a transação é representada como um bloco, que precisa ser transmitido para a rede blockchain. A rede blockchain é composta de nós ou participantes da rede que validam e retransmitem transações para transmitir informações.
Todos os nós são operados voluntariamente e são usados para verificar as transações corretas no blockchain. Os nós seguem regras de consenso, que são regras acordadas pela comunidade. Uma mudança nas regras de consenso requer 95% da comunidade para aprovar, o que torna incrivelmente difícil para um grupo mudar o software Bitcoin. Outros algoritmos de consenso requerem uma porcentagem menor para alterar o protocolo do software. Os nós retransmitem transações de blocos e validações para outros nós para que a rede permaneça atualizada. Os nós não extraem bitcoins. No entanto, todos os mineradores normalmente executam um nó completo para validar e retransmitir transações de bitcoin de maneira eficaz. Uma vez que mineradores e não mineradores executam validação e retransmissão por nós operacionais, todos eles participam do processo de consenso.
Mineração de bitcoin
Mineiros de Bitcoin verificam transações legítimas e criam novos bitcoins como recompensa por seu trabalho.
Uma transação é considerada verificada quando o minerador resolve um quebra-cabeça criptográfico (matemático). O Bitcoin usa um protocolo denominado prova de trabalho, que tem como objetivo amplo prevenir ataques cibernéticos de qualquer entidade ou grupo. Mais especificamente, o Bitcoin usa o Secure Hash Algorithm 256 bit (SHA-256). Os chips de computador podem executar o algoritmo SHA-256 para gerar uma saída, que é conhecida como “hash”. Hashing, o processo de criação de vários hashes, é usado para resolver o problema matemático, em que a resposta final é o valor de hash conhecido e esperado.
Um exemplo simplificado
- Para resolver o problema, o valor do hash deve começar com três zeros: “000”
- A entrada, então, varia cada número encontrando uma correspondência para uma “Solução”
- São necessárias 6.518 tentativas para encontrar um valor que tenha “000” nos primeiros três dígitos.
Solução 1 ——— 088djldkh2h5h3kjhk24gd5h2h5h3kjhk24gd5kh2h5h
Solução 2 ——— 73485jfljroi5635h3kjhk24gd5we94ee356h2hkh2h5h
Solução 3 ——— d89sdf8sge9nxc894opl8qjroi5635h3kjhk24gd5we94
……
Solução 6517 ——— 088djldkh2h5h3kjhk24gdjroi5635h3kjhk24gd5we
Solução 6518 ——— 00088djldkh2h5h3kjhk24gdjhk24gd5h2hk24g4f4
Dada a entrada da “Solução 6518”, qualquer minerador poderia verificar que isso inegavelmente cria um hash com três zeros nos primeiros três dígitos. O primeiro mineiro a resolver esse problema iria transmitir sua resposta para a rede e ser recompensado com bitcoin. O bloco seria então considerado verificado e adicionado ao blockchain. Este quebra-cabeça é uma representação do tipo de quebra-cabeça que um minerador de Bitcoin precisaria resolver e não um quebra-cabeça real.
Dificuldade de confirmação
Um bloco Bitcoin padrão requer milhões de hashes para resolver o quebra-cabeça. No blockchain do Bitcoin, a complexidade do quebra-cabeça muda a cada 2.016 blocos para garantir que o tempo médio de confirmação do bloco leve dez minutos. Portanto, é possível que o problema se torne mais fácil de resolver se as confirmações levarem consistentemente mais de dez minutos. Embora, geralmente, os problemas se tornem mais difíceis de resolver, o que torna muito caro e demorado confirmar os bloqueios.
Inicialmente, o bitcoin poderia ser extraído usando chips de computação de consumo. No entanto, devido a esse aumento na dificuldade, a mineração de bitcoin atualmente requer um enorme poder de hashing e a indústria utiliza chips de circuito integrado de aplicação específica (ASIC). ASICs são customizados especificamente para mineração de bitcoin, ao invés de funções de propósito geral. Esses chips também são incrivelmente caros, o que resultou em um grupo seleto ou grupo de mineradores que dominam a maior parte da atividade de mineração de bitcoin.
Bloco por bloco
Outro aspecto importante é que cada bloco contém o hash resolvido do bloco pai ou anterior. Cada novo bloco requer o hash do bloco pai, garantindo uma ordem cronológica do bloco. Por exemplo, o hash do bloco 30 é necessário para o bloco 31. O bloco 31 não pode existir até que o bloco 30 tenha sido verificado e adicionado ao blockchain. Isso garante que cada bloco seja conectado de volta até o primeiro bloco, que é comumente referido como o “bloco de gênese”. Para alterar qualquer bloco único, seria necessário alterar todos os blocos anteriores, simultaneamente. Por último, cada bloco é imutável, o que, novamente, significa que, uma vez que uma transação ocorre, ela não pode ser revertida. Isso garante ainda que, uma vez adicionados os blocos dentro do blockchain, não possam ser alterados.
Fornecer
O fornecimento de Bitcoin é limitado a 21 milhões de bitcoins, o que se estima que ocorra por volta do ano 2140. A quantidade de bitcoin recompensada aos mineiros é reduzida à metade a cada 210.000 blocos. Portanto, a recompensa continuará a ser dividida até que o vigésimo um milionésimo bitcoin seja criado, momento em que os mineiros receberão apenas taxas de transação.
Por que os mineiros não trapaceiam?
Bitcoin está profundamente enraizado na criptografia, ciência da computação, economia e várias outras disciplinas. Uma dessas disciplinas é a teoria dos jogos, que usa modelos matemáticos para prever como os jogadores racionais reagirão quando dadas escolhas ou situações individuais. Bitcoin utiliza conceitos de teoria de jogo para incentivar a ação desejada de mineiros e usuários.
Blockchain explicado por Joe Lubin
Como Ethereum difere do Bitcoin
Como funciona o Ethereum Blockchain
O blockchain Ethereum funciona de forma semelhante ao blockchain Bitcoin, mas com várias diferenças importantes.
Contas: endereços da carteira
Existem dois tipos de contas Ethereum:
- Contas de contrato
- Contas de propriedade externa (EOAs)
Contas de propriedade externa são semelhantes aos endereços de Bitcoin e são controladas por chaves privadas. As contas Ethereum também têm endereços públicos e privados para os usuários interagirem para transferir o ether. As contas de contrato, que são usadas para se comunicar com contratos inteligentes, são controladas por seu código de contrato e são ativadas por meio de um EOA. Ether é necessário para todas as transações na rede (contas de contrato e EOAs) para evitar ataques maliciosos, como spam de rede.
Transações
A rede Ethereum exige que os usuários paguem uma taxa de transação ao usar o blockchain. Isso protege o blockchain Ethereum de tarefas computacionais frívolas ou maliciosas, como usuários que enviam spam para a rede com uma sobrecarga de transações inúteis. Quanto mais complexa for a transação (mais linhas de código), mais caras serão as taxas. Essas taxas são pagas em éter (ETH) e são chamadas de “preço do gás”.
Ethereum Network
Como o bitcoin, o Ethereum utiliza nós que são operados voluntariamente para verificar as transações corretas no blockchain. Os nós contêm informações como:
- todo o histórico de transações Ethereum
- as informações mais recentes sobre o estado dos contratos inteligentes
- os saldos das contas
- e muito mais
Existem dois tipos de nós
- UMA nó completo sincroniza o blockchain baixando toda a cadeia, do bloco genesis (primeiro bloco) para o bloco atual.
- UMA nó de luz não faz o download de toda a cadeia, mas ainda pode verificar transações de forma eficaz.
Os nós não exploram o blockchain Ethereum. No entanto, todos os mineradores normalmente executam um nó completo para validar e retransmitir transações Ethereum de forma eficaz. Uma vez que mineradores e não mineradores executam validação e retransmissão por nós operacionais, todos eles participam do processo de consenso.
A Máquina Virtual Ethereum
Na base desses aplicativos programáveis está a Máquina Virtual Ethereum (EVM), que é o ambiente executável e confiável para contratos inteligentes. O EVM executa um contrato com quaisquer regras que o desenvolvedor tenha programado inicialmente, como enviar dinheiro de Alice para Bob. A rede é formada por milhares de computadores que processam a execução dos programas. Portanto, cada nó na rede Ethereum está realmente executando o EVM e, conseqüentemente, cada nó executa o mesmo código. O EVM pode executar esses programas por meio de uma linguagem de bytecode. No entanto, os desenvolvedores também podem usar a linguagem de programação Ethereum Solidity para escrever contratos inteligentes e outras aplicações mais avançadas..
Como funciona a mineração Ethereum?
Os mineiros de Ethereum verificam as transações legítimas e criam um novo éter como recompensa por seu trabalho.
Uma transação é considerada verificada quando o minerador resolve um quebra-cabeça criptográfico (matemático). Semelhante ao Bitcoin, o Ethereum usa um protocolo de prova de trabalho (PoW), que tem um objetivo amplo de prevenir ataques cibernéticos de qualquer entidade ou grupo individual. Uma diferença notável entre a mineração de Bitcoin e a mineração de Ethereum é o tempo de confirmação do bloco. Enquanto a confirmação de um bloco de Bitcoin requer uma média de 10 minutos, um bloco de Ethereum é confirmado em cerca de 14 segundos. E assim como o Bitcoin, o algoritmo ajusta automaticamente a dificuldade dos problemas criptográficos para que o tempo médio de bloqueio seja de 14 segundos.
Com o Bitcoin, os mineiros muitas vezes trabalham para extrair o mesmo bloco e às vezes esses blocos são confirmados em momentos muito semelhantes, caso em que o primeiro é uma recompensa e adicionado à cadeia existente, enquanto o segundo bloco confirmado é chamado de “órfão”.
No Bitcoin, os blocos órfãos são em sua maioria inúteis e não fazem parte da cadeia principal. Ethereum opera usando um conceito semelhante chamado de protocolo GHOST (Greedy Heaviest Observed Subtree), que essencialmente significa que a cadeia com a maioria dos cálculos feitos sobre ela (não necessariamente a mais longa) é a principal cadeia de blocos Ethereum.
O tempo de bloqueio rápido do Ethereum resulta em um aumento no número de blocos órfãos, que são chamados de “tios” no blockchain do Ethereum. A principal diferença é que o Ethereum incentiva os tios mineradores e oferece uma recompensa, ao contrário do Bitcoin, que recompensa apenas o primeiro bloco confirmado.
Os tios de mineração oferecem dois benefícios significativos
- Ele diminui a centralização ao incentivar mineradores individuais a minerar blocos órfãos, o que significa que eles não precisam fazer parte de um grande reservatório de mineração porque ainda podem receber uma recompensa.
- Aumenta a segurança da cadeia porque todos os blocos, incluindo tios, têm que seguir o mesmo protocolo de mineração, o que aumenta a quantidade de trabalho na cadeia principal (mais pesada).
Prova de aposta
A rede Ethereum atualmente usa o algoritmo de prova de trabalho e fará a transição para usar um algoritmo de prova de aposta chamado Casper.
Prova de aposta (PoS) é um algoritmo de consenso que exige que cada minerador possua uma participação na moeda nativa, neste caso éter. É importante notar que nem todos os protocolos de PoS são iguais, mas são semelhantes no que diz respeito ao conceito básico. Os protocolos de prova de trabalho (PoW), como Bitcoin, recompensam o esforço de mineração (validações) com bitcoins individuais. O algoritmo Casper de Prova de Participação é um contrato inteligente, no qual os mineiros – agora chamados de “validadores” – devem enviar um depósito ou “participação” para o contrato Casper. Os validadores ou apostadores agora se revezam para propor e votar no próximo bloco, cada um com um voto por bloco. Os votos também são ponderados pelo valor da aposta, portanto, um validador que aposta 100 ETH terá um voto mais significativo do que um validador que aposta 40 ETH. Se esses validadores produzirem algo que o protocolo Casper considera inválido, os validadores perdem sua aposta, o que incentiva os validadores a seguir o consenso.
O que é éter?
Digamos que você queira comprar éter, a criptomoeda nativa do blockchain Ethereum. A maneira mais simples de fazer isso seria abrir uma conta em uma das muitas bolsas de criptomoedas amplamente utilizadas, como Coinbase ou Kraken. Essas trocas permitem que você configure uma carteira Ethereum para que você possa comprar, vender, enviar e receber ether de qualquer pessoa que também tenha uma carteira blockchain que pode enviar e receber ether.
Quando você compra o ether, sua transação se torna parte de um bloco no blockchain Ethereum. Este bloco contém um registro das transações Ethereum mais recentes que ocorreram em qualquer lugar do mundo por qualquer pessoa executando o protocolo Ethereum. Ele também inclui um registro de hash criptográfico (um algoritmo matemático) do bloco validado mais recentemente no blockchain Ethereum.
Este bloco com o seu registro de transação não se tornará parte do blockchain Ethereum até que um dos muitos computadores que executam a rede Ethereum resolva ou descubra o hash criptográfico correspondente ao hash exclusivo vinculado a esse bloco. Este processo de solução é comumente conhecido como “mineração”. Quando o hash é resolvido ou descoberto, o bloco com seu registro de transação é adicionado instantaneamente ao final do blockchain que é mantido por cada um desses computadores, e sua transação se torna parte do registro permanente do blockchain Ethereum.
É importante notar que “éter” e “Ethereum” são frequentemente usados de forma intercambiável para se referir à criptomoeda que opera no blockchain Ethereum. Isso não é tecnicamente correto, pois éter é o termo para o token de criptomoeda usado na plataforma de blockchain da Ethereum. Se representássemos essa relação em termos de software de computador (o que é), Ethereum seria o sistema operacional e o ether seria o aplicativo. Em uma analogia não com o software de computador, Ethereum é comparável a um veículo, enquanto o éter atua como o combustível que alimenta e permite que a máquina funcione de forma eficiente.
Saiba mais sobre a tecnologia blockchain
- Base de Conhecimento O que é Ethereum?
- Casos de uso e aplicativos Enterprise EthereumBlockchain por setor
- Treinamento ConsenSys AcademyBlockchain e Ethereum para iniciantes, desenvolvedores e empresas