140 / 736P2EP

Payjoin

Um pagamento construído junto com o destinatário

Em um pagamento comum, a carteira seleciona moedas do remetente e envia parte do valor ao destinatário. Payjoin convida o outro lado a participar da preparação: o destinatário adiciona moedas próprias à mesma transação. O pagamento continua chegando, mas quem observa apenas a cadeia pública tem pistas menos confiáveis sobre quem possuía cada entrada.

Payjoin permite preparar um pagamento Bitcoin junto com o destinatário. As duas partes colocam recursos próprios em uma transação, mas cada uma mantém suas chaves privadas e autoriza o gasto do seu dinheiro. Isso dificulta que um observador da cadeia pública deduza a quem pertenciam as moedas utilizadas. Não cria outra moeda nem garante anonimato.

Alice paga a Bob. Uma carteira é um aplicativo ou dispositivo para receber e enviar bitcoins. Sua carteira não trabalha com um único saldo bancário: ela seleciona saídas ainda não gastas de transações anteriores, chamadas UTXO. Cada saída contém um valor e condições para gastá-lo. As entradas da nova transação apontam para esses UTXO, e as novas saídas destinam valores a Bob e, se necessário, devolvem troco a Alice. Em um pagamento comum, só Alice fornece os fundos. Com Payjoin, Bob participa adicionando um UTXO próprio. Ele continua recebendo o pagamento combinado, mas também movimenta dinheiro que já possuía. Ambas as carteiras precisam conferir o resultado. Depois, cada parte autoriza o gasto de suas entradas com uma assinatura digital; não enviam chaves privadas uma à outra. A chave privada é um valor numérico secreto usado para criar essa assinatura. [1] [3] [8] [6]

Um analista costuma supor que entradas gastas juntas pertencem à mesma carteira. Essa regra prática é chamada common-input-ownership heuristic. Não é uma regra do Bitcoin nem prova de identidade, apenas uma inferência baseada no comportamento habitual. Payjoin cria transações válidas nas quais essa inferência falha. O observador não pode atribuir automaticamente todas as entradas a Alice, embora outras informações ainda possam ajudá-lo. [1] [3]

Os valores serão expressos em sats, as menores unidades de bitcoin. Deixemos a taxa de lado por um momento. Alice tem uma entrada de 100 000 sats e paga 20 000 sats a Bob; 80 000 sats voltam como troco. Bob adiciona uma entrada própria de 50 000 sats e sua saída sobe para 70 000 sats. Entradas e saídas continuam somando 150 000 sats cada conjunto. Bob não recebeu um presente extra: já possuía 50 000 sats e só ganhou os 20 000 sats combinados. Uma transação real, é claro, também precisa pagar a taxa. [1] [6]

Para cooperar, as carteiras precisam de um procedimento e um formato de mensagens comuns. A BIP78, documento técnico de Nicolas Dorier cujo número foi atribuído em 2019, usa PSBT — Partially Signed Bitcoin Transaction. Trata-se de um pacote de dados com a transação e as informações necessárias para verificá-la e assiná-la, não de um pagamento já enviado à rede. O pedido de pagamento inclui o parâmetro pj: o endereço do serviço com o qual a carteira deve se comunicar. Primeiro, o remetente envia o pagamento original como uma PSBT totalmente assinada e finalizada. Ela já pode ser transmitida, apesar da palavra “partially” no nome do formato. O destinatário devolve uma proposta modificada com suas entradas e assinaturas adicionais. O remetente confere, assina suas próprias entradas novamente e transmite a transação resultante à rede Bitcoin. A conexão deve ser criptografada e o serviço remoto autenticado. PSBT não é um backup da carteira: nem a seed usada para derivar as chaves, nem as chaves privadas, nem dados desnecessários sobre a derivação são enviados. [1] [5]

A carteira do remetente precisa verificar se suas entradas e saídas protegidas permanecem, se o troco não foi reduzido arbitrariamente e se a contribuição para a taxa respeita o limite permitido. Ela assina somente suas entradas originais. O protocolo admite algumas alterações nas saídas do destinatário sob condições precisas, não o redirecionamento de todo o pagamento. No dispositivo de assinatura, é preciso entender os valores mostrados, e não apenas aprovar a próxima tela. [1] [5]

Uma entrada extra ocupa espaço e pode elevar a taxa absoluta daquele pagamento. As carteiras negociam quem paga e até qual limite. O destinatário, porém, pode consolidar UTXO próprios ou incluir outro pagamento que faria separadamente. A economia total depende de comparar as mesmas operações, não da promessa de que todo Payjoin custa menos. A mesma taxa em satoshi para uma transação maior representa uma tarifa menor por unidade de tamanho. [1] [2]

Na BIP78, o destinatário precisa de um serviço acessível pela internet, e ambas as partes se comunicam ao mesmo tempo. Isso é inconveniente quando um celular perde a conexão. A BIP77, ou Payjoin v2, usa então um servidor como caixa postal temporária. Uma carteira deixa uma mensagem, e a outra a recolhe depois, antes de expirar o prazo combinado para a sessão. Isso é comunicação assíncrona. A proposta de pagamento é criptografada de ponta a ponta: pode ser lida pelas carteiras participantes, mas não pelo operador da caixa postal. OHTTP, Oblivious HTTP, acrescenta outra proteção. As solicitações passam por um intermediário separado, de modo que o servidor normalmente não vê o endereço IP da carteira. O endereço IP é o endereço de rede que um dispositivo utiliza para se comunicar pela internet. Ocultar esse vínculo pressupõe que o intermediário e o servidor não compartilhem seus registros. Nenhum recebe as chaves privadas que controlam os bitcoins. Ainda assim, o servidor pode atrasar ou descartar mensagens; criptografia sozinha não garante a entrega. [2] [4] [7]

Payjoin não torna o pagamento automaticamente anônimo. Valores, entradas, saídas e momento de confirmação permanecem visíveis na cadeia. A outra parte também conhece a negociação; um comerciante pode ter um pedido com seu nome. A transação pública não tem uma etiqueta Payjoin obrigatória, mas reutilizar endereços ou características da carteira pode fornecer outras pistas. Receptores automáticos também precisam se defender de tentativas de descobrir seus UTXO por solicitações nunca concluídas. [1] [2]

A transação original assinada pode servir como pagamento comum alternativo. No protocolo correto, ela e a proposta Payjoin gastam as mesmas entradas originais, portanto no máximo uma delas pode ser confirmada. Isso não justifica criar outro pagamento independente após um erro sem verificar o ocorrido. Uma assinatura já enviada pode permitir ao destinatário divulgar a transação original. A carteira deve indicar claramente se houve Payjoin, pagamento comum alternativo ou ainda nada, e conferir isso com a cadeia. [1] [2]

Enviar e receber Payjoin são capacidades diferentes; as carteiras e versões específicas precisam ser compatíveis. Processar uma solicitação sem adicionar uma entrada do destinatário não produz o benefício descrito contra a heurística de propriedade. Na verificação de 17 de outubro de 2026, a BIP78 tem status Deployed, enquanto a BIP77, de Dan Gould e Yuval Kogman, está em Draft. Payjoin é negociado entre aplicativos com transações Bitcoin comuns: não espera um Soft Fork nem muda as regras de emissão. [1] [2] [3]

Para ter uma visão mais completa, leia este verbete junto com CoinJoin, Privacidade no Bitcoin, PSBT, Pseudonimidade, UTXO, Satoshi. Também há referências a este verbete em Change Address, Privacidade no Bitcoin, Pseudonimidade, Chain Surveillance.

DOC · 001BIP78 — A Simple Payjoin ProposalEspecificação DOC · 002BIP77 — Async PayjoinEspecificação DOC · 003Bitcoin Optech — PayjoinDocumentação DOC · 004Payjoin projectFonte primária DOC · 005Bitcoin Core — PSBTDocumentação DOC · 006Bitcoin Developer Reference — TransactionsDocumentação DOC · 007RFC 9458 — Oblivious HTTPEspecificação DOC · 008Bitcoin Developer Guide — WalletsDocumentação
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento