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
O Corda possui uma documentação bastante boa com videoaulas, que podem ser encontradas aqui. Vou tentar descrever brevemente como o Corda funciona internamente.

Vamos considerar as principais características do Corda e sua singularidade em relação a outras blockchains:

  • O Corda não possui uma criptomoeda própria.
  • O Corda não utiliza o conceito de mineração e o sistema Proof-of-Work.
  • A transmissão de dados ocorre apenas entre os participantes da transação/contrato. Não há broadcasting global para todos os nós da rede.
  • Não há um controlador central que gerencia todas as transações.
  • O Corda suporta diferentes mecanismos de consenso.
  • O consenso é alcançado entre os participantes em nível de um acordo/contrato específico, e não em nível de todo o sistema.
  • A transação é confirmada apenas pelos participantes envolvidos.
  • O Corda oferece uma conexão direta entre a linguagem jurídica humana formal e o código dos contratos inteligentes.

O livro-razão

O conceito de livro-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 dos fatos que conhece.

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

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

Como podemos ver, Ed, Carl e Demi conhecem o fato 3, enquanto Alice e Bob nem suspeitam dele. O Corda garante que os fatos comuns sejam mantidos na base de cada nó, e os dados serão idênticos.

Estados

Um 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, como ações, títulos, créditos e informações de identificação.

Por exemplo, o seguinte estado representa um IOU — um acordo sobre que Alice deve a Bob a quantia 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 é necessário atualizar o estado atual, criamos um novo, e o atual é marcado como histórico.

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

Transações

As transações são propostas para atualização do livro-razão. Elas não são transmitidas a todos os participantes do livro-razão e são acessíveis apenas àqueles participantes da rede que têm o direito legítimo de visualizá-las e gerenciá-las.

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

  • contractualmente válida
  • assinada por todos os participantes necessários
  • não contém gastos duplos (double-spends)

Corda utiliza o modelo UTXO (unspent transaction output), onde cada estado do ledger é imutável.

Ao criar, a transação recebe o estado de saída da transação anterior (por hash e índice).

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

  • Criação (Neste momento, a transação é apenas uma proposta de atualização do ledger)
  • Coleta de assinaturas (Os participantes necessários da transação aprovam a proposta de atualização adicionando suas assinaturas à transação)
  • Commit da transação no ledger

Após a adição da transação no ledger, os estados de entrada são marcados como históricos e não podem ser utilizados em transações futuras.

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

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

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

Contratos

Quando falamos sobre a validade da transação, nos referimos não apenas à presença das assinaturas necessárias, mas também à validade do contrato. Cada transação está vinculada a um contrato que a aceita e valida os estados de entrada e saída. A transação é considerada válida apenas se todos os seus estados forem válidos.

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

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

É necessário herdar da classe Contract e sobrescrever o método verify. Em caso de transação inválida, uma exceção deve ser lançada.

A validação de transações deve ser determinística, ou seja, o contrato deve sempre aceitar ou rejeitar a transação. Por isso, a validade da transação não pode depender do tempo, números aleatórios, arquivos de nós da rede, etc.

Em Corda, os contratos são executados em uma chamada sandbox — uma JVM levemente alterada que garante a execução determinística dos contratos.

Fluxos

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

Um fluxo é uma sequência de etapas que informa ao nó como executar uma atualização específica do ledger, em que momento é necessário assinar e validar a transação.

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

Às vezes, leva horas ou dias até que a transação seja assinada por todas as partes e apareça no ledger. O que acontece se um nó participante da transação for desligado? Os fluxos têm pontos de verificação, onde os estados do fluxo são registrados na base de dados do nó. Ao restaurar o nó na rede, ele continuará de onde parou.

Consenso

Para que uma transação chegue ao ledger, ela deve alcançar 2 consensos: sobre a validade e a exclusividade.

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

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

Vamos imaginar que Bob tem 100$ e quer transferir 80$ para Charlie e 70$ para Dan, usando o mesmo estado de entrada.

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

Tal truque não poderá ser realizado no Corda. 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 de blockchain R3, não é um exemplo puro do uso da tecnologia blockchain. Corda é uma ferramenta bastante especializada para instituições financeiras.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster