Glossário / Referência do desenvolvedor
PP expires
- O que é PP expires?
- PP expires era o carimbo de data e hora Unix opcional na mensagem PaymentDetails do BIP70 que dizia à carteira para deixar de aceitar a solicitação depois que aquele momento passasse.
Especificação no BIP-70.
Toda fatura de bitcoin a preço fixo precisa de um prazo, porque o preço se move enquanto o cliente decide. O BIP70 deu aos comerciantes um campo para isso, um carimbo de data e hora Unix de 64 bits, e o deixou como opcional. O hábito sobreviveu ao protocolo: a contagem regressiva em uma tela de compra instantânea ou em um caixa eletrônico de bitcoin faz exatamente a mesma função.
Como funciona
Status: histórico. expires era o campo 4 da mensagem PaymentDetails, e o Bitcoin Core tornou o BIP70 obsoleto na versão 0.19 antes de excluí-lo no 0.20.0, em 3 de junho de 2020. Nada implementa o campo hoje.
Dois relógios ficavam um ao lado do outro na mensagem. time era obrigatório e registrava quando o comerciante montou a solicitação; expires era opcional e registrava quando ela deveria deixar de ser válida. Ambos contavam segundos desde 1º de janeiro de 1970, e ambos eram inteiros sem sinal de 64 bits, o que evitava discretamente a barreira de 19 de janeiro de 2038 com que esbarra um contador com sinal de 32 bits.
A aplicação do prazo dependia inteiramente do software de quem pagava. A carteira comparava o carimbo de data e hora com o relógio do próprio sistema e se recusava a montar uma transação depois que o prazo passava, o que significa que um dispositivo com o relógio errado ou pagava uma fatura morta ou rejeitava uma fatura válida. Nada nesse campo tocava a blockchain. Uma transação que paga uma solicitação expirada é tão válida quanto qualquer outra, e se o comerciante a credita, a reembolsa ou simplesmente a mantém nunca foi uma questão do protocolo.
Prazos curtos traziam uma armadilha específica. O Bitcoin tem como alvo um bloco a cada dez minutos em média, então uma expiração de cinco minutos podia vencer antes de existir uma única confirmação, deixando um cliente que havia realmente pago e uma fatura que o software do comerciante já havia dado por perdida.
Onde você vê isso
Cotações a preço fixo estão em toda parte na compra de bitcoin, e cada uma delas tem uma expiração por trás.
A tela de compra instantânea de uma corretora mostra uma cotação ao lado de uma contagem regressiva, geralmente entre alguns segundos e um par de minutos. Deixe-a acabar e a cotação é refeita ao preço atual. Um caixa eletrônico de bitcoin faz a mesma coisa em um prazo mais longo, e isso é parte do motivo de seu spread ser maior: o operador absorve o risco de preço por todo o tempo que você passa na máquina.
A Lightning tornou o prazo obrigatório em vez de opcional. Uma fatura BOLT11 traz um campo x para a expiração, e quando ele está ausente o padrão é 3600 segundos, uma hora. Pague depois disso e um nó bem comportado rejeita o pagamento em vez de deixá-lo no limbo.
O conselho prático para quem paga é pouco glamouroso: quando há um prazo, não economize na taxa. Pagar de menos para economizar algumas centenas de satoshis é a forma mais comum de perder um prazo, e uma transação que chega tarde é justamente o caso que vira um chamado de suporte em vez de um pedido.
PP expires vs locktime
Uma expiração era uma solicitação do comerciante que o software da carteira escolhia respeitar; o locktime é uma regra que todo nó da rede aplica. Os dois correm em direções opostas, além de terem forças diferentes. expires marcava um momento a partir do qual um pagamento não deveria mais ser feito, e nenhum minerador jamais o verificou. O locktime, escrito na própria transação, indica uma altura de bloco ou um momento antes do qual a transação não pode ser incluída em bloco algum. Um fecha uma janela; o outro abre uma.