How Quantum Computers Break Encryption | Shor’s Algorithm Explained

Anúncios

Explicando o Blockchain com analogia

Estou replicando o post de Israel Finardi.
Fonte:
https://medium.com/@israelfinardi/explicando-o-blockchain-de-forma-simplificada-95db056b6bd2

Leo, Júlio, Maria e Elsa são quatro estudantes que moram na mesma república em Florianópolis. Como em quase toda república espalhada pelo Brasil, é uma guerra na hora de saber quem vai lavar os pratos sujos de Miojo. Os estudantes tentaram implantar um sistema de revezamento, mas foi um fracasso fenomenal: Júlio é o maior malandro, Leo distraído, Maria coincidentemente nunca está em casa na sua vez de lavar os pratos. Elsa é maior cri-cri e toda vez que tem visita pra jantar na vez dela lavar a louça ela argumenta que ficou em desvantagem, que trabalhou mais que os outros e quer descontar o trabalho extra na outra semana. No fim ninguém entra em acordo e é a senhoria que tem que decidir com mão de ferro quem vai lavar os pratos.

Pra resolver a este problema a senhoria teve uma ideia simples, porém genial: ela inventou de dar fichinhas coloridas a cada um dos estudantes (cada estudante com sua cor) e construiu um longo tubo transparente e indestrutível que ela chumbou ao chão da sala (tá bom, a ideia não era tão simples assim, mas vai seguindo o raciocínio).

Quando um estudante termina de lavar os pratos ele deposita uma fichinha no tubo pra ficar registrado que ele cumpriu com sua parte no revezamento. Pra evitar trapaças só é possível colocar uma fichinha no tubo se três dos quatro estudantes estiverem presentes, pois na tampa do tubo tem quatro cadeados onde cada estudante tem a chave para um deles.

Cada fichinha só pode ser colocada no tubo com o consentimento de pelo menos mais dois estudantes, que só permitem que isso aconteça depois de checarem que a pessoa realmente lavou os pratos e deixou a cozinha limpa. Como o tubo é inviolável e indestrutível, cada fichinha vale como registro eterno de que aquela louça foi lavada naquele dia. E basta uma olhadinha no tubo pra saber quem é o próximo a ter que lavar os pratos. É o tubo da verdade!

Infelizmente, o sistema só funciona se todos forem honestos. Se dois dos estudantes resolverem agir de má fé e se recusarem a abrir seus cadeados pro cara que acabou de lavar os pratos, o sistema deixa de funcionar. Agora, esse risco seria diminuído se morassem nessa república 1000 estudantes em vez de 4, pois as chances de que 50% estivessem agindo de má fé cairiam consideravelmente.

Mas claro, um tubo com 1000 cadeados na sala seria impraticável. Onde a galera vai dormir no carnaval? E se a gente pudesse usar a tecnologia pra utilizar este mesmo princípio no mundo virtual?

Bom, essa tecnologia existe e se chama blockchain. O blockchain nada mais é que um grande arquivão, consultável e transparente como nosso tubo, onde a gente pode “empilhar” registros da mesma maneira que os estudantes de Floripa empilhavam fichinhas. A estes registros nós damos o nome deblocos. E à essa cadeia de blocos damos o nome de…. blockchain! Tchãrã!

Assim como acontecia com as fichinhas no tubo, uma vez um registro é adicionado ao blockchain ele não pode ser retirado nunca mais, passa a ser verdade eterna e absoluta! (claro que no Brasil eventualmente vai aparecer algum juiz querendo apagar registro de blockchain por ordem judicial, quem viver verá!)

Naturalmente isso aqui é uma simplificação e a realidade tecnológica do blockchain é muito mais complexa, envolve criptografia, resolução de problemas matemáticos complicados, redundância da cadeia, etc. Mas conceitualmente o funcionamento do blockchain é semelhante ao do nosso tubão, que, trabalhando na base do consenso permite aos estudantes eliminar a necessidade de se confiar às cegas uns nos outros ou de depender de uma autoridade central. Pense por exemplo na principal aplicação do blockchain hoje em dia, que é viabilizar a existência de criptomoedas como o Bitcoin. Nessas moedas, cada operação fica registrada no blockchain, eliminando assim a necessidade de uma instituição financeira central validando cada transação.

Bitcoins e moedas virtuais não são as únicas aplicações do blockchain. Sua natureza transparente e descentralizada, somadas à sua capacidade de prover informação irrefutável e irreversível permitem diversas aplicações como por exemplo gerenciamento de propriedade (pense se a escritura de sua casa ficasse registrada em um blockchain — seria o fim dos cartórios!), confirmação de identidade/documentos, validação de votos, enfim, qualquer lugar onde você precisa de um registro confiável de informações.

Blockchain, o maior legado do Bitcoin.

O sistema bancário atual não foi desenhado para o mundo digital. Embora os canais tenham sido em parte digitalizados, a forma como os registros das transações foram modelados é voltada para o mundo analógico. Os dados precisam estar super protegidos, em ambientes próprios e centralizados, que exigem altos investimentos e uma cara manutenção, além de estarem susceptíveis a ladrões e hackers.

E o Bitcoin tem se mostrado a solução para isso.

O Bitcoi né uma criptomoeda e sistema de pagamento online baseado em protocolo de código aberto que é independente de qualquer autoridade central. Um bitcoin pode ser transferido por um computador ou smartphone sem recurso a uma instituição financeira intermediária. O conceito foi introduzido em 2008 num white paper publicado por um grupo ou alguém com o pseudônimo de Satoshi Nakamoto que o criou e o chamou de sistema eletrônico de pagamento peer to peer (p2p).

Uma Block chain ou blockchain é um livro-razão público de todas astransações bitcoin (ou de criptomoedas) até então realizadas. Está constantemente crescendo à medida que novos blocos completos são adicionados a ela por um novo conjunto de registros. Os blocos são adicionados à blockchain de modo linear e cronológico. Cada nó — qualquer computador que conectado à rede bitcoin tem a tarefa de validar e repassartransações — obtém uma cópia da blockchain após o ingresso na rede bitcoin. A blockchain possui informação completa sobre endereços e saldos diretamente do bloco gênese (primeiro bloco criado) até o bloco mais recentemente concluído.

A blockchain é vista como a principal inovação tecnológica do bitcoin visto que é a prova de todas as transações da história da rede. Seu projeto original tem servido de inspiração para o surgimento de novas criptomoedas semelhantes ao bitcoin e de bancos de dados distribuídos e anônimos.


dApps

Claramente, a sigla dApp, parecida com App, vem do inglês Decentralized Application. Isso quer dizer que é um sistema sem intermediários e de modelo relacional. Assim, podemos perceber que se trata de um aplicativo descentralizado, e possivelmente, baseado em blockchain.

Consequentemente, vemos muitos dApp’s em construção e diversos outros em fase de aprimoramento e evolução. Afinal, estamos vivenciando um momento de descobertas e muitas experimentações. Um dApp em blockchain permite possibilidades quase que inúmeras, e isso nos faz perceber o potencial surpreendente dos sistemas descentralizados.

Obviamente, podemos verificar diversos negócios sendo criados e muitas empresas consolidadas que possuem como produto um dApp – aplicativo descentralizado.

Aplicativo em Blockchain?

Um DApp é basicamente um aplicativo em blockchain que funciona numa rede interconectada e pode recompensar usuários com tokens, ou proporcionar novas experiências digitais, ou trabalhar colaborativamente em prol do funcionamento e sustentabilidade do seu sistema descentralizado. Eles funcionam com contratos inteligentesindependentes.

As vantagens dos aplicativos descentralizados são inúmeras, e principalmente, quando se trata de aplicações financeiras. Percebe-se que a maioria dos aplicativos descentralizados são construídos, geralmente, na blockchain da Ethereum e empresas de diversos setores estão investindo em aplicações descentralizadas. Devido ao modelo open source – projetos de código aberto – da blockchain, as funções e possibilidades de um dApp podem ser imensuráveis, tudo depende da criatividade do desenvolvedor e dos seus conhecimentos sobre a tecnologia.

Fonte: https://digitalks.com.br/artigos/o-que-sao-os-dapps/

Contratos Inteligentes – Ethereum

Um contrato é uma coleção de código (suas funções) e dados (seu estado) que reside em um endereço específico no blockchain Ethereum. As contas de contrato são capazes de passar mensagens entre si, além de fazer praticamente todo o cálculo de Turing. Os contratos vivem no blockchain em um formato binário específico do Ethereum chamado Bytecode do Ethereum Virtual Machine (EVM).

Os contratos normalmente são escritos em alguma linguagem de alto nível, como Solidity, e depois compilados em bytecode para serem carregados no blockchain.

Escrevendo um contrato 

Nenhuma linguagem seria completa sem um programa Hello World. Operando dentro do ambiente Ethereum, Solidity não tem nenhuma maneira óbvia de “produzir” uma string. O mais próximo que podemos fazer é usar um evento de log para colocar uma string no blockchain:

contract HelloWorld {       
event Print(string out);
function() {
Print("Hello, World!");
}
}

Fonte: http://www.ethdocs.org/en/latest/contracts-and-transactions/contracts.html#what-is-a-contract

EthStats

EthStats.net é um painel de estatísticas ao vivo da rede Ethereum. Esse painel exibe informações importantes, como o bloco atual, a dificuldade de hash, o preço do gás e os gastos com gás. Os nós mostrados na página são apenas uma seleção de nós reais na rede. Qualquer pessoa pode adicionar seu nó ao painel EthStats.

Fonte:
http://www.ethdocs.org/en/latest/network/connecting-to-the-network.html

Mineração – Ethereum

Introdução 

A palavra mineração origina-se no contexto da analogia do ouro para as moedas criptografadas. Ouro ou metais preciosos são escassos, assim como tokens digitais, e a única maneira de aumentar o volume total é através da mineração. Isso é apropriado na medida em que no Ethereum também, o único modo de emissão após o lançamento é via mineração. Ao contrário desses exemplos, no entanto, a mineração também é a maneira de proteger a rede criando, verificando, publicando e propagando blocos no blockchain.Mineração de éter = Protegendo a rede = Verificando a computaçã

O que é mineração? 

O Ethereum, como todas as tecnologias blockchain, usa um modelo de segurança baseado em incentivos. O consenso baseia-se na escolha do bloco com a maior dificuldade total. Mineiros produzem blocos que os outros verificam quanto à validade. Entre outros critérios de boa formação, um bloco só é válido se contiver prova de trabalho (PoW) de uma dada dificuldade .

O blockchain Ethereum é em muitos aspectos semelhante ao blockchain Bitcoin, embora tenha algumas diferenças. A principal diferença entre o Ethereum e o Bitcoin em relação à arquitetura blockchain é que, diferentemente do Bitcoin, os blocos Ethereum contêm uma cópia da lista de transações e do estado mais recente (o hash raiz do merkle patricia trie codificando o estado para ser mais preciso). Além disso, dois outros valores, o número do bloco e a dificuldade, também são armazenados no bloco.

O algoritmo de prova de trabalho usado é chamado Ethash (uma versão modificada do algoritmo de Dagger-Hashimoto ) e envolve encontrar uma entrada nonce no algoritmo para que o resultado fique abaixo de um certo limite de dificuldade. O ponto nos algoritmos de PoW é que não há melhor estratégia para encontrar um nonce do que enumerar as possibilidades, enquanto a verificação de uma solução é trivial e barata. Como as saídas têm uma distribuição uniforme (como são o resultado da aplicação de uma função hash), podemos garantir que, em média, o tempo necessário para encontrar tal nonce depende do limite de dificuldade. Isso possibilita controlar o tempo de encontrar um novo bloco apenas manipulando a dificuldade.

Conforme ditado pelo protocolo, a dificuldade se ajusta dinamicamente de tal forma que, em média, um bloco é produzido pela rede inteira a cada 15 segundos, ou seja um bloco produzido a cada 15 segundos. Essa “pulsação” basicamente pontua a sincronização do estado do sistema e garante que a manutenção de uma bifurcação (para permitir gastos duplicados) ou reescrever o histórico por agentes mal-intencionados, é impossível a menos que o invasor possua mais da metade da energia de mineração de rede).

Qualquer nó que participe da rede pode ser um minerador e sua receita esperada da mineração será diretamente proporcional à sua potência de mineração (relativa) ou hashate.

Recompensas de mineração 

O minerador bem-sucedido do bloco vencedor recebe:

  • uma recompensa de bloco estático para o bloco ‘vencedor’, consistindo exatamente em 5.0 Éter
  • custo do gás gasto dentro do bloco – uma quantidade de éter que depende do preço atual do gás
  • uma recompensa extra por incluir tios como parte do bloco, na forma de um adicional de 1/32 por tio incluído

Todo o gás consumido pela execução de todas as transações no bloco submetido pelo minerador vencedor é pago pelos remetentes de cada transação. O custo do gás incorrido é creditado na conta do mineiro como parte do protocolo de consenso. Com o tempo, espera-se que estes diminuam a recompensa do bloco estático.

Os tios são blocos obsoletos, isto é, com pais que são ancestrais (no máximo 6 blocos atrás) do bloco incluído. Tios válidos são recompensados ​​a fim de neutralizar o efeito do atraso da rede na dispersão das recompensas da mineração, aumentando assim a segurança (isso é chamado de protocolo GHOST). Tios incluídos em um bloco formado pelo mineiro PoW bem sucedido recebem 7/8 da recompensa de bloco estático (= 4.375 éter). Um máximo de 2 tios são permitidos por bloco.

O sucesso da mineração depende da dificuldade do bloco definido. A dificuldade de bloco ajusta dinamicamente cada bloco para regular a potência de hashing da rede para produzir um tempo de bloqueio de 12 segundos. Suas chances de encontrar um bloqueio, portanto, seguem do seu hashate em relação à dificuldade.

Fonte:
http://www.ethdocs.org/en/latest/mining.html#mining

O que é UTXO (Unspent Transaction Output)?

Para que aconteça as transações como no Bitcoin, por exemplo, é preciso que ocorra Input e Output. Os inputs em uma transação nada mais é que unspent outputs (saídas não gastas) . Os input sempre farão uma referência para um output. A criptomoeda em questão está sempre registrada em UTXO nas transações da rede blockchain.

Vamos exemplificar, quando Michel pretende enviar uma quantia de criptomoeda para Daniel, a wallet pertencente a ele busca na rede os UTXO que ainda não foram assinalados como utilizados.

Os UTXOs pode ser qualquer valor, mas a única coisa que nao pode acontecer é dividilo.

Segue o Exemplo Abaixo:

O valor referente ao Fee (transaction fee) é pago para o minerador validar a transação. Todos os UTXO que foram enviados para a outra wallet foram assinalados como utilizados e apenas poderá ser utilizado a UTXO 0,999 para Michel.

ERC-20 X ERC-721 (tipos de Tokens)

Fungible tokens ERC-20 Non-fungible tokens ERC-721
Pode substituir qualquer unidade única do token por outro sem diferença no seu valor ou função. Cada unidade representa um item único e não é intercambiável.
Se eu te dou um 1 btc e depois tu me devolve 1 btc tokens diferentes mas o mesmo valor. Exemplo cada quadro é pintado por pintores diferentes e tem tokens diferentes. Certidão de nascimento outro exemplo.
Uniforme, mesmo que tenha variação, mas
1 btc meu vale 1btc teu.
Único token. Minha certidão é diferente da sua.
Divisível Não divisível
Padrão ERC-20 Padrão ERC-721

Bitcoin X Ethereum

Fonte:
https://www.quora.com/How-is-the-Ethereum-blockchain-different-from-the-Bitcoin-blockchain

O Bitcoin (tecnologia) em si é uma moeda digital (bitcoin ou BTC), a Ethereum (tecnologia) representa um ativo ou contrato (tokens), mas também tem sua moeda (ether ou ETH).

O que são Tokens?

Você pode pensar nos ‘tokens’ como se fossem fichas de um cassino, que têm um ativo associado a eles. Estes tokens de uma criptomoeda têm sua propriedade registrada em uma espécie de livro-razão descentralizado e protegido por criptografia, que na linguagem das criptomoedas, chamamos de “blockchain”.

Você é o dono destes ‘tokens’ porque você possui a chave que permite que você crie novos registros no livro-razão (blockchain), que transferirão a propriedade destes tokens para outra pessoa. Mas você nunca armazena os ‘tokens’ no seu computador, na verdade, você armazenas as chaves que permitem que você transfira quantidades deles no livro-razão descentralizado (blockchain).

Outro jeito de pensar nos ‘tokens’ é em termos de quantidades específicas de recursos digitais ou computacionais que você controla, e que você pode transferir o controle para alguém.

Os tokens mais comuns são de dois tipos:

  1. Tokens intrínsecos – são recursos computacionais criados para uma determinada finalidade, por exemplo, para o registro de transações.
  2. Tokens lastreados – Emitidos por alguém e atrelados a um ativo subjacente.

As regras para criação de novos ‘tokens’ são as mais variadas. No caso do Bitcoin, o número máximo de bitcoins que existirá já está definido, e eles vão sendo criados seguindo regras de mineração que implicam uma programação de tempo específica. No caso do Riple (XRP), todos os tokens foram pré-minerados, distribuídos entre os participantes iniciais e são ‘destruídos’ em frações à medida que as transações ocorrem (ou seja, a quantidade total diminui com o tempo). Já o Ethereum (ETH) foi parcialmente pré-minerado e há emissões de valor pré-definido todos os anos. Todas as transações que ocorrem na rede ETH, bem como os smart-contracts que são lançados, usam Ethereum.

Em tese, os ‘tokens’ podem ser atrelados ao direito de uso dos recursos computacionais de uma rede, aos direitos de uso de um aplicativo, às fichas de aposta em um cassino digital, à dolares, à fração de um título público, à fração de propriedade de um imóvel, enfim, qualquer coisa.

Fonte:
https://steemit.com/bitcoin/@cryptofinancas/o-que-sao-tokens-e-para-que-servem-o-que-e-uma-ico-como-as-altcoins-sao-lancadas-no-mercado-o-que-sao-criptomoedas-e-para-que

ASSINANDO UMA TRANSAÇÃO

  • Nada mais é que uma autenticação na transação.
  • Uma assinatura estabelece a prova de propriedade para cada transação.
  • Uma Transação só inicia quando a wallet (é assinado com a private key) assina a transação.
  • Ou seja, usado a blockchain Identity para informar a rede que realmente somos os responsáveis por aquela transação
  • Depois de assinado vai para memory pool.

Neste link abaixo tem o cilco de vida de uma transação (acho importante ler):
https://www.astarlabs.com/o-ciclo-de-vida-de-uma-transacao-bitcoin/
Não compartilhei aqui porque o post ficaria muito grande.