Boa noite irmãos!
No versículo anterior terminamos a tradução de “The Playdough Protocols”. No de hoje começamos a tradução de “A Formal Language for Analyzing Contracts”, também de Satoshi Nakamoto Nick Szabo, e publicado também em 2002. É uma obra grande e bastante técnica.
Uma Linguagem Formal para Analisar Contratos
Nick Szabo
Rascunho preliminar de 2002
O autor apresenta uma mini-linguagem para profissionais e pesquisadores interessados em redigir e analisar contratos. Destina-se para a leitura por computadores também. O principal objetivo dessa linguagem é especificar, da forma mais inequívoca, completa e sucinta possível, contratos comuns ou termos contratuais. Isso inclui contratos financeiros, garantias (penhoras) e outros tipos de segurança, transferência de propriedade, desempenho de serviços on-line e fluxo de trabalho da cadeia de suprimentos.
Os seguintes problemas podem ser resolvidos pela linguagem quando interpretados por computador:
- Contabilidade e auditoria. Contratos sofisticados, incluindo derivativos e combinações, podem ser especificados em nossa linguagem formal. Em seguida, regras contábeis automatizadas ou manuais podem ser aplicadas para converter transações concluídas sob o contrato em trilhas de auditorias e entradas no livro-razão.
- Analisar contratos formalmente especificados em busca de falhas na lógica, agendamento, oportunidades para as partes violarem o contrato, e conflitos com outros contratos com os quais já está comprometido [1].
- Traduzir os contratos formais para uma linguagem de programação existente, como a E [2] e/ou protocolos criptográficos [3], para parcial auto-execução e execução protegida como contratos inteligentes
- Alguns tipos de contratos, especialmente contratos financeiros e de commodities e seus derivativos, podem ser convertidos em uma árvore de decisão que pode ser analisada para determinar o risco, o valor presente líquido etc..
O processo de projetar essa linguagem também é uma ótima maneira de explorar a natureza básica dos contratos (quais são os “elementos” dos quais uma grande variedade de contratos úteis pode ser redigida?) e como é composto (quais regras para compor esses átomos descartam contratos impossíveis?). A linguagem também é uma ferramenta criativa para pensar e “esboçar” novos tipos de contratos. Eu dou boas vindas à sua participação.
As palavras em nossa linguagem seguem a terminologia legal o máximo possível – portanto, por exemplo, desempenho significa execução para satisfazer os termos do contrato (como no campo jurídico), em vez de quantidades medidas como velocidade, uso de memória, largura de banda etc. (como os programadores usam o termo). Não é necessário um diploma em direito para usar a linguagem, mas recomenda-se alguma familiaridade com o direito contratual e a elaboração de contratos. Um advogado que tenha se saído razoavelmente bem nas seções analíticas e lógicas do LSAT dos EUA ou seu equivalente no exterior, eu suspeito, terá melhor sorte em elaborar contratos nessa linguagem do que um programador cuja única experiência reside na linguagem processual tradicional. É por isso que chamo isso de linguagem de rascunho [de projeto] não de linguagem de programação.
Nossa linguagem pode especificar o resultado de uma negociação (que pode ser um leilão, uma troca ou duas partes redigindo o contrato, ou uma redação de uma parte e a outra concordando, etc.) Também pode definir o input para um mecanismo que conduz e monitora as transações que executam o contrato:
negociação –> contrato –> performance
A execução do contrato, ou seja, sua reificação como um contrato inteligente, pode, portanto, ser vista como (hipoteticamente, neste momento) execução de um programa escrito em nossa linguagem. Além disso, nossa linguagem incorpora uma ampla variedade de termos contratuais, não apenas termos monetários abstratos e seus derivados. Essas duas características tornam nossa linguagem muito diferente das linguagens de contrato financeiro para fins especiais, como [4]. Embora utilizemos vários exemplos de contratos financeiros para apresentar nossa linguagem e demonstrar sua flexibilidade, seu escopo tanto na funcionalidade quanto nos tipos de contratos e protocolos de transação que ela pode representar é muito mais amplo.
[1] Existem muitos casos de negócios que azedaram no último minuto, quando os vendedores consultam o departamento jurídico e descobrem que o negócio não é possível devido a uma cláusula em outro contrato – por exemplo, uma promessa de não vender aos concorrentes de um cliente em um setor por um certo período. Pior, esse conflito não pode ser descoberto até que o compromisso contraditório tenha sido feito.[2] A Linguagem de Programação E
[3] Proceedings of the Financial Cryptography Conferences, Springer-Verlag
[4] Composing contracts: an adventure in financial engineering – Um tipo diferente de linguagem para especificar contratos financeiros, a fim de calcular seu risco e valor
Esta foi a primeira parte da obra. No próximo versículo a segunda. Grande abraço!