Cointerra anuncia goldstrike1 asic

CoinTerra Engineering Update: TerraMiner IV Hashing Live (Junho 2019).

Anonim

Divulgação: O autor deste artigo é o fundador e cientista-chefe do projeto Ethereum

Na semana passada, Adam Back e Austin Hill vieram com um anúncio na Let's Talk Bitcoin, no qual eles anunciaram seu projeto mais recente: "sidechains". A idéia, eles descreveram, permitiria a existência de cadeias de bloqueios alternativas, talvez com diferentes regras que permitam vários tipos de características adicionais ou tipos de transação, mas com uma unidade monetária cujo valor está vinculado ao bitcoin. A intenção é permitir a experimentação com diferentes extensões ao protocolo Bitcoin, usando redes separadas para evitar qualquer risco para a própria Bitcoin, enquanto ainda usa a mesma unidade monetária subjacente. Assim que a idéia foi anunciada, tem havido grande interesse público no conceito, e trouxe uma esperança renovada de que o protocolo de Bitcoin pode tornar-se muito mais poderoso do que é hoje.

Sob o Hood

A idéia por trás das cadeias laterais não é nova; O conceito tem acontecido desde o ano passado, pelo menos, em dezembro, e um precursor da idéia existe há vários anos antes. O precursor, um protocolo conhecido como vinculação unidirecional, era um mecanismo que teoricamente seria usado para gerenciar uma transição de "Bitcoin 1. 0" para "Bitcoin 2. 0", e funcionava da seguinte forma. Suponhamos que, no Bitcoin 1. 0, 13 milhões de unidades monetárias já tenham sido emitidas através da mineração, com 8 milhões ainda para distribuir. O modelo de distribuição para BTC2. 0 liberaria 8 milhões de unidades através da mineração, de acordo com o mesmo cronograma do BTC1. 0 depois desse ponto, mas os outros 13 milhões serão distribuídos através de um mecanismo conhecido como "prova de queimadura".

Essencialmente, uma delas levaria uma unidade de BTC1. 0, envie-o para um endereço não disponível (por exemplo, 1111111111111111111114oLvT2 ) e envie uma prova criptográfica de que essa transação ocorreu, assinada pela mesma chave privada que enviou a transação, como uma transação para o Bitcoin 2. 0 . De acordo com o protocolo Bitcoin 2. 0, isso permitiria ao usuário receber uma unidade de 2. 0. Isso é chamado de "atinadinha unidirecional" porque o valor de um BTC2. 0 pode ser no máximo igual a um BTC1. 0; Caso contrário, as pessoas arbitrariam a diferença convertendo os bitcoins na taxa de 1: 1. No entanto, além da venda de BTC2. 0 para BTC1. 0 no mercado, não há como voltar, então se a experiência falhar o valor do BTC2. 0 poderia cair para zero.

Bitcoin sidechains usam uma versão melhorada deste sistema chamado "pegging bidirecional", que funciona da seguinte forma. Para receber uma unidade de BTC2. 0, seria necessário tomar uma unidade de BTC1. 0 e envie-o para um "script" que chamaremos X e deixaremos o não descrito por enquanto. Um script no Bitcoin é um endereço que, ao invés de ser de propriedade de uma chave privada, essencialmente atua como um lockbox que desbloqueia os bitcoins somente quando é dada uma transação que satisfaça certas condições.Por exemplo, pode-se ter um script que destrava os fundos para a primeira pessoa que envia um número primo de cinquenta dígitos que consiste inteiramente nos dígitos 3 e 5. Fazendo a transação e publicando uma prova criptográfica de que essa transação foi feita, O Bitcoin 2. 0 blockchain dá direito ao usuário a uma unidade de BTC2. 0.

Agora, a definição de X é simples: X destrava os fundos (lembre-se, esta é uma unidade de BTC1. 0) se for dada uma prova criptográfica válida de que o remetente destruiu uma unidade de BTC2. 0. Assim, existe um mecanismo para converter BTC 1. 0 em BTC2. 0, e esse mesmo mecanismo cria outro mecanismo, limitado em valor ao número total de BTC2. 0 criado, que pode ser usado para converter BTC2. 0 de volta ao BTC1. 0. Portanto, dois pontos de peg.

O mecanismo que essas "provas criptográficas" usam depende de uma construção criptográfica usada em Bitcoin chamada uma árvore de Merkle. Em um bloco Bitcoin, em vez de simplesmente ter todas as transações, o bloco diretamente, apenas um único hash de 32 bytes está incluído no cabeçalho do bloco. Este hash de 32 bytes é calculado a partir de dois outros hashes de 32 bytes, cada um dos quais vem de dois outros hashes de 32 bytes, e assim por diante até que finalmente os valores na parte inferior sejam as próprias transações. É precisamente o ponto deste mecanismo permitir a existência de provas compactas que uma transação específica está em um bloco específico; Tudo o que se precisa é o único ramo de hashes que subiu dessa transação para o nó da raiz, ou um total de 10 hashes para 1000 transações ou 20 hashes para um milhão de transações. Isso é impossível de forjar; Se você tentar mudar mesmo uma única transação na árvore, as mudanças se propagam para cima através dos hashes até que finalmente o nó da raiz termine completamente diferente.

No entanto, isso não resolve o problema completamente; Tudo o que diz é que algum bloco, em algum lugar, contém uma determinada transação. Não diz que a transação está na cadeia principal; na realidade, os mesmos bitcoins usados ​​na transação poderiam já ter sido enviados para uma fonte diferente, tornando a transação inválida. Existem duas maneiras de resolver isso. Uma abordagem e, de longe, a mais simples, é para o mecanismo de prova no Bitcoin 2. 0 para perguntar não apenas para o ramo da Merkle, mas também para a cadeia de blocos que retorna seis blocos, como um comerciante que pede seis confirmações, usando poder de mineração como proxy para validade. Para maior segurança, um número muito maior de blocos como sessenta pode ser necessário. Essa abordagem é simples e parece atender a todos os parâmetros necessários.

Desafios

O mecanismo acima, no entanto, conforme descrito, é altamente imperfeito. Quando um comerciante comum pede seis confirmações, retirar um ataque de dupla despesa contra esse comerciante exige produzir seis blocos mais rápido do que o resto da rede combinados em tempo real, uma tarefa que exige pelo menos 30% da força de trabalho da rede total para trabalhar com qualquer taxa de sucesso não negligenciável. Com o mecanismo de encadernação de duas vias descrito acima, no entanto, um mineiro malévolo com até 1% do poder de armazenamento pode gerar seis blocos, ou mesmo sessenta blocos, eventualmente, e depois usar esses blocos para reivindicar fraudulentamente todos os BTC1.0 que foram colocados no BTC2. 0 lockboxes (ou, na outra direção, reivindicam fraudulentamente um número ilimitado de BTC2. 0). Um possível patch que pode vir à mente é exigir a mesma pessoa que criou o lockbox para abri-lo, limitando assim a quantidade de dano que pode ser feito por pessoa, mas isso não resolverá o problema porque o mineiro malicioso pode facilmente colidir com qualquer um outro. O problema fundamental, que não há como chegar a um mecanismo para validar a cadeia de blocos que não se atualiza ao longo do tempo, é muito difícil de resolver ou provavelmente não pode ser resolvido enquanto se mantém puramente dentro do paradigma de script do "lockbox estático" da Bitcoin.

Outra abordagem, que pode resolver esse problema sem dificuldade excessiva, é mais intrincada e intrusiva. Ele requer essencialmente o que é chamado de "cliente leve" para o Bitcoin 1. 0 no Bitcoin 2. 0. O cliente leve é ​​mais facilmente descrito como um "contrato" de longa duração, um programa no bloco com uma grande quantidade de interno estado que é executado sempre que uma transação é enviada para ele, que aceitaria blocos e verifique cabeçalhos de bloco exatamente da mesma maneira que um cliente Bitcoin em seu telefone celular faria. Este contrato manteria uma lista de execução de todos os cabeçalhos de bloco no Bitcoin 1. 0, e para receber um BTC2. 0 seria necessário enviar uma prova criptográfica de que você efetuou a transação necessária no BTC1. 0 no contrato, ao lado de um depósito de segurança de 0. 1 BTC2. 0.

O contrato verificaria se a prova é válida, acaba em um bloco que está na própria cadeia de mini-bloco interno do contrato e, em seguida, aguarde uma das duas coisas que aconteceu. Primeiro, uma vez mais sessenta Bitcoin mais de 1. blocos podem ser adicionados ao contrato, liberaria uma unidade de BTC2. 0 para o remetente mais o depósito de segurança. Alternativamente, se alguém apresentar uma prova criptográfica de que a transação é inválida por qualquer motivo (por exemplo, gasta bitcoins que não existem) dentro desse prazo, eles receberiam o depósito de segurança.

Isso resolveria o problema de segurança, mas tem uma falha importante: não pode ser feito dentro do protocolo Bitcoin tal como está. É bastante fácil de implementar em um protocolo como o Ethereum, porque é projetado especificamente para contratos, mas a funcionalidade de script do Bitcoin não permite a existência de contratos que tenham um estado interno, de modo que isso dentro da Bitcoin exigiria uma mudança substancial para o protocolo Bitcoin 1. 0. Em última análise, a abordagem tomada por Austin Hill e Adam Back pode não parecer exatamente com nenhuma dessas estratégias; No entanto, a complexidade do problema mostra que ainda existem muitos desafios que se seguem.

Mining

Outra questão importante é: como essas cadeias laterais serão protegidas? O mecanismo padrão para garantir uma cadeia de blocos é a mineração, mas a mineração requer um mecanismo para recompensar mineiros naquela cadeia. Em uma cadeia lateral, cada unidade da moeda da cadeia lateral deve ser apoiada por um script-lockbox contendo uma unidade de BTC na cadeia de blocos Bitcoin, portanto, não há uma oportunidade simples de emitir unidades monetárias de cadeia lateral do nada.Existem duas possibilidades para isso: demora (ou seja, um imposto de porcentagem por ano em todos os BTC na cadeia lateral) e taxas de transação. No entanto, ambos fornecem uma quantidade razoavelmente baixa de receita e, portanto, não é de todo certo que a simples mineração independente e independente solucionará o problema.

Existem duas abordagens para resolver esse problema. Uma abordagem é que a cadeia lateral seja garantida por prova de participação, usando a pequena receita das taxas de transação para compensar as partes interessadas participantes com uma taxa de juros. No entanto, essa abordagem seria muito difícil de implementar em uma cadeia lateral, porque os cálculos envolvidos na validação da prova de participação provavelmente são muito complexos para efetivamente implementar diretamente em uma cadeia de blocos. A outra abordagem, e a promovida por Adam Back e Austin Hill, é chamada de "fusão-mineração"; essencialmente, os mineiros incluem Bitcoin bloqueia dados do bloco Bitcoin e do bloco Namecoin, permitindo que os mineiros ofereçam segurança para ambas as cadeias ao mesmo tempo usando o mesmo esforço computacional.

No entanto, como argumentou o desenvolvedor da Bitcoin, Peter Todd, o conceito de fusão tem uma falha de segurança muito importante: a menos que a maioria dos mineiros de Bitcoin concordem em fundir-minar uma determinada cadeia, essa cadeia é indiscutivelmente não segura . Para entender o porquê, primeiro considere o caso de um altcoin mais tradicional, em nosso exemplo executando o SHA256 por simplicidade (se o altcoin usa um algoritmo personalizado, os mineiros de Litecoin podem retirar o ataque). Se o altcoin tiver 5% do poder de acesso da Bitcoin, então, para atacar a cadeia por meio de um gasto duplo, pelo menos 5% do poder da rede Bitcoin precisaria redirecionar-se temporariamente para a mineração no altcoin. Isso é potencialmente possível, mas é um movimento caro: enquanto o ataque está no lugar, os mineiros de Bitcoin perderiam a receita da mineração no Bitcoin. No caso de uma cadeia lateral com fusão, no entanto, a mineração na linha principal de uma cadeia lateral ou a atacar é livre de custos, de modo que não haveria desincentivo econômico para atacar a cadeia alternativa. Esta não é uma mera conjectura; Houve exemplos reais de piscinas de mineração atacando cadeias de fusão em realidade.

Além da segurança, esta dependência da fusão-mineração também expõe outra limitação preocupante da idéia de cadeias laterais: enquanto o espírito de cryptocurrency é indiscutivelmente a inovação sem permissão, criar uma cadeia lateral requer a permissão e assistência ativa de 50 % de todos os operadores de pool de mineração do Bitcoin. Essas limitações juntas sugerem que o protocolo das cadeias laterais, embora ótimo para muitos casos de uso, certamente não será ideal para todos.

The Promise

Se os problemas técnicos em torno de cadeias laterais podem ser abordados, qual é a promessa que eles trazem? No momento, o desenvolvimento de criptografia pode essencialmente ser classificado em quatro quadrantes. O primeiro quadrante consiste em projetos que usam a moeda Bitcoin e a cadeia de bitcoin - essencialmente, a própria Bitcoin. O segundo quadrante é protocolos que usam a cadeia de bitcoin, mas não a moeda Bitcoin; Mastercoin, moedas coloridas e Counterparty são excelentes exemplos disso.O terceiro quadrante usa uma moeda independente e uma cadeia de blocos independente; Isso contém aplicativos como (para tirar exemplos bastante diferentes) Ripple, Litecoin e NXT. Agora, com cadeiras laterais, o último quadrante também foi preenchido: usando uma rede independente, mas usando o Bitcoin como moeda subjacente.

Será interessante ver quais aplicativos para o qual o nicho funciona melhor. Para novos ecossistemas novos, provavelmente não é a abordagem certa; Não faz sentido para uma rede completamente independente como Ripple ou Ethereum para amarrar seu principal token interno para Bitcoin financeiramente e ter os dois expostos aos movimentos de preços uns dos outros. No caso de grandes esforços, também faz sentido fazer experiências com diferentes políticas monetárias; Ethereum's ether tem um modelo de emissão linear que libera constantemente um determinado número fixo de unidades monetárias a cada ano, enquanto Ripple lançou todos os 100 bilhões de unidades de XRP para a organização Ripple de uma só vez, e a organização está liberando ao longo do tempo para desenvolvedores, investidores e Pessoas que participam de projetos de computação distribuída. Para um garfo que se destina a servir como uma importante mudança de protocolo, como atualizar de SHA256 para SHA3 ou no caso de computadores quânticos de assinaturas ECDSA para Lamport ou NTRU, definitivamente faz sentido. Para tudo no meio, será até uma base caso a caso para descobrir.

No caso de Ethereum, há uma consideração especial a ter em mente: Ethereum é uma plataforma de consenso criptográfico de propósito geral, não um "altcoin" específico. Assim, pode-se ter muitas moedas diferentes que coexistem na plataforma Ethereum como contratos; pode-se ter moedas chatas antigas de suprimento fixo, moedas com uma política monetária administrada por uma organização autônoma descentralizada, moedas que existem para subsidiar a pesquisa científica ou fornecer uma renda básica, e até moedas com um mecanismo de troca bidirecional integrado para agir como cadeias laterais. Assim, Ethereum não pode ser escolhido com precisão no quadrante das cadeias laterais ou no quadrante Ripple / Litecoin / NXT; existe em ambos.

Na verdade, é muito provável que, assim que o bloco de gênese Ethereum se lança, haverá cadeias laterais para Bitcoin, Litecoin e Dogecoin implementadas como contratos dentro de três meses. Se as cadeias laterais podem ser implementadas com sucesso e segurança, isso significa que o Ethereum pode até se tornar o meio preferido para armazenar BTC, LTC ou DOGE usando contratos de armazenamento multisignatura poderosos envolvendo recursos como limites de retirada. Entre os contratos em uma cadeia de uso geral, altcoins especiais de alto desempenho, servidores de OpenTransactions quase centralizados, cadeias laterais e Bitcoin, uma coisa está se tornando clara: as criptografia podem interoperar como nunca antes.