WALLET ADDRESS

  • Endereço de sua carteira.
  • Identificador único para a carteira
  • Pode compartilhar com as pessoas para receber dinheiros.
  • É incluído com as transações no bloco.
  • Quando criado o wallet é criado também em pares a chave privada e pública.

É criado o Wallet Address por meio de uma combinação entre chave publica e privada. Para criar o Wallet Address é aplicado uma Hash Function SHA-256 + RIPEMD160;

Tipos de Wallets:

  • Carteira não determinística: carteira que as chaves privadas são geradas a partir de números aleatórios.
  • Carteira Determinística: endereços chaves privadas e públicas podem ser rastreadas até sua palavra semente original.
  • Carteira Determinística Hierárquica: Tipo avançado de carteira determinística que contém chaves derivadas de uma estrutura de árvore.

Forks

Forks podem ser classificados como acidentais ou intencionais . Uma bifurcação acidental acontece quando dois ou mais mineiros (ou validadores) encontram um bloco quase ao mesmo tempo. A bifurcação é resolvida quando blocos subseqüentes são adicionados e uma das cadeias fica mais longa que a (s) alternativa (s). A rede abandona os blocos que não estão na cadeia mais longa (eles são chamados de blocos órfãos ).

Forks intencionais que modificam as regras de um blockchain podem ser classificados da seguinte forma:

Fork hard

Um fork hard é uma mudança de regra, de tal forma que o software validando de acordo com as regras antigas verá os blocos produzidos de acordo com as novas regras como inválidos. No caso de um fork hard, todos os nós destinados a trabalhar de acordo com as novas regras precisam atualizar seu software.

Se um grupo de nós continuar a usar o software antigo enquanto os outros nós usam o novo software, pode ocorrer uma divisão. Por exemplo, a Ethereum se esforçou para “tornar inteiros” os investidores do The DAO , que haviam sido invadidos explorando uma vulnerabilidade em seu código. Neste caso, o fork resultou em uma divisão criando as correntes Ethereum e Ethereum Classic . Em 2014, a comunidade Nxt foi convidada a considerar um fork hard que teria levado a uma reversão dos registros blockchain para mitigar os efeitos de um roubo de 50 milhões de NXT de uma grande troca de criptomoeda..

Soft Fork

Em contraste com um fork hard, um soft fork é uma mudança de regras que ainda cria novos blocos reconhecidos como válidos pelo software antigo, ou seja, é compatível com versões anteriores .

Fonte: https://en.wikipedia.org/wiki/Fork_(blockchain)

Nothing at Stake: é quando um validador aplica o dinheiro em várias cadeias de bloco. Acontece devido o validador não ter o custo inerente a energia e equipamento. Desta forma deve haver punição.

Como a blockchain toma as decisões?

A resposta é algoritmos de consenso. Vamos citar os 4 principais algoritmos.

PoW (Proof of Work)

O PoW é o algoritmo mais conhecido. Ele foi desenvolvido para a circulação do Bitcoin, mas apresentou todos os benefícios de se usar uma rede blockchain para o mundo. O PoW consiste em definir a mineração na ordenação dos blocos. No caso, o bloco que resolve o cálculo, cria o próximo bloco. Para participar da rede é necessário ter poder computacional, pois os cálculos são altamente complexos e demandam muita energia das máquinas. Isso significa que, para a blockchain do Bitcoin, por exemplo, é necessário máquinas potentes a nível industrial para minerar. É por essas quebras de criptografia e criação de blocos que os mineradores são bonificados. Daí, vem a “prova de trabalho”. Nessa blockchain, as moedas são disponibilizadas conforme os blocos são fechados e criados, e têm um limite de mineração no caso do bitcoin. Assim que atingido, as moedas terão sua mineração paralisada e a remuneração virá das taxas cobradas pela rede. Além disso, como a rede é descentralizada, sempre que há uma proposta de modificação ou melhora, ela precisa ser aprovada pelos mineradores para ser implementada na rede. Exemplos de utilizadores: Bitcoin, Ethereum Classic, Litecoin

PoS (Proof of Stake)

O PoS foi desenvolvido na contrapartida de trazer mais “mineradores” para a rede, sem exigir muito de seus computadores. Esse algoritmo consiste na filosofia de “prova de participação”, onde aqueles que se propõem a minerar, chamados “nodes” (nós), precisam ter uma grande quantidade de moedas em sua posse, para que a blockchain possa “sorteá-los” para que resolvam os cálculos e fechem os blocos, recebendo, assim, a bonificação da rede. Quanto mais moedas em seu poder, mais chances de ser sorteado. Ao contrário do PoW, as moedas da rede PoS são pré-criadas e disponibilizadas na rede antes da criação dos blocos. Assim, não existe uma mineração, mas uma forja. A bonificação já é feita com as fees de cada bloco. Como uma blockchain que usa esse sistema exige pouca performance das máquinas que compõem a rede, ela se torna uma opção mais ecologicamente correta aos interessados. Exemplos de utilizadores: NXT, Blackcoin, PIVX.

LPoS (Leased Proof of Stake)

E seguindo a mesma linha do anterior, a diferença que o LPoS traz consigo é o Leasing. Esse sistema tem a proposta de facilitar a manutenção dos nodes por meio da contribuição dos usuários da rede. Os usuários, que não tem um node, “emprestam” suas moedas a um para que este tenha mais força dentro da rede, para que ele não necessariamente precise de suas próprias moedas para forjar. Com isso, os próprios usuários fortalecem a rede.

Um bom exemplo de aplicação desse algoritmo é encontrado no blockchain da  Lunes, onde o usuário da carteira tem a opção de escolher o node para fazer o leasing e acompanhar o recebimento das bonificações na própria carteira, além de poder escolher a quantidade de moedas Lunes para “emprestar” e em quantos nodes irá realizar o procedimento.

Além disso, para continuar com a proposta de descentralização, o usuário pode realizar o cancelamento do leasing no momento que quiser e pode realizar o procedimento no mesmo node quantas vezes e por quanto tempo o mesmo existir. Desta maneira, a proposta torna-se mais atrativa e tem o intuito de trazer mais e mais usuários para a rede. Exemplo de utilizadores: Lunes, Waves.

PoC (Proof of Capacity)

Para finalizar, vamos falar sobre o algoritmo Proof of Capacity (prova de capacidade), que, diferente dos anteriores, exige do minerador capacidade de armazenamento. Dos citados, o PoC é o menos conhecido, mas é o que consome menos energia e desempenho das máquinas do usuário. Ele segue o mesmo conceito de sorteio do PoS, mas o que dá força para o minerador é a capacidade de armazenamento no HD da máquina. Quanto mais espaço, mais força e mais chance de ser sorteado. Como qualquer tipo dado pode ser inserido na rede, esse tipo de algoritmo pode ser uma boa proposta para se realizar streaming de vídeos, biblioteca de arquivos ou qualquer outro tipo de plataforma de mídias, mas com a praticidade e qualidade da descentralização. Exemplo de utilizadores: Burst.

Logo, podemos concluir que a blockchain só está melhorando, desde sua implementação. Além destes, temos outros algoritmos que estão sendo desenvolvidos sempre no intuito de corrigir as falhas, aumentar a segurança e a participação na rede.

Graças a descentralização, a blockchain está se tornando cada vez mais abrangente e trazendo ainda mais possibilidades de utilização pela população, pois com a proposta de registro imutável, a velocidade em envio, o recebimento de dados e as  confirmações de rede, as ideias de aplicação são numerosas. Todos estes métodos de consenso de rede têm seus pontos positivos e negativos, e ainda não temos um sistema perfeito, os desenvolvedores estão na busca da escalabilidade e métodos de consenso mais eficientes para rede, mas só o tempo dirá quais serão os mais eficientes.

Fonte:
https://olhardigital.com.br/colunistas/lucas_magno/post/os_algoritmos_de_consenso_dos_blockchains/80300

Mas existe mais que os citados acima, para mais informações:
https://101blockchains.com/pt/algoritmos-de-consenso/

Os algoritmos acima resolvem o problema dos Generais Bizantinos

MEMORY POOL (MEMPOOL)

‘Mempool’ parte muito importante da rede blockchain. Como o próprio nome sugere, é um conjunto de transações memorizados e mantidos antes de validar.

Como o Mempool funciona?

Vamos dizer que você decide enviar alguém seus Bitcoins. Você fará isso concluindo uma transação . Para que esta transação aconteça, primeiro você precisará instruir sua carteira para fazer a transação, detalhando a quantia de Bitcoin que você deseja enviar e a outra carteira. Confirmar que você deseja fazer sua transação fará com que sua carteira faça o seguinte, para que elas sejam listadas em:

  • assinará a transação com suas chaves privadas
  • ele irá transmitir a transação para a Bitcoin Network e prepará-la para ser totalmente verificada.

E é aqui que entra em jogo o Mempool. Sua transação não será concluída no momento em que sua carteira for transmitida. Em vez disso, ele será armazenado no Mempool. Ele é chamado de ‘Mempool’ porque os nós nos quais ele está armazenado o fazem em sua memória RAM. Um ‘nó’ é um dispositivo eletrônico que faz parte da Blockchain. Cada nó está executando o software Bitcoin Core e possui uma cópia completa do Blockchain. Ao mesmo tempo, cada nó contém seu próprio conjunto exclusivo de transações não confirmadas, o que significa que é quase impossível que um único nó contenha a totalidade do conjunto de memórias. O número desses nós ao redor do mundo varia muito de tempos em tempos devido a muitas razões, a maioria delas relacionadas aos custos de manter um nó operacional e volumoso do Bitcoin Core.

Para que sua transação seja concluída, ela precisa ser confirmada / verificada . Para que seja verificado, pelo menos um mineiro precisa pegá-lo no Mempool e validá-lo. Os mineradores são pessoas que usam seus computadores para processar e confirmar as transações do Bitcoin. Quanto mais vezes uma única transação for confirmada, menos provável será comprometida. Idealmente, uma transação do Mempool será verificada 6 vezes antes de se tornar parte do Blockchain. Uma vez que sua transação seja verificada 6 vezes, há uma probabilidade de 99,90% de que ela seja válida.

Fonte:
https://captainaltcoin.com/bitcoin-memory-pool-mempool/

Bloco

A blockchain é um livro razão digital e descentralizado que registrá todas as transações ocorridas por meio de blocos. Cada bloco armazena uma lista de transação.

Estrutura do bloco:

Fonte:
https://www.modiax.com/descubra/educacao/bitcoin-blockchain/

Raiz Merkle: HASH gerado a cada par de transação (da Lista de Transações), se tiver 2 pares, pega os HASH gerado e gera um novo e assim sucessivamente até gerar um HASH FINAL das informações.

Nonce: número aleatório aplicado apenas uma vez no último hash do bloco, gerando o hash final. (O minerador deve encontrar um nonce que torne o seu bloco válido. Este passo requer a maior parte do trabalho, e é onde ocorre a maior parte da dificuldade dos mineradores.)

Index: número do bloco.

Hash do bloco anterior: cada bloco tem um hash final e seu hash participa da geração do Hash do bloco corrente. Sendo assim se for modificado alguma transação em um bloco anterior não irá fechar mais os Hash.

Timestamp: gerado na hora da criação utilizado para gerar tambem o hash final.

Hash do bloco: hash final do bloco onde irá para o proximo bloco e assim transformando em uma cadeia de blocos interligados sem que possam trapacear.

HASHING

Hashing é uma maneira de criar uma impressão digital para um dado.
Mensagem.txt -> Hash Algorithm SHA256 -> c8suf899sefsy9s98jksy2b2332se0fsefhs

Neste link abaixo podemos gerar uma hash unica: https://anders.com/blockchain/hash.html

SHA-2 é um conjunto de funções hash criptográficas projetadas pela NSA (Agência de Segurança Nacional dos EUA). SHA significa secure hash algorithm (algoritmo de hash seguro). Funções hash criptográficas são operações matemáticas executadas em dados digitais; comparando o hash computado (a saída de execução do algoritmo) a um valor de hash conhecido e esperado, uma pessoa pode determinar a integridade dos dados. Por exemplo, calcular o hash de um arquivo baixado e comparar o resultado com um resultado hash publicado anteriormente pode mostrar se o download foi modificado ou adulterado. Um aspecto importante das funções hash criptográficas é a sua resistência à colisão: ninguém deve ser capaz de encontrar dois valores de entrada diferentes que resultam na mesma saída de hash.

SHA-2 inclui mudanças significativas de seu antecessor, SHA-1. A família SHA-2 é composta por seis funções hash com resumos (valores de hash) que são de 224, 256, 384 ou 512 bits: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.

Fonte: https://pt.wikipedia.org/wiki/SHA-2

Entendendo a Arquitetura da rede.

A blockchain utiliza a arquitetura de rede distribuída onde os nós se ligam entre si e tem exatamente a mesma autoridade conforme a imagem abaixo. Considerando que o poder de computação de cada nó pode variar.

distribuídos

Existe também outras duas formas de rede onde são utilizadas pelos sistemas hoje.

Centralizado: todos os nós (cliente) ficam ligados (agindo de acordo com a rede) a uma entidade centralizadora (autoridade ou servidor central). Esse é o sistema mais clássico encontrado nas empresas.

Descentralizado: tem um servidor central e outros servidores secundários, onde os nós se conectam as secundarias e depois a secundaria se conecta a entidade central. Algumas redes desta forma não tem um servidor central.

Básico Funcionamento blockchain

BlockChain é um conceito, uma arquitetura de banco de dados descentralizada.

1° Passo: Registrando uma transação.

DE PARA VALOR
JardelMichel 4,23
DanielClaudemir 55,22

2° Passo: Tornar a transação anônima com a chave privada.

DE PARA VALOR
8s7fy8as7dfya 94cwum984cw 4,23
78as9fdh98a7sf 8u480y173841 55,22

3° Passo: Tornar a transação oficial. A cada 10 minutos todas as transações pendentes no mundo é analisado por um minerador.

DE PARA VALOR Status
8s7fy8as7dfya 94cwum984cw 4,23 Pendente
78as9fdh98a7sf 8u480y173841 55,22 Pendente

4° Passo: Assinatura, acontece quando uma pessoa faz uma transação para outra pessoa, e assim assinado digitalmente as informações dessa transação com a chave primaria. O processo de assinatura é como uma operação criptográfica encima das informações da transação gerando uma chave de conjunto de caracteres.

DE PARA VALOR Assinatura Status
8s7fy8as7dfya 94cwum984cw 4,23 asdf2sq217s787ds Pendente
78as9fdh98a7sf 8u480y173841 55,22 87yd8fans7ys8dfa Pendente

5° Passo: Determinar o ID da Transação: O minerador confirma que essa assinatura é valida e muda o status e grava um id da Transaction (gerado pelo minerador).

DE PARA VALOR Assinatura Status Data-Hora Transaction ID
8s7fy8as7dfya 94cwum984cw 4,23 asdf2sq217s787ds Ok 2018-12-12 15:34 e972fhy27t6et3
78as9fdh98a7sf 8u480y173841 55,22 87yd8fans7ys8dfa OK 2018-12-12 15:34 9849uuwr98uy7

6° Passo Tornar a Transação Imutável: ligação por bloco por meio do hash. Hash operação ou função matemática executada sobre um conjunto de informações digitais. O hash é executado pelo minerador, gerando apenas um por bloco.

Bloco 1

DE PARA vlr Assinatura

Status Data-Hora Transaction ID HASH das Transaction HASH do bloco anterior HASH final
8s7fy8as7dfy 94cwum984c 4,23 asdf2sq217s7 Ok 2018-12-12 15:34 e972fhy27t6 bg4h2h348wh4ls8 84khu3yg4is4bskd 774fsj3hs73
78as9fdh98a 8u480y17384 55,22 87yd8fans7y OK 2018-12-12 15:34 9849uuwr98

Bloco 2: simulando a utilização do hash anterior no proximo bloco.

DE PARA VALOR Assinatura Status Data-Hora Transaction ID HASH das Transaction HASH do bloco anterior HASH final
782jdsk s8fas9asdf 322,22 9sdf8y77ss ok 2018-12-13 10:11 uhfd8sh3hs8oss7
ou7hshu3hius0092n2 774fsj3hs73 od88fgh78h32c
s8fas9asdf 782jdsk 362,22 9sdf8y77ss ok 2018-12-13 10:11

BlockChain Pública ou Privada??

A maior diferença é a permissão em participar na rede (executar o protocolo de consenso e manter o livro razão compartilhada) como um minerador ou validador. Mas isso é uma escolha muito particular para a situação em que se deseja aplicar.

PÚBLICA: qualquer um pode participar da rede e visualizar as transações que ocorrem. Os mineradores (quem valida os blocos) podem deixar de ser um nó e depois voltar no momento que deixaram. Todos os nós possuem o mesmo poder de transmissão, sem privilégios. Nesta rede é necessário pagar taxas para incentivar que venham novos mineradores para resolver as transações. Um exemplo é a rede Ethereum.

PRIVADA: Geralmente é usada em meio corporativo, porque desta forma nem todos terão acesso a essa rede. A rede poderá ser compartilhada entre varias empresas, com cada uma com os seus nós. Mas as redes privadas requerem permissões para ler as informações na sua cadeia. Limitar as partes que podem fazer transações, definir quem pode estar presente na rede e escrever novos blocos. Os participantes existentes podem decidir quais serão os futuros participantes, emitindo licenças. Só quem participa da transação conseguirá ver a transação realizada. Exemplo de rede privada é a hyperledger, código não aberto, a confirmação da transação é mais rápido.