Corda – blockchain de código aberto para negócios

Corda é um livro-razão distribuído para armazenar, gerenciar e sincronizar obrigações financeiras entre diferentes organizações financeiras.
Corda – blockchain de código aberto para negócios
Corda tem uma documentação muito boa com videoaulas que podem ser encontradas aqui. Tentarei descrever brevemente como o Corda funciona por dentro.

Vejamos as principais características do Corda e sua singularidade entre outras blockchains:

  • Corda não possui criptomoeda própria.
  • Corda não utiliza o conceito de mineração e o sistema de Prova de Trabalho.
  • A transferência de dados ocorre apenas entre as partes da transação/contrato. Não há transmissão global para todos os nós da rede.
  • Não existe um controlador central que gerencie todas as transações.
  • Corda oferece suporte a vários mecanismos de consenso.
  • O consenso é alcançado entre os participantes ao nível de um acordo/contrato individual, e não ao nível de todo o sistema.
  • Uma transação é confirmada apenas pelos participantes a ela relacionados.
  • Corda oferece uma conexão direta entre a linguagem jurídica humana formal e o código de contrato inteligente.

O livro

O conceito de razão no Corda é subjetivo. Não existe um único repositório central de dados. Em vez disso, cada nó mantém um banco de dados separado de fatos conhecidos por ele.

Por exemplo, imagine uma rede de 5 nós, onde um círculo é um fato conhecido pelo nó.

Corda – blockchain de código aberto para negócios

Como podemos ver, Ed, Carl e Demi sabem do fato 3, mas Alice e Bob nem sabem disso. Corda garante que os fatos comuns serão armazenados no banco de dados de cada nó e os dados serão idênticos.

Estados

Estado é imutável um objeto que representa um fato conhecido por um ou mais nós da rede em um determinado momento.

Os Estados podem armazenar dados arbitrários, por exemplo, ações, títulos, empréstimos, informações de identificação.

Por exemplo, o estado a seguir representa uma nota promissória – um acordo segundo o qual Alice deve a Bob uma quantia de X:

Corda – blockchain de código aberto para negócios
O ciclo de vida de um fato ao longo do tempo é representado por uma sequência de estados. Quando for necessário atualizar o estado atual, criamos um novo e marcamos o atual como histórico.

Corda – blockchain de código aberto para negócios

Transações

As transações são propostas para atualizar o razão. Eles não são transmitidos para todos os participantes do razão e estão disponíveis apenas para os participantes da rede que têm o direito legal de visualizá-los e gerenciá-los.

Uma transação será adicionada ao razão se:

  • contratualmente válido
  • assinado por todos os participantes necessários
  • não contém gastos duplos

Corda usa o modelo UTXO (saída de transação não gasta), no qual cada estado do razão é imutável.

Quando uma transação é criada, o estado de saída da transação anterior (por hash e índice) é transferido para a entrada.

Corda – blockchain de código aberto para negócios
Ciclo de vida da transação:

  • Criação (No momento, a transação é apenas uma proposta de atualização do razão)
  • Coletar assinaturas (as partes necessárias da transação aprovam a proposta de atualização adicionando uma assinatura à transação)
  • Confirmar transação no razão

Depois que uma transação é adicionada ao razão, os estados de entrada são marcados como históricos e não podem ser usados ​​em transações futuras.

Corda – blockchain de código aberto para negócios
Além dos estados de entrada e saída, uma transação pode conter:

  • Comandos (parâmetro de transação que indica a finalidade da transação)
  • Anexos (calendário de feriados, conversor de moeda)
  • Janelas de tempo (período de validade)
  • Notário (Notário, participantes especiais da rede que validam transações)

Corda – blockchain de código aberto para negócios

Contratos.

Quando falamos em validade de transação, queremos dizer não apenas a presença das assinaturas necessárias, mas também a validade contratual. Cada transação está associada a um contrato que a aceita e valida os estados de entrada e saída. Uma transação é considerada válida somente se todos os seus estados forem válidos.

Os contratos no Corda são escritos em qualquer linguagem JVM (por exemplo, Java, Kotlin).

class CommercialPaper : Contract {
    override fun verify(tx: LedgerTransaction) {
        TODO()
    }
}

É necessário herdar de uma classe Contato e substituir o método verificar. Se a transação for inválida, uma exceção será lançada.

A validação da transação deve ser determinística, ou seja, o contrato deve sempre aceitar ou rejeitar a transação. Em conexão com isso, a validade da transação não pode depender de tempo, números aleatórios, arquivos host, etc.

No Corda, os contratos são executados na chamada sandbox - uma JVM ligeiramente modificada que garante a execução determinística dos contratos.

Córregos

Para automatizar a comunicação entre os nós da rede, foram adicionados threads.

Um fluxo é uma sequência de etapas que informa a um nó como realizar uma atualização específica do razão e em que ponto a transação precisa ser assinada e validada.

Corda – blockchain de código aberto para negócios

Às vezes, leva horas, dias até que a transação seja assinada por todas as partes e chegue ao livro-razão. O que acontece se você desconectar um nó participante de uma transação? Threads possuem pontos de verificação, nos quais o estado do thread é gravado no banco de dados do nó. Quando um nó é restaurado na rede, ele continuará de onde parou.

Consenso

Para entrar no livro-razão, uma transação deve atingir 2 consensos: validade e exclusividade.

A decisão sobre a validade de uma transação é tomada apenas pelas partes diretamente envolvidas nela.

Os nós notariais verificam a exclusividade da transação e evitam gastos duplos.

Vamos imaginar que Bob tenha US$ 100 e queira transferir US$ 80 para Charlie e US$ 70 para Dan usando o mesmo estado de entrada.

Corda – blockchain de código aberto para negócios

Corda não permitirá que você faça tal truque. Embora a transação passe na verificação de validade, a verificação de exclusividade falhará.

Conclusão

A plataforma Corda, desenvolvida pelo consórcio blockchain R3, não é um caso de uso puro para a tecnologia blockchain. Corda é uma ferramenta altamente especializada para instituições financeiras.

Fonte: habr.com

Adicionar um comentário