Um satoshi, abreviado sat, é uma das 100000000 partes iguais de um bitcoin: 1 sat = 0,00000001 BTC. É a menor unidade de valor registrada nas transações da camada base do Bitcoin. Não é outra criptomoeda. A mesma quantia pode ser expressa em BTC ou satoshis inteiros, assim como um comprimento em metros ou centímetros.
Anna precisa pagar 25000 sat, mas sua carteira mostra 0,00025 BTC. Não são moedas diferentes nem uma cotação melhor: são duas formas de escrever a mesma quantia. Vale a relação 1 BTC = 100000000 sat e, portanto, 0,001 BTC = 100000 sat. Para pequenos valores do dia a dia, sats costumam ser mais fáceis de ler do que uma fila de zeros depois da vírgula. A cotação do bitcoin em reais ou dólares pode mudar; a conversão entre BTC e sat permanece igual. [1] [2]
Quando Anna seleciona sats nas configurações, seu bitcoin não se move e nenhuma moeda nova aparece. Mudam apenas o número e a unidade na tela. sat é a abreviação da unidade; sats é usado normalmente no plural. O nome homenageia Satoshi Nakamoto, criador do Bitcoin, e não um ativo a ser comprado separadamente. Uma unidade menor facilita expressar pequenas quantias. Ela não garante poder de compra estável nem lucro. [2]
Suponha que a carteira de Anna use um recebimento anterior de 50000 sat. Ela envia 25000 sat ao destinatário, devolve 24000 sat a Anna e deixa 1000 sat como taxa para o minerador que incluir a transação em um bloco. A conta fecha: 50000 = 25000 + 24000 + 1000. Anna gastou, portanto, 26000 sat com o pagamento, não o recebimento inteiro utilizado. É um exemplo, não uma taxa usual ou recomendada. Antes de confirmar, leia separadamente o valor do destinatário e a taxa. [8]
A carteira pode mostrar, além da taxa, uma Fee Rate em sat/vB. É a quantidade de satoshis por byte virtual, unidade usada para medir o tamanho da transação para fins de taxas. Uma transação de 100 vB a 10 sat/vB tem taxa de 1000 sat. Essa tarifa não é uma porcentagem do dinheiro enviado. Dois pagamentos do mesmo valor podem ter tamanhos diferentes, por exemplo quando um reúne mais recebimentos anteriores. Confira o resultado no resumo final da carteira. [7] [8]
Um número sem unidade não basta. Digitar 25000 em um campo de sats significa algo muito diferente de digitá-lo em um campo de BTC. Depois de ler um QR de pagamento, confira endereço, rede, valor e taxa antes de assinar. A assinatura é uma autorização digital para gastar: a carteira a cria usando uma chave privada, um valor secreto que permite controlar os bitcoins. Segundo o BIP 321, a especificação de links de pagamento, o parâmetro amount de um link de pagamento usa BTC decimais com ponto: amount=0.00025 significa 25000 sat. Isso continua valendo quando a carteira mostra sats ou usa uma vírgula decimal local. Não é preciso editar o link manualmente; o importante é o resultado correto na tela de confirmação. [3]
Não há pequenos arquivos na rede representando satoshis individuais. Há saídas de transações com um valor e condições para gastá-lo. Uma saída ainda não gasta é um UTXO. A carteira pode ter vários desses recebimentos e somar seus valores em um saldo. Ao pagar, consome algumas saídas por inteiro e cria novas para o destinatário e para o eventual troco. Satoshi é a unidade usada para contar esses valores, não um objeto separado dentro da carteira. [2]
A precisão de uma quantia e o tamanho prático de um pagamento são coisas diferentes. Uma saída pode conter 1 sat. Os nós, computadores que verificam e retransmitem transações, podem, porém, recusar a retransmissão de uma transação que crie uma saída pequena demais. Dust diz respeito às regras de propagação do nó e à estimativa do custo futuro para gastar a saída. O limite depende também do tipo de saída e da configuração dessas regras. Não é uma regra universal impondo o mesmo mínimo a todo pagamento válido. Mesmo uma pequena saída já incluída em um bloco pode custar mais para gastar do que seu valor. [7]
Lightning Network usa canais de pagamento, nos quais os participantes atualizam a divisão dos fundos comprometidos no canal. Assim, não é preciso registrar cada pagamento separadamente em um bloco Bitcoin. Seus cálculos internos também usam millisatoshi, abreviado msat: 1 sat = 1000 msat. Isso é útil, por exemplo, para cobrar taxas com mais precisão. Não significa criar na camada base uma saída com fração de satoshi. Ao fechar canais, as regras do Lightning convertem os valores em satoshis inteiros e omitem algumas saídas pequenas demais. Contabilidade interna mais precisa e liquidação final são coisas diferentes. [6] [5]
Dividir um BTC em cem milhões de partes não aumenta a quantidade de bitcoin, assim como converter metros em centímetros não alonga uma mesa. Novos bitcoins surgem pelas regras do subsídio de bloco, a nova emissão associada a um bloco. No Halving, esse subsídio cai pela metade em satoshis inteiros; as frações são descartadas até que, num futuro distante, o resultado seja zero. A constante técnica MAX_MONEY serve como limite de verificação de valores. Ela não significa, por si só, que exatamente 21 milhões de BTC serão emitidos e estarão disponíveis para gastar. Chaves perdidas e algumas recompensas inutilizáveis ou não reivindicadas também reduzem a disponibilidade. [1] [8]
Bitcoin Core usa CAmount, um tipo inteiro de 64 bits, para valores, e a constante COIN com valor 100000000. Assim, 0,00025 BTC é tratado internamente como o inteiro 25000. Isso ajuda a evitar imprecisões da aritmética binária comum de ponto flutuante, ou floating point. Para o usuário, a regra é simples: verificar a unidade e o valor exato. Se você desenvolve uma calculadora ou processa pagamentos em software, use satoshis inteiros ou aritmética decimal exata, em vez de arredondar depois um resultado aproximado. [1]
Para ter uma visão mais completa, leia este verbete junto com Bitcoin, 21 Million, Unit of Account, Lightning Network, UTXO, Transaction Fees. Também há referências a este verbete em Bitcoin Pizza Day, Chaumian eCash, Blind Signature, OP_CHECKTEMPLATEVERIFY.