Corda: cadena de blocs de codi obert per a empreses

Corda és un Ledger distribuït per emmagatzemar, gestionar i sincronitzar obligacions financeres entre diferents organitzacions financeres.
Corda: cadena de blocs de codi obert per a empreses
Corda té una documentació força bona amb videoconferències que es poden trobar aquí. Intentaré descriure breument com funciona Corda dins.

Vegem les principals característiques de Corda i la seva singularitat entre altres blockchains:

  • Corda no té la seva pròpia criptomoneda.
  • Corda no utilitza el concepte de mineria i el sistema Proof-of-Work.
  • La transferència de dades només es produeix entre les parts de la transacció/contracte. No hi ha transmissió global a tots els nodes de la xarxa.
  • No hi ha cap controlador central que gestioni totes les transaccions.
  • Corda admet diversos mecanismes de consens.
  • El consens s'aconsegueix entre els participants a nivell d'acord/contracte individual, i no a nivell de tot el sistema.
  • Una transacció només la confirmen els participants relacionats amb ella.
  • Corda ofereix una connexió directa entre el llenguatge jurídic humà formal i el codi de contracte intel·ligent.

El llibre major

El concepte de llibre major a Corda és subjectiu. No hi ha un únic repositori central de dades. En canvi, cada node manté una base de dades separada de fets coneguts.

Per exemple, imagineu una xarxa de 5 nodes, on un cercle és un fet conegut pel node.

Corda: cadena de blocs de codi obert per a empreses

Com podem veure, l'Ed, el Carl i la Demi coneixen el fet 3, però l'Alice i el Bob ni tan sols en són conscients. Corda garanteix que els fets comuns s'emmagatzemen a la base de dades de cada node, i les dades seran idèntiques.

Estats

L'estat és immutable un objecte que representa un fet conegut per un o més nodes de xarxa en un moment determinat.

Els estats poden emmagatzemar dades arbitràries, per exemple, accions, bons, préstecs, informació d'identificació.

Per exemple, l'estat següent representa un IOU, un acord pel qual Alice li deu a Bob una quantitat de X:

Corda: cadena de blocs de codi obert per a empreses
El cicle de vida d'un fet al llarg del temps està representat per una seqüència d'estats. Quan cal actualitzar l'estat actual, en creem un de nou i marquem l'actual com a històric.

Corda: cadena de blocs de codi obert per a empreses

Transaccions

Les transaccions són propostes per actualitzar el llibre major. No s'emeten a tots els participants del llibre major i només estan disponibles per als participants de la xarxa que tinguin el dret legal de visualitzar-los i gestionar-los.

S'afegirà una transacció al llibre major si:

  • vàlid contractualment
  • signat per tots els participants requerits
  • no conté dobles despeses

Corda utilitza el model UTXO (sortida de transacció no gastada), en què cada estat del llibre major és immutable.

Quan es crea una transacció, l'estat de sortida de la transacció anterior (per hash i índex) es transfereix a l'entrada.

Corda: cadena de blocs de codi obert per a empreses
Cicle de vida de la transacció:

  • Creació (De moment, la transacció és només una proposta per actualitzar el llibre major)
  • Recollir signatures (les parts obligatòries de la transacció aproven la proposta d'actualització afegint una signatura a la transacció)
  • Envia la transacció al llibre major

Un cop s'afegeix una transacció al llibre major, els estats d'entrada es marquen com a històrics i no es poden utilitzar en transaccions futures.

Corda: cadena de blocs de codi obert per a empreses
A més dels estats d'entrada i sortida, una transacció pot contenir:

  • Ordres (paràmetre de transacció que indica el propòsit de la transacció)
  • Adjunts (calendari de vacances, convertidor de moneda)
  • Finestra de temps (període de validesa)
  • Notari (Notari, participants especials de la xarxa que validen transaccions)

Corda: cadena de blocs de codi obert per a empreses

Contractes

Quan parlem de validesa de transacció, ens referim no només a la presència de les signatures necessàries, sinó també a la validesa contractual. Cada transacció s'associa a un contracte que l'accepta i valida els estats d'entrada i sortida. Una transacció només es considera vàlida si tots els seus estats són vàlids.

Els contractes a Corda s'escriuen en qualsevol llenguatge JVM (per exemple, Java, Kotlin).

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

Cal heretar d'una classe Contracte i anul·lar el mètode verificar. Si la transacció no és vàlida, es llançarà una excepció.

La validació de la transacció ha de ser determinista, és a dir. el contracte sempre ha d'acceptar o rebutjar la transacció. En relació amb això, la validesa de la transacció no pot dependre del temps, nombres aleatoris, fitxers host, etc.

A Corda, els contractes s'executen en una anomenada sandbox, una JVM lleugerament modificada que garanteix l'execució determinista dels contractes.

Corrents

Per automatitzar la comunicació entre nodes de xarxa, es van afegir fils.

Un flux és una seqüència de passos que indica a un node com realitzar una actualització específica del llibre major i en quin moment s'ha de signar i validar la transacció.

Corda: cadena de blocs de codi obert per a empreses

De vegades es triguen hores, dies fins que la transacció és signada per totes les parts i entra al llibre major. Què passa si desconnecteu un node que participa en una transacció? Els fils tenen punts de control, on l'estat del fil s'escriu a la base de dades del node. Quan un node es restaura a la xarxa, continuarà on l'havia deixat.

Consens

Per entrar al llibre major, una transacció ha d'arribar a 2 consensos: validesa i unicitat.

La decisió sobre la validesa d'una transacció només la prenen les parts directament implicades en ella.

Els nodes notarials comproven la singularitat de la transacció i eviten la doble despesa.

Imaginem que Bob té 100 dòlars i vol transferir 80 dòlars a Charlie i 70 dòlars a Dan utilitzant el mateix estat d'entrada.

Corda: cadena de blocs de codi obert per a empreses

Corda no us permetrà fer aquest truc. Tot i que la transacció passarà la comprovació de validesa, la comprovació d'unicitat fallarà.

Conclusió

La plataforma Corda, desenvolupada pel consorci blockchain R3, no és un cas d'ús pur de la tecnologia blockchain. Corda és una eina altament especialitzada per a entitats financeres.

Font: www.habr.com

Afegeix comentari