Dificuldade de mineração - explicação simples

COMPARTILHAR:

Whatsapp Telegram Twitter Facebook Reddit

O que é mineração de bitcoin e como funciona o ajuste de dificuldade?


Como funciona a dificuldade de mineração do Bitcoin? O canal Savjee no Youtube, fez um excelente vídeo simplificado explicando. Confira abaixo e se as legendas em português não estiverem disponível ainda, confira a transcrição do áudio feita por nós abaixo.


No passado, eu fiz um vídeo explicando como blockchains funcionam, e nele também explico o que é mineração. Em poucas palavras, a mineração é o processo de criação de um novo bloco para a cadeia de blocos e preenche-lo com transações. Mas o que eu não expliquei é a "dificuldade de mineração."

Para entender o que é, vamos olhar novamente no problema que as blockchains tentam resolver:

Criando consenso entre um monte de computadores ou nós na internet. No caso de uma criptomoeda, isso está concordando sobre como usuários individuais gastam  suas moedas. Pode não parecer, mas este é um difícil problema para resolver.

Os nós nesta rede nem sempre são honestos, e eles podem aparecer ou desaparecer sempre quando quiserem.

Agora, imagine que você quer se juntar a rede do Bitcoin. O seu computador sai pela internet e procura outros nós que estão participando. Mas como o seu computador sabe qual deles confiar?

Qualquer um nestes nós podem estar tentando enganar o sistema para ficar rico. A solução proposta pelo criador do Bitcoin era simples: a cadeia válida mais longa é a para ser escolhida. Mas isso por si só não é suficiente.

Se você é um atacante, você pode fabricar uma cadeia muito longa com transações falsas, e todo mundo vai pensar que a sua contém a verdade.

Para resolver esse problema, Satoshi diminuiu a velocidade do processo de criação de novos blocos com o algoritmo de prova de trabalho. É quase como uma loteria onde seu computador está fazendo um monte de cálculos aleatórios para tentar ser o primeiro a resolver um enigma criptográfico. Suas chances de resolvê-lo são bastante baixas. É quase como todos os mineradores do mundo tentando escolher a mesma resposta complexa. Todo mundo tenta um monte de combinações, mas no final, apenas um pode resolvê-lo primeiro. E quando isso acontece, você tem que começar tudo novamente para criar o próximo bloco.

Em média, há um computador a cada 10 minutos que resolvem o quebra-cabeça e obtêm a recompensa de mineração por criar um novo bloco. Este atraso de 10 minutos torna impossível criar artificialmente a cadeia mais longa porque a probabilidade de que seu computador sozinho possa encontrar a resposta - ou resolver o quebra-cabeça - em tempo, é altamente improvável. Você precisa de muitas pessoas, tentando muitas combinações aleatórias para fazê-lo dentro do prazo.

Impressionante, problema resolvido!

Mas espere!

Há mais um problema: nossos computadores ficam mais rápido ao longo do tempo, então computadores mais novos podem realizar mais cálculos e potencialmente criar blocos em menos de 10 minutos.

Significando que um invasor pode comprar um monte de computadores muito rápidos e tentar chegar à frente de todo mundo.

Felizmente, Satoshi pensou nisso também, e isso nos leva finalmente à "dificuldade" da mineração.

Este é um número que controla o quão duro seu computador tem que trabalhar para criar um novo bloco. E este não é um número fixo. É ajustado automaticamente a cada 2016 blocos. O sistema analisa a rapidez com que esses blocos foram criados. Normalmente, isso deve levar exatamente duas semanas. Se mais blocos foram criados nesse período, a dificuldade é aumentada. Se menos blocos foram criados, a dificuldade é reduzida.

Isso parece bastante simples, mas por que a dificuldade tem que ser ajustada a cada duas semanas? Não recebemos atualizações maciças de computador a cada duas semanas, certo?

Bem, o sistema também tem que compensar a quantidade de pessoas que estão minerando. Mais mineradores significam que há uma chance maior de alguém resolver o quebra-cabeça em um menor prazo, o que significa que a dificuldade deve aumentar para mantê-lo. E o oposto também é verdadeiro.

Se muitas pessoas param de minerar, a criação de blocos demorará mais e, portanto, a dificuldade tem que ser reduzida.

Então, em resumo, o ajuste da dificuldade garante que a mineração de novos blocos sempre leve em torno de 10 minutos, não importa a rapidez com que nossos computadores são e não importa quantas pessoas estão minerando.

Ótimo sistema, mas tem uma grande desvantagem: tende a levar à centralização. Veja, a principal razão pela qual as pessoas estão minerando é por causa dos lucros. Desde que sua operação de mineração seja lucrativa, você continua.

No entanto, um aumento na dificuldade pode significar que sua operação de mineração agora consome mais eletricidade do que gera em recompensas, Nesse ponto, você é forçado a parar a sua operação de mineração. E isso significa que apenas mineradores maiores permanecem ativos porque possuem economias de escala.

No caso do Bitcoin, vemos algumas grandes fazendas de minerações e grupos de mineração, tendo uma significativa parte desse "mercado de mineração".

Isso não apenas centraliza uma tecnologia que era para ser completamente distribuído, mas também abre as portas para esses grandes fazendas de mineração executar ataques contra a rede.

Soluções para este problema estão sendo discutidas, mas isso é para outro vídeo!

Curiosidade: se você é um desenvolvedor, como eu, você pode estar pensando que esse Satoshi é brilhante porque ele pensou em tudo disto.

Mas ele não é perfeito e também comete erros.

Há um pequeno bug no ajuste de dificuldade no código do Bitcoin.

Após 2016 blocos a dificuldade é recalculada mas o código olha apenas para os primeiros 2015 blocos.

Portanto, se todos os blocos levassem exatamente 10 minutos para minerar e o último bloco levar 100 dias para minerar, isso não afetaria a dificuldade.

Whoa, que erro de novato.

Uhm, então não se sinta tão mal com a suas habilidades de programador!

COMENTÁRIOS

Nome

#ann,25,#HK,30,#LTCode,130,Artigo - Diversos,156,Artigo - Games,201,Artigo - Tecnologia,614,autor-thomaz,7,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,72,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,estudo,8,HN,12,logica,14,Pentest,23,Programar C,29,Programar POO,6,Programar Python,6,Programar Shell,25,Programar verilog,12,qradar,4,Raspberry Pi,15,Redes,3,root,116,Shorty Awards,1,Smartphones - Reviews,33,Teoria,10,Top Nostalgia,2,VPN,19,WhatsApp,46,
ltr
item
Limon Tec: Dificuldade de mineração - explicação simples
Dificuldade de mineração - explicação simples
O que é mineração de bitcoin e como funciona o ajuste de dificuldade?
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXFunEtgcRvR7RnIUZ-C9K6wUXcNfkE_yabisVMwC1pVrJ2_qWB6R7WY2XQC40qqiqarL6mpytNCCC8Y9N5uOmrGfsf12lQLVN386KHNUUJFCdzb8dYfw6o-xTlJht9UVlyu2smi1ySPVz/s400/miningdifficulty+%25281%2529.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXFunEtgcRvR7RnIUZ-C9K6wUXcNfkE_yabisVMwC1pVrJ2_qWB6R7WY2XQC40qqiqarL6mpytNCCC8Y9N5uOmrGfsf12lQLVN386KHNUUJFCdzb8dYfw6o-xTlJht9UVlyu2smi1ySPVz/s72-c/miningdifficulty+%25281%2529.jpg
Limon Tec
https://www.limontec.com/2019/10/dificuldade-de-mineracao-explicacao.html
https://www.limontec.com/
https://www.limontec.com/
https://www.limontec.com/2019/10/dificuldade-de-mineracao-explicacao.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo