Prova de trabalho
Após o servidor de timestamp, o segundo mecanismo que torna possível o Bitcoin é o Proof of Work (PoW).
Os PBO são muitas vezes erroneamente considerados como um mecanismo completamente novo que surgiu juntamente com a cadeia de bloqueio, mas a tecnologia foi originalmente desenvolvida para evitar o spamming e foi criada em 1993.
PoW é um processo para inverter uma função de hash.
A fim de evitar o correio não desejado, desenvolvemos um sistema que exige a prova de que o cálculo inverso da função hash foi efectuado aquando do envio de correio.
A ideia é que é preciso muito tempo para inverter a função hash, pelo que não é possível enviar um grande número de e-mails.
Este mecanismo é também conhecido como HashCash.
No caso do Bitcoin, quando cada bloco da cadeia de bloqueio é precipitado, é necessário encontrar um valor que tenha um número especificado de zeros no início do valor de hash que é gerado.
Cada bloco da cadeia de bloqueio contém uma variedade de informações que podem ser categorizadas em valores fixos e variáveis.
Este valor variável é chamado de nonce (número aleatório), e o processo de encontrar um valor de entrada com zeros iniciais variando o nonce é chamado de PoW em Bitcoin.
Uma vez concluído o processo PoW, foi formado um bloco na cadeia de bloqueio.
Cada bloco contém o valor do hash do bloco anterior.
Portanto, se quiser alterar qualquer bloco, tem de alterar os dados de todos os blocos ligados depois desse bloco.
É por isso que se diz que as correntes de bloqueio são tão difíceis de manipular.
Check your achievement
Click the “Tick” button
if you understand the lesson so far.
Construção de consensos através da Prova de Trabalho
Os PBO também podem ser utilizados para determinar cuja opinião é representativa de um grupo de pessoas não especificadas num processo de tomada de decisão.
Num PoW, um direito de participação é atribuído a cada CPU.
Isto significa que é difícil assegurar um grande número de participações, e que se pode esperar um processo de tomada de decisão verdadeiramente justo.
A cadeia com o maior esforço computacional de PoW será naturalmente a cadeia mais longa.
Esta cadeia mais longa será o representante do grupo não especificado no processo de tomada de decisão.
Isto baseia-se na ideia de que se a maioria das CPUs são controladas por bons nós, então a cadeia será a que crescerá mais rapidamente.
Check your achievement
Click the “Tick” button
if you understand the lesson so far.
Ajustar a dificuldade de construção de consensos
A adulterabilidade de uma cadeia de blocos diminui exponencialmente com o número de blocos que se seguem a um determinado bloco. (Quanto mais blocos se seguem, mais trabalho é necessário para os manipular.
A fim de alterar um bloco a partir de um certo ponto no passado, é necessário recriar o bloco por PoWing todos os blocos que o seguem.
Para adulterar um bloco em algum momento no passado, é necessário recriar o bloco, reescrevendo todos os blocos da cadeia depois desse bloco, e é preciso fazê-lo mais rapidamente do que o bloco correcto.
Isto é porque a cadeia mais longa será a correcta.
Vamos agora estudar brevemente a probabilidade de uma cadeia incorrecta ultrapassar uma cadeia correcta.
Os PBO são concebidos de tal forma que a dificuldade do próprio PBO não flutua devido às melhorias da Lei de Moore no desempenho do hardware ou devido ao número de participantes no PBO.
Isto porque é fácil para uma cadeia desonesta ultrapassar uma cadeia legítima se o nível de dificuldade flutuar.
Este nível de dificuldade chama-se Dificuldade e é automaticamente ajustado para assegurar que o número de blocos gerados por hora permaneça constante.
Se o número de blocos por hora aumenta, a dificuldade do PBO aumenta, e se o número de blocos por hora diminui, a dificuldade do PBO diminui.
Check your achievement
Click the “Tick” button
if you understand the lesson so far.