Pular para o conteúdo
buybitcoinsmart

Glossário / Privacidade e segurança

Payjoin

Outros nomes: P2EP, Pay-to-endpoint.

O que é o payjoin?
Payjoin é um pagamento em que a pessoa que recebe os bitcoins acrescenta discretamente uma de suas próprias entradas à sua transação, de modo que o valor on-chain não corresponde mais ao valor que você realmente pagou.

Especificação no BIP-78.

Os dois lados contribuem com entradas, o que quebra a regra que os analistas usam para agrupar endereços em carteiras. Nicolas Dorier especificou isso como BIP78 em maio de 2019, e está implantado, não é teórico: o BTCPay Server lançou o suporte em 2020. Para quem paga, a transação custa um pouco mais em taxas e parece completamente comum.

Como funciona

O protocolo payjoin é uma conversa curta que acontece entre o momento em que você toca em enviar e o momento em que a transação é transmitida.

Sua carteira monta o pagamento como um PSBT não assinado, exatamente como faria em um gasto normal, e o envia a um endpoint que o recebedor anunciou na solicitação de pagamento. O recebedor acrescenta uma de suas próprias saídas não gastas como segunda entrada, aumenta sua própria saída nesse mesmo valor para continuar recebendo o pagamento correto e devolve o PSBT modificado. Sua carteira verifica que o destino e o valor não mudaram, assina e transmite.

O que chega à blockchain tem duas entradas pertencentes a duas pessoas diferentes. Um analista que aplique a regra padrão de agrupamento vai unir dois desconhecidos em uma só carteira, uma conclusão falsa registrada de forma permanente em seu conjunto de dados. O valor do pagamento também desaparece: nenhuma saída é igual ao que você pagou, porque a saída do recebedor é o pagamento mais a entrada que ele mesmo contribuiu. Um observador não consegue mais ler a fatura a partir da transação.

O BIP78 limita o custo para você. O parâmetro maxadditionalfeecontribution indica quantos satoshis você está disposto a pagar pela entrada extra que o recebedor acrescenta, de modo que um recebedor não pode inflar sua taxa sem que você saiba. Se algo der errado, o endpoint está inacessível, a resposta está malformada, os valores não conferem, sua carteira recorre a transmitir a transação original. Um payjoin que falha continua sendo um pagamento concluído, e é por isso que ele pode ser ativado por padrão sem quebrar nada.

Os recebedores ganham um segundo benefício que nada tem a ver com privacidade. Cada payjoin permite que eles incorporem um de seus próprios bitcoins a uma transação que outra pessoa paga em grande parte, o que é uma arrumação gratuita diante de uma carteira cheia de saídas pequenas.

Onde você encontra isso

O payjoin vive do lado do comerciante, então a maioria das pessoas o encontra sem perceber.

O BTCPay Server foi a primeira implementação em produção e oferece payjoin nas faturas, e é por isso que páginas de doação e checkouts auto-hospedados são onde ele mais aparece. A Wasabi e a Sparrow podem enviar para um endpoint de payjoin a partir do desktop.

A fraqueza do projeto original era que o recebedor tinha que rodar um servidor público e estar online no momento do pagamento, o que o limitava a comerciantes. O BIP77, "Async Payjoin", de Dan Gould e Yuval Kogman, criado em agosto de 2023 e ainda em rascunho, substitui o endpoint direto por um diretório de armazenamento e encaminhamento acessado por Oblivious HTTP, de modo que duas carteiras de celular podem concluir um payjoin sem que nenhuma das duas esteja online ao mesmo tempo. A Bull Bitcoin e a Cake Wallet lançaram essa versão em aplicativos móveis, o que marca a primeira vez que o payjoin fica disponível para pagamentos comuns entre pessoas.

O argumento mais forte para usá-lo é um que você nunca vê pessoalmente. Cada payjoin no conjunto de dados torna a regra de propriedade comum das entradas menos confiável para todos, incluindo pessoas que nunca fizeram um. Técnicas de privacidade que ajudam apenas quem as usa são raras; esta degrada a vigilância de toda a rede a cada transação.

Não confundir com

Perguntas frequentes

Um payjoin custa mais para quem envia?

Um pouco. A entrada extra do recebedor deixa a transação maior, e o BIP78 permite que sua carteira limite esse custo com o parâmetro maxadditionalfeecontribution, então o aumento costuma ser de algumas centenas de satoshis, e não algo perceptível.

O que acontece se o endpoint de payjoin do recebedor estiver fora do ar?

Sua carteira transmite a transação original. O plano alternativo faz parte do protocolo, então um payjoin que falha continua sendo um pagamento concluído e o destinatário recebe exatamente o que você enviou.

Termos relacionados

Mais em Privacidade e segurança

Ler esta página em inglês