Para ler a parte 3, clique aqui.
Mas é realmente seguro? E por que é chamado Blockchain?
Qualquer pessoa pode acessar a rede Bitcoin por meio de uma conexão anônima (por exemplo, a rede TOR ou uma rede VPN ) e enviar ou receber transações, revelando nada mais que sua chave pública. No entanto, se alguém usar a mesma chave pública repetidamente, é possível conectar todas as transações ao mesmo proprietário. A rede Bitcoin permite gerar quantas carteiras você desejar, cada uma com suas próprias chaves públicas e privadas. Isso permite que você receba pagamentos em carteiras diferentes, e não há como alguém saber que você possui todas as chaves privadas dessas carteiras, a menos que você envie todos os Bitcoins recebidos para uma única carteira.
O número total de endereços possíveis de bitcoin é 2¹⁶⁰ ou 1461501637330902918203684832716283019655932542976.
Esse grande número protege a rede de possíveis ataques enquanto permite que qualquer pessoa possua uma carteira
Com essa configuração, ainda existe uma grande falha de segurança que pode ser explorada para recuperar Bitcoins após gastá-los. As transações são passadas de nó para nó na rede, para que a ordem na qual duas transações alcancem cada nó possa ser diferente. Um invasor pode enviar uma transação, aguardar a contraparte enviar um produto e, em seguida, enviar uma transação reversa de volta para sua própria conta. Nesse caso, alguns nós podem receber a segunda transação antes da primeira e, portanto, consideram a transação de pagamento inicial inválida, pois as entradas da transação seriam marcadas como já gastas. Como você sabe qual transação foi solicitada primeiro? Não é seguro solicitar timestamp das transações porque poderia ser facilmente falsificado. Portanto, não há como saber se uma transação ocorreu antes de outra, e isso abre o potencial de fraude.
Se isso acontecer, haverá desacordo entre os nós da rede em relação à ordem das transações que cada um deles recebeu. Portanto, o sistema blockchain foi projetado para usar o contrato de nó para solicitar transações e evitar a fraude descrita acima.
A rede Bitcoin ordena transações agrupando-as em blocos; cada bloco contém um número definido de transações e um link para o bloco anterior. É isso que coloca um bloco após o outro no tempo. Portanto, os blocos são organizados em uma cadeia relacionada ao tempo (Fig. 6) que dá o nome a todo o sistema: blockchain.
Considera-se que as transações no mesmo bloco ocorreram ao mesmo tempo, e as transações que ainda não estão em um bloco são consideradas não confirmadas. Cada nó pode agrupar transações em um bloco e transmiti-lo para a rede como uma sugestão para qual bloco deve ser o
próximo. Como qualquer node pode sugerir um novo bloco, como o sistema concorda em qual bloco deve ser o próximo?
Para ser adicionado à blockchain, cada bloco deve conter a resposta para um problema matemático complexo criado usando uma função hash criptográfica irreversível. A única maneira de resolver um problema matemático é adivinhar números aleatórios que, combinados com o conteúdo do bloco anterior, geram um resultado definido. Pode demorar cerca de um ano para um computador típico adivinhar o número certo e resolver o problema matemático. No entanto, devido ao grande número de computadores na rede que estão adivinhando números, um bloco é resolvido em média a cada 10 minutos. O nó que resolve o problema matemático adquire o direito de colocar o próximo bloco na cadeia e transmiti-lo para a rede.
E se dois nós resolverem o problema ao mesmo tempo e enviarem seus blocos para a rede simultaneamente? Nesse caso, os dois blocos são transmitidos e cada nó é construído no bloco que recebeu primeiro. No entanto, o sistema blockchain exige que cada nó construa imediatamente no blockchain mais longo disponível. Portanto, se houver ambiguidade sobre qual é o último bloco, assim que o próximo bloco for resolvido, cada nó adotará a cadeia mais longa como única opção.
Devido à baixa probabilidade de resolver blocos simultaneamente, é quase impossível que vários blocos sejam resolvidos ao mesmo tempo repetidamente, construindo diferentes “ramificações”, para que toda a cadeia de blocos se estabilize rapidamente em uma única sequência de blocos em que todos os nós concordam.
Uma discordância sobre qual bloco representa o fim da cadeia abre o potencial de fraude novamente. Se uma transação estiver em um bloco que pertence a uma cauda mais curta (como o bloco B na Fig. 7), assim que o próximo bloco for resolvido, essa transação, juntamente com todas as outras em seu bloco, voltará às transações não confirmadas.
Para ler a terceira parte deste artigo, clique aqui. A continuação será publicada amanhã no BitNotícias.
Este artigo foi desenvolvido por Michele D’Aliessi e traduzido para o portal BitNotícias.