Capítulos

  1. Blockchain 101

  2. Como funciona a blockchain?

  3. Para que se utiliza a blockchain?


Capítulo 1 - Blockchain 101

Conteúdo

  • O que é blockchain?

  • Como os blocos são conectados?

  • Blockchains e descentralização

  • O Problema dos Generais Bizantinos

  • Por que blockchains precisam ser descentralizadas?

  • O que é a rede peer-to-peer?

  • O que são os nodes (nós) de uma blockchain?

  • Blockchains públicas vs. privadas

  • Como funcionam as transações?

  • Como fazer transações de Bitcoin

    • Como efetuar saques de bitcoins da Binance

    • Como enviar bitcoins da Trust Wallet para Electrum

  • Quem inventou a tecnologia blockchain?

  • Prós e contras da tecnologia blockchain

    • Prós

    • Contras


O que é blockchain?

Uma blockchain é um tipo especial de banco de dados. Você talvez conheça o termo tecnologia de registro distribuído (distributed ledger technology, DLT) – que, na maioria dos casos, se refere à mesma coisa.

Uma blockchain tem certas propriedades únicas. Existem regras sobre como os dados podem ser adicionados e, uma vez armazenados, é praticamente impossível modificá-los ou excluí-los.

Os dados são adicionados ao longo do tempo em estruturas chamadas de blocos. Cada bloco é construído sobre o último e inclui uma informação que se vincula ao anterior. Observando o bloco mais atualizado, podemos verificar se ele foi realmente criado após o último. Portanto, se continuarmos “voltando na cadeia”, chegaremos ao primeiro bloco – conhecido como Bloco Gênese (genesis block).

Vamos fazer uma analogia. Suponha que você tenha uma planilha com duas colunas. Na primeira célula da primeira linha, você coloca os dados que deseja armazenar.

Os dados da primeira célula são convertidos em um identificador de duas letras, que será usado como parte da próxima entrada. Neste exemplo, o identificador de duas letras KP, deve ser usado para preencher a próxima célula da segunda linha (defKP). Ou seja, se você alterar os primeiros dados de input/entrada (abcAA), receberá uma combinação diferente de letras em todas as outras células.


Base de dados onde cada entrada está ligada à anterior.

Base de dados onde cada entrada está ligada à anterior.


Olhando para a linha 4, nosso identificador mais recente é o TH. Conforme mencionamos, você não pode voltar atrás e remover ou excluir entradas. Isso porque seria fácil para qualquer usuário perceber que isso foi feito e simplesmente ignorar sua tentativa de alteração.

Suponha que você altere os dados na primeira célula – você obteria um identificador diferente, ou seja, seu segundo bloco teria dados diferentes, resultando em um identificador diferente na linha 2 e assim por diante. Essencialmente, o TH é um produto de todas as informações que vêm antes dele.


Como os blocos são conectados?

O que discutimos acima – com nossos identificadores de duas letras – é uma analogia simplificada de como uma blockchain usa funções de hash. Hashing é a "cola" que mantém os blocos unidos. As funções de hash reúnem dados de qualquer tamanho e os submetem a uma função matemática para produzir uma saída/output (um hash), que sempre tem o mesmo comprimento.

Os hashes usados nas blockchains são interessantes, pois as chances de você encontrar dois fragmentos de dados que resultam exatamente na mesma saída, são astronomicamente baixas. Da mesma forma que nossos identificadores, qualquer leve modificação nos dados de entrada fornecerá uma saída totalmente diferente.

Vamos exemplificar usando a função SHA256, muito usada para o Bitcoin. Como você pode ver, até mesmo a alteração de letras maiúsculas e minúsculas, é suficiente para embaralhar completamente o output.


Dados de input

Output do SHA256

Binance Academy

886c5fd21b403a139d24f2ea1554ff5c0df42d5f873a56d04dc480808c155af3

Binance academy

4733a0602ade574551bf6d977d94e091d571dc2fcfd8e39767d38301d2c459a7

binance academy

a780cd8a625deb767e999c6bec34bc86e883acc3cf8b7971138f5b25682ab181


O fato de não haver colisões SHA256 conhecidas (ou seja, duas entradas diferentes que nos dão a mesma saída) é incrivelmente valioso no contexto de blockchains. Isso significa que, ao incluir seu hash, cada bloco pode apontar de volta ao anterior e qualquer tentativa de edição de blocos antigos se torna imediatamente visível na rede.


Cada bloco contém uma impressão digital do anterior.

Cada bloco contém uma impressão digital do anterior.


Blockchains e descentralização

Explicamos a estrutura básica de uma blockchain. Mas quando você ouve pessoas falando sobre tecnologia blockchain, é provável que não falem apenas do banco de dados, mas também dos ecossistemas construídos em torno das blockchains. 

Como estruturas de dados independentes, as blockchains só serão úteis de fato, em aplicações específicas. As coisas ficam mais interessantes quando usamos as blockchains como ferramentas para que estranhos se coordenem entre si. Combinada com outras tecnologias e teoria dos jogos, uma blockchain pode atuar como um ledger/registro distribuído, que não é controlado por ninguém.

Isso significa que ninguém tem o poder de alterar as entradas ignorando as regras do sistema (falaremos mais sobre as regras em breve). Sendo assim, podemos dizer que o ledger pertence a todos simultaneamente: os participantes chegam a um acordo a respeito dele, a qualquer momento.


O Problema dos Generais Bizantinos

O chamado Problema dos Generais Bizantinos é um verdadeiro desafio para um sistema como o descrito acima. Concebido na década de 1980, ele descreve um dilema no qual participantes isolados devem se comunicar para coordenar suas ações. O dilema específico envolve um grupo de generais de um exército que cerca uma cidade, decidindo se irão executar o ataque. Os generais só podem se comunicar através de um mensageiro. 

Cada um dos generais deve tomar a decisão de atacar ou recuar. Não importa se eles atacam ou recuam, desde que todos os generais concordem com uma decisão comum. Se eles decidirem atacar, só terão sucesso se o fizerem ao mesmo tempo. Então, como podemos garantir isso? 

Claro, eles podem se comunicar através do mensageiro. Mas e se o mensageiro for interceptado com uma mensagem que diz “atacaremos ao amanhecer” e essa mensagem for substituída por “atacaremos esta noite”? E se um dos generais for malicioso e intencionalmente enganar os outros para garantir que eles sejam derrotados?


Todos os generais obtêm sucesso quando atacam ao mesmo tempo (esquerda). Se algum general recua, os que atacaram serão derrotados (direita).

Todos os generais obtêm sucesso quando atacam ao mesmo tempo (esquerda). Se algum general recua, os que atacaram serão derrotados (direita).


Precisamos de uma estratégia em que o consenso possa ser alcançado, mesmo na ocorrência de participantes maliciosos ou de mensagens interceptadas. Para um banco de dados, não conseguir o consenso não é uma situação de vida ou morte, como no caso dos generais atacando uma cidade sem a ajuda de reforços, mas o mesmo princípio é válido. Se não existe ninguém para supervisionar a blockchain e fornecer aos usuários as informações “corretas”, eles devem ser capazes de se comunicar entre si.

Para superar o potencial ponto de falha de um (ou vários) usuário(s), os mecanismos da blockchain devem ser cuidadosamente projetados para resistir a esses contratempos. Um sistema com essa resistência é chamado de Byzantine fault-tolerant (tolerante a falhas bizantinas). Como veremos em breve, os algoritmos de consenso são usados para impor regras rígidas.


Por que blockchains precisam ser descentralizadas?

É claro que você poderia operar uma blockchain sozinho. Mas você acabaria tendo um banco de dados desorganizado se compararmos com outras alternativas mais adequadas. O real potencial de uma blockchain pode ser explorado em um ambiente descentralizado – ou seja, onde todos os usuários são iguais. Dessa forma, a blockchain não pode ser excluída nem dominada de forma maliciosa. É uma única fonte da verdade que qualquer um pode ver.


O que é a rede peer-to-peer?

A rede peer-to-peer (P2P) é nossa camada de usuários (ou os generais, como no exemplo anterior). Não existe um administrador; portanto, em vez de contatar um servidor central sempre que quiser trocar informações com outro usuário, o usuário as envia diretamente aos seus colegas (peers). 

Considere o gráfico abaixo. À esquerda, o usuário A precisa encaminhar sua mensagem através do servidor, para que ela chegue ao usuário F. No lado direito, no entanto, eles estão diretamente conectados. Não existe um intermediário.


Uma rede centralizada (esquerda) vs. uma rede descentralizada (direita).

Uma rede centralizada (esquerda) vs. uma rede descentralizada (direita).


Normalmente, o servidor armazena todas as informações que os usuários precisam. Ao acessar a Binance Academy, você está solicitando aos servidores o fornecimento de todos os artigos. Se o site ficar offline, você não poderá vê-los. No entanto, se você baixou todo o conteúdo, pode acessá-lo em seu computador, sem ter de consultar a Binance Academy. 

Essencialmente, é isso que todos os Peers fazem com a blockchain: todo o banco de dados é armazenado em seus computadores. Se alguém sair da rede, os usuários restantes ainda poderão acessar a blockchain e compartilhar informações entre si. Quando um novo bloco é adicionado à cadeia, os dados são propagados pela rede para que todos possam atualizar sua própria cópia do ledger.

Confira nosso Guia sobre Redes Peer-to-Peer para uma discussão mais aprofundada sobre esse tipo de rede.


O que são os nodes (nós) de uma blockchain?

De forma simplificada, os nodes (nós) são as máquinas conectadas à rede – elas armazenam cópias da blockchain e compartilham informações com outras máquinas. Os usuários não precisam lidar com esses processos manualmente. Geralmente, tudo o que eles precisam fazer é baixar e executar o software da blockchain e o resto será feito automaticamente pelo sistema.

O que escrevemos acima, é a descrição de node no sentido mais puro, mas a definição também pode abranger outros usuários que interagem com a rede de outras maneiras. Com as criptomoedas, por exemplo, um simples aplicativo de carteira no celular é considerado um light node


Blockchains públicas vs. privadas

Como você deve saber, o Bitcoin forneceu as bases para que a indústria blockchain se desenvolvesse até que temos hoje. Desde que o Bitcoin começou a se provar um ativo financeiro legítimo, muitos estudiosos inovadores têm pensado sobre o potencial da tecnologia subjacente para uso em outros campos. Isso proporcionou a exploração da tecnologia blockchain para inúmeros casos de uso, além do financeiro.

O sistema do Bitcoin é o que chamamos de blockchain pública. Ou seja, qualquer pessoa pode visualizar suas transações. Basta ter conexão com a Internet e o software necessário. Como não existem outros requisitos para participação, podemos nos referir a esse sistema como um ambiente permissionless (sem necessidade de permissão).

Por outro lado, existem outros tipos de blockchains, chamadas de blockchains privadas. Esses sistemas estabelecem regras sobre quem pode ver e interagir com a blockchain. Sendo assim, nos referimos a eles como ambientes permissioned (quando há necessidade de permissão). Embora as blockchains privadas possam parecer, a princípio, redundantes, elas têm algumas aplicações importantes – principalmente em cenários corporativos.

Para saber mais sobre esse assunto, consulte o artigo Blockchains Privadas, Públicas e de Consórcios - Qual a Diferença?



Pensando em investir em criptomoedas? Compre Bitcoin na Binance!



Como funcionam as transações?

Se Alice deseja fazer um pagamento para Bob por transferência bancária, ela irá notificar seu banco. Vamos supor que, por questão de praticidade, as duas partes usem o mesmo banco. Antes de atualizar seu banco de dados (por exemplo, -$ 50 para Alice, +$ 50 para Bob), o banco verifica se Alice possui os fundos para realizar a transação.

Não é muito diferente do que acontece com uma blockchain. Afinal, ela também é um banco de dados. A principal diferença é que não há uma única parte executando as verificações e atualizando os saldos. Todos os nodes da rede devem fazê-lo. 

Se Alice quiser enviar cinco bitcoins para Bob, ela transmite uma mensagem à rede, contendo essa informação. A transação não será adicionada à blockchain imediatamente – os nodes poderão vê-la, mas outras ações devem ser concluídas para que a transação seja confirmada. Confira Como os blocos são adicionados à blockchain?

Depois que essa transação é adicionada à blockchain, todos os nodes podem ver que ela foi feita. Eles atualizarão sua cópia da blockchain considerando as alterações. Agora, Alice não pode enviar essas mesmas cinco unidades para Carol (double-spending), porque a rede sabe que ela já gastou as cinco bitcoins em uma transação anterior.

Não há conceito de nomes de usuário e senhas – a criptografia de chave pública é usada para provar a propriedade dos fundos. Para receber fundos, Bob precisa primeiro gerar uma chave privada. É apenas um número aleatório muito longo praticamente impossível de ser adivinhado por alguém, mesmo que tentasse durante séculos. Entretanto, se Bob divulgar sua chave privada, qualquer um com essa informação pode usá-la para provar que é dono dos fundos (e então, gastá-los). Portanto, é muito importante que ele mantenha a chave privada em segredo.

O que Bob pode fazer, no entanto, é derivar uma chave pública de sua chave privada. Ele pode fornecer a chave pública a qualquer pessoa, pois a engenharia reversa para obtenção da chave privada, através da chave pública, é praticamente inviável. Além disso, na maioria dos casos, o usuário executa outra operação (como hashing) na chave pública para obter um endereço público.


como funciona uma transação blockchain


Bob fornecerá a Alice seu endereço público para que ela saiba para onde enviar os fundos. Ela cria uma transação que diz pague esses fundos para esse endereço público. Então, para provar à rede que ela não está tentando gastar fundos que não possui, ela gera uma assinatura digital usando sua própria chave privada. Qualquer um pode pegar a mensagem assinada de Alice e compará-la com sua chave pública e assim, dizer com certeza, que ela tem o direito de enviar esses fundos para Bob.


Como fazer transações de Bitcoin

Para ilustrar como você pode fazer transações com Bitcoin, vamos imaginar dois cenários diferentes. O primeiro consiste em você retirar bitcoins da Binance e o segundo em enviar fundos da sua TrustWallet para a carteira Electrum.


Como efetuar saques de bitcoins da Binance

1. Acesse sua conta da Binance. Caso você ainda não tenha bitcoins, confira nosso guia de como comprar Bitcoin.

2. Posicione o cursor em Carteira e selecione Carteira Spot.


selecionando a carteira spot do menu de carteiras da  binance


3. Clique em Sacar, na barra lateral à esquerda.

4. Selecione a moeda que deseja sacar – neste caso, BTC.

5. Copie o endereço para o qual você deseja sacar bitcoins e cole no campo Endereço BTC do destinatário.


tela de saque da binance


6. Insira a quantia que deseja sacar.

7. Clique em Enviar.

8. Logo você receberá um email de confirmação. Confira atentamente se o endereço está correto. Se estiver, confirme a transação através do link no email.

9. Aguarde a conclusão de sua transação na blockchain. Você pode monitorar seu status na aba Histórico de Depósitos & Saques ou utilizando um block explorer.


Como enviar bitcoins da Trust Wallet para Electrum

Neste exemplo, enviaremos alguns bitcoins da Trust Wallet para a Electrum.


1. Abra o aplicativo da Trust Wallet.

2. Selecione sua conta de Bitcoin.

3. Selecione Enviar.

4. Abra sua carteira da Electrum.

5. Na Electrum, clique na aba Receber e copie o endereço.


screenshot da carteira elextrum


Outra alternativa é, através do aplicativo da Trust Wallet, clicar no ícone [–] para digitalizar o código QR correspondente ao seu endereço da Electrum.


screenshot da trustwallet


6. Cole seu endereço Bitcoin no campo Endereço do destinatário na Trust Wallet.

7. Insira a quantia.

8. Confira se os dados estão todos corretos e confirme a transação.

9. Pronto! Aguarde a confirmação de sua transação na blockchain. Você pode monitorar seu status copiando seu endereço em um block explorer.



Pensando em investir em criptomoedas? Compre Bitcoin na Binance!



Quem inventou a tecnologia blockchain?

A tecnologia Blockchain foi formalizada em 2009 com o lançamento do Bitcoin – a primeira e mais popular blockchain. No entanto, seu criador (pseudônimo) Satoshi Nakamoto se inspirou em tecnologias e propostas anteriores.

As blockchains utilizam muito as funções de hash e a criptografia, que já existiam há décadas antes do lançamento do Bitcoin. Curiosamente, a estrutura de blockchain pode ser rastreada até o início dos anos 90, embora tenha sido usada apenas para timestamping de documentos, para que não pudessem ser alterados posteriormente.

Para saber mais sobre o assunto, confira A História da Blockchain.


Prós e contras da tecnologia blockchain

Blockchains desenvolvidas de forma adequada, resolvem um problema que atormenta stakeholders em vários setores, abrangendo desde finanças a agricultura. Uma rede distribuída apresenta muitas vantagens sobre o modelo tradicional de cliente-servidor, mas também existem algumas desvantagens.


Prós

Um dos benefícios imediatos observados no white paper do Bitcoin é que os pagamentos podem ser transmitidos sem envolver um intermediário. As blockchains subsequentes levaram isso ainda mais longe, permitindo que os usuários enviem todos os tipos de informações. Eliminar as contrapartes significa que existem menos riscos aos usuários envolvidos, resultando em taxas mais baixas, pois não há necessidade de um intermediário.

Além disso, conforme mencionamos, uma rede blockchain pública é permissionless – não há barreira de entrada, pois não há ninguém no comando. Se um usuário puder se conectar à Internet, ele poderá interagir com outros participantes (peers) da rede.

Muitos argumentam que a qualidade mais importante das blockchains é seu alto grau de resistência à censura. Para prejudicar um sistema centralizado, tudo que um agente mal-intencionado precisa fazer, é direcionar seu ataque ao servidor. No entanto, em uma rede peer-to-peer, cada Node atua como um servidor próprio. 

Um sistema como a blockchain do Bitcoin tem mais de 10.000 nodes visíveis espalhados por todo o mundo. Ou seja, é praticamente impossível que um invasor tenha recursos suficientes para comprometer a rede de alguma forma. É importante notar que existem também muitos nodes ocultos, que não são visíveis para toda a rede.

Essas são algumas das vantagens gerais. Existem muitos casos específicos de uso para as blockchains, como você pode ver no capítulo Para que se utiliza a blockchain?


Contras

Blockchains não são uma solução milagrosa para todos os problemas. Ao serem otimizadas para as vantagens da seção anterior, acabam deixando a desejar em outras áreas. O obstáculo mais evidente para a adoção em massa de blockchains é que elas não apresentam boa escalabilidade.

Isso vale para qualquer rede distribuída. Como todos os participantes devem permanecer sincronizados, novas informações não podem ser adicionadas tão rapidamente, pois os nodes não conseguiriam acompanhar. Portanto, os desenvolvedores tendem a limitar, intencionalmente, a velocidade com que uma blockchain se atualiza, garantindo que o sistema permaneça descentralizado.

Em uma rede, caso muitos usuários estiverem fazendo transações simultâneas, eles podem enfrentar longos períodos de espera. Blocos podem armazenar uma quantidade limitada de dados e não são adicionados à cadeia instantaneamente. Se houver mais transações do que um bloco pode armazenar, as transações adicionais terão de esperar pelo próximo bloco.

Outra possível desvantagem de sistemas blockchain descentralizados é que eles não podem ser facilmente atualizados. Se você estiver criando seu próprio software, poderá adicionar novos recursos, conforme desejar. Você não precisa trabalhar com outras pessoas ou pedir permissão para fazer alterações.

Em um ambiente com, potencialmente, milhões de usuários, fazer alterações é algo bem mais difícil. Você poderia alterar alguns dos parâmetros do software do node, mas acabaria se separando da rede. Se seu software modificado for incompatível com outros nodes, eles irão reconhecer isso e vão se recusar a interagir com seu node.

Suponha que você queira alterar uma regra sobre o tamanho dos blocos (de 1 MB para 2 MB). Você pode tentar enviar esse bloco para os nodes aos quais está conectado, mas eles têm uma regra que diz “não aceitar blocos com mais de 1 MB”. Se eles receberem um bloco maior que o permitido, não o incluirão em sua cópia da blockchain.

A única maneira de fazer alterações é fazer com que a maioria do ecossistema as aceite. Considerando as principais blockchains, podem ser necessários meses – ou até anos – de intensa discussão em fóruns, antes que alterações ou mudanças propostas, possam ser efetivadas. Consulte Hard Forks e Soft Forks para mais informações.





Capítulo 2 - Como funciona a blockchain?

Conteúdo

  • Como os blocos são adicionados à blockchain?

  • Mineração (Proof of Work)

    • Vantagens do Proof of Work

    • Desvantagens do Proof of Work

  • Staking (Proof of Stake)

    • Vantagens do Proof of Stake

    • Desvantagens do Proof of Stake

  • Outros algoritmos de consenso

  • É possível reverter transações da blockchain?

  • O que é escalabilidade da blockchain?

  • Por que a blockchain precisa escalar?

  • O que é um blockchain fork?

    • Soft forks

    • Hard forks


Como os blocos são adicionados à blockchain?

Já abordamos muitas informações importantes até agora. Sabemos que os nodes (nós) estão interconectados e que armazenam cópias da blockchain. Eles transmitem entre si, informações sobre transações e novos blocos. Já discutimos o que são os nodes, mas você deve estar se perguntando: como novos blocos são adicionados à blockchain?

Não existe uma fonte única para informar aos usuários o que deve ser feito. Como todos os nodes possuem o mesmo poder, é preciso haver um mecanismo que decida com precisão quem pode adicionar novos blocos à blockchain. Precisamos de um sistema que faça com que a trapaça custe caro e que recompense usuários por agir honestamente. Qualquer usuário racional irá preferir agir de uma maneira que seja economicamente benéfica para ele.

Como a rede é permissionless (não há necessidade de permissão), a criação de blocos precisa ser acessível a qualquer pessoa. Os protocolos geralmente garantem isso, exigindo que o usuário coloque um pouco da sua “pele em jogo” – eles devem colocar seu próprio dinheiro em risco. Isso permite que os usuários participem da criação de blocos e caso um bloco válido seja gerado, as recompensas serão distribuídas de acordo.

No entanto, se houver tentativa de trapaça, todos os membros da rede saberão. Qualquer valor de stake do usuário que tentar trapacear será perdido. Chamamos esses mecanismos de algoritmos de consenso porque permitem que os participantes da rede cheguem a um consenso sobre qual deve ser o próximo bloco adicionado.


Mineração (Proof of Work)

Proof of work


A mineração é de longe o algoritmo de consenso mais usado. Na mineração, se utiliza um algoritmo Proof of Work (PoW). Isso envolve usuários que oferecem poder computacional para tentar resolver um quebra-cabeça estabelecido pelo protocolo.

Esse quebra-cabeça exige que os usuários façam transações de hash e de outras informações contidas no bloco. Mas, para que o hash seja considerado válido, ele deve ser menor que um determinado número. Como não há como prever qual será o output (saída), os mineradores devem continuar utilizando dados ligeiramente modificados até encontrar uma solução válida.

Evidentemente, o processo de repetição do hashing de dados é caro, em termos de computação. Nas blockchains Proof of Work, o valor de “stake” que os usuários propõem é o dinheiro que foi investido em computadores para mineração e a eletricidade usada para alimentá-los. Eles fazem isso na esperança de obter uma recompensa de bloco

Lembra-se do que dissemos anteriormente que é praticamente impossível reverter um hash, mas é fácil verificá-lo? Quando um minerador envia um novo bloco para o restante da rede, todos os outros nodes (nós) o usam como input (entrada) em uma função de hash. Eles só precisam executá-lo uma vez para verificar se o bloco é válido, considerando as regras da blockchain. Caso contrário, o minerador não recebe a recompensa e terá gasto recursos e eletricidade para nada.

A primeira blockchain Proof of Work foi a do Bitcoin. Desde sua criação, muitas outras blockchains adotaram o mecanismo PoW.


Vantagens do Proof of Work

  • Testado e aprovado– até hoje, o Proof of Work é o algoritmo de consenso mais maduro e já garantiu a segurança de bilhões de dólares em valor.

  • Permissionless – qualquer um pode participar da competição de mineração ou simplesmente executar um node de validação.

  • Descentralização – mineradores competem entre si para produção de blocos, o que significa que o poder de hash nunca é controlado por um único participante da rede.


Desvantagens do Proof of Work

  • Desperdício – a mineração consome uma quantidade enorme de energia elétrica.

  • Barreiras de entrada cada vez maiores – à medida que mais mineradores se juntam à rede, os protocolos aumentam a dificuldade do quebra-cabeça da mineração. Para manter a competitividade, os usuários devem investir em equipamentos melhores. Os custos podem acabar sendo muito altos para os mineradores.

  • Ataques de 51% – Embora a mineração promova a descentralização, existe a possibilidade de um único minerador adquirir a maior parte do poder de hash. Se isso acontecer, seria teoricamente possível desfazer transações e comprometer a segurança da blockchain.


Staking (Proof of Stake)

Nos sistemas de Proof of Work, o que incentiva os usuários a agir honestamente é o alto valor investido na mineração. O minerador não receberá um retorno do seu investimento se não minerar blocos válidos.

Com o Proof of Stake (PoS), não existe um custo externo. Em vez de mineradores, existem validadores que propõem (ou “forjam”) blocos. Eles podem usar um computador comum para gerar novos blocos, mas devem colocar uma parte significativa de seus fundos em jogo (stake) para ter esse privilégio. O valor de staking é uma quantidade predefinida da criptomoeda nativa da blockchain, de acordo com as regras de cada protocolo. 

Diferentes implementações possuem diferentes variações, mas uma vez que um validador faz stake de suas unidades, elas podem ser aleatoriamente selecionadas pelo protocolo para anunciar o próximo bloco. Se o usuário fizer isso corretamente, ele receberá uma recompensa. Pode haver vários validadores que concordam com o próximo bloco e uma recompensa é distribuída proporcionalmente, de acordo com o valor de stake de cada um.

Blockchains PoS “Puras” são menos comuns do que as DPoS (Delegated Proof of Stake), que requerem uma votação dos usuários, escolhendo os nodes/nós (testemunhas) para validação de blocos para toda a rede.

A Ethereum, blockchain líder em contratos inteligentes, logo fará a transição para o Proof of Stake em sua migração para a ETH 2.0. 


Vantagens do Proof of Stake

  • Sustentável – o impacto ambiental da PoS é bem menor do que o da mineração PoW. O staking remove a necessidade de operações de hashing que necessitam muitos recursos.

  • Transações mais rápidas – como não há necessidade de gastar com poder computacional para solução de quebra-cabeças aleatórios definidos pelo protocolo, alguns defensores do PoS argumentam que a taxa de transações pode ser maior.

  • Recompensas por staking e juros – em vez de beneficiar mineradores, as recompensas pela proteção da rede são pagas diretamente aos detentores (holders) de tokens. Em alguns casos, o PoS permite que os usuários obtenham uma renda passiva na forma de airdrops ou de juros, simplesmente por fazer staking de seus fundos.


Desvantagens do Proof of Stake

  • Pouco testados – os protocolos PoS ainda não foram testados em larga escala. Podem existir algumas vulnerabilidades ainda não conhecidas em sua implementação ou criptoeconomia.

  • Plutocracia – existe uma preocupação no sentido de que o PoS pode incentivar um ecossistema onde “o rico fica mais rico”, pois validadores com uma grande participação (valor em stake) tendem a receber mais recompensas.

  • Problema do "nothing-at-stake" – no sistema PoW, os usuários só podem escolher uma cadeia – eles mineram na cadeia em que acreditam ter mais potencial de sucesso. Durante um hard fork, eles não podem apostar em diversas cadeias com o mesmo poder de hash. Entretanto, validadores do PoS podem trabalhar em múltiplas cadeias com muito pouco custo adicional, o que pode causar problemas econômicos.


Outros algoritmos de consenso

Proof of Work e Proof of Stake são os algoritmos de consenso mais comuns, mas existem muitos outros. Alguns são modelos híbridos que combinam elementos de ambos os sistemas, enquanto outros usam métodos diferentes. 

Não entraremos em detalhes sobre os outros métodos aqui. Se tiver interesse, confira os seguintes artigos:


É possível reverter transações da blockchain?

Blockchains são bancos de dados muito robustos. Suas propriedades inerentes tornam a remoção ou alteração dos dados da blockchain, um processo muito difícil após o registro. Quando se trata de Bitcoin e outras redes maiores, isso é quase impossível. Então, quando você estiver fazendo uma transação em uma blockchain, é melhor pensar nela como uma transação eterna, que não pode ser revertida.

Considerando isso, existem diversas implementações de blockchain e a principal diferença entre elas é em relação a obtenção de consenso dentro da rede. Isso significa que, em algumas implementações, um grupo relativamente pequeno de participantes pode obter energia suficiente na rede para efetivamente reverter as transações. Isso é especialmente preocupante para altcoins executadas em redes pequenas (com baixas taxas de hash devido à baixa concorrência na mineração).


O que é escalabilidade da blockchain?

O termo escalabilidade da blockchain é normalmente usado como um termo abrangente para se referir à capacidade de um sistema blockchain de atender a uma demanda crescente. As blockchains possuem propriedades desejáveis (como descentralização, resistência à censura, imutabilidade), mas essas propriedades têm um custo.

Ao contrário dos sistemas descentralizados, um banco de dados centralizado pode trabalhar com velocidade e taxas de transferência maiores. Isso faz sentido, pois não há necessidade de que milhares de nodes (nós) espalhados pelo mundo, façam sincronização com a rede cada vez que seu conteúdo é modificado. Mas esse não é o caso das blockchains. Sendo assim, a escalabilidade sempre foi um tópico muito discutido entre os desenvolvedores de blockchain.

Diversas soluções já foram propostas ou implementadas para mitigar algumas das desvantagens de desempenho das blockchains. Até o momento, no entanto, não existe uma abordagem que seja claramente efetiva. Ainda existe a necessidade de realizar testes com muitas das diferentes soluções até que haja respostas mais diretas para o problema de escalabilidade.

Em um nível mais amplo, temos uma pergunta fundamental sobre escalabilidade: devemos melhorar o desempenho da própria blockchain (escalabilidade on-chain) ou devemos permitir que as transações sejam executadas sem sobrecarregar a blockchain principal (escalabilidade off-chain)? 

Existem claras vantagens para ambas. As soluções de escalabilidade on-chain (na cadeia) podem reduzir o tamanho das transações ou simplesmente otimizar a forma como os dados são armazenados nos blocos. Por outro lado, as soluções off-chain (fora da cadeia) envolvem transações em lotes, fora da blockchain principal, que são adicionadas posteriormente. Algumas das soluções off-chain mais notáveis são chamadas de sidechains (cadeias laterais) e canais de pagamento.

Para saber mais sobre esse assunto, consulte o artigo Escalabilidade da Blockchain - Sidechains e Canais de Pagamento.


Por que a blockchain precisa escalar?

Se os sistemas blockchain quiserem competir com os sistemas centralizados, eles precisam ter, ao menos, o mesmo desempenho que eles. Realisticamente, no entanto, eles provavelmente terão que apresentar um desempenho ainda melhor para incentivar desenvolvedores e usuários a migrar para plataformas e aplicativos com base na tecnologia blockchain. 

Ou seja, quando comparado aos sistemas centralizados, o uso de blockchains precisa ser mais rápido, mais barato e mais fácil para os desenvolvedores e usuários. Essa não é uma tarefa fácil, considerando que as propriedades mais importantes das blockchains, mencionadas anteriormente, devem ser mantidas. 


O que é um blockchain fork?

Como em qualquer software, as blockchains precisam de atualizações para correção de problemas, adição de novas regras ou remoção das antigas. Como os softwares de blockchain são open-source (de código aberto), teoricamente, qualquer pessoa pode propor novas atualizações a serem adicionadas ao software que gerencia a rede. 

Lembre-se que blockchains são redes distribuídas. Depois que o software é atualizado, milhares de nodes (nós) espalhados pelo mundo precisam se comunicar e implementar a nova versão. Mas o que acontece se os participantes não chegarem a um acordo em relação a qual atualização implementar? Geralmente, não existe uma organização ou hierarquia estabelecida tomar essa decisão. Isso nos leva aos hard forks e soft forks.


Soft forks

Se houver consenso sobre uma atualização, o processo é relativamente simples. O software é atualizado com alterações compatíveis com as versões anteriores, o que significa que os nodes atualizados ainda podem interagir com os que não foram. Na realidade, a expectativa é de que quase todos os nodes sejam atualizados após um tempo. Isso é chamado de soft fork. 


Hard forks

Um hard fork é mais complicado. Uma vez implementadas, as novas regras serão incompatíveis com as regras antigas. Portanto, se um node que está executando as novas regras tentar interagir com um que está executando as regras antigas, eles não poderão se comunicar. Isso resulta na divisão da blockchain em duas – em uma delas, o software antigo está sendo executado e na outra, as novas regras já foram implementadas.

Após o hard fork, existem essencialmente duas redes executando dois protocolos diferentes, de forma paralela. Vale a pena notar que, no momento do fork (divisão), os saldos da unidade nativa da blockchain são clonados da rede antiga. Portanto, se no momento do fork, você tiver um saldo na cadeia antiga, também terá um saldo na nova. 

Para saber mais sobre esse assunto, consulte Hard Forks e Soft Forks.





Capítulo 3 - Para que se utiliza a blockchain?


Conteúdo

  • Blockchain para cadeia de suprimentos

  • Blockchain e a indústria de jogos

  • Blockchain para sistemas de saúde

  • Blockchain e remessas

  • Blockchain e identidade digital

  • Blockchain e a Internet das Coisas (IoT)

  • Blockchain para sistemas de governança

  • Blockchain para instituições de caridade

  • Blockchain para o mercado especulativo

  • Crowdfunding com blockchain

  • Blockchain e sistemas de arquivos distribuídos


A tecnologia blockchain pode ser usada para diversos casos de uso. Vamos discutir alguns deles. 


Blockchain para cadeia de suprimentos

Cadeias de suprimentos eficientes são a base de muitos negócios de sucesso, com foco no gerenciamento de mercadorias do fornecedor ao consumidor. Porém, a coordenação de múltiplos stakeholders em um determinado setor se mostrou tradicionalmente difícil. No entanto, a tecnologia blockchain pode permitir novos níveis de transparência em diversos setores. Um ecossistema interoperável da cadeia de suprimentos que gira em torno de um banco de dados imutável é exatamente o que muitos setores precisam para se tornarem mais robustos e confiáveis.

Se quiser ler mais sobre esse assunto, consulte o artigo Casos de uso Blockchain: Cadeia de Suprimentos.


Blockchain e a indústria de jogos

A indústria de jogos se tornou uma das maiores indústrias de entretenimento do mundo e pode se beneficiar muito da tecnologia blockchain. Normalmente, os jogadores tendem a depender totalmente dos desenvolvedores de jogos. Na maioria dos jogos online, os jogadores são obrigados a aceitar as condições do servidor e seguir as regras dos desenvolvedores, que são alteradas constantemente. Nesse contexto, a blockchain pode ajudar a descentralizar a administração, o gerenciamento e a manutenção dos jogos online.

Um potencial problema, no entanto, é que os itens de jogos não podem existir externamente, eliminando as chances de propriedade real e de mercados secundários. Ao adotar uma abordagem baseada em blockchain, os jogos podem se tornar mais sustentáveis a longo prazo e os itens do jogo, emitidos como cripto-colecionáveis poderiam ter valor no mundo real.

Se quiser saber mais sobre o assunto, consulte o artigo Casos de Uso Blockchain: Jogos.


blockchain e jogos


Blockchain para sistemas de saúde

O armazenamento de registros médicos de maneira confiável é vital para qualquer sistema de saúde. A dependência de servidores centralizados deixa as informações confidenciais em uma posição vulnerável. A transparência e a segurança da tecnologia blockchain a tornam uma plataforma ideal para armazenamento de registros médicos.

Ao proteger criptograficamente seus registros em uma blockchain, os pacientes podem manter sua privacidade, ao mesmo tempo em que podem compartilhar suas informações médicas com qualquer instituição de saúde, caso tenham interesse. Se todos os membros do atual sistema de saúde fragmentado pudessem acessar um banco de dados global e seguro, o fluxo de informações seria muito mais rápido entre todas as instituições e membros do sistema.

Se quiser saber mais sobre o assunto, consulto o artigo Casos de Uso Blockchain: Sistemas de Saúde.


Blockchain e remessas

Enviar dinheiro internacionalmente usando os bancos tradicionais, é um processo relativamente complicado. Principalmente por conta da burocrática rede de intermediários, as taxas e os prazos de liquidação tornam o uso de bancos tradicionais uma opção cara e não confiável para transações mais urgentes.

As criptomoedas e blockchains eliminam esse ecossistema de intermediários e permitem transferências rápidas e baratas no mundo todo. Embora as blockchains, sem dúvida, sacrifiquem o desempenho de algumas de suas propriedades desejáveis, vários projetos estão aproveitando a tecnologia para permitir transações mais baratas e quase instantâneas.

Se quiser saber mais sobre o assunto, consulte o artigo Casos de Uso Blockchain: Remessas.



Pensando em investir em criptomoedas? Compre Bitcoin na Binance!



Blockchain e identidade digital

O gerenciamento seguro da identidade na Internet precisa, urgentemente, de uma solução rápida. Uma quantidade extraordinária de nossos dados pessoais é armazenada em servidores centralizados e analisada por algoritmos de machine learning (aprendizado de máquina) sem nosso conhecimento ou consentimento. 

A tecnologia Blockchain permite que os usuários tomem posse de seus dados e revelem informações de forma seletiva a terceiros, somente quando necessário. Esse tipo de mágica criptográfica pode melhorar a experiência online, sem sacrificar a privacidade do usuário.

Se quiser saber mais sobre o assunto, consulte o artigo Casos de Uso Blockchain: Identidade Digital.


 blockchain e identidade digital


Blockchain e a Internet das Coisas (IoT)

Atualmente, uma quantidade extraordinária de dispositivos estão se conectando à Internet e esse número só aumenta a cada dia. Alguns especulam que a comunicação e a interatividade entre esses dispositivos possam melhorar significativamente, com uso da tecnologia blockchain. Os pagamentos automatizados machine-to-machine (M2M) podem criar uma nova economia, baseada em uma solução de banco de dados segura e com alto rendimento.

Se quiser saber mais sobre o assunto, consulte o artigo Casos de Uso Blockchain: Internet of Things (IoT).


Blockchain para sistemas de governança

As redes distribuídas podem definir e aplicar suas próprias formas de regulamentação na forma de códigos de computador. Não é uma surpresa que a tecnologia blockchain possa proporcionar a eliminação de intermediários de vários sistemas de governança em nível local, nacional ou mesmo internacional. 

Além disso, ela poderia resolver um dos maiores problemas que os ambientes de desenvolvimento open-source (de código aberto) enfrentam atualmente – a falta de um mecanismo confiável para a distribuição de fundos. A governança da blockchain garante que todos os participantes possam se envolver na tomada de decisões e fornece uma visão transparente de quais políticas estão sendo implementadas.

Se quiser saber mais sobre o assunto, consulte o artigo Casos de Uso Blockchain: Sistemas de Governança.


Blockchain para instituições de caridade

As instituições de caridade geralmente sofrem com as limitações de como podem aceitar fundos e doações. Além disso, pode ser difícil rastrear com precisão o destino final dos fundos doados, o que sem dúvida desencoraja muitas pessoas de apoiar essas organizações.

A ”Cripto-filantropia” se preocupa com o uso da tecnologia blockchain para contornar essas limitações. Baseando-se nas propriedades inerentes da tecnologia para garantir maior transparência, participação global e despesas reduzidas, o campo emergente busca otimizar o impacto das instituições de caridade. Uma dessas organizações é a Blockchain Charity Foundation.

Se quiser saber mais sobre o assunto, consulte o artigo Casos de Uso Blockchain: Instituições de Caridade.


Blockchain para o mercado especulativo

Sem dúvida, um dos usos mais populares da tecnologia blockchain é a especulação financeira. Transferências sem atrito entre corretoras, soluções de trading sem custódia e um crescente ecossistema de derivativos, fazem com que a blockchain seja ambiente ideal para todos os tipos de especulações.

Devido às suas propriedades, a tecnologia blockchain é um excelente instrumento para usuários dispostos a correr o risco de participar dessa classe de ativos emergente. Alguns até acreditam que, após o amadurecimento e regulamentação da tecnologia, os mercados especulativos globais podem ser todos tokenizados para uso na tecnologia blockchain.

Se quiser saber mais sobre o assunto, consulto o artigo Casos de Uso Blockchain: Mercados Preditivos.


blockchain e mercados preditivos


Crowdfunding com blockchain

As plataformas de crowdfunding online estão, há quase uma década, construindo as bases para a economia peer-to-peer. O sucesso desses sites mostra que existe um interesse real no desenvolvimento de produtos com crowdfunding (financiamento coletivo). No entanto, essas plataformas atuam como custodiantes dos fundos, ou seja, elas podem acabar cobrando uma parcela considerável dos fundos como tarifas. Além disso, cada um teria seu próprio conjunto de regras, o que facilitaria o acordo entre os diferentes participantes.

A tecnologia Blockchain e mais especificamente os contratos inteligentes, poderia permitir um crowdfunding mais seguro e automatizado, onde os termos dos contratos são definidos por códigos de computador. 

Outras aplicações do crowdfunding com uso da tecnologia blockchain são as Initial Coin Offerings (ICOs) e Initial Exchange Offerings (IEOs). Em vendas de tokens como essas, os investidores arrecadam fundos na esperança de que a rede obtenha sucesso no futuro e gere retornos sobre os investimentos.


Blockchain e sistemas de arquivos distribuídos

A distribuição do armazenamento de arquivos na Internet apresenta muitos benefícios em comparação com as alternativas centralizadas convencionais. Muitos dos dados armazenados na nuvem dependem de servidores e provedores de serviços centralizados, que tendem a ser mais vulneráveis a ataques, podendo causar a perda de dados. Em alguns casos, os usuários também podem enfrentar problemas de acessibilidade devido à censura de servidores centralizados.

Da perspectiva do usuário, as soluções de armazenamento de arquivos que utilizam tecnologia blockchain, funcionam de forma parecida com as soluções de armazenamento em nuvem – você pode fazer upload, armazenar e acessar arquivos. No entanto, o sistema que fornece esses serviços é bem diferente.

Quando você carrega um arquivo em um armazenamento blockchain, ele é distribuído e replicado em vários nodes (nós). Em alguns casos, cada node armazenará uma parte diferente do seu arquivo. Os dados fragmentados não tem muita utilidade, mas você pode solicitar que os nodes forneçam cada uma das partes, para combiná-las e recuperar o arquivo completo.

O espaço de armazenamento é derivado dos participantes que fornecem armazenamento e largura de banda à rede. Normalmente, esses participantes recebem incentivos econômicos para fornecer esses recursos. Caso não consigam fornecer os recursos de acordo com as regras, eles podem ser punidos.

Você pode imaginar esse tipo de rede como uma semelhante à rede do Bitcoin. Nesse caso, no entanto, o principal objetivo da rede não é oferecer suporte a transferências de valores monetários, mas permitir o armazenamento descentralizado e sem censura de arquivos.

Outros protocolos open-source (de código aberto), como o InterPlanetary File System (IPFS), já estão abrindo caminho para esta nova Web mais distribuída. Embora o IPFS seja um protocolo e uma rede peer-to-peer, ele não é precisamente uma blockchain. Porém, aplica alguns princípios da tecnologia blockchain para aumentar a segurança e a eficiência.