Como funciona o blockchain do Ethereum

Como funciona o blockchain do Ethereum

A utilidade do blockchain é inegável, muitas empresas, instituições e até órgãos internacionais já reconheceram isso. Entretanto são poucas as pessoas que realmente sabem como o blockchain do Ethereum funciona.

Se você não sabe o que é o Ethereum, leia a matéria abaixo:

https://foxbit.com.br/o-que-e-ethereum/

Nesse post vamos explicar de uma forma simples, como essa tecnologia opera. Vamos aprender e começar a revolução?

Ethereum blockchain 101

As interações entre contas em um blockchain são chamadas de “transações”. Elas podem ser transações monetárias, como o envio de ether de uma pessoa para outra.

Elas também podem ser transmissões de dados, como uma mensagem, um contrato etc. Um pacote de transações é chamado de “bloco”.

Cada conta no bloco tem uma assinatura exclusiva, que permite a todos saber qual conta iniciou a transação. Em um blockchain público, qualquer pessoa pode ler ou escrever dados. A leitura de dados é gratuita, mas escrever uma transação no blockchain não é. Esse custo, conhecido como “gás”, cujo preço é derivado a partir do ether, ajuda a desencorajar o spam e é uma mecanismo de proteção da rede.

Qualquer nó na rede pode participar da segurança da rede através de um processo chamado “mineração”. Os nós que optaram por serem mineradores competem para resolver problemas de
matemática que protegem o conteúdo de um bloco.

Uma vez que a mineração requer poder de computação (além de muita energia elétrica), os mineradores podem ser compensados pelo seu serviço. O vencedor da competição recebe alguma criptomoeda como recompensa.

No caso da rede do Ethereum, o minerador recebe ether. Isso incentiva os nós a trabalharem para proteger a rede, impedindo que muito poder esteja nas mãos de qualquer minerador.

Gostou do conteúdo? Não esquece de seguir as redes sociais da Foxbit – Twitter, Linkedin, Instagram, Facebook.

Nós iremos semanalmente, toda quinta-feira, falar um pouco mais sobre o Ethereum, ICOs e tudo que é relacionado a ele.

Apresentamos o Foxbit VIP

Apresentamos o Foxbit VIP

A necessidade já acontecia há algum tempo, e resolvemos apenas oficializar o atendimento que gostamos de realizar para o nosso público: está no ar o Foxbit VIP, que oferece um atendimento exclusivo, individualizado, e focado em operações de grandes volumes na nossa plataforma.

O que isso significa?

Basicamente significa que quem transaciona grandes volumes mensalmente com a Foxbit poderá se utilizar de uma série de benefícios.

A partir de R$250.000,00 negociados mensalmente, nossos clientes podem contar com a consultoria da nossa equipe de especialistas, que é dedicada a oferecer mais agilidade e precisão no atendimento.

O Foxbit VIP também significa taxas personalizadas e mais atrativas para os nossos usuários mais frequentes, além de um canal de comunicação exclusivo. Consequentemente, você tem mais chance de maximizar o seu desempenho nas suas transações.

Como são essas taxas?

Essa é uma questão importante! O cliente do Foxbit VIP tem descontos nas taxas padrão da nossa plataforma, que são calculados com base no volume mensal negociado e sacado na Foxbit Exchange.

Com os gráficos comparativos, fica mais fácil de entender. Veja as vantagens para o cliente do Foxbit VIP.

Taxas para saques em reais Volume sacado e taxas Foxbit VIP Taxas para ordens de compra e venda Volume negociado e taxas Foxbit VIP

Estas condições são de uso exclusivo dos clientes VIPs da Foxbit e as informações aqui apresentadas não serão aplicadas a outros clientes.

Diante da necessidade de atender esse mercado e de buscarmos oferecer um produto ainda melhor para o nosso cliente, criamos a equipe de especialistas. Se quiser saber mais, nos procure!

Pode clicar aqui neste link e preencher o formulário. Nossa equipe entrará em contato com você em até 48 horas úteis.

Para acessar a página do Foxbit VIP, clique aqui.

Pesquisa: Quem é o investidor de Bitcoin?

Pesquisa: Quem é o investidor de Bitcoin?

A pesquisa, realizada pelo Cointimes em parceria com a Foxbit entre agosto e setembro, trouxe dados para que fosse possível formar o perfil do investidor brasileiro. Trazemos o pacotão completo pra que você possa conferir o resultado! Com base no comparativo das nossas 1175 respostas, chegamos a alguns padrões que mostram as diferenças (e semelhanças) no perfil do investidor de Bitcoin (e outras criptomoedas) no Brasil.

Quem são essas pessoas? O que comem? Onde vivem?

Brasileiros quase não investem

Comecemos do começo: a motivação. A ANBIMA fez uma pesquisa em 2018 que mostrou o “Raio X do investidor brasileiro”, com dados bem interessantes e até surpreendentes sobre esse mercado. Apenas 42% dos brasileiros tem alguma aplicação financeira, ou seja: o restante da população não investe nem em poupança.

Entre os que se preocupam em guardar para o futuro, 32% considera poupança como investimento, que em 2017 teve o baixo rendimento de 1,22% ao ano.

Quantos brasileiros investem

No relatório da ANBIMA, fica claro como a falta de educação financeira é uma questão preocupante. O estudo mostra que 40% dos brasileiros não poupam nenhuma quantia. Dos que poupam, apenas 10% separam uma quantia por mês para a poupança. Além disso, 47% dos brasileiros contam com o INSS para a sua aposentadoria.

Quem investe no Brasil? O Resultado

Olhando no recorte dos 42% que já investem, o Cointimes e a Foxbit buscaram entender o comportamento dos investidores do Brasil.

Os investidores de Bitcoin são os mesmo do mercado tradicional? Mais ou menos, mais pra menos!

No resumão: o investidor de Bitcoin é mais antenado, digital, quer resolver suas questões e problemas na internet, optando por chat ou e-mail para se comunicar com as empresas, com 68% utilizando bancos digitais, e 38% ativos em compras no e-commerce.

Eles também optam por variar mais seus investimentos, indo para os tradicionais como Tesouro Direto, CDB, LCI, LCA, Fundos… E 1/3 aposta em ações, outro mercado de risco maior.

Entendemos também que o mercado ainda tem a sua maior parte composta por homens, de forma muito mais acintosa do que o mercado tradicional. A proporção de 74% homens e 26% mulheres de quem não investe em criptomoedas pula para 90%/10% no mundo dos bitcoins. Na maioria, são casados, bem instruídos (85% dos investidores de Bitcoin chegaram ao Ensino Superior) e buscam a independência financeira como finalidade para seus investimentos.

Quem investe no Brasil

Gostou do conteúdo? Quer receber mais análises como essa? Então se inscreva no canal do Cointimes no Youtube e siga o FacebookTwitter e Instagram.

A história do dinheiro

A história do dinheiro

Entendendo a história do dinheiro

O dinheiro é injustamente culpado por ser o mal da sociedade. No entanto, tendo a discordar, porque o dinheiro foi uma das maiores criações da história da humanidade. Ele permitiu a humanidade sair de uma sociedade primitiva de escambo, e chegar uma sociedade extremamente complexa e produtiva. A história do dinheiro é fascinante.

Atualmente é possível digitalizar seu dinheiro e enviar para qualquer lugar do mundo. Entretanto, nem sempre foi assim, o dinheiro assumiu diversas formas até chegar ao formato que somos habituados hoje. No post de hoje, vamos entender um pouco desta complexa evolução.

Escambo

Escambo

Ao longo da história da humanidade, as pessoas passaram a cooperar em uma divisão de trabalho para produzir bens. Com o passar do tempo, o processo produtivo passou a se tornar cada vez mais complexo. As pessoas se especializam em tarefas cada vez mais específicas, até que começam a surgir os diferentes ofícios e profissões.

Como consequência disso, passaram a surgir bens com propósitos e ordem de complexidade diferentes. Diante deste fato, a troca direta entre duas pessoas (escambo) passou a se tornar cada vez mais difícil, a ponto de se tornar impraticável.

Para facilitar, podemos recorrer a um exemplo simples: suponha que em uma economia existam dois bens (sapatos e agasalhos). Duas pessoas podem estimar uma taxa de câmbio e trocar diretamente seus 2 pares sapatos por 1 agasalho. Esta é uma troca simples e direta, pois envolve dois bens e não houve nenhum meio de troca a não ser os próprios bens.

Agora imagine que essa economia passe a se tornar mais complexa e que agora a mesma tenha 3 bens (sapatos, agasalhos e carne). Suponha que duas pessoas desejam realizar uma transação simples: uma possui sapatos e deseja agasalho, a outra parte possui agasalho mas deseja carne, desta forma, a troca direta não acontecerá.

Será necessário encontrar alguém que deseje trocar carnes por sapatos, depois disso será necessário trocar carne por agasalho. Diante disso, adicione mais bens e mais pessoas dentro do contexto econômico, as trocas diretas ficariam impossíveis de ocorrer.

Surge o dinheiro

Dentro desse contexto surge o meio de troca, que passa a ser utilizado como dinheiro. Alguns bens são mais negociáveis dentro de uma economia do que outros bens. Por exemplo, o trigo é mais negociável do que um instrumento de astronomia, assim como o couro é mais negociado do que um arado.

saca de trigo

Estes bens são escolhidos gradativamente pela sociedade, através do mercado. O bem escolhido como dinheiro deve ser aquele que mais facilita a troca indireta entre duas pessoas. Inicialmente foi escolhido o trigo, no entanto, algumas sociedades chegaram a usar carne, couro e sal como meio de troca.

A sociedade foi selecionando os melhores bens para servir como meio de troca, até chegar nos metais preciosos como Ouro, Prata e Bronze.

As características que todo bom meio de troca deve ter é: facilidade de trocar, fácil de transportar, escasso, difícil de falsificar, ter uma boa durabilidade e ser homogêneo. Os metais preciosos preenchiam todas estas características quase à perfeição.

Então por volta do século VII a.C, começam a ser cunhadas, de forma privada, as primeiras moedas metálicas. Logo depois, os governos passaram a cunhar suas próprias moedas, obrigando sua utilização pelos seus cidadãos. O dinheiro, portanto, passava a assumir a forma como conhecemos hoje, de moedas metálicas.

moeda romana

Moeda metálica do Império Romano.

Um milagre econômico

Com o surgimento das moedas metálicas, as trocas indiretas ficam mais fáceis de ocorrer, permitindo que a economia se desenvolva. Com uma moeda boa, a divisão de trabalho se torna mais evidente. As pessoas se especializam cada vez mais nas tarefas e a produtividade do trabalho aumenta em um nível nunca antes visto.

Antigamente, as pessoas deveriam produzir o que desejavam consumir, o que demandava bastante tempo. Além disso, a produtividade era muito baixa, ou seja, poucos bens eram produzidos na sociedade. O dinheiro, portanto, foi um verdadeiro milagre, porque possibilitou uma maior prosperidade econômica.

As pessoas podem se especializam em uma profissão, aumentando a produtividade de seu trabalho. Agora elas podem vender seus produtos no mercado, adquirir suas moedas metálicas e trocá-las por uma centena de outros produtos disponíveis para a compra.

Limitação das moedas metálicas

As moedas de metais preciosos são muito valiosas, e por conta disso, surgiu a preocupação com a segurança. Negociar grandes quantidades de ouro passava a ser perigoso e cada vez mais impraticável. Um mercador com uma alta quantia de moedas de ouro se tornaria um alvo fácil para ladrões, por exemplo.

Além disso, carregar grandes quantias de ouro se tornava um fardo pesado e custoso, o que dificulta a mobilidade. Isso impossibilitava o envio de uma grande quantia de ouro para qualquer lugar do mundo, inflexibilizando o fluxo de dinheiro internacional.

Diante destas deficiências das moedas metálicas, começaram a surgir as casas de custódia. Elas basicamente eram um lugar onde se depositava o ouro em troca de um certificado que era uma espécie de “vale ouro”. Este certificado ficou conhecido como moeda-papel, que agora poderia ser utilizado em qualquer transação.

Nota promissória

Reservas fracionárias

As casas de custódia começaram a perceber que nem todas as pessoas sacavam todo o seu ouro ao mesmo tempo. Diante deste fato, as instituições começaram a emitir quantias de certificados além do que tinham em estocado em ouro. Os novos certificados sem lastro eram emprestados para outras pessoas, que pagariam juros às casas de custódia. Este mecanismo é conhecido como reserva fracionária, que é praticado até hoje.

Na reserva fracionária atual, os bancos emprestam ou aplicam no mercado financeiro uma quantia de dinheiro maior do que está depositada neles. Desta forma, se todas as pessoas corressem para sacar o seu dinheiro ao mesmo tempo, a maioria dos bancos iria declarar falência no mesmo dia, porque nem todas as pessoas conseguiriam resgatar seu dinheiro.

As casas de custódia evoluíram para o atual sistema bancário, que agora passava a custodiar ouro. Os bancos grandes passaram a incorporar os bancos menores por meio da competição bancária. Além disso, os bancos menores viam nos grandes bancos uma forma de garantir maior liquidez para o sistema.

A partir deste ponto, começam a surgir os primeiros bancos centrais, sendo o Banco da Inglaterra o primeiro deles. Em 1919, nos EUA surge o FED (Federal Reserve) por meio de uma sociedade anônima. Toda e qualquer emissão de moeda privada passa a se tornar ilegal e impraticável.

O lastro é perdido

Os bancos centrais agora detém o monopólio da emissão de moeda em seus respectivos países. Por meio de decretos governamentais de confisco, ou de serviços que ofereciam a custódia direta, os bancos centrais ficaram com a custódia de grande parte do ouro da população.

As moedas ainda eram lastreadas em ouro e prata, de forma que um cidadão poderia solicitar o resgate a qualquer momento. Ou seja, um dólar ainda valeria o equivalente a x gramas de ouro ou prata no momento do resgate.

dólar resgatável em ouro

Imagem de um dólar resgatável em ouro

Através da maior prática de reserva fracionária, a conexão da moeda com os metais preciosos se torna cada vez mais efêmera. A ligação é rompida definitvamente com fim do Acordo de Bretton Woods, nos anos 70. Foi uma saída encontrada pelo presidente dos EUA, Richard Nixon, para evitar a fuga de ouro para a União Soviética.

A moeda fiduciária

A ligação com o Ouro se perde completamente, surgindo assim as “moedas fiduciárias”. As moedas fiduciárias não possuem nenhum tipo de lastro. Isto é, seu valor está baseado na confiança da população e investidores em relação ao governo emissor.

Dólar não resgatável

Quando as pessoas perdem a confiança nas instituições do governo, a moeda do país perde grande parte do seu valor. Para observar estes acontecimentos, não é necessário ir muito longe. A moeda Venezuelana, o Bolívar, já vale menos do que a moeda do jogo eletrônico World of Warcraft. No Zimbábue já existem notas de 100 trilhões de Dólares Zimbábueanos para comprar uma dúzia de ovos.

A retirada do lastro serviu como incentivo para os bancos centrais e privados criarem dinheiro indefinidamente. O lastro em ouro e prata serviam como disciplinadores e limitadores para o aumento da oferta monetária. Diante disso, os governos passaram a imprimir mais dinheiro do que nunca. Abaixo segue o exemplo da oferta monetária Venezuelana.

Oferta monetária venezuelana

Os governos definem através da lei o que deve ser utilizado como meio de troca dentro da economia. Por lei as pessoas são obrigadas a expressarem seus contratos e contabilidades em termos da moeda corrente definida pelo governo.

Como dito anteriormente, a moeda atual possui curso forçado pelo poder legislativo do governo. No Brasil, por exemplo, é proibido aceitar em estabelecimentos outras moedas que não Real. Isso faz com que as pessoas nunca deixem de utilizar a moeda por pior que ela seja.

Modernização do sistema financeiro

O sistema financeiro se modernizou com o surgimento da internet. Como consequência, o dinheiro passou a ser representado também por dígitos na tela de um computador. Os bancos dispõem de sistemas de internet banking, que permitem as pessoas realizar pagamentos e transações globais sem precisarem sair de casa.

Além disso, o mercado de crédito se torna extremamente mais acessível com o surgimento dos cartões de crédito. As pessoas podem solicitar empréstimos e receber o dinheiro ainda no mesmo dia. Com os cartões, as pessoas podem realizar compras sem necessariamente possuir dinheiro naquele momento.

Cartão de crédito

No entanto, a expansão do mercado de crédito aumentou o nível de endividamento das pessoas, empresas e governos. As consequências da expansão de crédito sem limites foram encaradas na crise financeira de 2008, onde os Estados Unidos passaram por uma das maiores recessões de sua história.

Bitcoin

No auge da crise financeira de 2008, Satoshi Nakamoto, em seu White Paper, propõe um sistema de dinhero digital sem a necessidade de confiança em uma instituição financeira: O Bitcoin. Naquele momento, ele reunia todas as características que o tornava a antítese do sistema financeiro vigente.

Bitcoin

Afinal, o Bitcoin é um dinheiro descentralizado, sem intermediários financeiros, extremamente escasso, que oferece maior privacidade nas transações e não é controlado por uma pessoa ou entidade central. Além disso, ele é um ativo inconfiscável, que o torna completamente descolado do mercado financeiro e de decisões políticas como confisco de ouro e poupança.

O Bitcoin possui lastro

O Bitcoin, tal como o ouro, não possui lastro em algum bem físico. Seu valor não é garantido por uma entidade central ou governo. Seu lastro é justamente suas características: um bem descentralizado, fácil de trocar, genuinamente escasso, inconfiscável, seguro e infalsificável.

Além disso, ele concerta um problema do ouro, que fez com tenha sido necessária a sua custódia: o problema de mobilidade. Portanto, o Bitcoin não precisa de uma casa de custódia ou um banco. O detentor do Bitcoin pode ser o seu próprio banco, ou seja, dono da sua própria riqueza.

Lá e de volta outra vez?

Os estudos sobre dinheiro ficaram em um segundo plano por muitos anos. Acreditava-se que sabíamos tudo o que era necessário sobre suas teorias. No entanto, nós economistas tendemos a possuir uma certa arrogância involuntária. Volta e meia surgem novos fatos que desafiam nossos conhecimentos, sendo o surgimento das criptomoedas um deles.

Particularmente, somos privilegiados testemunhar o surgimento deste novo ecossistema. Temos a chance de reviver e colocar à prova todas aquelas teorias econômicas formuladas séculos atrás. O monopólio estatal sobre a moeda fez com que os economistas acharem que qualquer debate já estava fechado e definido.

Definitivamente esquecemos ou sequer pensamos em uma economia com moedas concorrentes tendo o seu valor definido no livre mercado, como um bem qualquer. Não pensamos sequer na possibilidade de possuir um dinheiro o qual podemos escolher o seu destino. Isto é fantástico de se presenciar.

As criptomoedas são um desafio para a economia. É papel dos economistas estudá-las com afinco, porque elas representam uma ruptura com um sistema estabelecido há séculos. Diferente de revoluções, as criptomoedas seguem um caminho natural, lento e coeso de aprendizado. Quando menos percebermos, estaremos diante de um novo sistema financeiro.

Whitepaper do bitcoin em português

Whitepaper do bitcoin em português

O whitepaper do Bitcoin, conhecido pelo nome “Bitcoin: A Peer-to-peer Electronic Cash System” foi escrito pelo pseudônimo Satoshi Nakamoto, que criou a tecnologia. Se você quiser conhecer de uma maneira mais técnica e aprofundada, nós disponibilizamos abaixo o artigo escrito por Satoshi Nakamoto explicando com maiores detalhes a sua criação. Se você ainda é novato no assunto, recomendamos o nosso post O que é Bitcoin? antes de ler o whitepaper do Bitcoin.

Whitepaper do Bitcoin por Satoshi Nakamoto

Abstract. Uma versão de dinheiro eletrônico puramente ponto-a-ponto permitiria que pagamentos online fossem enviados diretamente de uma pessoa para outra sem a necessidade de passar por uma instituição financeira, como bancos, por exemplo. Assinaturas digitais oferecem uma parte da solução, mas os principais benefícios são perdidos se um intermediário confiável ainda é necessário para prevenir o gasto duplo.

Nós propomos uma solução ao problema do gasto duplo utilizando uma rede ponto-a-ponto. A rede registra a data e hora das transações através de um sistema de carimbo de tempo, transformando-as em uma cadeia contínua de prova de trabalho baseada em um hash, formando um registro que não pode ser modificado sem que toda a prova de trabalho seja refeita.

A cadeia mais longa não serve apenas como uma prova da sequência dos eventos testemunhados, ela serve também como uma prova de que ela veio do grupo com maior poder computacional. Enquanto a maioria do poder computacional é controlada por nós de rede que não estão cooperando para atacar a rede, eles vão gerar a maior cadeia e ultrapassar os atacantes.

A própria rede requer uma mínima estrutura. As mensagens são transmitidas com o melhor esforço base e, os nós de rede podem sair e se juntar a rede quando quiserem, aceitando a cadeia com a prova de trabalho mais longa como uma prova do que aconteceu enquanto eles estiveram fora da rede.

Introdução

O comércio na internet passou a se tornar quase que exclusivamente dependente de instituições financeiras se propondo como terceiros confiáveis para processar pagamentos eletrônicos. Enquanto o sistema funciona bem o suficiente para a maioria das transações, ele ainda sofre de fraquezas inerentes em modelos baseados na confiança em terceiros ou intermediários. Transações completamente irreversíveis não são realmente possíveis, porque as instituições financeiras não podem evitar mediação de disputas judiciais. O custo das mediações aumenta os custos de transação, limitando o tamanho mínimo que uma transação deve possuir e acabando com a possibilidade de pequenas transações casuais, além disso, há um custo mais amplo na perda da possibilidade de fazer pagamentos irreversíveis para serviços irreversíveis.

Com a possibilidade de pagamentos reversíveis, a necessidade de confiança aumenta. Os comerciantes precisam estar atentos aos seus clientes, incomodando eles para darem mais informações do que eles precisam oferecer normalmente. Uma certa porcentagem de fraude é aceita como inevitável. Essas incertezas de custos e pagamentos podem ser evitados com uma pessoa usando uma moeda física, entretanto, não existe nenhum mecanismo para fazer pagamentos através de um canal de comunicações sem um terceiro.

O que se torna necessário é um sistema de pagamentos eletrônicos baseado em provas criptográficas ao invés de confiança, permitindo que duas partes dispostas a negociar diretamente entre si possam o fazer sem a necessidade de um terceiro confiável. Transações que são computacionalmente impraticáveis de serem revertidas protegem os vendedores de caírem em alguma fraude. Além disso, mecanismos de rotina de depósitos poderiam ser facilmente implementados para proteger os compradores.

Neste artigo nós propomos uma solução para o problema do gasto duplo usando um servidor ponta-a-ponta de carimbos de tempo para gerar uma prova computacional da ordem cronológica das transações. O sistema é seguro enquanto nós de rede honestos controlam coletivamente mais poder computacional do que qualquer outro grupo de nós de rede atacantes cooperando entre si.

Transações

Nós definimos uma moeda eletrônica como uma cadeia de assinaturas digitais. Cada proprietário transfere a moeda para a próxima pessoa, assinando digitalmente um hash da transação anterior e uma chave pública do próximo dono e adicionando a estes, a assinatura de sua chave privada que libera as moedas para a pessoa que vai recebê-las. A pessoa que recebeu a transação pode verificar as assinaturas para checar a cadeia de propriedade.

Transações

O problema, claro, é que quem recebe a moeda não pode verificar se um dos donos não gastou a mesma moeda duas vezes. Uma solução comum é introduzir uma autoridade central, ou uma “Casa da Moeda” que verifica se houve gasto duplo em cada transação.

Depois de cada transação, a moeda deve retornar à casa da moeda, que vai emitir novas moedas, e somente moedas emitidas diretamente pela Casa da Moeda são confiáveis de não terem sido gastas duas vezes. O problema dessa solução é que o destino de todo sistema monetário dependeria de uma instituição que estaria por trás da cunhagem das moedas, com cada transação tendo que passar por ela, como se fosse um banco.

Nós precisamos de um modo no qual quem recebeu a moeda saiba que os donos anteriores da moeda não assinou nenhuma outra transação prévia. Para nossos propósitos, a transação mais antiga é a que conta, então não nos importamos com tentativas mais recentes de gastos-duplo. O único modo de confirmar a ausência de uma transação é estar atento a todas as transações que ocorrem.

No modelo baseado em “Casas da moeda”, elas estavam atentas de todas as transações e decidiram qual delas foi feita primeiro. Para que isso seja feito sem um intermediário confiável, todas as transações precisam ser anunciadas publicamente [1], e nós precisamos de um sistema para que os participantes concordem em uma única ordem cronológica na qual todos eles receberam. Quem recebe as moedas precisa de uma prova para comprovar que naquele tempo, todos os nós de rede concordaram que aquela transação foi recebida primeiro.

Servidor de Carimbos de tempo

A solução que propomos começa com um servidor de carimbo de tempo. Um servidor de carimbos de tempo funciona pegando a função hash de um bloco de itens que serão carimbados com a data e a hora e publicando largamente a função hash, como se fosse um jornal ou um post na Usenet [2-5]. O Carimbo de tempo inclui o carimbo de tempo anterior em sua função hash, formando uma espécie de cadeia ou corrente, com cada carimbo de tempo adicional reforçando os anteriores.

Hashs

Prova de trabalho

Para implementar um servidor de carimbos de tempo bem distribuído em uma base ponto-a-ponto, nós vamos precisar usar um sistema de prova-de-trabalho similar ao Hashcash de Adam Back [6], ao invés do jornal ou posts de Usenet. O sistema de prova-de-trabalho envolve escanear o valor que foi adicionado à função hash, como em um sistema de criptografia SHA-256, a função hash começa com um número de zero bits. O trabalho médio requerido é exponencial no número de zero bits requeridos e pode ser verificado executando um único hash.

Para a nossa rede de carimbo de tempos, nós implementamos uma prova-de-trabalho através da incrementação de um nonce no bloco até que o valor seja encontrado e dê ao hash do bloco os zero bits requeridos. Como o esforço computacional foi gasto para satisfazer a prova-de-trabalho, o bloco não pode ser mudado sem que todo esse trabalho seja refeito. Conforme os últimos blocos são encadeados depois do primeiro, o trabalho para mudar o bloco incluiria refazer todo o trabalho gasto nos blocos depois dele.

Blocos

A prova-de-trabalho também soluciona o problema de determinar a representação com uma maioria tomando as decisões. Se a maioria fosse baseada em um-ip-um-voto, ela poderia ser facilmente subvertida por qualquer um que pudesse alocar grandes quantidades de IPs. Prova-de-trabalho é essencialmente um-Computador-um-voto.

A decisão tomada pela maioria é representada pela maior cadeia de blocos, a qual contém a prova-de-trabalho com maior esforço investido. Se a maioria do poder computacional é controlada por nós-de-rede honestos, a cadeia honesta irá crescer mais rapidamente e ultrapassar qualquer cadeia de blocos competidora.

Para modificar um bloco anterior da rede, um atacante precisaria refazer toda a prova-de-trabalho do bloco atual e todos os blocos depois dele e, então recuperar o atraso e ultrapassar o trabalho de todos os nós-de-rede honestos. Mostraremos mais adiante que a probabilidade de um atacante mais lento ultrapassar os nós honestos diminui exponencialmente enquanto blocos subsequentes são adicionados.

Para compensar o aumento da velocidade dos hardwares e a variação do interesse em se rodar nós com o passar do tempo, a dificuldade da prova-de-trabalho é determinada por uma média móvel focando o número médio de blocos por hora. Se eles estão sendo gerados muito rápido, a dificuldade de gerar a prova-de-trabalho aumenta.

Rede

Os passos para rodar a rede são conforme a seguir:

  1. 1) Novas transações são transmitidas para todos os nós;
  2. 2) Cada nó coleta novas transações para dentro de um bloco;
  3. 3) Cada nó trabalha para encontrar uma prova de trabalho difícil para seu bloco;
  4. 4) Quando um nó encontra uma prova-de-trabalho, ele transmite o bloco para todos os nós;
  5. 5) Os nós aceitam o bloco somente se todas as transações contidas nele são válidas e não foram gastas anteriormente;
  6. 6) Nós de rede expressam a sua aceitação do bloco trabalhando na criação do próximo bloco na cadeia, usando o hash do bloco anterior que foi aceito como o hash anterior.

Nós de rede sempre consideram a maior cadeia como a correta e sempre continuarão trabalhando para estendê-la. Se dois nós de rede transmitem diferentes versões do próximo bloco simultaneamente, alguns nós de rede vão receber uma ou outra versão primeiro. Nesse caso, eles trabalham em cima do primeiro bloco que eles receberam, mas salvam o outro ramo no caso de ele se tornar maior do que o que está sendo trabalhado.

O consenso será alcançado quando a próxima prova-de-trabalho é encontrada e um dos ramos de blocos se torna maior, os nós de rede que estavam trabalhando no ramo que ficou menor, irão mudar para o ramo que se tornou maior.

Uma nova transação transmitida não precisa, necessariamente, alcançar todos os nós da rede.  Desde que ela alcance muitos nós de rede, elas serão incluídas em um bloco mais tarde. Transmissões de blocos também são tolerantes com mensagens descartadas. Se um nó de rede não recebe um bloco, ele irá solicitá-lo quando ele receber o próximo bloco e perceber que um bloco está faltando.

Incentivo

Por convenção, a primeira transação em um bloco é uma transação especial, ela cria novas moedas que são possuídas como uma forma de recompensa pelo criador daquele bloco. Isso adiciona um incentivo para os nós de rede darem suporte e aderir à rede, além disso, provê uma maneira de distribuir inicialmente as moedas para a circulação, sem que haja uma autoridade central para emiti-las.

Uma adição estável de uma quantidade constante de novas moedas é análoga aos mineradores de ouro gastando seus recursos para colocar mais ouro em circulação. Em nosso caso, apenas poder computacional, tempo e eletricidade são gastos.

O incentivo também pode ser fundamentado através de taxas de transação. Se o valor de saída de uma transação é maior que o valor de entrada, a diferença desses valores é a taxa de transação que é adicionada como um valor de incentivo do bloco contendo a transação. Desde que o número pré-determinado de moedas tenha entrado em circulação, o incentivo pode ser dado inteiramente através de taxas de transações, mantendo o sistema completamente livre de inflação.

O incentivo irá ajudar a encorajar os nós de rede a se manterem honestos. Se um atacante ganancioso é capaz de reunir mais poder computacional do que todos os nós de rede honestos, ele teria de escolher entre usar seu poder para fraudar as pessoas roubando de volta seus pagamentos, ou usá-lo para gerar novas moedas. Ele iria achar mais lucrativo jogar conforme as regras, tais regras que o favorecem com mais moedas novas do que todos os outros juntos, do que prejudicar o sistema e a validade de sua própria riqueza.

Recuperando espaço em disco

Desde que a última transação em uma moeda é garantida através uma quantidade suficiente de blocos, as transações gastas antes dessa última transação podem ser descartadas para guardar espaço no disco (hd) do computador. Para facilitar isso sem quebrar o hash do bloco, transações assumem seus hashes em uma Árvore de Merkle [7][2][5], com a única raiz incluída no hash do bloco.

Blocos mais antigos podem ser compactos podando os ramos desta árvore. Os hashes interiores não precisam ser armazenados.

Árvore de Merkle

Um cabeçalho de bloco sem transações teria o tamanho aproximado de 80 bytes. Se nós supomos que os blocos são gerados a cada 10 minutos, logo: 80 bytes * 6 * 24 * 365 = 4.2MB por ano. Atualmente os computadores estão sendo vendidos tipicamente com 2GB de RAM em 2008, e a Lei de Moore prevendo que o crescimento atual de 1.2gb por ano, o armazenamento não deverá ser um problema mesmo se os cabeçalhos dos blocos precisarem ser armazenados na memória.

Simplificando a verificação de pagamentos

Se é possível verificar pagamentos sem que seja necessário rodar um nó de rede inteiro. Um usuário precisa manter apenas uma cópia dos cabeçalhos dos blocos da cadeia que possua a maior prova-de-trabalho, a qual pode ser obtida consultando nós de rede até que ele esteja convencido de que ele tem a cadeia mais longa e obtenha o ramo da Árvore de Merkle vinculando a transação ao bloco com o registro de data e hora através de carimbos de tempo. Ele não pode checar a transação sozinho, no entanto, ele pode vincular ligando-a a um lugar na cadeia, dessa forma, ele pode ver se os nós de rede aceitaram a transação e se os blocos adicionados depois dela confirmam que a rede aceitou a transação.

Corrente de prova de trabalho

Assim sendo, a verificação é confiável enquanto os nós de rede honestos controlam a rede, mas ela pode se tornar vulnerável se a rede é controlada por um atacante. Enquanto os nós de rede podem verificar as transações por eles mesmos, um método simplificado pode ser enganado por transações forjadas pelo atacante enquanto a rede continuar sob seu domínio.

Uma estratégia para se proteger contra isso seria aceitar alertas de nós de rede quando eles detectam um bloco inválido, notificando o software dos usuários para baixar o bloco inteiro e as transações alertadas para confirmar a inconsistência. Estabelecimentos que recebem pagamentos frequentemente vão querer rodar seus próprios nós de rede para manter uma segurança mais independente e uma verificação mais rápida.

Combinando e dividindo valores

Embora fosse possível lidar com moedas individualmente, seria difícil fazer uma transação separada para cada centavo em uma transferência. Para permitir que o valor seja dividido e combinado, transações contém múltiplas entradas e saídas. Normalmente, haverá uma única entrada a partir de uma transação anterior maior ou entradas múltiplas combinando quantidades menores, e finalmente duas saídas: uma para o pagamento, e outra retornando o troco, que volta para o remetente do pagamento.

Dividindo valores

Deve-se notar que o número de entradas que podem ser conectadas a uma saída especificada, onde uma transação depende de várias transações, não há um problema aqui. Nunca há a necessidade de extrair cópia autônoma completa do histórico de uma transação.

Privacidade

O modelo bancário tradicional alcança um nível de privacidade limitando o acesso à informação das partes envolvidas e do intermediário confiável. A necessidade de anunciar todas as transações publicamente torna esse método inviável, mas a privacidade ainda pode ser mantida quebrando-se o fluxo de informações outro lugar: mantendo as chaves públicas anônimas.

O público pode ver que alguém está enviando uma quantia para outra pessoa, mas sem informações ligando a transação a ninguém. Isto é semelhante ao nível de informação divulgado pelas bolsas de valores, em que o tempo e o tamanho negócios individuais, a “fita”, é tornada pública, mas sem dizer quem eram as partes envolvidas na negociação.

Privacidade

Como um firewall adicional, um novo par de chaves públicas precisaria ser usado para cada transação para evitar que eles sejam ligados a um dono comum. Alguma ligação ainda é inevitável com transações que tenham múltiplas entradas, as quais necessariamente revelam que suas entradas sejam possuídas pelo mesmo dono. O risco é que o dono da chave público seja revelado, caso isso aconteça, seria possível ligar todas as outras transações que foram feitas pelo mesmo dono.

Cálculos

Nós consideramos o cenário no qual um atacante está tentando gerar uma cadeia alternativa de blocos mais rápido que a cadeia honesta. Mesmo que isso seja feito, isso não torna o sistema aberto a mudanças arbitrárias, como criar valores do nada, ou tomar dinheiro que nunca pertenceu ao atacante.

Os nós de rede não irão aceitar uma transação inválida como pagamento, e nós honestos nunca vão aceitar o bloco contendo a transação fraudulenta. Um atacante pode apenas tentar mudar uma de suas próprias transações para tomar de volta o dinheiro que ele gastou recentemente.

A corrida entre a cadeia honesta e a cadeia atacante pode ser caracterizada como uma Caminhada Binominal Aleatória. O sucesso do evento ocorre quando a cadeia honesta está sendo estendida por um bloco, aumentando sua liderança em +1, e a falha do evento ocorre se a cadeia do atacante está sendo estendida, diminuindo o gap em -1.

A probabilidade de um atacante alcançar a cadeia honesta partindo de um dado déficit é análogo ao problema da Ruína do Apostador. Suponha que um apostador com crédito ilimitado comece com um déficit e jogue potencialmente um número infinito de tentativas para tentar alcançar o ponto de equilíbrio. Podemos calcular a probabilidade na qual o apostador atinge o ponto de equilíbrio, ou que um invasor alcance a cadeia de blocos honesta, como segue abaixo:

p = probabilidade um nó honesto encontrar o próximo bloco

q = probabilidade o atacante encontrar o próximo bloco

qz = probabilidade de o atacante se recuperar de z blocos atrás

Cálculo

Dada a nossa suposição de que p>q, a probabilidade cai exponencialmente conforme o número de blocos que o atacante tem que acompanhar com o aumento da cadeia. Com as chances contra ele, se ele não tiver um lance de sorte logo no começo, suas chances irão se tornar cada vez menores conforme ele vai ficando para trás.

Nós vamos agora considerar o quanto a pessoa que recebe uma nova transação precisa esperar antes que tenha a certeza suficiente de que quem enviou a transação não pode mudar a transação. Nós supomos que quem enviou a moeda é um atacante que deseja fazer com que a pessoa que vai receber a moeda acredite que ele recebeu o seu pagamento naquele momento, e então reverter o pagamento de volta para ele mesmo depois de algum tempo. O destinatário da transação será alertado quando isso acontece, mas quem enviou a transação acredita que será tarde demais.

O destinatário gera um novo par de chaves e dá a chave pública para quem vai enviar as moedas por um curto momento antes de assinar. Isso impede que o atacante prepare uma cadeia de blocos com antecedência trabalhando continuamente até que ele tenha a sorte de chegar longe o suficiente, e então executar a transação no aquele momento.

Uma vez que a transação é enviada, o remetente desonesto começa a trabalhar em segredo em uma cadeia paralela contendo uma versão alternativa de sua transação. A pessoa que vai receber as moedas espera até que a transação tenha sido adicionada ao bloco e z blocos tenham sido ligados depois disso. Ele não precisa saber a quantidade exata de progresso que o atacante fez, mas supondo que a cadeia de blocos honestos tomou o tempo médio esperado por bloco, o progresso potencial do atacante será uma distribuição de Poisson com o valor esperado:

Cálculo 2

Para obter a probabilidade de um invasor ainda alcançar neste momento, nós multiplicamos a densidade de Poisson por cada quantidade de progresso que ele poderia ter feito pela probabilidade de ele conseguir alcançar a partir daquele ponto:

Cálculo 3

Reorganizando para evitar a soma de uma cauda infinita da distribuição…

Cálculo 4

Convertendo em código C…

{
double p = 1.0 – q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 – pow(q / p, z – k));
}
return sum;
}

Executando alguns resultados, podemos ver a probabilidade cair exponencialmente com z.

q=0.1
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012
q=0.3
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006
Para P menor que 0.1%
P < 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340

Conclusão

Propusemos um sistema para transações eletrônicas sem depender da confiança em intermediários. Nós começamos com o quadro usual de moedas feitas a partir de assinaturas digitais, que fornece um forte controle de propriedade, mas é incompleta sem uma maneira de evitar o gasto duplo.

Para resolver isso, nós propusemos uma rede ponto-a-ponto usando a prova de trabalho para registrar um histórico público de transações que rapidamente se torna computacionalmente impraticável para um atacante mudar, se nós honestos controlarem a maioria da potência computacional da rede. A rede é robusta em sua simplicidade não estruturada.

Nós de rede trabalham todos de uma vez com pouca coordenação. Eles não precisam ser identificados, pois as mensagens são não é roteado para qualquer lugar específico e só precisa ser entregue com base no melhor esforço. Nós de rede podem sair e voltar à rede à vontade, aceitando a cadeia de prova de trabalho como prova de que aconteceu enquanto eles estavam fora.

Eles votam com seu poder de CPU, expressando sua aceitação de blocos válidos, trabalhando em estendê-los e rejeitando blocos inválidos, recusando-se a trabalhar em eles. Quaisquer regras e incentivos necessários podem ser aplicados com este mecanismo de consenso.

Referências
[1] W. Dai, “b-money,” http://www.weidai.com/bmoney.txt, 1998.
[2] H. Massias, X.S. Avila, and J.-J. Quisquater, “Design of a secure timestamping service with minimal
trust requirements,” In 20th Symposium on Information Theory in the Benelux, May 1999.
[3] S. Haber, W.S. Stornetta, “How to time-stamp a digital document,” In Journal of Cryptology, vol 3, no
2, pages 99-111, 1991.
[4] D. Bayer, S. Haber, W.S. Stornetta, “Improving the efficiency and reliability of digital time-stamping,”
In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993.
[5] S. Haber, W.S. Stornetta, “Secure names for bit-strings,” In Proceedings of the 4th ACM Conference
on Computer and Communications Security, pages 28-35, April 1997.
[6] A. Back, “Hashcash – a denial of service counter-measure,”
http://www.hashcash.org/papers/hashcash.pdf, 2002.
[7] R.C. Merkle, “Protocols for public key cryptosystems,” In Proc. 1980 Symposium on Security and
Privacy, IEEE Computer Society, pages 122-133, April 1980.
[8] W. Feller, “An introduction to probability theory and its applications,” 1957.

Caso queira baixar em PDF: Clique aqui!

*Artigo publicado originalmente no Cointimes.