Mastodon

Como Acelerar Transações de Bitcoin: Técnicas RBF e CPFP

A rede Bitcoin, sendo a mais antiga e uma das mais robustas em termos de segurança, pode enfrentar momentos de congestionamento onde transações ficam presas na mempool (a área onde as transações aguardam confirmação).

Como Acelerar Transações de Bitcoin: Técnicas RBF e CPFP

A rede Bitcoin, sendo a mais antiga e uma das mais robustas em termos de segurança, pode enfrentar momentos de congestionamento onde transações ficam presas na mempool (a área onde as transações aguardam confirmação). Para resolver isso, duas técnicas se destacam: RBF (Replace By Fee) e CPFP (Child Pays For Parent). Neste artigo, vamos explorar essas técnicas em detalhes, mostrando como cada uma pode ser utilizada para acelerar suas transações de Bitcoin de forma eficiente.

O Que é Replace By Fee (RBF)?

RBF é uma técnica que permite ao remetente de uma transação substituir uma transação não confirmada por uma nova transação com uma taxa mais alta. Essa funcionalidade é extremamente útil quando você percebe que sua transação está demorando muito para ser confirmada devido a uma taxa baixa. A maioria das carteiras de Bitcoin modernas suporta RBF, tornando essa técnica acessível para muitos usuários.

Como Funciona o RBF?

  1. Criação da Transação Inicial: Você cria uma transação com uma determinada taxa de transação. Se essa taxa for muito baixa, sua transação pode ficar na mempool por um longo tempo.
  2. Substituição da Transação: Se a transação inicial não for confirmada, você pode criar uma nova transação que substitui a anterior, mas com uma taxa mais alta. Essa nova transação é então enviada para a rede Bitcoin.
  3. Confirmação: Os mineradores, atraídos pela taxa mais alta, irão priorizar a nova transação, acelerando o processo de confirmação.

Benefícios do RBF

  • Flexibilidade: Permite ajustar a taxa de transação após o envio.
  • Aceleração: Ajuda a garantir que suas transações sejam confirmadas mais rapidamente.
  • Eficiência: Evita que transações fiquem presas indefinidamente na mempool.

Para mais detalhes técnicos sobre o RBF, você pode conferir Replace-By-Fee - Bitcoin Optech e RBF Explained - CoinTelegraph.

O Que é Child Pays For Parent (CPFP)?

CPFP é uma técnica onde o destinatário de uma transação não confirmada cria uma nova transação que inclui a saída não confirmada da transação original e paga uma taxa maior. Isso incentiva os mineradores a incluir ambas as transações em um bloco, acelerando a confirmação.

Como Funciona o CPFP?

  1. Transação Original: Uma transação com uma taxa baixa é enviada e fica presa na mempool.
  2. Nova Transação (Child): O destinatário da transação original cria uma nova transação (child) que gasta a saída da transação original (parent) e inclui uma taxa mais alta.
  3. Combinação de Taxas: Os mineradores observam que a combinação das taxas das duas transações é atrativa e incluem ambas em um bloco.

Benefícios do CPFP

  • Descentralização: Não requer a cooperação do remetente original.
  • Resgate de Transações Presas: Útil para desbloquear transações presas na mempool.
  • Incentivo aos Mineradores: A combinação de taxas faz com que os mineradores priorizem a confirmação.

Para mais informações sobre CPFP, veja Child Pays For Parent - Bitcoin Optech e Speeding Up a Bitcoin Deposit Using CPFP - Ledger.

Comparando RBF e CPFP

Similaridades

  • Ambas as técnicas são usadas para acelerar transações de Bitcoin presas na mempool.
  • Ambas dependem de taxas de transação para incentivar os mineradores.

Diferenças

  • Controle: RBF é iniciado pelo remetente da transação, enquanto CPFP é iniciado pelo destinatário.
  • Complexidade: RBF é relativamente simples de executar se a carteira suportar, enquanto CPFP pode ser mais complexo, pois requer a criação de uma nova transação.
  • Uso: RBF é mais comum quando o remetente tem controle sobre a taxa, enquanto CPFP é útil quando o destinatário deseja acelerar a transação sem precisar da cooperação do remetente.

Exemplos Práticos

RBF em Ação

Imagine que você envia 0.1 BTC para um amigo com uma taxa de 1 satoshi por byte. Após algumas horas, você percebe que a transação ainda não foi confirmada devido à baixa taxa. Usando uma carteira compatível com RBF, você pode criar uma nova transação com a mesma quantidade de BTC, mas agora com uma taxa de 10 satoshis por byte. A nova transação é enviada para a rede, substituindo a original, e os mineradores, agora incentivados pela taxa mais alta, priorizam a nova transação.

CPFP em Ação

Agora, considere que você é o destinatário de uma transação de 0.1 BTC que está presa na mempool devido a uma baixa taxa. Você pode criar uma nova transação (child) que gasta a saída da transação original (parent) e inclui uma taxa maior. Por exemplo, se a transação original tinha uma taxa de 1 satoshi por byte, você pode criar a nova transação com uma taxa de 20 satoshis por byte. Os mineradores verão a transação combinada como atrativa devido à alta taxa total e priorizarão a confirmação de ambas as transações.

Considerações Finais

As técnicas de RBF e CPFP são ferramentas poderosas para gerenciar e acelerar transações de Bitcoin, especialmente em períodos de alta demanda na rede. Compreender e utilizar essas técnicas pode fazer uma grande diferença na experiência de uso do Bitcoin, garantindo que suas transações sejam confirmadas de maneira oportuna e eficiente.

Para mais informações sobre como essas técnicas funcionam e como implementá-las, recomendo visitar os links fornecidos e explorar os recursos detalhados disponíveis. A rede Bitcoin continua a evoluir, e essas técnicas são parte crucial do kit de ferramentas de qualquer usuário sério de criptomoedas.

Referências

Entenda essas técnicas, experimente-as quando necessário e mantenha suas transações de Bitcoin sempre rápidas e eficientes!


Assista ao corte

Capítulos

00:00:00 Introdução e Pergunta sobre RBF
00:00:12 Explicação sobre Pagar por Fora para Acelerar Transações
00:00:48 Técnica CPFP (Child Pay for Parent)
00:04:39 Alternativas para Acelerar Transações: RBF e CPFP
00:06:02 Exemplos de Uso de CPFP e RBF
00:07:04 Pagar Taxas de Transações para Usuários no Ethereum
00:08:18 Caso da Original My com Assinaturas Digitais em Blockchain

Transcrição

1
0:00:00.000 --> 0:00:12.620
Nossa, Dn! Não tem RBF? Eu consigo pagar por fora para uma pool para eles puxarem minha

2
0:00:12.620 --> 0:00:21.360
transação para frente? Pode, a Marathon faz isso, tá? Mas, mas, o que você pode fazer é o seguinte,

3
0:00:21.360 --> 0:00:27.240
ou falar com o destinatário da transação, porque se essa transação ainda estiver na Main Pool,

4
0:00:27.240 --> 0:00:32.600
ela está lá esperando para ser mineirada, aqui ninguém, né? Tem um Satoshi por Vbyte aqui,

5
0:00:32.600 --> 0:00:36.720
está nessa casa aqui, né? Tem muita transação lá. O que você pode fazer é o seguinte,

6
0:00:36.720 --> 0:00:43.360
que dá certo, tá? Ah, é uma hipótese, não fiz, beleza. Você pode conversar com a pessoa que vai

7
0:00:43.360 --> 0:00:48.640
receber a transação, ou você mesmo, se for uma transação para você mesmo, você faz uma nova

8
0:00:48.640 --> 0:00:55.680
transação, a pessoa, né? A destinatária desse Satoshi, desse Bitcoin, ela faz uma transação,

9
0:00:55.680 --> 0:01:02.920
adicionando esse UTXO, e aí ela coloca para pagamento do FII, o equivalente, o que você

10
0:01:02.920 --> 0:01:08.040
devia ter pago, e o que ela pagaria, e aí ela transfere para uma outra Wallet dela. O que vai

11
0:01:08.040 --> 0:01:14.840
acontecer? Quando essa transação cair na rede para os mineradores, o minerador vai olhar e vai

12
0:01:14.840 --> 0:01:21.600
falar assim, bom, ele tá pagando o FII alto o suficiente para cobrir aquela transação que o FII

13
0:01:21.600 --> 0:01:27.360
faz baixo, mais a transação dele. Então, ok, a transação fica interessante para o minerador,

14
0:01:27.360 --> 0:01:32.320
e ele coloca a transação para ser minerada. É uma forma de você não precisar ter que falar com

15
0:01:32.320 --> 0:01:39.160
o minerador ou com a... ou com a... a pool, para alocar essa transação, tá? Você faz isso,

16
0:01:39.160 --> 0:01:49.440
é bem comum, inclusive. Então, se não tem RBF, esse é o CPFP, tá? Que é o Child Pay Parent,

17
0:01:50.320 --> 0:01:55.520
é o filho paga para o pai, é mais ou menos isso, tá? Então, vamos por que você tá fazendo uma

18
0:01:55.520 --> 0:01:59.960
transação para você mesmo, numa outra Wallet. Ah, é, puta, eu mandei o FII errado, eu mandei muito

19
0:01:59.960 --> 0:02:04.040
baixo e tal. Aí você faz uma nova transação, porque aquela transação tá na mempool, não foi

20
0:02:04.040 --> 0:02:10.080
confirmada ainda, adiciona essa transação, o UTXO da transação, que é seu, né, o dono desse UTXO,

21
0:02:10.080 --> 0:02:15.800
adiciona na nova transação, só que paga o FII dobrado, o FII para a transação que tá empacada,

22
0:02:15.800 --> 0:02:21.400
o FII para a nova transação. Aí o minerador olha para a transação, fala, tá vinculando uma que tem o

23
0:02:21.400 --> 0:02:26.800
FII muito baixo, mas ele tá pagando 2x no FII, né, tá pagando o FII para as duas, então ela se torna

24
0:02:26.800 --> 0:02:32.720
interessante de novo e o minerador coloca a transação com FII baixo e a nova transação para ser minerada,

25
0:02:32.720 --> 0:02:38.200
e aí você consegue resgatar aquele valor. É muito comum isso acontecer, tá? CPFP.

26
0:02:38.200 --> 0:02:50.440
Acho que é Child Pay For Parent, CPFP, acho que é isso, CPFP. Child Pay For Parent. Então,

27
0:02:50.440 --> 0:02:57.440
se o pai, se o pai mandou a transação com FII muito baixo, o filho paga, né, mas aí você faz um

28
0:02:57.440 --> 0:03:03.400
acordo com o destinatário, fala, puta cara, tá travado aí, eu te mando essa parada aí, deixa eu buscar uma

29
0:03:03.400 --> 0:03:18.640
transação. É, Bitcoin CPFP. É aqui, ó, Child Pay For Parent, aqui na BitPay. Algumas vezes a

30
0:03:18.640 --> 0:03:25.840
transação leva muito tempo, tal, não tem... Ele tá falando como fazer o deles, né? Ó, é uma técnica onde a

31
0:03:25.840 --> 0:03:31.360
incoming transaction, a pessoa que tá recebendo a transação, né, para conseguir receber aquilo, ela

32
0:03:31.360 --> 0:03:37.680
faz uma nova transação adicionando esse OTXO que tá travado e coloca o FII para as duas, né, o FII

33
0:03:37.680 --> 0:03:42.320
equivalente ao pagamento das duas. Então, você vai pagar um FII mais alto, ele vai pagar um FII mais alto,

34
0:03:42.320 --> 0:03:46.680
não você, você já fez a transação. A transação tá na mempool. E aí você combina com o cara depois e

35
0:03:46.680 --> 0:03:51.560
dá um troco para ele, fala lá com ele, fala, ó, desculpa aí, fiz a transação errada, acelera a

36
0:03:51.560 --> 0:03:57.360
transação aí, paga que eu te mando o recurso. Aí você combina com o cara e manda, né, para cobrir o custo

37
0:03:57.360 --> 0:04:03.200
do FII aí que o cara aí manda, sei lá, um pouquinho, manda, combina, manda por uma lightning, tal, e fala,

38
0:04:03.200 --> 0:04:07.160
cara, posso mandar aqui em uma lightning rapidinho? Te manda esse valor, tá? Paga o FII aí, ó, tô te

39
0:04:07.160 --> 0:04:12.160
mandando aqui para você pagar o FII. E aí você paga para o cara o FII, né, inteiro, aí tem que pagar o FII todo, né,

40
0:04:12.160 --> 0:04:19.680
para ele poder ter o negócio lá com ele. Às vezes precisa de uma confirmação, tal, né. Então, procura por CPFP, tá?

41
0:04:19.840 --> 0:04:26.400
Você vai achar aí, tem bastante documentação aí. É, mas é isso, é uma técnica para aumentar o FII.

42
0:04:26.400 --> 0:04:33.160
Manda o FII para o correio? Pode ser, depende, é no P2P, né, é no P2P, aí os caras se arrumam, né?

43
0:04:38.800 --> 0:04:45.320
Então você pode, se você tem, hoje para você fazer, acelerar a transação no Bitcoin, tem duas maneiras.

44
0:04:45.320 --> 0:04:54.360
Uma, fazer com uma técnica chamada RBF. A maior parte das wallets hoje permitem o RBF. O RBF é, eu fiz a transação,

45
0:04:54.360 --> 0:05:02.480
eu coloquei um FII baixo, eu quero aumentar o FII da transação. Então, com RBF, você mesmo refaz a transação,

46
0:05:02.480 --> 0:05:08.720
colocando mais FII, tá? RBF faz isso. Então, eu fiz a transação, percebi que eu coloquei um FII muito baixo,

47
0:05:08.720 --> 0:05:13.680
a transação vai demorar demais para ser registrada, para entrar num bloco. Então, eu vou lá na minha wallet,

48
0:05:13.680 --> 0:05:20.800
habilito o RBF e refaz a transação pagando mais FII. Ele vai jogar uma cópia da transação lá, como ela vai estar com a flag do RBF,

49
0:05:20.800 --> 0:05:26.480
ela meio que substitui, o minerador descarta anterior e coloca a nova, tá? RBF faz isso.

50
0:05:26.480 --> 0:05:32.880
Não tem o RBF, utilizo CPFP, mas aí eu tenho que falar com o cara para quem eu mandar a transação,

51
0:05:32.880 --> 0:05:39.600
e falar, putz, maluco, quando tá cagado aqui, vamos desbloquear esse Bitcoin que tá travado lá?

52
0:05:39.600 --> 0:05:45.200
Aí o cara pega, ele tem que fazer isso, porque o Bitcoin já é dele, assim, não entrou no bloco ainda,

53
0:05:45.200 --> 0:05:48.960
mas você já mandou para ele, né? Dependendo da wallet, isso vai estar travado na sua wallet,

54
0:05:48.960 --> 0:05:54.080
você nem pode mais gastar. Então, o cara tem que pegar, fazer uma nova transação, aí ele faz para ele mesmo,

55
0:05:54.080 --> 0:06:02.360
adiciona esse UTXO que tá lá travado e faz um FII, pelo menos dobrado, né? Para pagar a transação que tá lá presa,

56
0:06:02.360 --> 0:06:09.280
você faz essa nova transação para poder desbloquear, e depois, né? Você fala com o cara e manda essa

57
0:06:09.280 --> 0:06:11.680
diferença de FII aí, você manda para ele lá, para o cara.

58
0:06:18.680 --> 0:06:26.000
Você tem que ser o destinatário, você tem que ser o dono da transação, você não consegue aumentar o FII de presente para alguém,

59
0:06:26.400 --> 0:06:35.280
porque você não é destinatário daquela transação. Você poderia fazer isso, talvez, num futuro, com um CTV, por exemplo,

60
0:06:35.280 --> 0:06:41.280
se for aprovado esse tipo de... Mas precisa de fork no Bitcoin, tá? Porque aí ela ficaria num pool,

61
0:06:41.280 --> 0:06:50.000
e aí a empresa poderia esperar um momento, ou ter um subsídio, ou alguma coisa assim. No Ethereum isso já foi implementado,

62
0:06:50.560 --> 0:06:57.360
no Ethereum isso existe hoje, tá? E estão desenvolvendo outras tecnologias aí, onde, por exemplo, a empresa,

63
0:06:57.360 --> 0:07:04.080
ela paga o FII das transações dos usuários, então para gaming, em blockchain, isso vai ser maravilhoso, né?

64
0:07:04.080 --> 0:07:10.400
Para o gamer, o cara que recebe os itens e tal, ele não precisar ficar pagando o FII. Quem vai pagar os FII todos,

65
0:07:10.400 --> 0:07:19.840
é a própria empresa, ou alguém, né? Eles estão criando esses... São tipo pools de pagamento de FII, isso não existe no Bitcoin hoje, tá?

66
0:07:20.960 --> 0:07:31.200
Hoje não tem no Bitcoin, mas é o que tem para acelerar, ou RBF, ou CPFP. Tem como fazer para sua transação não ficar travada lá, tá?

67
0:07:32.720 --> 0:07:41.200
Para quem recebe, o FII é maravilhoso, é. É, então, aí tem empresas que vale a pena, a empresa, para melhorar a usabilidade,

68
0:07:41.200 --> 0:07:48.160
ela pagar o FII para o usuário, né? Então aí faz sentido. Quer ver um exemplo que, por exemplo, empresas poderiam fazer,

69
0:07:48.160 --> 0:07:55.920
porque eu fiz isso quando eu desenvolvi o protocolo de assinatura digital com blockchain, ele fazia o seguinte,

70
0:07:58.480 --> 0:08:06.400
para garantir que a assinatura saiu do usuário, ele tem que fazer a assinatura e a transferência e mandar a transação para o Bitcoin.

71
0:08:06.400 --> 0:08:12.880
Só que não dá para outra pessoa, depois que a pessoa fez o FII, ou fez a transação, a pessoa lá pagar o FII.

72
0:08:12.880 --> 0:08:16.240
Então, o que eu fazia? O que a Original My fazia? Automaticamente.

73
0:08:16.800 --> 0:08:25.520
Quando alguém ia fazer uma transação assinando o contrato no Bitcoin, a Original My olhava quanto difícil seria necessário para cada pessoa

74
0:08:25.520 --> 0:08:35.520
mandar a transação dos seus aplicativos e mandava para o wallet interno do app o suficiente para que pudesse pagar o FII daquela assinatura.

75
0:08:36.080 --> 0:08:47.040
Então, na verdade, o que a Original My fazia? Ela provisionava no aplicativo de assinatura digital das pessoas o Bitcoin suficiente para ela fazer assinatura.

76
0:08:47.040 --> 0:08:54.160
Então, quando alguém registrava um documento e falava, olha, este documento é para ser assinado por tal, tal e tal pessoa,

77
0:08:54.160 --> 0:09:02.480
o sistema da Original My pegava e provisionava o Bitcoin nas wallets desses usuários,

78
0:09:02.560 --> 0:09:07.440
internamente, que era uma wallet interna que o aplicativo usava para fazer as assinaturas.

79
0:09:07.440 --> 0:09:14.160
O usuário não utilizava como wallet, mas era o endereço da assinatura da pessoa, porque assim que a pessoa recebesse esse Bitcoin

80
0:09:14.160 --> 0:09:22.080
e ela mandasse a assinatura digital, era ela fazendo com a chave privada dela, não a Original My assinando pela pessoa.

81
0:09:22.080 --> 0:09:30.800
Absolutamente descentralizado. A Original My só recebia o sinal de que um documento seria assinado utilizando a plataforma Portais Pessoas.

82
0:09:31.280 --> 0:09:37.120
É óbvio que a pessoa que estava depositando o documento para ser distribuído e assinado,

83
0:09:37.120 --> 0:09:43.200
essa pessoa já pagava a comissão da Original My e o valor que seria necessário por todas as assinaturas.

84
0:09:43.200 --> 0:09:50.480
Aí a Original My pegava e provisionava o Bitcoin, mandava Bitcoin, fazia uma transação de Bitcoin para todos os signatários.

85
0:09:50.480 --> 0:09:57.120
Assim que eles recebiam, eles estariam aptos a fazer as assinaturas diretamente das suas wallets,

86
0:09:57.360 --> 0:10:01.040
sem que a Original My assinasse documento por qualquer pessoa.

87
0:10:02.000 --> 0:10:10.560
Então nesse caso, a Original My já provisionava antes o Bitcoin que seria utilizado como FI

88
0:10:10.560 --> 0:10:14.720
para as transações pagando um FI decente para que a transação fosse registrada rápida.

89
0:10:16.480 --> 0:10:18.000
A gente fazia isso, viu, Denny?

90
0:10:19.280 --> 0:10:26.240
Então você só consegue fazer isso se for antes, para ajudar a pessoa, mas depois aí não dá.

91
0:10:26.240 --> 0:10:32.160
Porque a não ser que você mande diretamente para a pessoa e fala cara, use isso aqui para pagar o FI,

92
0:10:32.160 --> 0:10:39.120
aí ela faz a transação do CPFP lá e paga com o FI que você mandou para ela por fora.

93
0:10:39.120 --> 0:10:40.320
É isso aí.

94
0:10:40.320 --> 0:10:42.880
Nossa, a Nikitas é muito aleatório, né?