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

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

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

Boa noite amigos!

No versículo anterior vimos a parte 11 da tradução de “A Formal Language for Analyzing Contracts”. No de hoje a décima segunda.

CONTINUA APÓS A PUBLICIDADE

Acima [no versículo anterior, no caso] é uma transcrição do comportamento da máquina. Agora, tornamos ainda mais como um contrato. Aqui, incorporamos o cliente e suas escolhas, que geraram implicitamente os eventos das moedas no código acima – aqui as moedas são direitos do Titular. Pensar mais na parte, e não na máquina, nos permite reconhecer que, a cada passo, o cliente deseja feedback sobre quanto dinheiro investiu, assim, to Counterparty display(moneyAmount). Essa exibição é feita pelo Titular (a máquina de venda automática como um agente do fornecedor) como um direito da Contraparte (o cliente). Para permitir uma melhor escolha do cliente, adicionamos uma nova construção à nossa linguagem: choiceOf(agent, right), que permite ao cliente várias opções, com base no direito que ele deseja transferir para a contraparte do agente (aqui a máquina de venda, o Detentor).

sellCandy(candyPrice = $0.90) =
    variable moneyAmount = $0.00
    then
        # coins also fall into a temporary till tempTill
    when choiceOf(Counterparty, nickel)
        to TempTill nickel
        then to Counterparty add(moneyAmount, $0.05)
        then to Counterparty display(moneyAmount)
    when choiceOf(Counterparty, dime)
        to TempTill dime
        then to Counterparty add(moneyAmount, $0.10)
        then to Counterparty display(moneyAmount)
    when choiceOf(Counterparty, quarter)
        to TempTill quarter
        then to Counterparty add(moneyAmount, $0.25)
        then to Counterparty display(moneyAmount)
    when choiceOf(Counterparty, moneyReturn)
        to Counterparty dropCoins(tempTill, returnTill)
        with moneyAmount = $0.00
        then to Counterparty display(moneyAmount)
    when threshold(moneyAmount, candyPrice)
        to Holder (nickel | dime | quarter)
            to CounterParty redirectNewCoinsTo(returnTill)
        also display(“ready to dispense — please select candy”)
        then when (candySelection)
            to Counterparty dropCandy(candyRacks, candySelection)
            with to PermanentTill dropCoins(TempTill)
            with moneyAmount = $0.00
    continue

Como é que especificamos o comportamento de uma máquina de venda automática em uma linguagem projetada para a elaboração de contratos? As moedas de 5, 10 e 25 centavos, e as operações como jogar moedas de uma gaveta para outra podem ser pensadas como direitos e obrigações? Eu acho que sim. Eles não são direitos e obrigações legais, com certeza. Não há contrato explícito entre o fornecedor e os clientes da máquina de doces e, se fosse o caso, provavelmente renunciaria à responsabilidade por violar a maioria das cláusulas em nosso código. O que este código descreve é o comportamento lógico e típico de uma máquina de venda automática. Ele também reifica o entendimento implícito que muitos clientes têm ao usar uma máquina de venda automática. Assim, ele modela um “encontro de mentes” semelhante ao contrato entre o cliente e o fornecedor, mediado pela máquina.

CONTINUA APÓS A PUBLICIDADE

Aqui está uma facada na descrição formal do hipotético “auto repo auto”. O carro é controlado por um proplet e ele analisa os títulos de propriedade para determinar a autoridade de propriedade. O proplet permite que apenas o proprietário intitulado entre e conduza o carro. “Titular” é o banco que fez o empréstimo e “Contraparte” é o novo proprietário. Como acima, ignoramos o vendedor de carros; o banco originalmente dono do carro. Este exemplo destaca a capacidade do idioma de descrever sucintamente contratos, mas também sua incapacidade de descrever a segurança real que aplicará o contrato. Obviamente, falta muito aqui, incluindo os itens que faltam no contrato de empréstimo de carro acima. Do ponto de vista de contratos inteligentes, a principal coisa que falta é que não há nada para motivar o “Holder getTitle (car)” no último when, nem qualquer maneira especificada aqui para aplicá-lo. E, é claro, toda conexão entre propriedade e autoridade para entrar, dar partida e dirigir o carro está aqui implícita – o comportamento real do proplet a esse respeito teria que levar em conta a segurança, o uso de emergência, etc.

Durante todo esse trabalho, na verdade, apenas adicionamos uma cláusula ao nosso contrato de compra de carro acima. A cláusula perde o título e está estruturada como as cláusulas de dano que vimos. Um evento breachedPerformance() é gerado se for detectado (pelo Titular, por um auditor de terceiros ou pelo proplet) que a Counterparty falhou em efetuar um pagamento de acordo com o cronograma especificado pelo loan [empréstimo].

loan(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 loan(monthlyPayment, schedule)
    when breachedPerformance(loan)
        to Holder getTitle(car)

CONTINUA APÓS A PUBLICIDADE

Fim da parte 12, no próximo a a décima terceira parte. Grande abraço!

X
Siga o BitNotícias no X para notícias em tempo real
VanEck encurta prazo e vê Bitcoin a US$ 1 milhão até 2031
Strategy admite vender Bitcoin para pagar dividendo se conta exigir
Exodus lança XO Cash, stablecoin em Solana voltada a agentes de IA
Ex-CTO da Ripple revela: 26 milhões de XRP renderiam US$ 59,8 mi
Trust Wallet revela segredos para o sucesso na Web3
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

Trump Media tem prejuízo de US$ 406 mi com perdas em Bitcoin e CRO
5 min
Aave v4 dobra depósitos em um mês e supera US$ 50 milhões no Ethereum
5 min
Lagarde barra stablecoins em euro e cita risco à política do BCE
5 min

Editorial

  • Bitcoin
  • Ethereum
  • Mercado
  • Altcoins
  • Regulação
  • Web3

Guias

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

Reviews

  • Cartões
  • Wallets
  • Exchanges

Dados

  • Preços de Criptomoedas

Institucional

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

Sign in to your account

Username or Email Address
Password

Lost your password?