BitNotíciasBitNotícias
  • Últimas Notícias
  • Mercado
  • Regulação
  • Web3
  • Onde Investir
    • Criptomoedas Promissoras
    • Criptomoedas com Potencial
    • Memecoins
    • Inteligência Artificial
  • Guias
    • Passo a Passo para Iniciantes
    • Melhores Corretoras de Criptomoedas
    • Melhores Carteiras de Criptomoedas
    • Melhores Cartões Cripto
    • Comprar Criptomoedas
  • Análises
    • Cartões
    • Carteiras
    • Corretoras
Você está lendo: O Evangelho de Satoshi Nakamoto – Cap. 33 vers. 5
Compartilhe
BitNotíciasBitNotícias
Pesquise:
  • Últimas Notícias
  • Mercado
  • Regulação
  • Web3
  • Onde Investir
    • Criptomoedas Promissoras
    • Criptomoedas com Potencial
    • Memecoins
    • Inteligência Artificial
  • Guias
    • Passo a Passo para Iniciantes
    • Melhores Corretoras de Criptomoedas
    • Melhores Carteiras de Criptomoedas
    • Melhores Cartões Cripto
    • Comprar Criptomoedas
  • Análises
    • Cartões
    • Carteiras
    • Corretoras
BitNotícias nas Redes:
© 2019 – 2024 BitNotícias. Todos os direitos reservado
BitNotícias > Notícias > O Evangelho de Satoshi Nakamoto – Cap. 33 vers. 5
Notícias

O Evangelho de Satoshi Nakamoto – Cap. 33 vers. 5

Por Leonardo Broering Jahn
Atualizado em: 08/01/2025
Compartilhe
Compartilhe

Boa noite povo!

No versículo anterior estávamos na quarta parte da tradução de “A Formal Language for Analyzing Contracts”, hoje veremos a quinta.

CONTINUA APÓS A PUBLICIDADE

Quando o código fica complicado, talvez não seja possível saber facilmente se o then terminate implícito no final na última linha será executado. Portanto, é uma boa ideia dar um terminate no contrato explicitamente quando a opção expirar. 

Veremos exemplos em que mais de um tipo de evento e até sequências de eventos (como uma agenda de calendário de datas de pagamento) acionam a execução dos termos contratuais.

Lembre-se de que a linguagem não procede passo a passo por padrão – em vez disso, o leitor (humano ou computador) deve seguir as definições de contrato aninhadas à medida que se expandem e observar os eventos nas instruções when para ver o que elas acionam. Planejamentos explícitos de calendário passo a passo podem ser criados usando for, then, e eventos do calendário. 

CONTINUA APÓS A PUBLICIDADE

Aqui está um exemplo que usa essas etapas explícitas. Um bond faz uma sequência de pagamentos fixos, chamados cupons, regularmente, e depois efetua um pagamento final, o principal. Não mostramos aqui os detalhes da programação em si, mas, em geral, uma programação pode ser definida como qualquer tipo de sequência temporal – poderíamos pagar cupons no último dia de cada mês, em todos os feriados japoneses, de acordo com a computação da Páscoa (não ria – agendadores de feiras medievais tiveram que enfrentar esse problema), ou como quisermos. Quando implementados, os eventos de calendário e o iterador de agendamento contém uma implementação muito completa que resolve muitos dos problemas desagradáveis de calendário que geralmente aparecem nos sistemas de processamento de transações.

for itera pelos eventos no planejamento, um por um, com o when aninhado ao manipulá-los. Quando aparece após uma cláusula for, um then avança o iterador mais uma etapa.  

bond(coupon, principal, schedule) =
    for schedule
        when withinPeriod(schedule.next)
            to Holder coupon
    then
    when withinPeriod(schedule.next)
        to Holder principal

CONTINUA APÓS A PUBLICIDADE

Em seguida, esboçamos um contrato para vender um carro a crédito. Sendo um esboço e não um projeto completo, este é um exemplo simplificado ou “brinquedo” – deixamos de lado as taxas, quaisquer referências a um contrato de seguro relacionado, garantias, renúncias, etc. Também por simplicidade, temos o banco (aqui o Titular) é igual ao revendedor de automóveis. Finalmente, não mostramos aqui nenhuma garantia sobre o carro para garantir o empréstimo. Faremos uma facada em um mecanismo de penhor no exemplo abaixo.

loanPayments(payment, schedule) =
    for schedule
        when withinPeriod(schedule.next)
            payment
carPurchase(car, downPayment, monthlyPayment, schedule)  =
    to Counterparty getTitle(car)   with to Holder downPayment
    then to Holder loanPayment(monthlyPayment, schedule)

Se quisermos permitir o pagamento antecipado, nossa programação conterá horários únicos, em vez de períodos com um horário de início e um término. E nossos pagamentos de empréstimos teriam a seguinte aparência:

CONTINUA APÓS A PUBLICIDADE

loanPayments(payment, schedule) =
    for schedule
           when beforeTime(schedule.next)
                 payment

Poderíamos calcular o pagamento acima com outras informações que provavelmente veremos no contrato, mas isso envolve apenas uma programação normal. Podemos usar uma função para executar o cálculo em primeiro lugar:

loanPayments(principal, interest, schedule) =
        constant payment.amount = computeInterest(principal, schedule, interest)
                # normal computational function goes here
        then for schedule
                when beforeTime(schedule.next)
                        payment

CONTINUA APÓS A PUBLICIDADE

“=” define, para todo time (portanto, constant [constante]), o número payment.amount ao valor retornado pela função computeInterest. Também poderíamos fazer coisas mais complicadas – deduzir juros por pré-pagamento ou, ao contrário, adicionar multas por pré-pagamento ou uma grande variedade de outras condições.  

Também podemos estruturar o contrato de compra do carro para que o novo proprietário não receba o título até depois que o downPayment [pagamento inicial] for recebido:

carPurchase(car, downPayment, monthlyPayment, schedule)  =
    to Holder downPayment
    then to Counterparty getTitle(car)
    then to Holder loanPayments(monthlyPayment, schedule)

A quinta parte foi esta, no versículo seguinte veremos a sexta. Deus os abençoe!

Comitê falso de Trump-Vance desviou US$ 250 mil em criptomoedas
OKX reforça compliance e pede desculpas após congelamento indevido de contas
Sistema Timeboost garante segurança e gera lucro para a Arbitrum DAO
KuCoin e BitGo se unem para lançar projeto de US$ 2 bilhões para segurança de criptomoedas
Rússia descarta Bitcoin como reserva: “Ativo de alto risco”
TagsEvangelhoSatoshi Nakamoto
Compartilhe este artigo
Facebook Whatsapp Whatsapp Telegram Copiar Link
PorLeonardo Broering Jahn
@leonardobjahn Natural de Florianópolis, SC 27 anos Evangelista Bitcoin Graduando Administração na UFSC Professor particular e tradutor de Inglês
Publicidade

Últimas Notícias

Bitcoin pode bater US$ 130 mil até agosto
Bitcoin pode bater US$ 130 mil até agosto
2 min
Baleias de Litecoin movimenta 105 milhões em 24 horas e sacodem o mercado
Baleias de Litecoin movimenta 105 milhões em 24 horas e sacodem o mercado
3 min
Kraken inicia campanha interativa para nomear mascote da rede Ink
3 min

Destaque

  • Últimas Notícias
  • Mercado
  • Regulação
  • Tecnologia
  • Web3
  • Eventos

Reviews

  • Cartões
  • Wallets
  • Exchanges

Guias

  • Investir Agora
  • Comprar Criptomoedas
  • Melhores Corretoras
  • Carteira de Criptomoedas
  • Cartões de Criptomoedas
  • Glossário

Tudo Sobre

  • Bitcoin
  • Ethereum
  • Polygon
  • Solana
  • Mineração
  • Web3

Sobre Nós

  • MediaKit
  • Quem Somos
  • Política Editorial
  • Política de Privacidade
  • Política de Cookies
  • Contato
Cookie Settings
BitNotícias nas Redes:
© 2019 – 2024 BitNotícias. Todos os direitos reservado
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?