Otimização da Carteira

Transação de Entrada e Transações de Fusão

Uma pergunta comum que recebemos dos usuários é saber qual é a quantidade máxima de MarketCash (MKT) que eles podem enviar, geralmente porque eles enviaram uma quantia (relativamente) pequena e receberam um erro “A transação é muito grande”.

A questão parece bem simples, mas a resposta não é tão simples assim!

Para começar, vamos falar sobre do que uma transação é feita.

Transações de Entrada/Saída

Quando você envia uma transação, digamos, 1000 MKT, pode pensar que é tão simples quanto tirar 1000 MKT do seu saldo, criptografá-lo com as chaves públicas do destinatário e enviá-lo aos mineradores para ser incluído em um bloco.
No entanto, os seus 1000 MKT, é na verdade, composto de muitas “Entradas” menores. Essas entradas vêm de transações anteriores que você recebeu.

Para demonstrar o que quero dizer com isso, vamos começar analisando uma transação com base em moedas (coinbase). Uma transação baseada em moedas é um tipo especial de transação, onde não há remetente. Estas são as recompensas que um minerador recebe por encontrar um bloco.

Bloco de altura 255615

Aqui está a transação que o minerador do bloco 255.615 encontrou. Como você pode ver, eles receberam 24 MKT, mas, se olharmos para a seção de saídas, eles não receberam tudo em um só bloco.

A transação foi dividida em várias “Saídas” de tamanho padrão. O motivo para fazer isso é vincular-se aos elementos de privacidade da MarketCash, assim como outras moedas do CryptoNote. Quando enviamos uma transação, ocultamos um de nossas entradas ao lado de muitas outras entradas. A rede pode verificar se possuímos uma das entradas, mas não qual delas. Isso permite que o remetente de uma transação seja oculto.

Para que isso funcione, precisamos que haja outras entradas para selecionar. Se simplesmente enviássemos o valor exato em cada transação, se você quisesse enviar uma quantia que nunca havia sido enviada antes, por exemplo, 1917 MKT, não seria capaz de obscurecer que você era o remetente.

Para garantir que sempre tenhamos entradas suficientes para combinar, usamos alguns valores definidos e construímos nossas transações com base nesses blocos menores.

Mas, o que importa se a minha transação tiver muitas entradas?

Bem, quando enviamos uma transação, temos que incluir cada uma das nossas entradas de transações, juntamente com as entradas de chamariz de outros usuários, para que os recursos de privacidade funcionem. Eles precisam estar disponíveis para que possamos verificar se um usuário não está gastando fundos que não possui ou se está tentando gastar uma entrada que já foi usada.

Para usar um exemplo do mundo real, se você tentar pagar por um carro em centavos, você precisaria de um barril/balde grande para manter todas as moedas dentro. Da mesma forma, ao enviar uma transação, cada entrada ocupa um pouco de espaço na blockchain. A maior transação possível é de aproximadamente 125 KB e, se sua transação for maior do que isso, sua carteira rejeitará. Isso impede que sua transação seja grande demais para um bloco e nunca seja minerada.

Otimização / Transações de Fusão

Agora vamos falar um pouco sobre transações de fusão. Se você nunca ouviu falar disso antes, tudo bem, eles são bem simples.
Lembre-se que quando enviamos uma transação, desde que o valor total das entradas/saídas corresponda, a quantidade de entradas/saídas que temos não importa?

Uma transação de fusão é um tipo especial de transação, na qual você está enviando uma transação para você mesmo. Colocamos todas as nossas pequenas entradas de um lado e as combinamos em algumas poucas saídas grandes.

Ativando Transações de Fusão

Nosso primeiro passo é identificar a carteira que está utilizando, note que desde a data desta postagem a forma mais simples é através da Carteira Gráfica (Wallet GUI).

Acesse sua carteira GUI, na barra de menu clique sobre “Settings” e em seguida “Preferences“.

Após ter feito o passo anterior provavelmente deve ter aberto uma janela de configurações, agora clique no menu “Wallet optimization“.

Pronto, agora para ativar você deve marcar a caixa “Run background wallet optimization“.

Em “Optimization target” você pode configurar o seu alvo de otimização, abaixo da barra de slider é possível notar a quantidade de saídas para o seu alvo de otimização.

Dividindo nossas transações

Se você realizou transações de fusão e ainda não consegue enviar quantias muito grandes, infelizmente, a melhor opção que você pode fazer é dividir sua transação em várias transações menores.

Evitando o problema

Agora, você pode estar se perguntando por que você tem tantas entradas pequenos. A resposta simples é que você recebeu muitas transações, ou mais importante, muitas transações pequenas. Se você receber 10 MKT de cada vez, então o maior valor de uma única entrada poderia ser 10 MKT. Se você quiser enviar 1.000 MKT, precisará incluir 100 entradas, o que resulta em uma transação bastante grande.

Se sua pool de mineração tiver a opção, você poderá aumentar seu limite de pagamento. Isso resultará em menos entradas em sua carteira, cada uma com uma quantidade maior. 1 pagamento de 10 MKT em vez de 5 pagamentos de 2 MKT pode tornar suas transações em torno de 5 vezes menores!

Você também pode querer considerar o uso de uma pool menor, que, por demorar mais tempo para encontrar blocos, o paga em partes maiores.

Esse é um dos motivos pelos quais você pode encontrar esse problema na MarketCash e algumas outras moedas CryptoNote, mas não em outras moedas, como Monero ou Bitcoin. Os limites de pagamento para essas moedas nas pools de mineração são geralmente muito altos, portanto, você tem muito poucas transações recebidas. Vale a pena notar que a maioria das criptomoedas usa esse método de incluir pagamentos passados em seus pagamentos e retornar uma mudança extra como uma transação para você mesmo.

Caso tenha gostado do post não deixe de curtir, comentar e compartilhar!