Ir para conteúdo principal

O que é uma carteira de software?

Conceito de Carteira de Software

Uma carteira de software usa um número aleatório para gerar uma chave privada mestre.

Em seguida, um algoritmo determinístico e irreversível gera um número arbitrário de sub-chaves privadas com base na chave privada mestre.

Por que precisamos de um algoritmo "determinístico e irreversível"? Porque "determinístico" garante que todas as sub-chaves privadas possam ser geradas a partir de uma chave privada mestre, enquanto "irreversível" garante que a chave privada mestre não possa ser obtida a partir de uma sub-chave privada.

A razão pela qual é chamada de carteira determinística hierárquica é que a estrutura de derivação de uma chave privada é uma estrutura em árvore, onde uma chave pai pode derivar uma série de chaves filhas, e cada chave filha pode derivar uma série de chaves netas, e assim por diante, ad infinitum.

Quando criamos pela primeira vez uma carteira HD ou fazemos o backup de uma carteira, uma palavra auxiliar é gerada. A palavra auxiliar é uma sequência de palavras em inglês, e essa sequência cria a semente, que por sua vez cria todas as chaves privadas. A sequência de palavras é também o backup da carteira, que pode ser restaurado. E a semente corresponde ao número aleatório de todas as carteiras determinísticas.

A vantagem das carteiras HD é que apenas a chave pública mestre é necessária para gerar qualquer número de sub-chaves públicas. Em outras palavras, novos endereços (públicos) podem ser gerados com base na chave pública mestre sem a intervenção da chave privada (mestre e sub-chaves privadas), e esses endereços podem, de facto, ser controlados pela chave privada mestre.

Existem vantagens e desvantagens; quando expomos a palavra auxiliar, isso equivale a entregar todas as chaves privadas, e a segurança dos ativos digitais que você possui é zero.

Por que você precisa de tantas chaves privadas

A razão pela qual um usuário precisa de tantas chaves privadas é ilustrada pelo mecanismo de troco de uma transação Bitcoin.

Uma transação Bitcoin é uma estrutura de dados que contém um valor de entrada e um valor de saída. Essa estrutura de dados incorpora informações sobre o código que transfere um valor do seu ponto inicial (o valor de entrada) para o endereço de destino (o valor de saída).

Quando se trata de entradas e saídas de transações Bitcoin, é importante entender o termo UTXO (Unspent Transaction Output), que é a unidade básica de uma transação Bitcoin e corresponde a uma saída de transação não gasta. Um único bitcoin usado pode ser espalhado por centenas de transações e centenas de blocos na forma de UTXOs. Na realidade, não existe um lugar onde se armazene o endereço ou o saldo de uma moeda; existe apenas UTXOs descentralizados que são bloqueados pelo proprietário.

Um UTXO pode ter qualquer valor, mas assim que é criado, é indivisível, como uma moeda que não pode ser partida ao meio. Se um UTXO for maior do que a necessidade de uma transação, ele ainda será consumido por completo, e serão criadas saídas correspondentes à transação, incluindo o troco.

Aqui está um exemplo do que isso significa. Se você tem um UTXO de 20 rupias e quer pagar 1 rupia, então sua transação deve consumir o UTXO inteiro de 20 rupias e criar duas saídas: uma que paga 1 rupia ao destinatário e outra que devolve 19 rupias de troco para sua carteira. Nesse caso, a maioria das transações tende a gerar troco.

Surge a questão de saber se o troco deve ser retornado ao endereço original ou a um novo endereço. Quando Satoshi Nakamoto projetou o Bitcoin, ele usou um mecanismo de retorno zero que cria um novo endereço para cada transação. O benefício desse design é proteger a privacidade do usuário da transação e evitar alguns riscos de segurança.

Na vida real, é como abrir várias contas bancárias em bancos diferentes com nomes e documentos de identificação distintos. Mesmo que alguém conheça o fluxo de dinheiro em cada conta, não consegue rastrear o fluxo até o verdadeiro proprietário da moeda digital, o que é a chamada anonimidade do Bitcoin.

É por isso que você deve entender por que um usuário de carteira precisa de tantas chaves privadas: porque chaves públicas e privadas sempre aparecem em pares, cada transação pode gerar um endereço de troco, e o armazenamento e backup das chaves privadas correspondentes a esses endereços tornou-se um problema técnico das transações digitais. Uma carteira HD, a partir de uma chave pública mestre, pode gerar qualquer número de sub-chaves públicas, o que resolve em grande parte a dificuldade de uso das carteiras digitais.

Isto respondeu à sua pergunta?