name: Introdução Teórica à Lightning Network goal: Descobrir a Lightning Network de uma perspectiva técnica objectives:


Uma Jornada para a Segunda Camada do Bitcoin

Mergulhe no coração da Lightning Network, um sistema essencial para o futuro das transações de Bitcoin. LNP201 é um curso teórico sobre o funcionamento técnico da Lightning. Ele revela as fundações e mecanismos desta rede de segunda camada, projetada para tornar os pagamentos em Bitcoin rápidos, econômicos e escaláveis.

Graças à sua rede de canais de pagamento, a Lightning possibilita transações rápidas e seguras sem registrar cada troca na blockchain do Bitcoin. Ao longo dos capítulos, você aprenderá como a abertura, gestão e fechamento de canais funcionam, como os pagamentos são roteados através de nós intermediários de forma segura minimizando a necessidade de confiança, e como gerenciar a liquidez. Você descobrirá o que são transações de compromisso, HTLCs, chaves de revogação, mecanismos de punição, roteamento onion e faturas.

Seja você um iniciante em Bitcoin ou um usuário mais experiente, este curso fornecerá informações valiosas para entender e usar a Lightning Network. Embora vamos cobrir alguns fundamentos do funcionamento do Bitcoin nas primeiras partes, é essencial dominar os básicos da invenção de Satoshi antes de mergulhar no LNP201.

Aproveite sua descoberta!

Introdução

Visão Geral do Curso

Bem-vindo ao curso LNP201!

Este treinamento visa fornecer a você uma compreensão técnica aprofundada do Lightning Network, uma rede de sobreposição projetada para facilitar transações em bitcoins de forma rápida e frequentemente com baixo custo. Você descobrirá gradualmente os conceitos fundamentais que regem este sistema, desde a abertura de canais de pagamento até as técnicas de roteamento e gestão de liquidez.

Seção 1: Fundamentos
Começaremos com uma introdução geral ao Lightning Network, estabelecendo as bases essenciais sobre Bitcoin, seus endereços, UTXOs e o funcionamento das transações. Esta revisão dos fundamentos é essencial para entender como o Lightning Network se baseia nos mecanismos da blockchain principal para operar de maneira segura.

Seção 2: Abertura e fechamento de canais
Nesta seção, exploraremos o processo de abertura de canais, que é a pedra angular do Lightning Network. Você aprenderá como são criadas as transações de compromisso, o papel das chaves de revogação para a segurança e como os canais podem ser fechados de forma colaborativa ou unilateral. Cada etapa será explicada de maneira precisa e técnica para que você entenda todas as suas nuances.

Seção 3: Uma rede de liquidez
O Lightning Network não se limita a canais individuais; é uma verdadeira rede de pagamento. Veremos como as transações podem ser roteadas através de nós intermediários usando HTLCs. Esta parte também apresentará os desafios da liquidez de entrada e saída.

Seção 4: Ferramentas do Lightning Network
Esta seção apresenta as ferramentas práticas do Lightning Network, como Invoices, LNURL e Keysend. Você também aprenderá a gerenciar a liquidez dos seus canais, um aspecto importante para garantir a fluidez dos pagamentos e maximizar a eficiência de suas transações na Lightning.

Seção 5: Vá mais longe
Finalmente, concluiremos o curso recaptulando os conceitos abordados e abrindo caminho para tópicos mais avançados para aqueles que desejam aprofundar seus conhecimentos sobre o Lightning Network.

Pronto para descobrir os mecanismos técnicos do Lightning Network? Vamos lá!

Os Fundamentos

Entendendo a Lightning Network

df6230ae-ff35-56ea-8651-8e65580730a8 :::video id=ba99951f-81d2-418f-b5e7-4b8c9f8b8cc8:::

A Lightning Network é uma rede de canais de pagamento construída sobre o protocolo do Bitcoin, com o objetivo de possibilitar transações rápidas e de baixo custo. Ela permite a criação de canais de pagamento entre participantes, dentro dos quais transações podem ser realizadas quase instantaneamente e com taxas mínimas, sem a necessidade de registrar cada transação individualmente na blockchain. Assim, a Lightning Network busca melhorar a escalabilidade do Bitcoin e torná-lo utilizável para pagamentos de baixo valor.

Antes de explorar o aspecto "rede", é importante entender o conceito de um canal de pagamento na Lightning, como ele funciona e suas especificidades. Este é o assunto deste primeiro capítulo.

O Conceito de Canal de Pagamento

Um canal de pagamento permite que duas partes, aqui Alice e Bob, troquem fundos pela Lightning Network. Cada protagonista tem um nó, simbolizado por um círculo, e o canal entre eles é representado por um segmento de linha.

LNP201

No nosso exemplo, Alice tem 100.000 satoshis do lado dela do canal, e Bob tem 30.000, totalizando 130.000 satoshis, o que constitui a capacidade do canal.

Mas o que é um satoshi?

O satoshi (ou "sat") é uma unidade de conta no Bitcoin. Semelhante a um centavo para o euro, um satoshi é simplesmente uma fração de Bitcoin. Um satoshi é igual a 0.00000001 Bitcoin, ou um centésimo milionésimo de um Bitcoin. Usar o satoshi torna-se cada vez mais prático à medida que o valor do Bitcoin aumenta.

A Alocação de Fundos no Canal

Vamos retornar ao canal de pagamento. O conceito chave aqui é o "lado do canal". Cada participante tem fundos no seu lado do canal: Alice 100.000 satoshis e Bob 30.000. Como vimos, a soma desses fundos representa a capacidade total do canal, um valor estabelecido quando ele é aberto.

LNP201

Vamos pegar um exemplo de uma transação Lightning. Se Alice quer enviar 40.000 satoshis para Bob, isso é possível porque ela tem fundos suficientes (100.000 satoshis). Após essa transação, Alice terá 60.000 satoshis do seu lado e Bob 70.000.

LNP201

A capacidade do canal, em 130.000 satoshis, permanece constante. O que muda é a alocação dos fundos. Esse sistema não permite enviar mais fundos do que se possui. Por exemplo, se Bob quisesse enviar de volta 80.000 satoshis para Alice, ele não poderia, porque ele só tem 70.000.

Outra maneira de imaginar a alocação de fundos é pensar em um deslizante que indica onde os fundos estão no canal. Inicialmente, com 100.000 satoshis para Alice e 30.000 para Bob, o deslizante está logicamente do lado de Alice. Após a transação de 40.000 satoshis, o deslizante moverá ligeiramente para o lado de Bob, que agora tem 70.000 satoshis.

LNP201

Essa representação pode ser útil para imaginar o equilíbrio dos fundos em um canal.

As Regras Fundamentais de um Canal de Pagamento

O primeiro ponto a lembrar é que a capacidade do canal é fixa. É um pouco como o diâmetro de um cano: determina a quantidade máxima de fundos que podem ser enviados através do canal de uma só vez. Vamos pegar um exemplo: se Alice tem 130.000 satoshis do seu lado, ela só pode enviar no máximo 130.000 satoshis para Bob em uma única transação. No entanto, Bob pode então enviar esses fundos de volta para Alice, parcial ou totalmente.

O que é importante entender é que a capacidade fixa do canal limita a quantidade máxima de uma única transação, mas não o número total de transações possíveis, nem o volume geral de fundos trocados dentro do canal.

O que você deve reter deste capítulo?

Este é o fim deste primeiro capítulo, onde estabelecemos as bases para a Lightning Network. Nos próximos capítulos, veremos como abrir um canal e aprofundar nos conceitos discutidos aqui.

Bitcoin, Endereços, UTXO e Transações

0cfb7e6b-96f0-508b-9210-90bc1e28649d :::video id=75323eef-ea03-45ac-9a6e-46d73ca255de:::

Este capítulo é um pouco especial, pois não será dedicado diretamente ao Lightning, mas ao Bitcoin. De fato, a Lightning Network é uma camada sobre o Bitcoin. Portanto, é essencial entender certos conceitos fundamentais do Bitcoin para compreender adequadamente o funcionamento do Lightning nos capítulos subsequentes. Neste capítulo, revisaremos os conceitos básicos de endereços de recebimento do Bitcoin, UTXOs, bem como o funcionamento das transações Bitcoin.

Endereços Bitcoin, Chaves Privadas e Chaves Públicas

Um endereço Bitcoin é uma série de caracteres derivados de uma chave pública, que por sua vez é calculada a partir de uma chave privada. Como você certamente sabe, ele é usado para bloquear bitcoins, o que equivale a recebê-los em nossa carteira.

A chave privada é um elemento secreto que nunca deve ser compartilhado, enquanto a chave pública e o endereço podem ser compartilhados sem risco de segurança (a divulgação deles representa apenas um risco para sua privacidade). Aqui está uma representação comum que adotaremos ao longo deste treinamento:

Transações Bitcoin: Enviando Fundos e Scripts

No Bitcoin, uma transação envolve enviar fundos de um endereço para outro. Vamos tomar o exemplo de Alice enviando 0,002 Bitcoin para Bob. Alice usa a chave privada associada ao seu endereço para assinar a transação, provando assim que ela realmente pode gastar esses fundos. Mas o que exatamente acontece por trás dessa transação? Os fundos em um endereço Bitcoin são bloqueados por um script, uma espécie de mini-programa que impõe certas condições para gastar os fundos.

O script mais comum exige uma assinatura com a chave privada associada ao endereço. Quando Alice assina uma transação com sua chave privada, ela desbloqueia o script que bloqueia os fundos, e eles podem então ser transferidos. A transferência de fundos envolve adicionar um novo script a esses fundos, estipulando que, para gastá-los desta vez, será necessária a assinatura da chave privada de Bob.

LNP201

UTXOs: Saídas de Transação Não Gastas

No Bitcoin, o que realmente trocamos não são diretamente bitcoins, mas UTXOs (Unspent Transaction Outputs), significando "saídas de transação não gastas".

Um UTXO é um pedaço de bitcoin que pode ser de qualquer valor, por exemplo, 2.000 bitcoins, 8 bitcoins, ou até mesmo 8.000 sats. Cada UTXO é bloqueado por um script, e para gastá-lo, deve-se satisfazer as condições do script, muitas vezes uma assinatura com a chave privada correspondente a um determinado endereço de recebimento.

Os UTXOs não podem ser divididos. Cada vez que são usados para gastar a quantidade em bitcoins que representam, deve ser feito em sua totalidade. É um pouco como uma nota de banco: se você tem uma nota de €10 e deve ao padeiro €5, você não pode simplesmente cortar a nota ao meio. Você tem que dar a ele a nota de €10, e ele lhe dará €5 de troco. Este é exatamente o mesmo princípio para UTXOs no Bitcoin! Por exemplo, quando Alice desbloqueia um script com sua chave privada, ela desbloqueia o UTXO inteiro. Se ela deseja enviar apenas uma parte dos fundos representados por este UTXO para Bob, ela pode "fragmentá-lo" em vários menores. Ela então enviará 0,0015 BTC para Bob e enviará o restante, 0,0005 BTC, para um endereço de troco.

Aqui está um exemplo de uma transação com 2 saídas:

LNP201

Endereços Multi-assinatura

Além de endereços simples gerados a partir de uma única chave pública, é possível criar endereços multi-assinatura a partir de múltiplas chaves públicas. Um caso particularmente interessante para a Lightning Network é o endereço multi-assinatura 2/2, gerado a partir de duas chaves públicas:

LNP201

Para gastar os fundos bloqueados com este endereço multi-assinatura 2/2, é necessário assinar com as duas chaves privadas associadas às chaves públicas.

LNP201

Este tipo de endereço é precisamente a representação na blockchain do Bitcoin dos canais de pagamento na Lightning Network.

O que você deve reter deste capítulo?

Este capítulo sobre o Bitcoin nos permitiu revisar algumas noções essenciais para o que segue. No próximo capítulo, descobriremos especificamente como funciona a abertura de canais na Lightning Network.

Abertura e Fechamento de Canais

Abertura de Canal

96243eb0-f6b5-5b68-af1f-fffa0cc16bfe :::video id=6098fee1-735e-4d8d-9f57-0faf5fef6d76:::

Neste capítulo, veremos mais precisamente como abrir um canal de pagamento na Lightning Network e entender a ligação entre esta operação e o sistema Bitcoin subjacente.

Canais Lightning

Como vimos no primeiro capítulo, um canal de pagamento na Lightning pode ser comparado a um "tubo" para troca de fundos entre dois participantes (Alice e Bob em nossos exemplos). A capacidade deste canal corresponde à soma dos fundos disponíveis de cada lado. Em nosso exemplo, Alice tem 100.000 satoshis e Bob tem 30.000 satoshis, resultando em uma capacidade total de 130.000 satoshis.

LNP201

Níveis de Troca de Informações

É crucial distinguir claramente os diferentes níveis de troca na Lightning Network:

LNP201 Vale ressaltar que um nó Lightning pode se comunicar via protocolo P2P sem abrir um canal, mas para trocar fundos, um canal é necessário.

Passos para Abrir um Canal Lightning

LNP201 LNP201 LNP201 LNP201 LNP201 LNP201

Quando o canal está aberto?

O canal é considerado aberto uma vez que a transação de depósito é incluída em um bloco Bitcoin e alcança uma certa profundidade de confirmações (número de blocos subsequentes).

O que você deve lembrar deste capítulo?

No próximo capítulo, exploraremos o funcionamento técnico de uma transação Lightning dentro de um canal.

Transação de Compromisso

7d3fd135-129d-5c5a-b306-d5f2f1e63340 :::video id=c17454f3-14c5-47a0-8c9c-42ee12932bd3:::

Neste capítulo, descobriremos o funcionamento técnico de uma transação dentro de um canal na Rede Lightning, ou seja, quando fundos são movidos de um lado do canal para o outro.

Lembrete do ciclo de vida do canal

Como visto anteriormente, um canal Lightning começa com uma abertura por meio de uma transação Bitcoin. O canal pode ser fechado a qualquer momento, também via uma transação Bitcoin. Entre esses dois momentos, um número quase infinito de transações pode ser realizado dentro do canal, sem passar pelo blockchain do Bitcoin. Vamos ver o que acontece durante uma transação no canal. LNP201

O estado inicial do canal

No momento da abertura do canal, Alice depositou 130.000 satoshis no endereço de multisignatura do canal. Assim, no estado inicial, todos os fundos estão do lado de Alice. Antes de abrir o canal, Alice também fez Bob assinar uma transação de retirada, que permitiria a ela recuperar seus fundos caso desejasse fechar o canal.

LNP201

Transações Não Publicadas: As Transações de Compromisso

Quando Alice faz uma transação no canal para enviar fundos para Bob, uma nova transação Bitcoin é criada para refletir essa mudança na distribuição de fundos. Esta transação, chamada de transação de compromisso, não é publicada no blockchain, mas representa o novo estado do canal após a transação Lightning.

Vamos tomar um exemplo com Alice enviando 30.000 satoshis para Bob:

Processo de Transferência: A Fatura

Quando Bob quer receber fundos, ele envia a Alice uma fatura de 30.000 satoshis. Alice então procede ao pagamento desta fatura, iniciando a transferência dentro do canal. Como vimos, esse processo depende da criação e assinatura de uma nova transação de compromisso.

Cada transação de compromisso representa a nova distribuição de fundos no canal após a transferência. Neste exemplo, após a transação, Bob tem 30.000 satoshis e Alice tem 100.000 satoshis. Se qualquer um dos dois participantes decidisse publicar essa transação de compromisso no blockchain, isso resultaria no fechamento do canal e os fundos seriam distribuídos de acordo com essa última distribuição.

LNP201

Novo Estado Após uma Segunda Transação

Vamos tomar outro exemplo: após a primeira transação onde Alice enviou 30.000 satoshis para Bob, Bob decide enviar 10.000 satoshis de volta para Alice. Isso cria um novo estado do canal. A nova transação de compromisso representará essa distribuição atualizada:

LNP201

Novamente, essa transação não é publicada no blockchain, mas pode ser a qualquer momento, caso o canal seja fechado.

Em resumo, quando fundos são transferidos dentro de um canal Lightning:

No entanto, este sistema tem uma falha potencial, que abordaremos no próximo capítulo. Veremos como cada participante pode se proteger contra uma tentativa de trapaça por parte da outra parte.

Chave de Revogação

f2f61e5b-badb-5947-9a81-7aa530b44e59 :::video id=1d850f23-eff1-4725-b284-ce12456a2c26::: Neste capítulo, vamos aprofundar em como as transações funcionam na Lightning Network, discutindo os mecanismos em vigor para proteger contra trapaças, garantindo que cada parte adira às regras dentro de um canal.

Lembrete: Transações de Compromisso

Como visto anteriormente, as transações na Lightning dependem de transações de compromisso não publicadas. Essas transações refletem a distribuição atual de fundos no canal. Quando uma nova transação Lightning é feita, uma nova transação de compromisso é criada e assinada por ambas as partes para refletir o novo estado do canal.

Vamos tomar um exemplo simples:

LNP201

A qualquer momento, ambas as partes podem publicar a última transação de compromisso assinada para fechar o canal e recuperar seus fundos.

O Problema: Trapacear Publicando uma Transação Antiga

Um problema potencial surge se uma das partes decidir trapacear publicando uma transação de compromisso antiga. Por exemplo, Alice poderia publicar uma transação de compromisso mais antiga onde ela tinha 100.000 satoshis, mesmo que agora ela tenha apenas 60.000 na realidade. Isso permitiria que ela roubasse 40.000 satoshis de Bob.

LNP201

Pior ainda, Alice poderia publicar a primeira transação de retirada, aquela antes de o canal ser aberto, onde ela tinha 130.000 satoshis, e assim roubar todos os fundos do canal.

LNP201

Solução: Chave de Revogação e Timelock

Para prevenir esse tipo de trapaça por Alice, na Lightning Network, mecanismos de segurança são adicionados às transações de compromisso:

Vamos detalhar o funcionamento desse mecanismo juntos.

Processo de Atualização da Transação

Quando Alice e Bob atualizam o estado do canal com uma nova transação Lightning, eles trocam antecipadamente seus respectivos segredos para a transação de compromisso anterior (aquela que se tornará obsoleta e poderia permitir que um deles enganasse o outro). Isso significa que, no novo estado do canal:

Vamos tomar um exemplo para entender bem esse processo:

LNP201 LNP201 LNP201

Mesmo que, neste caso, Bob não tenha interesse econômico em tentar enganar, se ele o fizer mesmo assim, Alice também se beneficia de proteção simétrica oferecendo a ela as mesmas garantias.

O que você deve levar deste capítulo?

As transações de compromisso na Lightning Network incluem mecanismos de segurança que reduzem tanto o risco de trapaça quanto os incentivos para fazê-lo. Antes de assinar uma nova transação de compromisso, Alice e Bob trocam seus respectivos segredos para as transações de compromisso anteriores. Se Alice tentar publicar uma transação de compromisso antiga, Bob pode usar a chave de revogação para recuperar todos os fundos antes que Alice possa (porque ela está bloqueada pelo timelock), o que a pune por tentar enganar.

Este sistema de segurança garante que os participantes adiram às regras da Lightning Network, e eles não podem se beneficiar publicando transações de compromisso antigas. Neste ponto do treinamento, você já sabe como os canais Lightning são abertos e como as transações dentro desses canais funcionam. No próximo capítulo, descobriremos as diferentes maneiras de fechar um canal e recuperar seus bitcoins na blockchain principal.

Encerramento de Canal

29a72223-2249-5400-96f0-3756b1629bc2 :::video id=4d8ad4e6-32ff-46d3-bd17-343929aa863b:::

Neste capítulo, discutiremos sobre fechar um canal na Rede Lightning, o que é feito através de uma transação Bitcoin, assim como a abertura de um canal. Após ver como as transações dentro de um canal funcionam, agora é hora de ver como fechar um canal e recuperar os fundos na blockchain do Bitcoin.

Lembrete do ciclo de vida do canal

O ciclo de vida de um canal começa com sua abertura, via uma transação Bitcoin, depois são feitas transações Lightning dentro dele, e finalmente, quando as partes desejam recuperar seus fundos, o canal é fechado através de uma segunda transação Bitcoin. As transações intermediárias feitas na Lightning são representadas por transações de compromisso não publicadas.

LNP201

Os três tipos de encerramento de canal

Existem três maneiras principais de fechar este canal, que podem ser chamadas de o bom, o bruto e o traidor (inspirado por Andreas Antonopoulos em Dominando a Rede Lightning):

Vamos tomar um exemplo:

LNP201

O Bom: o fechamento cooperativo

Em um fechamento cooperativo, Alice e Bob concordam em fechar o canal. Veja como isso acontece:

LNP201

O encerramento cooperativo é o método preferido de fechamento porque é rápido (sem timelock) e as taxas de transação são ajustadas de acordo com as condições atuais do mercado Bitcoin. Isso evita pagar pouco, o que poderia arriscar bloquear a transação nos mempools, ou pagar demais desnecessariamente, o que leva a perdas financeiras desnecessárias para os participantes.

O Ruim: o fechamento forçado

Quando o nó de Alice envia uma mensagem para o de Bob pedindo um encerramento cooperativo, se ele não responder (por exemplo, devido a uma queda de internet ou um problema técnico), Alice pode prosseguir com um fechamento forçado publicando a última transação de compromisso assinada. Neste caso, Alice simplesmente publicará a última transação de compromisso, que reflete o estado do canal no momento em que a última transação Lightning ocorreu com a distribuição correta de fundos.

LNP201

Esta transação inclui um timelock para os fundos de Alice, tornando o fechamento mais lento.

LNP201

Além disso, as taxas da transação de compromisso podem ser inadequadas no momento do fechamento, pois foram definidas quando a transação foi criada, às vezes vários meses antes. Geralmente, os clientes Lightning superestimam as taxas para evitar problemas futuros, mas isso pode levar a taxas excessivas, ou inversamente muito baixas.

Em resumo, o fechamento forçado é uma opção de último recurso quando o par não responde mais. É mais lento e menos econômico do que um fechamento cooperativo. Portanto, deve ser evitado tanto quanto possível.

A trapaça: trapacear

Finalmente, um fechamento com trapaça ocorre quando uma das partes tenta publicar uma transação de compromisso antiga, muitas vezes onde possuíam mais fundos do que deveriam. Por exemplo, Alice pode publicar uma transação antiga onde ela possuía 120.000 satoshis, enquanto na realidade possui apenas 100.000 agora.

LNP201

Bob, para prevenir essa trapaça, monitora a blockchain do Bitcoin e seu mempool para garantir que Alice não publique uma transação antiga. Se Bob detectar uma tentativa de trapaça, ele pode usar a chave de revogação para recuperar os fundos de Alice e puni-la tomando todo o fundo do canal. Como Alice está bloqueada pelo timelock em sua saída, Bob tem tempo para gastá-lo sem um timelock do lado dele para recuperar a soma inteira em um endereço que ele possui.

LNP201

Obviamente, a trapaça pode potencialmente ter sucesso se Bob não agir dentro do tempo imposto pelo timelock na saída de Alice. Neste caso, a saída de Alice é desbloqueada, permitindo que ela a consuma para criar uma nova saída para um endereço que ela controla.

O que você deve levar deste capítulo?

Existem três maneiras de fechar um canal:

Uma Rede de Liquidez

Lightning Network

45a7252c-fa4f-554b-b8bb-47449532918e :::video id=38419c23-5592-4573-b0a7-84824a5bfb77:::

Neste capítulo, exploraremos como os pagamentos na Lightning Network podem chegar a um destinatário mesmo que eles não estejam diretamente conectados por um canal de pagamento. A Lightning é, de fato, uma rede de canais de pagamento, que permite que fundos sejam enviados a um nó distante através dos canais de outros participantes. Descobriremos como os pagamentos são roteados pela rede, como a liquidez se move entre os canais e como as taxas de transação são calculadas.

A Rede de Canais de Pagamento

Na Lightning Network, uma transação corresponde a uma transferência de fundos entre dois nós. Como visto em capítulos anteriores, é necessário abrir um canal com alguém para realizar transações Lightning. Este canal permite um número quase infinito de transações fora da cadeia antes de fechá-lo para reivindicar o saldo na cadeia. No entanto, este método tem a desvantagem de exigir um canal direto com a outra pessoa para receber ou enviar fundos, o que implica uma transação de abertura e uma transação de fechamento para cada canal. Se eu planejo fazer um grande número de pagamentos com essa pessoa, abrir e fechar um canal se torna custo-efetivo. Por outro lado, se eu só preciso realizar algumas transações Lightning, abrir um canal direto não é vantajoso, pois me custaria 2 transações na cadeia para um número limitado de transações fora da cadeia. Esse caso pode ocorrer, por exemplo, ao querer pagar com Lightning em um comerciante sem planejar retornar.

Para resolver esse problema, a Lightning Network permite rotear um pagamento através de vários canais e nós intermediários, possibilitando assim uma transação sem um canal direto com a outra pessoa.

Por exemplo, imagine que:

LNP201

Se Alice quer enviar fundos para Bob sem abrir um canal direto com ele, ela terá que passar por Suzie, e cada canal precisará ajustar a liquidez de cada lado. Os satoshis enviados permanecem dentro de seus respectivos canais; eles não "cruzam" os canais de fato, mas a transferência é feita via um ajuste da liquidez interna em cada canal.

Suponha que Alice queira enviar 50.000 satoshis para Bob:

LNP201 Assim, o pagamento é encaminhado para Bob através de um movimento de liquidez em cada canal. Ao final da operação, Alice fica com 50.000 sats. Ela realmente transferiu 50.000 sats, já que inicialmente tinha 100.000. Bob, por sua vez, acaba com 50.000 sats adicionais. Para Suzie (o nó intermediário), esta operação é neutra: inicialmente, ela tinha 30.000 sats em seu canal com Alice e 250.000 sats em seu canal com Bob, um total de 280.000 sats. Após a operação, ela possui 80.000 sats em seu canal com Alice e 200.000 sats em seu canal com Bob, que é a mesma soma que no início. Esta transferência é, portanto, limitada pela liquidez disponível na direção da transferência.

Cálculo da Rota e Limites de Liquidez

Vamos pegar um exemplo teórico de outra rede com:

LNP201

O máximo que Alice pode enviar para Bob nesta configuração é 90.000 satoshis, pois ela é limitada pela menor liquidez disponível no canal de Suzie para Carol. Na direção oposta (de Bob para Alice), nenhum pagamento é possível porque o lado de Suzie no canal com Alice não contém satoshis. Portanto, não há nenhuma rota utilizável para uma transferência nesta direção. Alice envia 40.000 satoshis para Bob através dos canais:

LNP201

Os satoshis enviados em cada canal permanecem no canal, então os satoshis enviados por Carol para Bob não são os mesmos que foram enviados por Alice para Suzie. A transferência é feita apenas ajustando a liquidez dentro de cada canal. Além disso, a capacidade total dos canais permanece inalterada.

LNP201

Como no exemplo anterior, após a transação, o nó de origem (Alice) tem 40.000 satoshis a menos. Os nós intermediários (Suzie e Carol) retêm o mesmo valor total, tornando a operação neutra para eles. Finalmente, o nó de destino (Bob) recebe 40.000 satoshis adicionais.

O papel dos nós intermediários é, portanto, muito importante no funcionamento da Lightning Network. Eles facilitam as transferências, oferecendo múltiplos caminhos para os pagamentos. Para incentivar esses nós a fornecerem sua liquidez e participarem do roteamento de pagamentos, taxas de roteamento são pagas a eles.

Taxas de Roteamento

Os nós intermediários aplicam taxas para permitir que os pagamentos passem por seus canais. Essas taxas são definidas por cada nó para cada canal. As taxas consistem em 2 elementos:

Por exemplo, para um canal entre Alice e Suzie, poderíamos ter:

LNP201

Para entender melhor como funcionam as taxas, vamos estudar a mesma Rede Lightning de antes, mas agora com as seguintes taxas de roteamento:

Para o mesmo pagamento de 40.000 satoshis para Bob, Alice terá que enviar um pouco mais, já que cada nó intermediário deduzirá suas taxas:

As taxas totais para este pagamento neste caminho são, portanto, 9,04 satoshis. Assim, Alice deve enviar 40.009,04 satoshis para que Bob receba exatamente 40.000 satoshis.

LNP201

A liquidez é, portanto, atualizada:

LNP201

Roteamento Onion

Para rotear um pagamento do remetente ao destinatário, a Rede Lightning utiliza um método chamado "roteamento onion". Diferentemente do roteamento de dados clássicos, onde cada roteador decide a direção dos dados com base em seu destino, o roteamento onion funciona de maneira diferente:

Neste capítulo, exploramos o roteamento de pagamentos na Rede Lightning. Mas surge uma questão: o que impede os nós intermediários de aceitar um pagamento de entrada sem encaminhá-lo para o próximo destino, com o objetivo de interceptar a transação? Este é precisamente o papel dos HTLCs que estudaremos no capítulo seguinte.

HTLC – Hashed Time Locked Contract

4369b85a-1365-55d8-99e1-509088210116 :::video id=6f204b92-55a5-4939-9440-7c5b96a297bf:::

Neste capítulo, descobriremos como o Lightning permite que pagamentos transitem através de nós intermediários sem a necessidade de confiar neles, graças aos HTLC (Hashed Time-Locked Contracts). Esses contratos inteligentes garantem que cada nó intermediário só receberá os fundos de seu canal se encaminhar o pagamento para o destinatário final, caso contrário, o pagamento não será validado.

O problema que surge para o roteamento de pagamentos é, portanto, a confiança necessária nos nós intermediários, e entre os próprios nós intermediários. Para ilustrar isso, vamos revisitar nosso exemplo simplificado de rede Lightning com 3 nós e 2 canais:

Alice quer enviar 40.000 sats para Bob, mas ela não tem um canal direto com ele e não deseja abrir um. Ela procura uma rota e decide passar pelo nó de Suzie.

LNP201

Se Alice ingenuamente enviar 40.000 satoshis para Suzie esperando que Suzie transfira essa soma para Bob, Suzie poderia manter os fundos para si e não transmitir nada para Bob.

LNP201 Para evitar essa situação, no Lightning, usamos HTLCs (Hashed Time-Locked Contracts), que tornam o pagamento ao nó intermediário condicional, significando que Suzie deve cumprir certas condições para acessar os fundos de Alice e transferi-los para Bob.

Como Funcionam os HTLCs

Um HTLC é um contrato especial baseado em dois princípios:

Aqui está como esse processo funciona em nosso exemplo com Alice, Suzie e Bob:

LNP201 Criando o segredo: Bob gera um segredo aleatório notado como s (a pré-imagem) e calcula seu hash notado como r com a função hash notada como h. Temos:

r = h(s)

Usar uma função hash torna impossível encontrar s apenas com h(s), mas se s for fornecido, é fácil verificar que corresponde a h(s).

LNP201

Enviando a solicitação de pagamento: Bob envia uma fatura para Alice pedindo um pagamento. Esta fatura inclui notavelmente o hash r.

LNP201

Enviando o pagamento condicional: Alice envia um HTLC de 40.000 satoshis para Suzie. A condição para Suzie receber esses fundos é que ela forneça a Alice um segredo s' que satisfaça a seguinte equação:

h(s') = r
LNP201

Transferindo o HTLC para o destinatário final: Suzie, para obter os 40.000 satoshis de Alice, deve transferir um HTLC similar de 40.000 satoshis para Bob, que tem a mesma condição, ou seja, ele deve fornecer a Suzie um segredo s' que satisfaça a equação:

h(s') = r
LNP201

Validação pelo segredo s: Bob fornece s a Suzie para receber os 40.000 satoshis prometidos no HTLC. Com esse segredo, Suzie pode então desbloquear o HTLC de Alice e obter os 40.000 satoshis de Alice. O pagamento é então corretamente encaminhado para Bob.

LNP201 Este processo impede que Suzie fique com os fundos de Alice sem completar a transferência para Bob, pois ela deve enviar o pagamento a Bob para obter o segredo s e assim desbloquear o HTLC de Alice. A operação permanece a mesma mesmo se a rota incluir vários nós intermediários: é simplesmente uma questão de repetir os passos de Suzie para cada nó intermediário. Cada nó é protegido pelas condições dos HTLCs, porque desbloquear o último HTLC pelo destinatário automaticamente desencadeia o desbloqueio de todos os outros HTLCs em cascata.

Expiração e gestão dos HTLCs em caso de problemas

Se durante o processo de pagamento, um dos nós intermediários, ou o nó destinatário, parar de responder, especialmente em caso de uma interrupção da internet ou de energia, então o pagamento não pode ser completado, porque o segredo necessário para desbloquear os HTLCs não é transmitido. Tomando nosso exemplo com Alice, Suzie e Bob, este problema ocorre, por exemplo, se Bob não transmitir o segredo s para Suzie. Neste caso, todos os HTLCs a montante do caminho são bloqueados, e os fundos que eles asseguram também.

LNP201

Para evitar isso, os HTLCs no Lightning têm uma expiração que permite a remoção do HTLC se ele não for completado após um determinado tempo. A expiração segue uma ordem específica, pois começa primeiro com o HTLC mais próximo do destinatário, e então progride até o emissor da transação. No nosso exemplo, se Bob nunca der o segredo s para Suzie, isso causaria primeiro a expiração do HTLC de Suzie para Bob.

LNP201

Depois o HTLC de Alice para Suzie. LNP201 Se a ordem de expiração fosse invertida, Alice poderia recuperar seu pagamento antes que Suzie pudesse se proteger de uma possível trapaça. De fato, se Bob voltasse para reivindicar seu HTLC enquanto Alice já tivesse removido o dela, Suzie estaria em desvantagem. Esta ordem cascata de expiração de HTLCs, portanto, garante que nenhum nó intermediário sofra de perdas injustas.

Representação de HTLCs em transações de compromisso

Transações de compromisso representam HTLCs de tal forma que as condições que impõem ao Lightning podem ser transferidas para o Bitcoin em caso de fechamento forçado do canal durante a vida útil de um HTLC. Como lembrete, transações de compromisso representam o estado atual do canal entre os dois usuários e permitem um fechamento forçado unilateral em caso de problemas. Com cada novo estado do canal, 2 transações de compromisso são criadas: uma para cada parte. Vamos revisitar nosso exemplo com Alice, Suzie e Bob, mas olhar mais de perto o que acontece no nível do canal entre Alice e Suzie quando o HTLC é criado. LNP201

Antes do início do pagamento de 40.000 sats entre Alice e Bob, Alice tem 100.000 sats em seu canal com Suzie, enquanto Suzie possui 30.000. Suas transações de compromisso são as seguintes:

LNP201

Alice acabou de receber a fatura de Bob, que contém notavelmente r, o hash do segredo. Ela pode, assim, construir um HTLC de 40.000 satoshis com Suzie. Este HTLC é representado nas últimas transações de compromisso como uma saída chamada "HTLC Out" do lado de Alice, já que os fundos estão saindo, e "HTLC In" do lado de Suzie, já que os fundos estão entrando.

LNP201

Estas saídas associadas ao HTLC compartilham exatamente as mesmas condições, a saber:

Estas condições aplicam-se apenas se o canal for fechado (ou seja, uma transação de compromisso for publicada na blockchain) enquanto o HTLC ainda estiver ativo no Lightning, significando que o pagamento entre Alice e Bob ainda não foi finalizado, e os HTLCs ainda não expiraram. Graças a estas condições, Suzie pode recuperar os 40.000 satoshis do HTLC devido a ela fornecendo s. Caso contrário, Alice recupera os fundos após a expiração do timelock, porque se Suzie não conhece s, significa que ela não transferiu os 40.000 satoshis para Bob, e, portanto, os fundos de Alice não lhe são devidos.

Além disso, se o canal for fechado enquanto vários HTLCs estiverem pendentes, haverá tantas saídas adicionais quantos forem os HTLCs em andamento. Se o canal não for fechado, então após a expiração ou sucesso do pagamento Lightning, novas transações de compromisso são criadas para refletir o novo estado agora estável do canal, ou seja, sem quaisquer HTLCs pendentes. As saídas relacionadas aos HTLCs podem, portanto, ser removidas das transações de compromisso. LNP201 Finalmente, no caso de um fechamento cooperativo de canal enquanto um HTLC está ativo, Alice e Suzie param de aceitar novos pagamentos e esperam pela resolução ou expiração dos HTLCs em andamento. Isso permite que elas publiquem uma transação de fechamento mais leve, sem as saídas relacionadas aos HTLCs, reduzindo assim as taxas e evitando a espera por um possível timelock. O que você deve absorver deste capítulo?

HTLCs possibilitam o roteamento de pagamentos Lightning através de múltiplos nós sem a necessidade de confiar neles. Aqui estão os pontos chave para lembrar:

No próximo capítulo, descobriremos como um nó emitindo uma transação Lightning encontra e seleciona rotas para que seu pagamento alcance o nó destinatário.

Encontrando Seu Caminho

7e2ae959-c2a1-512e-b5d6-8fd962e819da :::video id=e5baa834-111d-46f5-a28b-3538bed2bbb0:::

Nos capítulos anteriores, vimos como usar os canais de outros nós para rotear pagamentos e alcançar um nó sem estar diretamente conectado a ele através de um canal. Também discutimos como garantir a segurança da transferência sem confiar nos nós intermediários. Neste capítulo, focaremos em encontrar a melhor rota possível para alcançar um nó alvo.

O Problema de Roteamento no Lightning

Como vimos, no Lightning, é o nó que envia o pagamento que deve calcular a rota completa até o destinatário, porque usamos um sistema de roteamento em cebola. Os nós intermediários não sabem nem o ponto de origem nem o destino final. Eles apenas sabem de onde o pagamento vem e para qual nó eles devem transferi-lo a seguir. Isso significa que o nó remetente deve manter uma topologia local dinâmica da rede, com os nós Lightning existentes e os canais entre cada um, levando em conta aberturas, fechamentos e atualizações de estado.

LNP201 Mesmo com essa topologia da Rede Lightning, há informações essenciais para o roteamento que permanecem inacessíveis ao nó remetente, que é a distribuição exata de liquidez nos canais em qualquer momento dado. De fato, cada canal apenas exibe sua capacidade total, mas a distribuição interna de fundos é conhecida apenas pelos dois nós participantes. Isso representa desafios para o roteamento eficiente, pois o sucesso do pagamento depende notavelmente de se o seu montante é menor que a liquidez mais baixa na rota escolhida. No entanto, as liquidezes não são todas visíveis ao nó remetente. LNP201

Atualização do Mapa da Rede

Para manter seu mapa da rede atualizado, os nós trocam regularmente mensagens através de um algoritmo chamado "gossip". Este é um algoritmo distribuído usado para espalhar informações de maneira epidêmica para todos os nós na rede, o que permite a troca e sincronização do estado global dos canais em poucos ciclos de comunicação. Cada nó propaga informações para um ou mais vizinhos escolhidos ao acaso ou não, estes, por sua vez, propagam a informação para outros vizinhos e assim por diante até que um estado globalmente sincronizado seja alcançado.

As 2 principais mensagens trocadas entre nós Lightning são as seguintes:

Roteando um Pagamento

Vamos tomar um exemplo de uma pequena Rede Lightning com 7 nós: Alice, Bob, 1, 2, 3, 4 e 5. Imagine que Alice quer enviar um pagamento para Bob, mas deve passar por nós intermediários.

LNP201

Aqui está a distribuição atual de fundos nesses canais:

LNP201

Para fazer um pagamento de 100.000 sats de Alice para Bob, as opções de roteamento são limitadas pela liquidez disponível em cada canal. A rota ótima para Alice, com base nas distribuições de liquidez conhecidas, poderia ser a sequência Alice → 1 → 2 → 4 → 5 → Bob:

LNP201

Mas, como Alice não conhece a distribuição exata de fundos em cada canal, ela deve estimar a rota ótima de forma probabilística, levando em conta os seguintes critérios:

Execução do Pagamento

Alice decide testar sua primeira rota (Alice → 1 → 2 → 5 → Bob). Ela, portanto, envia um HTLC de 100.000 sats para o nó 1. Este nó verifica se tem liquidez suficiente com o nó 2 e continua a transmissão. O nó 2 então recebe o HTLC do nó 1, mas percebe que não tem liquidez suficiente em seu canal com o nó 5 para rotear um pagamento de 100.000 sats. Ele então envia uma mensagem de erro de volta para o nó 1, que a transmite para Alice. Esta rota falhou.

LNP201

Alice então tenta rotear seu pagamento usando sua segunda rota (Alice → 1 → 2 → 4 → 5 → Bob). Ela envia um HTLC de 100.000 sats para o nó 1, que o transmite para o nó 2, depois para o nó 4, para o nó 5 e, finalmente, para Bob. Desta vez, a liquidez é suficiente, e a rota é funcional. Cada nó desbloqueia seu HTLC em cascata usando o preimage fornecido por Bob (o segredo s), o que permite que o pagamento de Alice para Bob seja finalizado com sucesso.

LNP201

A busca por uma rota é conduzida da seguinte forma: o nó de envio começa identificando as melhores rotas possíveis, depois tenta pagamentos sucessivamente até encontrar uma rota funcional.

Vale ressaltar que Bob pode fornecer a Alice informações na fatura para facilitar o roteamento. Por exemplo, ele pode indicar canais próximos com liquidez suficiente ou revelar a existência de canais privados. Essas indicações permitem que Alice evite rotas com pouca chance de sucesso e tente primeiro os caminhos recomendados por Bob.

O que você deve levar deste capítulo?

No próximo capítulo, estudaremos especificamente o funcionamento das faturas, além de algumas outras ferramentas usadas na Rede Lightning.

As Ferramentas da Rede Lightning

Fatura, LNURL e Keysend

e34c7ecd-2327-52e3-b61e-c837d9e5e8b0 :::video id=309c3412-506e-4189-ad46-5e5088c55008::: Neste capítulo, vamos examinar mais de perto a operação de faturas Lightning, ou seja, solicitações de pagamento enviadas pelo nó receptor para o nó remetente. O objetivo é entender como pagar e receber pagamentos no Lightning. Também discutiremos 2 alternativas às faturas clássicas: LNURL e Keysend. LNP201

A Estrutura das Faturas Lightning

Como explicado no capítulo sobre HTLCs, cada pagamento começa com a geração de uma fatura pelo destinatário. Esta fatura é então transmitida ao pagador (via um código QR ou por copiar e colar) para iniciar o pagamento. Uma fatura consiste em duas partes principais:

A estrutura típica de uma fatura começa com um identificador ln para "Lightning", seguido por bc para Bitcoin, e então o valor da fatura. Um separador 1 distingue a parte legível por humanos da parte de dados (payload).

Vamos tomar a seguinte fatura como exemplo:

lnbc100u1p0x7x7dpp5l7r9y50wrzz0lwnsqgxdks50lxtwkl0mhd9lslr4rcgdtt2n6lssp5l3pkhdx0cmc9gfsqvw5xjhph84my2frzjqxqyz5vq9qsp5k4mkzv5jd8u5n89d2yc50x7ptkl0zprx0dfjh3km7g0x98g70hsqq7sqqqgqqyqqqqlgqqvnv2k5ehwnylq3rhpd9g2y0sq9ujyxsqqypjqqyqqqqqqqqqqqsqqqqq9qsq3vql5f6e45xztgj7y6xw6ghrcz3vmh8msrz8myvhsarxg42ce9yyn53lgnryx0m6qqld8fql

Já podemos dividi-la em 2 partes. Primeiro, há a Parte Legível por Humanos:

lnbc100u

Então a parte destinada ao payload:


p0x7x7dpp5l7r9y50wrzz0lwnsqgxdks50lxtwkl0mhd9lslr4rcgdtt2n6lssp5l3pkhdx0cmc9gfsqvw5xjhph84my2frzjqxqyz5vq9qsp5k4mkzv5jd8u5n89d2yc50x7ptkl0zprx0dfjh3km7g0x98g70hsqq7sqqqgqqyqqqqlgqqvnv2k5ehwnylq3rhpd9g2y0sq9ujyxsqqypjqqyqqqqqqqqqqqsqqqqq9qsq3vql5f6e45xztgj7y6xw6ghrcz3vmh8msrz8myvhsarxg42ce9yyn53lgnryx0m6qqld8fql

As duas partes são separadas por um 1. Esse separador foi escolhido em vez de um caractere especial para permitir a cópia e colagem fácil de toda a fatura com um duplo clique. Na primeira parte, podemos ver que:

Para designar a quantidade de pagamento, ela é expressa em subunidades do bitcoin. Aqui estão as unidades usadas:

O Conteúdo de uma Fatura

O conteúdo de uma fatura inclui várias peças de informação necessárias para processar o pagamento:

As faturas são então codificadas em bech32, o mesmo formato que para endereços Bitcoin SegWit (formato começando com bc1).

LNURL Saque

Em uma transação tradicional, como uma compra em loja, a fatura é gerada pelo valor total a ser pago. Uma vez que a fatura é apresentada (na forma de um código QR ou sequência de caracteres), o cliente pode escaneá-la e finalizar a transação. O pagamento então segue o processo tradicional que estudamos na seção anterior. No entanto, esse processo pode às vezes ser muito complicado para a experiência do usuário, pois requer que o receptor envie informações ao remetente via fatura. Para certas situações, como retirar bitcoins de um serviço online, o processo tradicional é muito complicado. Nestes casos, a solução de retirada LNURL simplifica esse processo exibindo um código QR que a carteira do destinatário escaneia para criar automaticamente a fatura. O serviço então paga a fatura, e o usuário simplesmente vê uma retirada instantânea.

LNP201

LNURL é um protocolo de comunicação que especifica um conjunto de funcionalidades projetadas para simplificar interações entre nós Lightning e clientes, bem como aplicações de terceiros. A retirada LNURL, como acabamos de ver, é apenas um exemplo entre outras funcionalidades. Este protocolo é baseado em HTTP e permite a criação de links para várias operações, como um pedido de pagamento, um pedido de retirada, ou outras funcionalidades que aprimoram a experiência do usuário. Cada LNURL é uma URL codificada em bech32 com o prefixo lnurl, que, uma vez escaneada, desencadeia uma série de ações automáticas na carteira Lightning. Por exemplo, a funcionalidade LNURL-withdraw (LUD-03) permite retirar fundos de um serviço escaneando um código QR, sem a necessidade de gerar manualmente uma fatura. Da mesma forma, LNURL-auth (LUD-04) possibilita o login em serviços online usando uma chave privada na carteira Lightning em vez de uma senha.

Enviando um Pagamento Lightning sem uma Fatura: Keysend

Outro caso interessante é a transferência de fundos sem ter recebido uma fatura previamente, conhecido como "Keysend". Este protocolo permite enviar fundos adicionando uma pré-imagem nos dados de pagamento criptografados, acessíveis apenas pelo destinatário. Esta pré-imagem permite que o destinatário desbloqueie o HTLC, assim recuperando os fundos sem ter gerado uma fatura previamente.

Para simplificar, neste protocolo, é o remetente quem gera o segredo usado nos HTLCs, em vez do destinatário. Na prática, isso permite que o remetente faça um pagamento sem ter tido que interagir com o destinatário previamente.

LNP201

O que você deve levar deste capítulo?

No próximo capítulo, veremos como um operador de nó pode gerenciar a liquidez em seus canais, para nunca ser bloqueado e sempre ser capaz de enviar e receber pagamentos na Rede Lightning.

Gerenciando Sua Liquidez

cc76d0c4-d958-57f5-84bf-177e21393f48 :::video id=96096aef-e4ce-4c44-a022-57e27082232a:::

Neste capítulo, exploraremos estratégias para gerenciar efetivamente a liquidez na Rede Lightning. A gestão da liquidez varia dependendo do tipo de usuário e contexto. Vamos olhar para os principais princípios e técnicas existentes para entender melhor como otimizar essa gestão.

Necessidades de Liquidez

Existem três principais perfis de usuários no Lightning, cada um com necessidades específicas de liquidez:

Esses perfis obviamente não são fixos; um usuário pode alternar entre pagador e beneficiário dependendo das transações. Por exemplo, Bob poderia receber seu salário no Lightning de seu empregador, colocando-o na posição de um "vendedor" que requer liquidez de entrada. Posteriormente, se ele quiser usar seu salário para comprar comida, ele se torna um "pagador" e deve então ter liquidez de saída.

Para entender melhor, vamos tomar o exemplo de uma rede simples composta por três nós: o comprador (Alice), o roteador (Suzie) e o vendedor (Bob).

LNP201

Imagine que o comprador queira enviar 30.000 sats para o vendedor e que o pagamento passe pelo nó do roteador. Cada parte deve então ter uma quantidade mínima de liquidez na direção do pagamento:

LNP201

Estratégias de Gestão de Liquidez

Os pagadores devem garantir a manutenção de liquidez suficiente do seu lado dos canais para garantir a liquidez de saída. Isso prova ser relativamente simples, pois basta abrir novos canais Lightning para ter essa liquidez. De fato, os fundos iniciais bloqueados no multisig on-chain estão inteiramente do lado do pagador no canal Lightning no início. A capacidade de pagamento é assim assegurada enquanto canais forem abertos com fundos suficientes. Quando a liquidez de saída se esgota, basta abrir novos canais. Por outro lado, para o vendedor, a tarefa é mais complexa. Para poder receber pagamentos, eles devem ter liquidez do lado oposto dos seus canais. Portanto, abrir um canal não é suficiente: eles também devem fazer um pagamento neste canal para mover a liquidez para o outro lado antes que possam receber pagamentos eles mesmos. Para certos perfis de usuários do Lightning, como comerciantes, existe uma clara desproporção entre o que seu nó envia e o que recebe, já que o objetivo de um negócio é principalmente coletar mais do que gasta, a fim de gerar lucro. Felizmente, para esses usuários com necessidades específicas de liquidez de entrada, várias soluções existem:

LNP201 LNP201

Finalmente, para os roteadores, cujo objetivo é maximizar o número de pagamentos processados e as taxas coletadas, eles devem:

O Serviço Loop Out

O serviço Loop Out, oferecido pela Lightning Labs, permite mover a liquidez para o lado oposto do canal enquanto recupera os fundos na blockchain do Bitcoin. Por exemplo, Alice envia 1 milhão de satoshis via Lightning para um nó de loop, que então retorna esses fundos para ela em bitcoins on-chain. Isso equilibra o canal dela com 1 milhão de satoshis de cada lado, otimizando sua capacidade de receber pagamentos.

LNP201

Portanto, este serviço possibilita a liquidez de entrada enquanto recupera os bitcoins on-chain, o que ajuda a limitar a imobilização de dinheiro necessário para aceitar pagamentos com Lightning.

O que você deve levar deste capítulo?

No próximo capítulo, proponho revisar os conceitos mais importantes deste treinamento.

Ir Além

Resumo da formação

a65a571c-561b-5e1c-87bf-494644653c22 :::video id=5f4f4344-ef27-4765-8f09-8262e6833bde:::

Neste capítulo final, marcando o término do treinamento LNP201, proponho revisitar os conceitos importantes que cobrimos juntos. O objetivo deste treinamento era fornecer a você um entendimento abrangente e técnico sobre a Lightning Network. Descobrimos como a Lightning Network depende da blockchain do Bitcoin para realizar transações fora da cadeia, mantendo as características fundamentais do Bitcoin, notavelmente a ausência da necessidade de confiar em outros nós.

Canais de Pagamento

Nos capítulos iniciais, exploramos como duas partes, ao abrir um canal de pagamento, podem conduzir transações fora da blockchain do Bitcoin. Aqui estão os passos abordados:

LNP201 2. Transações no Canal: Neste canal, é então possível realizar inúmeras transações sem ter que publicá-las na blockchain. Cada transação Lightning cria um novo estado do canal refletido em uma transação de compromisso. LNP201

LNP201

A Rede de Canais

Após estudar canais isolados, estendemos nossa análise para a rede de canais:

LNP201 LNP201 LNP201

Gestão de Liquidez

Vimos que a gestão de liquidez é um desafio na Lightning para garantir o fluxo suave de pagamentos. Enviar pagamentos é relativamente simples: basta abrir um canal. No entanto, receber pagamentos requer ter liquidez no lado oposto dos seus canais. Aqui estão algumas estratégias discutidas:

LNP201 LNP201

Seção final

Avaliações & Notas

38814c99-eb7b-5772-af49-4386ee2ce9b0 true

Exame final

7ed33400-aef7-5f3e-bfb1-7867e445d708 true

Conclusão

afc0d72b-4fbc-5893-90b2-e27fb519ad02 true