Como o BitSignature funciona no Bitcoin

Neste artigo, veremos como a multi-assinatura funciona no protocolo Bitcoin. Observe que em outras criptomoedas e moedas digitais, esses mecanismos podem ser implementados de maneira diferente - depende do modelo de transação. Daremos uma definição de multi-assinatura, analisaremos esquematicamente sua estrutura usando um exemplo de transação, consideraremos opções para seu uso e precauções ao trabalhar com ela. Tentaremos divulgar abertamente o tópico das melhorias propostas, P2SH, e também no diagrama analisaremos o mecanismo para enviar um pagamento para um endereço com várias assinaturas. Acreditamos que o material apresentado será de interesse dos leitores cuja atividade ou área de interesse esteja relacionada às moedas digitais.

Endereço de várias assinaturas


O endereço multisignatura (endereço multisig, para abreviar) é um endereço Bitcoin ao qual vários pares de chaves ECDSA são anexados ao mesmo tempo. Cada par consiste em chaves públicas e privadas. Os padrões de combinação segundo os quais essas teclas podem ser usadas podem ser diferentes. Além disso, é possível estabelecer condições sob as quais será necessário fornecer várias assinaturas para gastar moedas do endereço.

Transação de Bitcoin que usa várias assinaturas


Em mais detalhes, ele pode ser exibido esquematicamente. Por enquanto, basta imaginar, figurativamente, que um endereço com várias assinaturas é formado por várias chaves públicas concatenadas de uma só vez. Vamos considerar isso com mais detalhes um pouco mais. O diagrama mostra uma transação que gasta com um endereço de multi-assinatura.

imagem

Cinza indica a área do título. Ele contém dois campos. Duas entradas são indicadas em azul e duas saídas em verde. A primeira entrada contém os campos preenchidos: o valor do hash da transação anterior é gravado, o que gasta os dados da moeda, o número de saída etc. O campo scriptSig contém a chave pública e a assinatura, o que é típico para uma transação normal.

Preste atenção na segunda entrada da transação. O campo scriptSig contém outra combinação de dados: duas chaves públicas e duas assinaturas são listadas. Eles devem ser verificados por essas chaves públicas, respectivamente. Essa é a entrada da transação que gasta moedas com um endereço de multi-assinatura. É assim que a prova de propriedade das moedas será exibida.

Opções de combinação de teclas


Existem várias combinações de teclas ao usar o endereço de várias assinaturas. As opções mais usadas são 2-de-2, 2-de-3 e 3-de-3. A opção máxima possível é 15 em 15.

A combinação mais simples é 2-de-2. Isso implica que há um endereço com várias assinaturas ao qual dois pares de chaves estão vinculados; na verdade, duas chaves públicas são divididas em hash em uma linha e algum endereço é recebido. Para gastar moedas nesse endereço, é necessário fornecer duas assinaturas que serão verificadas por duas chaves públicas disponíveis, cuja concatenação e hash na ordem correta devem fornecer o mesmo valor do endereço. Resumindo, existem duas chaves pré-instaladas e você precisa de duas assinaturas, que serão verificadas por essas chaves, respectivamente.

O uso do endereço multisignatura 2-de-3 implica que qualquer uma das três chaves predefinidas deve ser usada para verificar as duas assinaturas apresentadas como prova de propriedade das moedas. Em outras palavras, para gastar moedas, você precisa fornecer duas assinaturas que serão verificadas por duas chaves públicas das três predefinidas.

A combinação de 3-de-3, como você já entendeu, requer três assinaturas, que serão verificadas por três chaves pré-instaladas. O máximo em termos de número de assinaturas e chaves públicas necessárias será o esquema de 15 a 15.

Vamos examinar as opções para usar essas combinações.

2-de-2


Imagine que marido e mulher desejassem manter um orçamento comum.

imagem

Eles concordam que somente com o consentimento de cada um deles os fundos do orçamento serão gastos em determinadas necessidades. Com o Bitcoin, isso pode ser implementado de maneira simples. Eles criam um endereço com várias assinaturas de acordo com esse esquema, onde a esposa controla uma tecla e o marido controla a segunda. Então a família receberá toda a renda nesses endereços e o dinheiro poderá ser gasto apenas de comum acordo.

Prevendo a sua pergunta sobre o cenário em que marido e mulher não concordam, imagine que a esposa considere necessário comprar uma máquina de lavar, porque está cansada de lavar com as mãos, e o marido acredita que este não é um trabalho tão árduo e será mais conveniente gastar todas as moedas em o mais recente modelo PlayStation e gaste seu tempo de lazer dessa maneira. A esposa se ofende com o marido e come um pedaço de papel com a chave privada, impossibilitando os gastos com esse endereço.

Como evitar tal situação e proteger as moedas da perda final de moedas?

É possível criar uma transação que gastará todos os fundos do endereço desejado, apesar de o valor não ser conhecido antecipadamente. A entrada não é a quantia, mas um link para a transação, de onde essas moedas podem ser gastas. Existe um tipo de hash , que é uma maneira de cobrir com uma assinatura de transação. Ele permite que você crie uma assinatura antecipadamente, e alguns dados de transação, como entrada, podem ser substituídos posteriormente. Assim, você pode criar uma transação que gastará moedas de uma transação que ainda não existe e aplicá-la mais tarde, ou seja, quando for necessária.

Além disso, você pode colocar uma restrição LockTime nessa transação. Ele permite que você não confirme a transação imediatamente, mas adie-a por algum tempo. Portanto, marido e mulher imediatamente após a criação de um endereço com várias assinaturas, mesmo antes de receber qualquer pagamento, podem criar duas transações LockTime nas quais todas as moedas futuras serão redirecionadas para os endereços habituais do marido e esposa, que eles controlam independentemente. Ao mesmo tempo, as transações serão adiadas e só podem ser confirmadas, por exemplo, após dois meses. Essas transações podem ser impressas em papel e armazenadas individualmente em um cofre. Se surgir uma situação em que as moedas estão na balança do endereço de várias assinaturas e as chaves forem perdidas (uma ou ambas), as moedas serão congeladas. Mas há uma transação LockTime. Qualquer pessoa que publique essa transação poderá retirar esses fundos para um endereço externo válido. As moedas serão salvas. Este foi um exemplo simplificado, mas mecanismos mais complexos são possíveis.

2-de-3


Suponha que exista um grupo de pessoas que tenham um orçamento comum.

imagem

Eles criam um endereço de multi-assinatura no qual há três chaves, mas duas assinaturas são suficientes para assinar a transação. Com o consentimento dos participantes que compõem a maioria do grupo, esses fundos podem ser gastos. Em outras palavras, dois em cada três participantes podem gastar moedas. Para fazer isso, basta espalhar a transação para a rede.

Exemplo de serviço da carteira


Existe uma maneira mais interessante de usar a combinação 2-de-3 e é usada nos chamados serviços de carteira. O serviço de carteira nesse contexto não deve ser confundido com a carteira Bitcoin usual, que o usuário controla de forma independente. O serviço não fornece armazenamento completo para moedas e não é o proprietário delas, mas apenas fornece serviços para um trabalho conveniente.

Se você imaginar esta situação esquematicamente, uma chave pertence diretamente ao serviço, a segunda é gerada apenas pelo usuário (e somente ele sabe), a terceira chave é gerada e armazenada pelo usuário também, mas separadamente. Depois disso, as chaves públicas correspondentes a essas chaves pessoais são calculadas e um endereço de multi-assinatura é compilado. As moedas chegam lá e agora as condições de gastos são limitadas.

imagem

Imagine que estamos lidando com um determinado serviço da web e você pode inserir seu recurso através de um navegador. O navegador baixa o código da carteira Bitcoin, que neste endereço recebe uma lista de moedas não gastas, calcula seu saldo e está pronto para gastar. Se o usuário quiser gastar moedas, ele fará uma transação diretamente no navegador e a assinará com sua (uma das necessárias) assinaturas.

Observe que o usuário pode receber a chave privada da senha ou a chave pode ser gerada aleatoriamente, criptografada com a senha do usuário e armazenada no serviço. Em seguida, o usuário envia uma solicitação ao serviço, recebe um contêiner com uma chave criptografada, descriptografa-o com sua senha e já tem acesso à sua chave privada.

Quando um usuário assina uma transação, ele é enviado para o lado do serviço, para que ele coloque a segunda assinatura necessária e envie a transação. O serviço esclarece o fato da necessidade de assinar a transação através do segundo canal de autenticação, ou seja, através de um canal diferente definido previamente, que pode ser uma chamada para um telefone celular, SMS, mensagem de email e outros métodos de comunicação alternativos (até uma visita pessoal, se o nível de segurança exigir) . Quando o serviço certifica-se de que o usuário registrado realmente inicia a solicitação de assinatura da transação, coloca a assinatura ausente usando sua chave. Depois disso, a transação se torna válida e pode ser distribuída à rede para confirmação.

A terceira chave é usada quando o serviço é negado. O software gera essa chave e oferece salvá-la de uma maneira conveniente para você. O usuário geralmente o armazena em um local seguro. Se o serviço for negado, o usuário poderá assinar a transação com suas próprias chaves (segunda e terceira). Se a segunda chave foi armazenada no lado do serviço, um contêiner protegido com essa chave será enviado ao usuário com antecedência por meio de um canal de dados alternativo, por exemplo, por e-mail. O usuário descriptografa o contêiner com a chave usando sua senha.

O usuário recebe duas chaves privadas necessárias e entra no software especial fornecido pelo serviço com antecedência. Além disso, este software é executado de forma autônoma no computador do usuário, sem a participação do serviço. Vale ressaltar que este software deve ser usado apenas em casos extremos, quando o serviço nega o serviço (ou seja, foi hackeado, danificado ou deixou de existir). Em seguida, o usuário assina a transação com suas chaves e transfere as moedas quando necessário.

Benefícios dos Serviços de Carteira 2 em 3


Vamos nos concentrar nas vantagens de tais serviços da Carteira virtual em mais detalhes. Essa é uma maneira segura de armazenar, porque o serviço não possui todo o conjunto de chaves necessário - ele possui apenas uma parte, o que não é suficiente para tomar posse dos fundos. Além disso, nem o serviço em si, nem o hacker que pode quebrá-lo têm acesso a fundos.

A conveniência dessa abordagem é que o usuário não precisa ter acesso seguro a esse serviço. Ele pode ter um dispositivo comum que pode ser infectado por vírus ou controlado por golpistas, e os dados podem ser comprometidos ou substituídos. Mas não é suficiente para um invasor possuir apenas esse dispositivo, porque apenas uma das duas assinaturas pode ser obtida dele.

Outra vantagem é que, se o serviço negar o serviço, o usuário não perde o acesso às suas moedas. Esses foram apenas alguns dos esquemas possíveis para o uso de endereços com várias assinaturas, suficientes para o namoro.

Precauções com várias assinaturas


E agora vale a pena falar sobre as precauções relacionadas à assinatura múltipla. No caso de 2-de-2, você precisa criar transações LockTime que podem transferir fundos bloqueados para um endereço específico. Isso ocorre quando a perda de chave ocorre.

Se você estiver usando o endereço de várias assinaturas 2-de-3, é muito importante que você mantenha as chaves em um local seguro. Em caso de perda de uma das três chaves, você deve transferir fundos imediatamente e não esperar até o momento em que duas das três chaves necessárias forem perdidas.

Como o Bitcoin Script funciona (por exemplo)


Para entender com mais detalhes como funciona a multi-assinatura, precisamos falar um pouco sobre como o Bitcoin Script funciona: como as regras para gastar moedas são definidas, como satisfazê-las, quais são as operações para descrever as regras, o que é o Bitcoin Script e como é executado.

Considere um exemplo de um caso simples de gastar moedas, em que há um endereço regular ao qual um hash de uma chave pública está associado, um script correspondente que define as condições de gasto e um script que satisfaz essas condições.

imagem

No diagrama à esquerda, vemos a pilha de dados e, à direita, o próprio script. As duas primeiras partes da linha de script são assinatura e a chave pública, o chamado script de desbloqueio, ou seja, o script indicado na entrada da transação que gasta moedas. Isso é seguido pelo conjunto de dados indicado na saída da transação - isso é chamado de script de bloqueio. Em outras palavras, a concatenação de dois scripts é apresentada aqui: um script que desbloqueia moedas e um script que bloqueia moedas. No caso em que a transação já será validada pelo nó da rede, esses dois scripts são combinados para verificar as condições de gasto de moedas. Assim, o script de desbloqueio vem primeiro, seguido pelo script de bloqueio.

Depois disso, é a execução seqüencial de um conjunto completo de operandos e dados. O ponto de execução é executado seqüencialmente para cada operando e cada parte dos dados. Se o ponto de execução atingir um dado, ele é empurrado para a pilha. Como podemos ver no diagrama, o cursor de execução de script na parte superior indica os dados da assinatura, que são então empurrados para a pilha.

Além disso, o cursor de execução aponta para a chave pública - ela também é empurrada para a pilha.

A terceira etapa é executar a operação de duplicação, o que significa copiar a parte superior da pilha e colocar esses dados novamente na pilha.

Depois disso, o hash é realizado usando a função hash Hash-160. Isso significa que a parte superior da pilha é dividida primeiro pelo algoritmo SHA-2, com um comprimento de 256 bits, e depois pela função RIPEMD-160, com um comprimento de 160 bits. A operação é exatamente a mesma do hash da chave pública e da obtenção do endereço. De fato, é isso.

imagem

Temos uma pilha, assinatura, chave pública e valor de hash da chave pública. O cursor de execução do script aponta para o endereço especificado na saída da transação, ou seja, o valor do hash da chave pública, que foi indicado quando as moedas foram enviadas para ela. Esse dado também entra na pilha.

A próxima operação é igual a verificação.

imagem

Os dois principais elementos da pilha são comparados. Se eles são exatamente o mesmo byte, esses dados são excluídos da pilha e acredita-se que a verificação foi bem-sucedida. Depois disso, a assinatura e a chave pública permanecem na pilha. Assim, a operação de assinatura de verificação pega esses dois operandos e verifica a assinatura com a chave pública. Se a assinatura estiver correta em relação à transação, que está atualmente em verificação, porque a assinatura cobre parte da transação, consequentemente, você precisará obter o valor do hash de determinados campos dessa transação. Isso é definido por um byte separado da estrutura do tipo de hash, ou seja, um valor de hash é obtido e alimentado na entrada de verificação de assinatura, juntamente com a própria assinatura e a chave pública. Se a verificação ocorrer corretamente, o resultado da verificação será verdadeiro, esse valor será colocado na pilha. Isso completa a execução do script. Os dados são passados ​​para a função de chamada e verificados lá. Se a pilha for verdadeira, a verificação desta entrada de transação estava correta. Se todas as entradas da transação foram verificadas corretamente, a transação inteira é considerada correta.

Aprendemos como o Bitcoin Script funciona para verificar as entradas e saídas simples de uma transação. Agora, falaremos sobre como a multisinatura é organizada e como ela funciona ao usar o Bitcoin Script

P2SH


O BIP16 foi proposto uma vez, que define um novo conceito no protocolo Bitcoin - o chamado pagamento ao script hash (P2SH). Esta é uma oportunidade para definir as regras para gastar moedas que não estão em um script aberto, onde você escreve operandos e alguns dados em uma linha, que são executados da maneira que examinamos, mas na forma de um valor de hash do script que você precisa, ou seja, uma soma de verificação desses operandos. Isso permitiu que a saída da transação estabelecesse condições grandes e complexas para gastar moedas, mas a saída em si permaneceu curta.

Para gastar essas moedas nessas condições, na entrada da transação, é necessário especificar os dados que satisfazem esse script e o script inteiro para provar que você sabe quais condições foram definidas ao enviar moedas, para que o valor de hash do script de origem corresponda aos endereços para os quais moedas foram enviadas. Em outras palavras, prove que você conhece as condições e as satisfaz.

Esta proposta para melhorar o Bitcoin foi aceita em 3 de janeiro de 2012. De fato, o aniversário do Bitcoin. Agora, ele é usado ativamente para implementar endereços com várias assinaturas.

Como o P2SH funciona?


Vejamos um exemplo de como isso funciona. Para criar uma transação, precisamos entender conceitos como Resgatar script, Bloquear script e Desbloquear script.

O Resgatar Script contém as chaves públicas às quais o endereço de multi-assinatura será vinculado. Nesse caso, estamos considerando uma combinação de teclas "2-de-5". Primeiro vem o valor 2, ou seja, indicamos que serão necessárias 2 assinaturas, que serão verificadas pelas chaves públicas correspondentes. Isso é seguido por chaves públicas, no nosso caso, existem 5. Em seguida, indicamos o valor 5, pois especificamos 5 chaves públicas e, quando os dados são lidos na ordem inversa, esse valor é necessário para entender quantas chaves você precisa ler. Depois disso, a multissassatura da verificação de operação é indicada.

Script de bloqueio - um script indicado na saída de uma transação que paga por um endereço com várias assinaturas.Aqui, a operação de obtenção de um valor de hash será executada, com a qual já nos familiarizamos em detalhes. A seguir, o valor do hash Resgatar Script, que ocupa 20 bytes. Depois disso, é executada uma operação para verificar se os dados correspondem ao valor do hash real.

Desbloquear script é uma concatenação de scripts na entrada da transação com scripts na saída da transação que pagou para esse endereço. Existem duas assinaturas necessárias para gastar moedas, e o Script Resgatar completo, que posteriormente será hash e verificado quanto à conformidade com o endereço para o qual as moedas foram enviadas. Depois disso, o script será executado por completo, inclusive para verificar a assinatura múltipla.

É importante que haja restrições no tamanho máximo para cada um dos scripts listados e isso seja 520 bytes. Esse número foi calculado com base no fato de que Unlocking Script pode caber no máximo 15 assinaturas e 15 chaves públicas correspondentes, além de várias operações para verificar esses valores. Foi assim que um determinado número foi obtido, que, ao arredondar, deu 520 bytes. Deve-se dizer que esse número foi obtido com a expectativa de que o endereço de multi-assinatura do tipo “15 de 15” seja um limite suficientemente razoável para uso prático. Resgatar script ao usar um grande número de assinaturas se torna muito grande em volume. O usuário que usa o endereço de várias assinaturas ou outros endereços P2SH, ao gastar moedas com eles, possui transações muito grandes. Isso significaque, para confirmar suas transações, ele terá que pagar grandes comissões.

Benefícios do P2SH


Consideraremos separadamente as vantagens do P2SH. O primeiro é que esses endereços podem ser codificados na forma familiar usando o Base58, cujo comprimento é de 34 caracteres. De acordo com o BIP13, que define as regras para definir o byte da versão para os endereços Bitcoin codificados pelo Base58Check, o endereço começará com um triplo, ou seja, é inserido um byte de versão específico.

Como exemplo, você pode ver o endereço P2SH.

3P14159f73E4gFr7JterCCQh9QjiTjiZrG

Este pode não ser um endereço de multi-assinatura. O Resgatar script pode descrever não apenas um endereço com várias assinaturas, mas também outras regras complexas para gastar moedas.

Acrescentamos que essa não é a única maneira de organizar várias assinaturas no Bitcoin. Não é possível usar o P2SH, mas na saída que pagará pelo endereço de multisassinatura, não pelo valor do hash do script, mas pelo próprio script, ou seja, listar todas as chaves públicas diretamente na saída e definir a operação como multisignatura. No entanto, quando você envia moedas para esse endereço, divulga imediatamente as chaves públicas, pois elas serão de domínio público e, nesse momento, as moedas serão armazenadas nelas.

E outra desvantagem é que o remetente de moedas no endereço de várias assinaturas possui uma grande transação, pela qual você terá que pagar uma grande comissão. É improvável que o remetente queira pagar em excesso pelo fato de que o destinatário deseja usar a multi-assinatura. O P2SH permite transferir custos de comissão para o destinatário. Se o destinatário quiser aceitar moedas no endereço de várias assinaturas, ele próprio pagará grandes transações, o que é uma abordagem mais justa.

Acrescentamos que o P2SH permite implementar diferentes combinações dessa multisassinatura (2-de-2, 2-de-3 e outras).
Esquematicamente, considere enviar para um endereço com várias assinaturas.

imagem

Suponha que Alice queira pagar a Bob, que usa apenas endereços com várias assinaturas. Para fazer isso, Bob localmente em seu computador (a propósito, pode haver algum tipo de organização em vez de Bob) gera várias chaves privadas, recebe delas as chaves públicas correspondentes, que são concatenadas de uma certa maneira. Na maioria das vezes, as chaves públicas são primeiro codificadas com Base58Check e, em seguida, são classificadas em ordem alfabética e concatenadas.

Essa abordagem compensa quando é necessário o recálculo de chaves públicas de chaves pessoais. Eles precisam ser concatenados exatamente na mesma ordem, porque o próximo passo é criar um script de resgate e hash. Se exatamente as mesmas chaves entrarem no Resgatar Script, mas em uma ordem diferente, obteremos um valor de hash diferente e um endereço diferente. Isso implicará certos mal-entendidos. Portanto, antes da concatenação, as chaves públicas devem ser classificadas de acordo com alguma regra. E na maioria das vezes eles usam a classificação alfabética no sistema de números Base58.

Então, Bob calculou o valor do hash em Resgatar script. Ele pode representá-lo como 20 bytes e enviá-lo para Alice, dizendo que este é um endereço de multi-assinatura usando P2SH. No entanto, Bob pode codificá-lo com um byte de versão, como um endereço comum, e apenas enviá-lo para Alice. Alice entenderá, a partir do byte da versão, que este é um endereço com várias assinaturas, comporá uma transação e preencherá a saída de acordo para que Bob receba suas moedas. Em seguida, propaga a transação para a rede. Eles estão aguardando confirmação e Bob aceita o pagamento de Alice. O Bob de substituição, por exemplo, fornece um serviço ou transfere mercadorias.

Chega um momento em que Bob quer gastar essas moedas. Deve-se entender que o Script Resgatar completo não foi divulgado publicamente enquanto as moedas estavam em seu endereço de várias assinaturas. E até Alice não viu exatamente quais chaves públicas foram usadas por Bob, quantas delas havia, etc. Ela não sabe por que regras esse endereço P2SH é composto, endereço com várias assinaturas ou não, etc. Consequentemente, ataques a eletrônicos Uma assinatura digital (em uma curva elíptica) ainda não é possível.

Digamos que Bob queira enviar um pagamento para Eve.

imagem

Ela gera um novo endereço e o entrega a Bob. Ele cria uma transação em branco na entrada da qual indica a transação na qual recebeu moedas de Alice, e a saída é o endereço de Eva. Agora ele deve fornecer evidências de propriedade das moedas que gasta. Para fazer isso, ele pega duas de suas chaves privadas (mencionamos acima que seu endereço de multi-assinatura implica a opção "2 de 5"), a partir da qual ele calcula duas assinaturas para esta transação. Em seguida, ele pega o Script de resgate completo e o adiciona à entrada da transação.

Observe que esse script de resgate deve ser armazenado inteiramente no computador de Bob ou ele deve se lembrar da ordem em que ele usou chaves públicas para compor esse script. Se ele aplicou certas regras de classificação, ele deve se lembrar delas. Ele também deve se lembrar que um endereço com várias assinaturas está vinculado a determinadas chaves privadas. Sem esse conhecimento, Bob não saberia em qual das suas chaves privadas operar e em que ordem elas deveriam ser usadas para obter o endereço desejado.

Portanto, ele tem duas assinaturas e um script Resgatar completo. A transação é considerada correta e Bob a distribui na rede e aguarda confirmação. Esta é a principal coisa sobre gastar com um endereço de várias assinaturas.

Perguntas


Agora chegamos às suas perguntas.

- É possível executar a mesma carteira simultaneamente em três computadores diferentes e iniciar a sincronização?

Provavelmente, estamos falando de algum tipo de nó de rede: um nó SPV ou um nó completo. Vários computadores diferentes e a mesma carteira foram usados. E uma carteira significa chaves privadas. Existem vários nós completos que implementam a funcionalidade da carteira. Nesses nós, inserimos as mesmas chaves privadas e iniciamos a sincronização. Provavelmente, com a sincronização completa com a rede, veremos o mesmo equilíbrio em todas as carteiras que usam seu próprio nó. Se você vir alterações em um nó, depois da sincronização com a rede, verá exatamente as mesmas alterações em todos os outros nós. A transação não é mantida em segredo, é distribuída a todos os nós que a verificam e exibem as alterações correspondentes, se tratarem de seus endereços. De fato, sim, você pode usar as mesmas chaves em vários nós,mas todas as transações também serão sincronizadas automaticamente. Bitcoins certamente não dobrará com isso e, além disso, não triplicará.

— P2SH Segregated Witness?

A Testemunha Segregada é uma estrutura de transação em que a evidência de propriedade das moedas é transferida para uma estrutura separada, elas não se enquadram na blockchain, mas ao validar transações, elas são distribuídas juntas, ou seja, todos os validadores verificam a correção das transações em uma estrutura separada com prova. Depois que a transação é confirmada, a evidência não é salva, pois não faz sentido. Também existem vantagens na construção dessas cadeias de transações nas quais certas moedas sem confirmação real na transação atual já são gastas na próxima construída com base em suas bases, mas elas não são distribuídas para a rede. Assim, formam-se cadeias de transações que não divulgam evidências de propriedade de moedas. Isso facilita a transferência de dados e adiciona privacidade. Um tipo diferente de endereço foi usado para a Testemunha Segregada,contém operandos ligeiramente diferentes. É possível enviar moedas armazenadas em endereços regulares, incluindo endereços P2SH, para endereços P2SH de testemunha.

- Os endereços dos três primeiros começam na Rede de iluminação?

O BIP13 define as regras pelas quais um byte de versão é selecionado para endereços Bitcoin na rede de teste, outras moedas, etc. Sim, o Lighting Network usa endereços de várias assinaturas, que também usam o método P2SH para definir condições.

- Por que é impossível personalizar uma carteira, ou seja, amarrá-la a uma pessoa específica?
Bitcoin como protocolo de um sistema de pagamento não requer identificação da identidade de uma carteira, porque funciona de acordo com as leis da matemática, e a matemática não permite descrever uma pessoa como pessoa. Além disso, este não é um pré-requisito para verificar transações. Há assinatura digital suficiente. Quem pode gerar essas assinaturas é o proprietário - isso não se aplica ao protocolo Bitcoin. Portanto, uma assinatura pode pertencer a uma pessoa, a um grupo de várias pessoas, a um robô etc.
Quanto à personalização, se você estabelecer uma conexão entre um endereço específico e uma pessoa específica, violará a privacidade e poderá desarmar parte de uma rede com um certo grau de probabilidade. Em geral, o banco de dados está aberto, mas não há dados de identidade.

— , 70-80%, ?

Está bem escrito que esta é uma moeda, não uma criptomoeda, porque a criptomoeda funciona com os mesmos princípios do Bitcoin, ou seja, todos os processos são maximamente descentralizados: emissão, verificação de transações, armazenamento de dados, aceitação de alterações etc. Mas existem essas moedas , as chamaremos de moedas digitais, nas quais nem todos os processos listados são descentralizados. Uma das opções pode ser uma questão centralizada, ou seja, não existe mineração, mineração, ou seja, não há solução para um problema complexo. De acordo com esse princípio, Ripple, Stellar, moeda digital NXT e Cardano funcionam. Outros princípios de distribuição de moedas entre os usuários foram aplicados lá, por exemplo, por meio de OICs, prova de identidade, etc. Como nem todos os processos podem ser descentralizados e independentes, você não pode nomear nenhuma moeda digital.criptomoeda . Além disso, a questão da confiança em uma moeda específica é de natureza pessoal. Você decide a quantidade dessa confiança. É necessário levar em consideração os objetivos para os quais a moeda é usada, bem como seus riscos e limitações.

Source: https://habr.com/ru/post/pt415757/


All Articles