photo

Fórum Forex Brasil

Lugar da Comunidade Forex

+ Responder ao Tópico
Resultados de 1 a 1 de 1

Thread: Processo de pagamento com Bitcoin

  1. #1 Fechar a publicação
    Senior Member
    Data de afiliação
    Aug 2020
    Postagens
    351
    Obrigado
    6
    Agradecimentos 171 Tempos em 143 Postagens
    AssinarAssinar
    subscritar: 2

    Processo de pagamento com Bitcoin

    O processamento de pagamentos abrange as etapas que os gastadores e receptores executam para fazer e aceitar pagamentos em troca de produtos ou serviços. As etapas básicas não mudaram desde os primórdios do comércio, mas a tecnologia mudou.
    Introdução
    Esta seção explicará como os destinatários e os gastadores podem, respectivamente, solicitar e fazer pagamentos usando Bitcoin - e como eles podem lidar com complicações como reembolsos e recibos recorrentes.


    Name:  Capturar 1.PNG
Views: 52
Size:  13.1 KB


    Processamento de pagamento bitcoin
    A figura acima ilustra o processamento de pagamento usando Bitcoin da perspectiva de um receptor, começando com um novo pedido. Cada uma das subseções a seguir abordará as três etapas comuns e as três etapas ocasionais ou opcionais.
    Vale ressaltar que cada uma dessas etapas pode ser terceirizada usando APIs e serviços de terceiros.
    Pedidos de preços
    Por causa da variabilidade da taxa de câmbio entre satoshis e moedas nacionais (fiat), muitos pedidos de Bitcoin são precificados em fiat, mas pagos em satoshis, necessitando de uma conversão de preço.
    Os dados de taxas de câmbio estão amplamente disponíveis por meio de APIs baseadas em HTTP fornecidas por casas de câmbio. Várias organizações também agregam dados de várias bolsas para criar preços de índice, que também estão disponíveis usando APIs baseadas em HTTP.
    Quaisquer aplicativos que calculam automaticamente os totais do pedido usando dados da taxa de câmbio devem tomar medidas para garantir que o preço cotado reflita o valor de mercado geral atual dos satoshis, ou os aplicativos podem aceitar poucos satoshis para o produto ou serviço que está sendo vendido. Alternativamente, eles podem pedir muitos satoshis, afastando potenciais gastadores.
    Para minimizar problemas, seus aplicativos podem querer coletar dados de pelo menos duas fontes separadas e compará-los para ver o quanto eles diferem. Se a diferença for substancial, seus aplicativos podem entrar em modo de segurança até que um ser humano possa avaliar a situação.
    Você também pode querer programar seus aplicativos para entrar no modo de segurança se as taxas de câmbio estiverem aumentando ou diminuindo rapidamente, indicando um possível problema no mercado de Bitcoin que pode dificultar o gasto de qualquer satoshis recebido hoje.
    As taxas de câmbio estão fora do controle do Bitcoin e tecnologias relacionadas, portanto, não há tecnologias novas ou planejadas que tornem significativamente mais fácil para o seu programa converter corretamente os totais dos pedidos de fiat em satoshis.
    Como a taxa de câmbio flutua ao longo do tempo, os totais dos pedidos atrelados ao decreto devem expirar para evitar que os gastadores atrasem o pagamento, na esperança de que os preços caiam. Os sistemas de processamento de pagamentos mais usados atualmente expiram suas faturas após 10 a 20 minutos.
    Períodos de expiração mais curtos aumentam a chance de a fatura expirar antes do pagamento ser recebido, possivelmente exigindo intervenção manual para solicitar um pagamento adicional ou emitir um reembolso. Períodos de expiração mais longos aumentam a chance de que a taxa de câmbio flutue em um valor significativo antes que o pagamento seja recebido.
    Solicitando Pagamentos
    Antes de solicitar o pagamento, seu aplicativo deve criar um endereço Bitcoin ou adquirir um endereço de outro programa, como Bitcoin Core. Os endereços de Bitcoin são descritos em detalhes no guia de transações. Também são descritos nessa seção dois motivos importantes para evitar o uso de um endereço mais de uma vez, mas um terceiro motivo se aplica especialmente a solicitações de pagamento:

    Usar um endereço separado para cada entrada de pagamento torna trivial determinar quais clientes pagaram suas solicitações de pagamento. Seus aplicativos precisam apenas rastrear a associação entre uma solicitação de pagamento específica e o endereço usado nela e, em seguida, varrer a cadeia de bloqueio em busca de transações que correspondam a esse endereço.
    As próximas subseções descreverão em detalhes as quatro maneiras compatíveis de fornecer ao gastador o endereço e o valor a ser pago. Para maior comodidade e compatibilidade, é recomendado fornecer todas essas opções em suas solicitações de pagamento.
    1. Todo software de carteira permite que seus usuários colem ou insiram manualmente um endereço e valor em uma tela de pagamento. Isso é, obviamente, inconveniente - mas é uma opção de fallback eficaz.
    2. Quase todas as carteiras de mesa podem ser associadas a URIs “bitcoin:”, portanto, os gastadores podem clicar em um link para preencher previamente a tela de pagamento. Isso também funciona com muitas carteiras móveis, mas geralmente não funciona com carteiras baseadas na web, a menos que o gastador instale uma extensão de navegador ou configure manualmente um manipulador de URI.
    3. A maioria das carteiras móveis suporta a digitalização de URIs “bitcoin:” codificados em um código QR, e quase todas as carteiras podem exibi-los para aceitação de pagamento. Embora também sejam úteis para pedidos online, os códigos QR são especialmente úteis para compras pessoais.
    4. As atualizações recentes da carteira adicionam suporte para o novo protocolo de pagamento, proporcionando maior segurança, autenticação da identidade de um destinatário usando certificados X.509 e outros recursos importantes, como reembolsos.
    Aviso: Cuidado especial deve ser tomado para evitar o roubo de pagamentos recebidos. Em particular, as chaves privadas não devem ser armazenadas em servidores da web e as solicitações de pagamento devem ser enviadas por HTTPS ou outros métodos seguros para evitar que ataques man-in-the-middle substituam seu endereço Bitcoin pelo endereço do invasor.
    Texto simples
    Para especificar um valor diretamente para copiar e colar, você deve fornecer o endereço, o valor e a denominação. Um tempo de expiração para a oferta também pode ser especificado. Por exemplo:
    (Observação: todos os exemplos nesta seção usam endereços testnet.)
    Pagamento: mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN
    Quantidade: 100 BTC
    Você deve pagar até: 01-04-2014 às 23:00 UTC
    A indicação da denominação é crítica. No momento em que este livro foi escrito, o software de carteira Bitcoin popular é padronizado para valores denominados em bitcoins (BTC), milibitcoins (mBTC) ou microbitcoins (uBTC, “bits”). A escolha entre cada unidade é amplamente suportada, mas outro software também permite que seus usuários selecionem valores de denominação de alguns pré-selecionados (por exemplo, Tabela abaixo) ou todas as 8 casas decimais padrão:
    Unidade de Bitcoins (abreviatura)
    1.0 bitcoin (BTC)
    0,01 bitcent (cBTC)
    0,001 milibitcoin (mBTC)
    0,000001 microbitcoin (uBTC, “bits”)
    0,0000001 finney
    0,00000001 satoshi
    bitcoin: URI
    O esquema URI “bitcoin:” definido em BIP21 elimina a confusão de denominação e evita que o gastador copie e cole dois valores separados. Ele também permite que a solicitação de pagamento forneça algumas informações adicionais ao gastador. Um exemplo:
    bitcoin: mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN? amount = 100


    Apenas o endereço é necessário e, se for a única coisa especificada, as carteiras preencherão previamente uma solicitação de pagamento com ele e permitirão que o gastador insira um valor. A quantidade especificada está sempre em bitcoins decimais (BTC).
    Dois outros parâmetros são amplamente suportados. O parâmetro "rótulo" geralmente é usado para fornecer software de carteira com o nome do destinatário. O parâmetro “mensagem” geralmente é usado para descrever a solicitação de pagamento ao gastador. Tanto o rótulo quanto a mensagem são comumente armazenados pelo software de carteira do gastador - mas eles nunca são adicionados à transação real, então outros usuários de Bitcoin não podem vê-los. O rótulo e a mensagem devem ser codificados por URI.
    Todos os quatro parâmetros usados juntos, com a codificação URI apropriada, podem ser vistos no exemplo de quebra de linha abaixo.
    bitcoin: mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN \
    ? quantidade = 0,10 \
    & label = Exemplo + Comerciante \
    & mensagem = Pedido + de + flores +% 26 + chocolates
    O esquema de URI pode ser estendido, como será visto na seção protocolo de pagamento abaixo, com novos parâmetros opcionais e obrigatórios. No momento em que este livro foi escrito, o único parâmetro amplamente utilizado além dos quatro descritos acima é o parâmetro "r" do protocolo de pagamento.
    Os programas que aceitam URIs em qualquer formato devem pedir permissão ao usuário antes de pagar, a menos que o usuário tenha desativado explicitamente o prompt (como pode ser o caso para micropagamentos).

    Códigos QR
    Os códigos QR são uma forma popular de trocar URIs de “bitcoin:” pessoalmente, em imagens ou em vídeos. A maioria dos aplicativos de carteira Bitcoin para celular e algumas carteiras de desktop oferecem suporte à leitura de códigos QR para preencher previamente suas telas de pagamento.
    A figura abaixo mostra o mesmo código URI “bitcoin:” codificado como quatro códigos QR Bitcoin diferentes em quatro níveis de correção de erro diferentes. O código QR pode incluir os parâmetros “rótulo” e “mensagem” - e quaisquer outros parâmetros opcionais - mas eles foram omitidos aqui para manter o código QR pequeno e fácil de digitalizar com câmeras móveis instáveis ou de baixa resolução.

    Name:  Capturar 2.PNG
Views: 52
Size:  20.1 KB

    Códigos Bitcoin QR
    A correção de erros é combinada com uma soma de verificação para garantir que o código Bitcoin QR não seja decodificado com sucesso com dados ausentes ou alterados acidentalmente, então seus aplicativos devem escolher o nível apropriado de correção de erros com base no espaço que você tem disponível para exibir o código. A correção de danos de baixo nível funciona bem quando o espaço é limitado, e a correção de danos de nível quartil ajuda a garantir uma varredura rápida quando exibida em telas de alta resolução.

    Protocolo de Pagamento
    Aviso: o protocolo de pagamento é considerado obsoleto e será removido em uma versão posterior do Bitcoin Core. O protocolo tem várias falhas de design de segurança e falhas de implementação em algumas carteiras. Os usuários começarão a receber avisos de suspensão de uso no Bitcoin Core versão 0.18 ao usar URIs BIP70. Os comerciantes devem fazer a transição do BIP70 para opções mais seguras, como o BIP21. Os comerciantes nunca devem exigir pagamentos BIP70 e devem fornecer recursos alternativos BIP21.
    Bitcoin Core 0.9 suporta o novo protocolo de pagamento. O protocolo de pagamento adiciona muitos recursos importantes às solicitações de pagamento:
    • Suporta certificados X.509 e criptografia SSL para verificar a identidade dos destinatários e ajudar a prevenir ataques man-in-the-middle.
    • Fornece mais detalhes sobre o pagamento solicitado aos gastadores.
    • Permite que os gastadores enviem transações diretamente aos destinatários, sem passar pela rede ponto a ponto. Isso pode acelerar o processamento de pagamentos e trabalhar com recursos planejados, como taxas de transação de pais que pagam pelos filhos e pagamentos off-line baseados em NFC ou Bluetooth.
    Em vez de serem solicitados a pagar um endereço sem sentido, como “mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN”, os gastadores são solicitados a pagar a descrição do Nome Comum (CN) do certificado X.509 do receptor, como “www.bitcoin.org”.
    Para solicitar o pagamento usando o protocolo de pagamento, você usa um URI “bitcoin:” estendido (mas compatível com versões anteriores). Por exemplo:
    bitcoin: mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN \
    ? quantidade = 0,10 \
    & label = Exemplo + Comerciante \
    & mensagem = Pedido + de + flores +% 26 + chocolates \
    & r = https: //example.com/pay/mjSk1Ny9spzU2fouzYgLqGUD8U41iR35QN
    Nenhum dos parâmetros fornecidos acima, exceto “r”, são necessários para o protocolo de pagamento, mas seus aplicativos podem incluí-los para compatibilidade com programas de carteira que ainda não lidam com o protocolo de pagamento.
    O parâmetro “r” diz aos programas de carteira com reconhecimento de protocolo de pagamento para ignorar os outros parâmetros e buscar um PaymentRequest do URL fornecido. O navegador, leitor de código QR ou outro programa que processa o URI abre o programa de carteira Bitcoin do gastador no URI.

    Name:  Capturar 3.PNG
Views: 54
Size:  37.5 KB

    Protocolo de Pagamento BIP70
    O protocolo de pagamento é descrito em detalhes no BIP70, BIP71 e BIP72. Um programa CGI de exemplo e uma descrição de todos os parâmetros que podem ser usados no protocolo de pagamento são fornecidos na subseção Protocolo de pagamento de exemplos de desenvolvedor. Nesta subseção, descreveremos brevemente em formato de história como o protocolo de pagamento é normalmente usado.
    Charlie, o cliente, está comprando em um site administrado por Bob, o empresário. Charlie adiciona alguns itens ao carrinho de compras e clica no botão “Pagar com Bitcoin”.
    O servidor de Bob adiciona automaticamente as seguintes informações ao seu banco de dados de faturas:
    • Os detalhes do pedido de Charlie, incluindo itens pedidos e endereço de entrega.
    • Um total do pedido em satoshis, talvez criado pela conversão de preços em fiat em preços em satoshis.
    • Um prazo de validade em que esse total não será mais aceitável.
    • Um script pubkey para o qual Charlie deve enviar o pagamento. Normalmente, será um script pubkey P2PKH ou P2SH contendo uma chave pública secp256k1 exclusiva (nunca antes usada).
    Depois de adicionar todas essas informações ao banco de dados, o servidor de Bob exibe um URI “bitcoin:” para Charlie clicar para pagar.
    Charlie clica no URI “bitcoin:” em seu navegador. O manipulador de URI de seu navegador envia o URI para seu programa de carteira. A carteira está ciente do Protocolo de Pagamento, por isso analisa o parâmetro “r” e envia um HTTP GET para essa URL à procura de uma mensagem PaymentRequest.
    A mensagem PaymentRequest retornada pode incluir informações privadas, como o endereço de correspondência de Charlie, mas a carteira deve ser capaz de acessá-la sem o uso de autenticação prévia, como cookies HTTP, portanto, um URL HTTPS acessível publicamente com uma parte resistente a suposições é normalmente usado. A chave pública exclusiva criada para a solicitação de pagamento pode ser usada para criar um identificador exclusivo. É por isso que, no URI de exemplo acima, o URL PaymentRequest contém o endereço P2PKH: https://example.com/pay/mjSk1Ny9spzU...qGUD8U41iR35QN
    Depois de receber o HTTP GET para a URL acima, o programa CGI gerador de PaymentRequest no servidor da web de Bob pega o identificador exclusivo da URL e procura os detalhes correspondentes no banco de dados. Em seguida, ele cria uma mensagem PaymentDetails com as seguintes informações:


    • O valor do pedido em satoshis e o script pubkey a ser pago.
    • Um memorando contendo a lista de itens pedidos, para que Charlie saiba o que está pagando. Também pode incluir o endereço de correspondência de Charlie para que ele possa verificar novamente.
    • A hora em que a mensagem PaymentDetails foi criada mais a hora em que ela expirou.
    • Um URL para o qual a carteira de Charlie deve enviar sua transação concluída.
    Essa mensagem PaymentDetails é colocada dentro de uma mensagem PaymentRequest. A solicitação de pagamento permite que o servidor de Bob assine toda a Solicitação com o certificado SSL X.509 do servidor. (O protocolo de pagamento foi projetado para permitir outros métodos de assinatura no futuro.) O servidor de Bob envia a solicitação de pagamento para a carteira de Charlie em resposta ao HTTP GET.

    Bitcoin Core mostrando solicitação de pagamento validada
    A carteira de Charlie recebe a mensagem PaymentRequest, verifica sua assinatura e, em seguida, exibe os detalhes da mensagem PaymentDetails para Charlie. Charlie concorda em pagar, então a carteira constrói um pagamento para o script pubkey que o servidor de Bob forneceu. Ao contrário de um pagamento Bitcoin tradicional, a carteira de Charlie não necessariamente transmite automaticamente esse pagamento para a rede. Em vez disso, a carteira constrói uma mensagem de pagamento e a envia para o URL fornecido na mensagem PaymentDetails como um HTTP POST. Entre outras coisas, a mensagem de pagamento contém:
    • A transação assinada em que Charlie paga Bob.
    • Um memorando opcional que Charlie pode enviar para Bob. (Não há garantia de que Bob o lerá.)
    • Um endereço de reembolso (script pubkey) que Bob pode pagar se precisar devolver alguns ou todos os satoshis de Charlie.
    O servidor de Bob recebe a mensagem de pagamento, verifica se a transação paga a quantia solicitada para o endereço fornecido e, em seguida, transmite a transação para a rede. Ele também responde à mensagem HTTP POSTed Payment com uma mensagem PaymentACK, que inclui um memorando opcional do servidor de Bob agradecendo a Charlie por seu patrocínio e fornecendo outras informações sobre o pedido, como a data prevista de chegada.
    A carteira de Charlie vê o PaymentACK e diz a Charlie que o pagamento foi enviado. O PaymentACK não significa que Bob verificou o pagamento de Charlie - consulte a subseção Verificação de Pagamento abaixo - mas significa que Charlie pode fazer outra coisa enquanto a transação é confirmada. Depois que o servidor de Bob verifica da cadeia de bloqueio que a transação de Charlie foi adequadamente confirmada, ele autoriza o envio do pedido de Charlie.
    No caso de uma disputa, Charlie pode gerar um recibo comprovado criptograficamente a partir de várias informações assinadas ou comprovadas de outra forma.
    • A mensagem PaymentDetails assinada pelo servidor da web de Bob prova que Charlie recebeu uma fatura para pagar um script pubkey especificado por um número especificado de satoshis para bens especificados no campo memo.
    • A cadeia de bloqueio de Bitcoin pode provar que o script pubkey especificado por Bob recebeu o número especificado de satoshis.
    Se um reembolso precisar ser emitido, o servidor de Bob pode pagar com segurança o script de reembolso para pubkey fornecido por Charlie. Consulte a seção Reembolsos abaixo para obter mais detalhes.

    Though trading on financial markets involves high risk, it can still generate extra income in case you apply the right approach. By choosing a reliable broker such as InstaForex you get access to the international financial markets and open your way towards financial independence. You can sign up here.


  2. The Following User Says Thank You to socrates980 For This Useful Post:

    Não registrado (1 )

+ Responder ao Tópico

Permissões de postagens

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts