Ir ao conteúdo
  • Cadastre-se

Rafael Lúcio

Membro VIP
  • Posts

    10
  • Cadastrado em

  • Última visita

Reputação

7

Sobre Rafael Lúcio

  1. Tópico para a discussão do seguinte conteúdo publicado no Clube do Hardware: Tudo o que você precisa saber sobre blockchain "Blockchain é um livro de escrituração baseado na Internet, utilizado por criptomoedas como o Bitcoin. Neste artigo apresentaremos os princípios básicos de funcionamento desta tecnologia." Comentários são bem-vindos. Atenciosamente, Equipe Clube do Hardware https://www.clubedohardware.com.br
  2. Blockchain (literalmente, “cadeia de blocos”) é um livro de escrituração baseado na internet, utilizado por criptomoedas, isto é, um registro simples de operações contábeis de acesso público mantido pelos próprios usuários. Esse livro é imutável devido à redundância de inúmeras cópias de todo seu registro, que se conferem mutua e constantemente, e também devido à sua criptografia que impede qualquer tentativa de modificação, intencional ou não, nos fundos de terceiros por aqueles que tiverem uma cópia do registro. O registro das informações em uma blockchain é feito pelos próprios usuários que fazem novas transações que são salvas, automaticamente, em novas páginas desse livro de escrituração, chamadas de blocos. Usuários não podem realizar transações feitas com os fundos de outras pessoas, pois cada usuário tem suas próprias credenciais (utilizando uma assinatura digital criptografada) e, com isso, todos usuários só têm acesso a seus próprios fundos. Os programas que geram as assinaturas digitais dos usuários, a partir de palavras-chave, e as protege com uma senha são conhecidos como carteiras, ou wallets. Um usuário pode ter quantas assinaturas digitais quiser. Em uma blockchain também não é possível duplicar o envio de uma mesma quantia para um ou mais destinatários, incluindo do próprio usuário para ele mesmo. Vale salientar que a operação de envio de uma dada quantia é que não pode ser duplicada, mas o pagamento de um mesmo valor pode ser feito repetidas vezes usando novas operações de envio. Esta característica da não duplicação é vista com desconfiança, afinal, à primeira vista fundamenta-se a ideia de que tudo pode ser copiado, colado e assim duplicado em um registro digital. O que acontece numa blockchain é que cada operação a ser incluída no registro contém um código próprio que a rotula: uma assinatura da transação que é única; ou seja, é impossível existir duas assinaturas de transação iguais devido ao modo com que elas são geradas. A criação da assinatura da transação considera, em vez de palavras-chave, “informações-chave” envolvidas na operação da transação, como a mensagem da transação (que contém as quantias envolvidas, data e hora de emissão, destinatários, remetentes etc). Por isso, ainda que uma mesma quantia seja mandada repetidas vezes de um mesmo remetente para um mesmo destinatário, as assinaturas dessas transações serão diferentes, pois sempre no mínimo uma variável da mensagem da transação será diferente. Portanto, quando a rede de uma blockchain recebe uma transação cuja assinatura já está presente no registro, esta transação é indeferida. Uma criptomoeda é um tipo de valor transladado numa blockchain. Porém uma blockchain não se limita a ter registrado conjuntos de transações de sua criptomoeda, podendo ser usada para armazenar qualquer informação. Pode armazenar documentos, certificando-se que contratos não sejam alterados sem que todas as partes envolvidas saibam e/ou consintam; arquivos multimídia; registro de tráfego de rede; pode oferecer uma API para programas e executá-los com base nas assinaturas de transações da blockchain e controle de informações para órgãos regulamentadores. Em termos práticos, uma transação é constituída por três variáveis: quem manda; quem recebe; e a quantia transladada. O identificador de quem manda e de quem recebe é chamado de endereço, que é constituído por assinaturas digitais criptografadas (uma pública mais outra privada) que só podem ser geradas por um conjunto de doze palavras-chave que apenas o usuário dono do endereço detém. Quando uma transação é enviada para a rede da blockchain ela é analisada pelos nós de rede para identificar se é duplicada, notificando o usuário caso seja duplicada ou ficando em espera de confirmação, caso seja original, podendo ser identificada por seu código num explorador de blocos. Enquanto a transação não for confirmada o usuário ainda pode considerar que o fundo "transferido" está em suas mãos, porém congelado; e quando a transação é confirmada então ela é salva em um bloco com a respectiva quantia no endereço do destinatário. Neste bloco um usuário pode encontrar várias outras transações confirmadas ao mesmo tempo que a sua. Na rede do Bitcoin a média atual é de 2.400 transações salvas por bloco a cada 10 minutos. Onde na Tabela 1 está escrito "Transação 1", em uma transação real, de Bitcoin por exemplo, ela seria identificada pelo código 3cfb587bd5b880186e5c3017c5643ade0ff5bc7b632c3d7b618cf4151cdfc5b2. Este código é a assinatura de transação referida anteriormente na introdução deste artigo. Tabela 1: Transação de uma quantia menos a taxa. Suponha que uma pessoa A manda 2 Bitcoin para uma pessoa B. A pessoa A tem que pagar uma taxa para a transação ser realizada, ela tem total controle sobre quanto de taxa ela está disposta a pagar e resolve pagar 0,0001 Bitcoin. A pessoa B recebe, portanto, apenas 1,9999 Bitcoin. (Aqui as letras do alfabeto serão usadas em vez de endereços reais para facilitar a ilustração; mas em um caso real as partes envolvidas seriam identificadas por endereços de 34 carecteres, no caso do Bitcoin, como esse a seguir: 1H3kEuSdm9G1fTi9tVBDBxGotHpCtVUKWP.) Digamos que a pessoa A tem mais quatro endereços diferentes (B, C, D e E) e que ela quer usar os fundos desses quatro endereços para mandar para outros quatro endereços pertencentes, ou não, a uma mesma pessoa. A Tabela 2 ilustra duas transações do mesmo tipo (em que quatro endereços se juntam e enviam quantias específicas para outros quatro endereços) mostrando que o valor da taxa (no centro) é descontado da soma dos valores enviados (na esquerda). Tabela 2: Duas transações de múltiplas origens para múltiplos destinos A quantidade, de Bitcoin por exemplo, que cada endereço remetente envia, e que cada endereço destinatário recebe, pode ser definido na carteira que o usuário estiver usando no momento da transação. Isto é conveniente pois assim o usuário não tem que repetir uma operação n vezes e paga apenas uma única taxa. Uma vez que uma transação de Bitcoin é enviada ela é deixada em espera para ser salva em um bloco, e a quantidade de tempo que uma transação levará para ser confirmada varia em função da taxa que o usuário estipulou. Portanto, apesar do usuário poder, em algumas carteiras, definir qualquer valor para a taxa não se recomenda usar um valor muito abaixo do recomendado para o momento. Quase todas as carteiras existentes, no momento da publicação desse artigo, informam automaticamente (e dão opção de usar) um valor da taxa ideal para o momento da transação. Uma transação, com uma taxa recomendada, leva até 10 minutos para ser registrada em um bloco, ao passo que a mesma transação, com uma taxa muito abaixo da recomendada, pode levar semanas ou até nunca ser confirmada, se for um valor muito perto de zero. A taxa ideal fica, na média, em torno de 0,0001 para o Bitcoin. A razão de haver taxas inerentes a cada transação na rede, como a do Bitcoin por exemplo, é que elas são uma recompensa para quem processa os blocos. Como a rede não é sustentada por nenhuma organização privada ou governo, mas pelos próprios usuários, ela não teria como ser processada, consumindo eletricidade, sem qualquer forma de retorno para que esses usuários tenham motivo em dedicar poder computacional à rede, criando blocos. Esses usuários são os mineradores, onde seus dispositivos fazem cálculos matemáticos complexos repetitivamente até que acham um valor que "resolve" um bloco. Analogamente, a mineração usual consiste em revirar a terra até achar, em meio ao entulho sem valor, as pedras e/ou metais preciosos. Conforme a data de publicação deste artigo, quando um bloco é encontrado 12,5 Bitcoins são criados e somados às taxas das transações incluídas nele. Esse bloco pode ser visto como uma tabela incluindo as transações que estavam em espera a serem adicionadas na blockchain e foram confirmadas com base em suas taxas. Atualmente, no Bitcoin, cada bloco tem um limite de 1 MiB. Isto implica que caberá um número limitado de transações por bloco. E será mais lucrativo se os mineradores definirem um parâmetro para que, dentro do tamanho limitado de cada bloco, haja apenas as transações com maiores taxas. A Tabela 3 ilustra como exatamente as taxas recompensam os mineradores que mineraram um bloco contendo as transações da Tabela 2 que até então estariam em espera. Tabela 3: Mesma coisa da tabela anterior, só que evidenciando a recompensa aos mineradores O minerador Z foi recompensado com 12,5 Bitcoin e obteve um adicional de 0,0005 Bitcoin das taxas da transação. Minerador "Z", porque existem muitos outros mineradores que estavam competindo pelo mesmo bloco. Na maioria dos blocos, o minerador Z na verdade é o endereço de uma pool. (Sites em que vários mineradores juntam suas capacidades de processamento, para tornar mais provável a solução do bloco, e dividem a recompensa.) Onde na Tabela 3 está escrito "Bloco nº 2541", em uma transação real de Bitcoin o bloco seria identificado por um código, chamado hash: 000000000000000000643b5099fe2eb207fc66b71c77336b9afc282cd035c3eb. Quanto maior a quantidade de zeros no início de suas hashes, maior foi sua dificuldade de processamento. Pode-se entender a hash do bloco como a assinatura do bloco. Existem outras blockchains que têm o tempo médio diferente dos dez minutos do Bitcoin. Por exemplo o ZCash leva em média 2,5 minutos para cada bloco ser minerado e, no Ethereum, 17 segundos. Uma das maneiras que um sistema de informações pode estruturar sua comunicação é na forma conhecida como P2P. Nesta forma existem os nodos de rede que são pontos de conexões responsáveis por transmitir informações em seu poder através da rede. Qual organização é assumida pelas conexões P2P dos nodos nas blockchains é importantíssima, pois ela define a robustez da blockchain, no que se refere à sua segurança e corruptibilidade, conforme será explicado a seguir onde discorreremos sobre as três estruturas P2P mais usadas. Rede centralizada Pode-se entender como uma rede centralizada, por exemplo, a forma com que os bancos gerenciam seus dados. Se um cliente quer passar uma quantia para outro cliente essa transação tem que passar, ser aprovada e encaminhada pelo banco que está no centro de todo e qualquer fluxo de informações de seu próprio sistema. A Figura 1 ilustra essa estrutura e explicita que só há um nó de rede nessa configuração (o circulo grande no centro) conectando-se aos usuários. O fato de bancos terem uma rede centralizada implica que apenas eles têm uma cópia de todos os dados, e se esses dados forem corrompidos, incluindo backups, por qualquer sorte de desastre de seja, muitos estariam em apuros. No ponto de vista dos clientes, além do risco da perda de dados existe a possibilidade, embora improvável, de haver uma manipulação dos dados por parte dos bancos ou de terceiros, como governos. Figura 1: Esquema de uma rede centralizada Uma blockchain mantida por uma rede centralizada não é considerada invulnerável pois apesar das características discutidas anteriormente, no caso centralizado, não haveria tanta redundância de cópias de todo o registro (pois os usuários/clientes não teriam uma cópia do registro). Vale notar aqui que não necessariamente um banco, empresa ou governo, tem que usar uma blockchain em seu sistema para que a organização do seu trafego de informações seja de uma rede centralizada. Tampouco que deveriam adotar uma blockchain para armazenar seus dados. Rede descentralizada No caso descentralizado, em uma blockchain, todos os nodos têm uma cópia, um backup, de todas as transações realizadas até o momento. A Figura 2 representa uma rede descentralizada, nela o tamanho dos círculos representa a quantidade de transações esperando serem gravadas em um bloco. Se o backup das transações de um ou mais nodo for deletado ou corrompido, por qualquer motivo que seja, haverá uma discrepância na informação que o nó afetado comunicará aos demais e então os arquivos originais serão baixados novamente pelo nó afetado. Figura 2: Esquema de uma rede descentralizada A maioria das blockchains úteis ao usuário que quiser usar a rede como sistema financeiro têm uma rede descentralizada, e o grande atrativo desta configuração de rede é a imutabilidade das informações armazenadas nela pelo fato de que estão sempre se conferindo. Observe, pela Figura 2, que, embora improvável, não necessariamente o maior nó de rede, com mais transações esperando serem gravadas em um bloco, teria maior quantidade de conexões P2P com outros nodos. Note que um usuário que fazer uma transação numa blockchain descentralizada também não precisaria, inclusive, fazer de seu computador, ou dispositivo móvel, um nó de rede. Bastaria ter uma Carteira; que a carteira envia a transação para um nó de rede. Rede distribuída Como o nome diz, e a Figura 3 corrobora, é uma configuração de rede P2P em que todos os nodos trocam informações com todos outros tal que os dados das transações esperando serem gravadas em um bloco estejam perfeitamente "distribuídos". Por este motivo todos os círculos têm o mesmo tamanho na ilustração. Figura 3: Esquema de uma rede distribuída Aqui, assim como na rede descentralizada, em uma blockchain, todos os nodos têm uma cópia de todas transações como medida de segurança por redundância, com a diferença que esta configuração tem a vantagem de resolver mais rápido problemas de conflito (de uma transação já existente ser duplicada, por exemplo), que a torna capaz de processar transações mais rapidamente do que na rede descentralizada. A configuração "distribuída" de uma rede P2P é capaz de processar mais transações por segundo, em relação a uma rede descentralizada, por causa das transações em espera a serem gravadas em um bloco estarem distribuídas entre todos os nodos. Na rede descentralizada, o fato de alguns nodos não terem as mesmas transações em espera que outros nós de rede, pode ser entendido como um gargalo na propagação de uma transação através da rede. Uma rede distribuída, no entanto, consome muito mais largura de banda, tanto para quem manda como para quem recebe. Isto previne que essa rede seja assumida como a melhor opção para um sistema dedicado a usuários comuns, como no caso do Bitcoin. Ela é adequada para grandes corporações que desejem otimizar o fluxo de dinheiro e de informações entre e dentro de si. Em 2009, quando o Bitcoin passou a funcionar, era possível fazer o processo de mineração com o processador de um computador de mesa. O Bitcoin, no entanto, é programado para que a média do intervalo de tempo em que seus blocos sejam resolvidos demore dez minutos e a medida que mais pessoas forem minerando, mais poder computacional é auferido à rede, ocasionando a necessidade da rede compensar aumentando a dificuldade do processo em que cada bloco é resolvido para que o intervalo de tempo médio se mantenha o mesmo. Por isso, com o tempo, processadores não deram mais conta de render ao menos seu consumo de eletricidade, principalmente por que chips gráficos (GPUs) começaram a ser usadas na mineração e a microarquitetura de um único processador gráfico conseguia o desempenho de vários processadores tradicionais juntos. No entanto, especificamente o algoritmo SHA256 (o algoritmo do Bitcoin) não precisa de muita memória para ser processado e nem processadores gráficos são projetados com a única finalidade de minerar Bitcoin. Tecnicamente, a mineração do Bitcoin usava apenas uma das extensões do conjunto de instruções presentes na microarquitetura dos processadores gráficos; em outras palavras GPUs não são feitas para computar apenas SHA256, embora possam. Na perspectiva da engenharia, isso pode ser encarado como um gargalo de desempenho, uma vez que os processadores gráficos poderiam ser projetados apenas com extensões de um conjunto de instruções otimizados para processar vários objetos de dados dentro do SHA256, em vez de dispor de recursos que nunca seriam usados nesta tarefa, em sua microarquitetura. Extensões de um conjunto de instruções podem ser entendidos como configurações de transistores designadas para processar um formato específico de dados. A depender de quais instruções estiverem contidas em um "conjunto" tem-se uma extensão. Essas instruções são descritas em código pelo desenvolvedor da CPU ou GPU, e têm como objetivo aumentar o desempenho de uma unidade de processamento quando as mesmas operações são realizadas em cima de um aparato lógico, que neste caso é o SHA256. Alguns exemplos de extensões são SSE, AVX, MMX, FMA etc. Em outras palavras, como a mineração é um processo repetitivo, apenas algumas extensões eram usadas para que as operações em cima do SHA256 fossem executadas. Este fato por si só não é um problema, pois muitos processos em um computador de mesa comum realmente não usam todas as extensões de um processador. O problema é que muitos processadores foram comprados apenas com a finalidade de minerar. Isso significa que os mineradores também estavam pagando por recursos que nunca seriam usados. Da falta de especificidade dos equipamentos utilizados na mineração do Bitcoin, até então, fez surgir o ímpeto de que alternativas fossem criadas. O emprego de chips programáveis (FPGAs) na mineração do Bitcoin foi o resultado disso. FPGA é um conjunto de unidades lógicas. De maneira análoga e superficial, CPUs e GPUs são casos específicos de um conjunto de portas lógicas interconectadas, por meio de programação, com a finalidade de desempenhar a função de uma unidade de processamento computacional (CPU) ou gráfico (GPU). O "pulo do gato" com os FPGA é que um programador pode descrever, através de código, a interconexão das unidades lógicas deste equipamento de forma que ele se torne desde um simples somador até um processador. Uma vez que foi descoberto que os FPGAs poderiam ser programados para realizar operações do SHA256 muito mais eficientemente que processadores de vídeo (GPU), estes tornaram-se obsoletos para a mineração. Com a filosofia de usar FPGAs dedicados à mineração de Bitcoin, a necessidade, adesão e experiência com o manuseio destes dispositivos progrediu de maneira em que seria mais interessante vendê-los sem a possibilidade de edição do que esses dispositivos processariam. Essa pequena mudança abre mais espaço para otimização do código e do chip, pois o equipamento não precisa mais ser manufaturado considerando-se que deve servir a um uso generalizado. O resultado dessa restrição no FPGA torna-o um ASIC que é, em inglês, uma abreviação para "circuito integrado para uso específico". O ASIC pode ser encarado como uma evolução natural do FPGA projetado especificamente para processar SHA256. O ASIC usado para mineração é um caso específico dos FPGAs com uma programação e até microarquitetura projetadas especificamente para minerar. Em 2014, com o desenvolvimento do Ethereum, surgiu o Ethash como o primeiro algoritmo "resistente a ASIC". Depois veio o Equihash, do Zcash, ambos algoritmos que fazem uso intensivo do tipo de memórias usadas em GPUs. Esses dois algoritmos têm uma boa parcela da responsabilidade pela fama que criptomoedas ganharam ultimamente. A seguir veremos aplicações dessa tecnologia que vão muito além do escopo do trading. O Bitcoin (BTC ou XBT) é uma blockchain de rede descentralizada que sustenta uma criptomoeda de mesmo nome. É código aberto, portanto qualquer pessoa que se dispor a avaliar seu código, para certificar que não haja vulnerabilidades em sua criptografia ou instruções para criação, ou desvio de BTC, os identificaria imediatamente. Qualquer pessoa que quiser pode criar um nó de rede e/ou minerar Bitcoin. Atualmente (outubro de 2018) a blockchain do BTC está ocupando um espaço de 185 GB, então um usuário precisaria desse espaço livre para criar um nó de rede e precisaria de um ASIC moderno para minerar. Clique aqui para conferir o tamanho atual da blockchain do Bitcoin. O Bitcoin não está sujeito à jurisdição de nenhum governo, banco ou pessoa física. Se qualquer mudança que afete toda a rede tiver que ser tomada, um mínimo de 85% dos mineradores e nós de rede teriam que concordar em usar, ou não, um programa, por um período mínimo de tempo, que tivesse o código a ser incluído, modificado ou retirado. O objetivo do BTC, de forma sucinta, é livrar-se de fronteiras como, por exemplo, os seguintes casos: Transferir dinheiro para um familiar que mora em outro país. Pagar todos os custos de uma viagem ao exterior. Comprar em lojas do exterior, pela internet, produtos físicos ou virtuais. Transferir uma quantia, qualquer que seja, para uma instituição financeira em outro país. Realizar os pontos acima com a mesma conta e endereço que o usuário usa onde mora com as seguintes vantagens: Não ter que pagar taxas de transferência, de cartão de crédito internacionais ou se incomodar em abrir uma conta num banco exterior apenas para contornar esses custos. Não perder tempo criando uma estratégia para a diminuição (legal) de impostos devidos. Não ter suas riquezas guardadas com base numa moeda que, a depender da situação política e econômica ou bem querer do governante em regência, pode inflacionar, deflacionar ou ser retida nos bancos sem direito a saque. Ser uma moeda aceita e usada por qualquer pessoa no mundo, desde que haja internet. Não envolver o custo, com mediações judiciais, inerente a transações bancárias. O fato das transações não serem processadas por uma, ou mais de uma, instituição financeira, ou órgão governamental, somado ao fato de serem irreversíveis torna desnecessário o custo com mediações jurídicas, que é um risco envolvido em cada transação e a torna mais cara conforme a quantia em jogo quando feito por bancos, e não pelo BTC. Sobre esse ponto, veja sobre XRP Ripple. Alguns destes pontos não são exatamente uma realidade para o Bitcoin. Especificamente o ponto referente a guardar riquezas; afinal a economia do BTC ainda não tem volume e bases fundamentais suficientemente sólidas para que sua volatilidade seja equiparável a outros ativos confiáveis durante crises econômicas agudas, principalmente aquelas com forte impacto no sistema financeiro. O ouro é um exemplo de ativo assim. Outro ponto que não corresponde a uma implicação dos casos acima é a improbabilidade de existir uma moeda em vigor que não seja controlada. Idealmente o conceito de um sistema financeiro cujos detentores de poder não sejam órgãos, instituições ou alianças governamentais é extremamente atrativo e corrobora os ímpetos de compra e venda que compõem a volatilidade atual do Bitcoin. A realidade, no entanto, é que este mesmo conceito vem sendo um dos principais motivos pelos quais certos bancos e governos vêm dificultando o envolvimento de pessoas físicas e jurídicas com o mercado de criptomoedas. Por um lado este movimento vem daqueles que vêem o risco de suas funções tornarem-se obsoletas devido às facilidades que a tecnologia blockchain provê; e por outro lado esse movimento é resultado da responsabilidade que as agências governamentais têm de fiscalizar um ativo para fazer controle de para onde vem e vai um capital, para estudar os riscos do mercado, para ter garantia de que não se trata, por exemplo, de uma pirâmide financeira; e para, com isso, ter meios de saber se uma transação é juridicamente legal, garantindo que a blockchain não seja usada e permitida apenas para facilitar lavagem de dinheiro. A explosão de popularidade que as criptomoedas tiveram recentemente pode, em parte, ser atribuída às facilidades de transferência de valores entre duas partes. E o movimento dos bancos e governos contrários a essas criptomoedas resulta em complicar o uso delas, por meio de questionamentos jurídicos, na intenção de comprometer essas facilidades e assim conter escoamento de capital. O Ethereum (ETH) também está numa disposição descentralizada e o objetivo dele não é, necessariamente, ser uma plataforma de transações ou criptomoedas, mas uma API para aplicações rodarem tal como foram programadas sem qualquer possibilidade de interrupção, censura, fraude ou interferência de terceiros. O objetivo do Ethereum é contornar a necessidade de se criar uma redundância na arquitetura tradicional de servidores. Esta redundância tem como objetivo evitar que todos usuários de um dado serviço sejam afetados caso uma máquina isolada de um servidor tenha problemas. Nessa "arquitetura tradicional de servidores" que o projeto Ethereum se refere, várias máquinas são configuradas com o mesmo programa para executar a mesma função de um serviço. Isto cria, consequentemente, uma dificuldade na comunicação dos dados que cada máquina executou para quem, entre o servidor e os clientes (os usuários). O Ethereum usa da natureza da tecnologia blockchain, de armazenar informações, para garantir que um serviço continue ativo independentemente de até todas as máquinas de um servidor deixarem de funcionar. Basicamente, com o Ethereum, desde que haja o mínimo de um minerador, uma aplicação não deixará de fazer a sua tarefa, pois novos blocos gerados garantem a comunicação entre as aplicações e usuários, e servem como instrução para que as aplicações continuem sendo executadas. Estas aplicações são chamadas de "smart-contracts". Um exemplo, dentre as infinitas aplicações desta API, seria a criação de um jogo, como Minecraft, onde as seeds (códigos que geram cada mundo único com seus biomas, floras, faunas, sistema de cavernas e de monstros) seriam usadas para expandir um mundo já existente e comum a todos jogadores (em vez de apenas criar mundos novos e não interligados uns com os outros). Esta expansão do mundo seria numa direção aleatória e caberia aos jogadores descobrirem o que ainda há para ser descoberto e ninguém ainda viu. A "seed" responsável para essa expansão poderia ser a hash de cada bloco encontrado e o "save" do jogo seria gerado pelo próprio código do programa que o incluiria na blockchain como uma "transação", para salvar o progresso. Um jogo desse não seria apenas um smart-contract, mas um Dapp. Dapp é uma abreviação para Decentralized Application (ou aplicação descentralizada, em português), e é composto pelo smart-contract da aplicação mais o código de sua interface gráfica. A interface gráfica é a janela dedicada do programa pela qual o usuário interage com ele enquanto que o smart-contract são as "engrenagens" do programa que são executadas pelo processador. Listamos abaixo alguns projetos já existentes baseados na API do Ethereum. Gnosis O Gnosis é uma ferramenta que aplica o conhecimento de mercados preditivos para deduzir a probabilidade de acontecer qualquer coisa. Por exemplo: temas para fofocas de celebridades; preços de obras de arte; volatilidade de mercados; cálculo para otimização do preço de seguros etc. FirstBlood A plataforma FirstBlood tem o objetivo de dar todo suporte no gerenciamento de e-sports em informações como quais jogadores estão na competição, tabela de líderes, resultados e recompensas. O benefício de se usar o FirstBlood em vez de uma instituição, tal como a FIFA é para o futebol, por exemplo, é que assim se evita qualquer possibilidade de censura, fraude ou interferência no andamento ou resultado dos jogos devido ao interesse de uma minoria corrupta. Os jogos que atualmente a FirstBlood pretende dar suporte são League of Legends, Dota 2 e Counter-Strike: Global Offensive. EOS O EOS é um software que introduz uma arquitetura capaz de suportar um aumento de armazenamento e frequência com que blocos são criados em função da atividade e demanda das aplicações que ele serve de API. É um projeto ainda em desenvolvimento e usou o recurso de smart-contract do Ethereum para distribuir sua própria criptomoeda aos usuários que desejem financiar o projeto. O software EOS.IO fornece contas, autenticações, base de dados, comunicação assíncrona e escalonamento de aplicações entre múltiplos núcleos de processamento. Em outras palavras, o EOS pretende dar suporte e garantir o funcionamento de serviços que o Ethereum não está dando conta de atender a demanda e/ou não é capaz de fornecer. Depois que terminaram suas fases de distribuição e de desenvolvimento o EOS obteve sua própria blockchain separada e concorrente do Ethereum. As transações nesta blockchain não precisarão de uma taxa para serem aprovadas em novos blocos devido a um conceito diferente de mineradores, chamado produtores de blocos ("block producers"), que será implementado. Já existem projetos sendo desenvolvidos para trabalharem em cima da API EOS.IO, conforme você pode ver aqui. IOTA O IOTA é um Dapp dedicado à indústria IoT (internet das coisas) com a função de servir como protocolo para comunicação entre dispositivos. Tal como o EOS, o IOTA terá uma cadeia própria mas que, por sua vez, não será formada por blocos que contêm transações. A estrutura das informações transladadas nesta rede, em vez disso, estará organizada em um sistema denominado "tangle", onde cada transação aprova duas outras transações anteriores. O fato das transações aprovarem elas mesmas, em vez de serem empacotadas em blocos com tamanho e espaço predefinidos, permite que a validação delas aumente proporcional e conjuntamente ao aumento de participação, e portanto de demanda, na rede. Para um aprofundamento de como as informações são processadas na rede do IOTA, aqui está um link para o primeiro de uma série de cinco artigos que explicam o funcionamento do tangle. O principal objetivo do projeto IOTA é permitir a escalabilidade na propagação de informações aplicadas num cenário em que o aumento da velocidade de banda larga não acompanhará a demanda. Em outras palavras, com base em dados estatísticos, com o tempo a internet terá um gargalo de performance em que haverá uma quantidade de informação superior a que a velocidade de banda larga desenvolvida até o momento será capaz de transmitir num intervalo de tempo aceitável. E o projeto IOTA tem como objetivo constituir um canal de comunicação para o IoT considerando os dados desse segmento como uma commodity e servindo como protocolo de comunicação entre dispositivos e serviços que usem esse sistema. De acordo com o site oficial do projeto, “A Fundação IOTA dá forma a esse protocolo com e para a indústria. Desta forma, para catalisar seu desenvolvimento, o projeto conta com a cooperação de corporações e instituições publicas que rodam provas de conceito, conduzem testes e, consequentemente, aceleram a concretização dos objetivos do projeto em direção ao estágio de produção do sistema.”. Atualmente, as principais iniciativas em que o projeto IOTA está focado em desenvolver suporte são comércio internacional e redes de fornecimento, eHealth (assistência médica), mobilidade e automobilismo, e energia inteligente. Apesar de se basear e usar a tecnologia blockchain, a rede IOTA não é uma blockchain. A rede IOTA é um "tangle" com objetivo de suprir a escalabilidade que a tecnologia blockchain não suporta. Note que esses projetos estão ainda em desenvolvimento. Também não existem apenas esses smart-contracts exemplificados aqui. O desenvolvimento de projetos assim leva tempo e, portanto, apenas no periodo de dois anos a partir da publicação desse artigo que devemos ver uma ampla gama de smart-contracts funcionando com uma maior utilidade e relevância ao "mundo real". O Zcash (ZEC) contém todas as características do Bitcoin mais a vantagem de oferecer privacidade absoluta para seus usuários. Foi lançado no dia 26 de outubro de 2016, com uma blockchain também disposta descentralizadamente; o ZEC oferece privacidade e transparência seletiva de transações. Poderia-se dizer que é um Bitcoin melhorado. Um usuário com uma carteira ZEC poderia criar endereços de dois tipos diferentes: t-endereço ou z-endereço. t-endereço: Não diferente dos endereços do BTC suas transações poderão ser vistas através de qualquer explorador de blocos ZCash (nota: não mande BTC para um endereço de outra criptomoeda, ou vice-versa). Exemplo: t1J3UkudqJJVPHEbPiHCBT5e3TJTyUjix89 z-endereço: É um endereço muito mais longo, devido à sua criptografia, para que haja muita dificuldade em achar um output idêntico ao seu endereço. Exemplo: zcCWVkbExbcfVNjLtRmJMv5JAadJ4xDK2ZUrCUJ4Nss6aMJQt1v3mTsUt3NHpBmCZP2xzYByfNR2nod7nVZGqg2qDkpT91N A razão do nome de cada tipo de endereço está na sua letra inicial, para que seja fácil sua identificação sem, necessariamente, ter que observar sua extensão. Se uma pessoa mandar, a partir seu t-endereço para um z-endereço uma quantidade em ZEC, apesar de ela mesma saber qual endereço ela mandou, não o verá no explorador de blocos. Por isso mesmo ela não terá como saber qual z-endereço mandou qualquer uma dada quantia de ZEC para ela, a menos que o remetente se identifique por outros meios. De modo análogo, transações entre z-endereços são completamente vazias quando identificadas no explorador de blocos. Afinal não se sabe quem transfere quanto para quem. No link está o exemplo de cinco t-endereços transferindo, numa única transação, uma quantidade definida de ZEC para uma quantidade indefinida de z-endereços. Apesar de envolver z-endereços, nessa transação exemplificada, a quantia transferida é de conhecimento público por envolver t-endereços. Enquanto que, com toda razão, há quem diga que isso é um modo de práticas criminosas acontecerem com ainda mais dificuldade de serem rastreadas, de fato, é igualmente verdade que esse mesmo sistema seria útil para pessoas vitimadas e sujeitas a regimes ditatoriais reclusos transferirem, de algum modo, seu dinheiro para fora do país e que não há argumentos simples que justifiquem negar a existência de tal sistema para essas últimas. A criptografia usada no ZCash, chamada zk-SNARK (da sigla, em inglês: “Zero-Knowledge Succint Non-Interative Argument of Knowledge”), é tal que através de um controle de tráfego de rede a pessoa em controle não teria como saber que os dados em questão são uma transferência de Zcash. E isso chamou atenção da J.P. Morgan Chase que, no dia 22 de maio de 2017, anunciou uma parceria com a Zerocoin Eletric Coin Company (ZECC), desenvolvedora do Zcash, que tem como objetivo adicionar o zk-SNARK ao Quorum. O Quorum é uma blockchain, de rede distribuída, sendo desenvolvida pela J.P. Morgan Chase para que eles possam, de modo eficiente, portanto barato, movimentar ativos dentro da própria organização ou internacionalmente para outros bancos, sem o risco das mediações judiciais mencionadas nos pontos do Bitcoin, que somam bastante prejuízo anualmente. O Ripple (XRP) é uma blockchain de rede distribuída, criada em 2012, especializada para uso empresarial, especificamente para bancos ou provedores de serviços de pagamento, com o objetivo de oferecer liquidez "imediata" a qualquer transação processada em sua rede. Pessoas físicas também podem ter XRP. Até 2012 não havia nenhum prospecto, de conhecimento público, de ser aplicado uma blockchain, em qualquer disposição de rede que seja, para execução de processos bancários e interbancários. Tudo é, ainda hoje, feito por um sistema próprio de cada banco que envolve custos administrativos enormes devido à quantidade de informação que o banco deve lidar. O objetivo do Ripple é permitir que um banco adquira novos clientes e cresça sua receita através de produtos e serviços diferenciados ao passo que diminui custos, na sua área administrativa, com mecanismos que processam e estabelecem pagamentos internacionais muito rapidamente. Esse modelo permite que você estime a eficiência obtida pelo seu banco usando XRP para pagamentos internacionais. Dentre as principais vantagens de se usar o Ripple em vez do sistema de transações atual estão: Independentemente da quantia a ser transladada, a transação será confirmada em no máximo quatro segundos. Contas nostro, que são contas que bancos têm em bancos estrangeiros com a moeda daquele país, se tornam desnecessárias uma vez que os bancos terão, e operarão instantaneamente, através de suas carteiras Ripple, que o próprio banco gerenciará e terá total controle. Provedores de pagamento poderão usar Ripple para expandirem-se a novos mercados com baixos custos de câmbio ao mesmo tempo que fornecem rápida liquidez e suporta até 50.000 transações por segundo. O XRP foi arquitetado para enquadrar-se com a infraestrutura preexistente dos bancos e portanto oferece concessão ao risco, privacidade e outras dificuldades requeridas em certos tipos de transações. A rede XRP usa uma estrutura comum, criada sob consulta com os maiores bancos do mundo para o processamento de pagamentos. Adicionalmente o Ripple provê uma maneira dos bancos comunicarem informações como cliente remetente, destinatário, taxas e data estimada de pagamento antes que ele seja iniciado no que dispõe uma visibilidade sem precedente para cada transação. Vale notar que o Ripple não é feito para pessoas físicas movimentarem seu capital, ele é feito para os bancos, ou operadoras de cartões de crédito, usarem-no para efetuarem as transações de seus clientes. As moedas aqui não têm uma seção própria por que têm características iguais ao menos uma das anteriores com um ou outro detalhe que as diferem. Não listamos e descrevemos todas criptomoedas existentes, pois, como já foi dito na Introdução, atualmente existem milhares de criptomoedas com suas especificidades, muitas delas redundantes. Litecoin (LTC): contém as mesmas características do Bitcoin citadas anteriormente, com a diferença de uma confirmação de transação mais rápida e barata. A proposta do Litecoin é ser mais susceptível a micro pagamentos, de ser usada no dia a dia de uma pessoa comum, do que o Bitcoin é. Ethereum Classic (ETC): contém as mesmas características do Ethereum citadas anteriormente, exceto pelos smarts contracts que não são os mesmos para ambas redes e que não há a porcentagem da recompensa dos mineradores destinada aos desenvolvedores do projeto Ethereum Classic, como há no Ethereum original. Essa criptomoeda tem um preço muito inferior, com base na data de publicação desse artigo, ao do Ethereum original, e ainda assim representa uma das maiores criptomoedas atualmente. Há quem argumente que o ETC é mais justo que o ETH devido ao fato dos mineradores ficarem com toda a recompensa da mineração. No entanto, o ETC não tem a equipe remunerada, pelo próprio projeto, dedicada exclusivamente em aperfeiçoá-lo e inová-lo cada vez mais. Não que o projeto do ETC seja, necessariamente, desorganizado. Monero (XMR): contém as mesmas características do Bitcoin com a diferença de que seus endereços realizam apenas uma transação e então são descartados. No caso de uma pessoa ter 100 XMR transferir 20 XMR para alguém, na mesma transação também transferirá 80 XMR para um endereço dela mesma criado no mesmo comando e momento em que se realiza a transação. Embora o foco desta blockchain seja privacidade, sua conveniência, e até talvez a própria privacidade, é prejudicada devido ao usuário ter de comunicar, por outros meios, repetidas vezes sempre que tiver que receber ou enviar um pagamento. Siacoin (SC): Baseia-se apenas no princípio da blockchain introduzido pelo Bitcoin, mas não necessariamente em finalidade. O Siacoin tem o objetivo de armazenar arquivos na blockchain. Esta blockchain funciona como mais uma opção de backup pela nuvem disponível. Os arquivos que o usuário decidir armazenar nessa blockchain serão fragmentados em minúsculas partes, até que essas partes ocupem o mesmo espaço que uma típica transação de BTC ocuparia, e então é salvo em um bloco, como uma transação. Para fazer isso um usuário tem que comprar a criptomoeda dessa blockchain para poder, no mínimo, pagar as taxas das transações de seus arquivos. De acordo com seu site oficial, com apenas dois dólares mensais um usuário dispõe de 1 TB por mês. Outras informações comparativas podem ser encontradas no site oficial.
  3. Olá pessoal, tudo bem? Estou com um chip queimado da minha GPU e gostaria de saber, de alguém que tenha experiência em manutenção de hardware, se ela tem conserto. Esse chip queimou quando a placa estava sob estresse durante um bom intervalo de tempo, sou estudante de engenharia e a deixei rodando os cálculos de uma simulação enquanto tratava de meus outros afazeres. Quando cheguei em casa havia um cheiro de queimado saindo do gabinete e a fonte estava desarmada. O modelo da fonte é a OCZ série ZX de 1000W. Eu não saberia dizer, no entanto, se a fonte desarmou devido a uma anormalidade na alimentação da GPU ou se o PC desligou devido a um dispositivo de segurança da minha placa-mãe. Eu tentei ligar o computador, apesar do cheiro de queimado, e ao ouvir um som estranho o desliguei apertando o botão power. Talvez devido a essa tentativa de liga-lo que o chip tenha queimado como mostrado nas imagens anexadas. O computador e todos seus componentes estão funcionando perfeitamente desde que retirei essa GPU queimada. EDITADO: não fiz overclock nessa GPU. Mas como ela é um modelo já overclocado de fábrica, além do meu uso intensivo, suponho que esse problema possa ser comum aos problemas relacionados com overclock. Abaixo seguem as imagens que tirei do circuito. Especificação da GPU: O chip queimado é aquele com uma mancha branca em cima dele. O heatsink cujo o chip queimado fica em contato está com esses pontos de solda que aparentemente se desprenderam. Visão panoramica: Nessas duas fotos procurei focar no códigos dos chips parecidos e adjacentes com o queimado. Como tive que diminuir a qualidade das imagens para poderem serem anexadas no post, o código para o chip maior é: 4983NF RDY38. E para os chips parecidos com o chip queimado a única parte do código que consigo ver é: RE12 Por acaso os indultores também parecem avariados, mas não tenho certeza. O que seria esse plástico estufado em suas laterais?
  4. Boa noite! Instalei o VMware Player e percebi que ele define 4 serviços para serem iniciados ao ligar o computador. No entanto, quero otimizar o tempo do PC ligar então desativo todos os serviços reduntantes ou os atraso para que o tempo de inicialização seja diminuído. Só que como no caso dos serviços do VMware eu só os uso quando estou simulando um sistema não vejo motivo em deixá-los ociosos. Então decidi configurar uma tarefa, no agendador do Windows, para que os serviços fossem ativados quando o wmplayer.exe fosse executado e agora estou com problema em definir o executável como disparador, não faço ideia de como faze-lo. Também tentei programar um .bat simples para eu usá-lo a cada vez que abrir o programa e não estou acertando... Gostaria que alguém me dissesse como resolver isso. Os serviços são: -​VMware Authorization Service -VMware DHCP Service -VMware NAT Service -VMware USB Arbitration Service As instruções que coloquei no .bat são: -Também testei variações na sintaxe das instruções com e sem as aspas e com e sem um comando \Yes ao fim de cada 'net start'. PS: não dou preferência a uma solução por .bat ou agendador, mas se alguém pudesse me dizer pelos dois seria ótimo!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...