Corda - open source blockchain til erhvervslivet

corda er en distribueret Ledger til lagring, styring og synkronisering af finansielle forpligtelser mellem forskellige finansielle organisationer.
Corda - open source blockchain til erhvervslivet
Corda har ret god dokumentation med videoforedrag, der kan findes her. Jeg vil forsøge kort at beskrive, hvordan Corda fungerer indeni.

Lad os se på hovedtræk ved Corda og dets unikke blandt andre blockchains:

  • Corda har ikke sin egen kryptovaluta.
  • Corda bruger ikke begrebet minedrift og Proof-of-Work-systemet.
  • Dataoverførsel sker kun mellem parter i transaktionen/kontrakten. Der er ingen global udsendelse til alle netværksknuder.
  • Der er ingen central controller, der styrer alle transaktioner.
  • Corda understøtter forskellige konsensusmekanismer.
  • Konsensus opnås mellem deltagere på niveau med en individuel aftale/kontrakt, og ikke på niveau for hele systemet.
  • En transaktion bekræftes kun af de tilknyttede deltagere.
  • Corda tilbyder en direkte forbindelse mellem formelt menneskeligt juridisk sprog og smart kontraktkode.

Hovedbogen

Begrebet hovedbog i Corda er subjektivt. Der er ikke et enkelt centralt datalager. I stedet vedligeholder hver node en separat database med fakta, som den kender.

Forestil dig for eksempel et netværk af 5 noder, hvor en cirkel er en kendsgerning, som noden kender.

Corda - open source blockchain til erhvervslivet

Som vi kan se, kender Ed, Carl og Demi til fakta 3, men Alice og Bob er ikke engang klar over det. Corda garanterer, at almindelige fakta er gemt i databasen for hver node, og dataene vil være identiske.

stater

Staten er uforanderlig et objekt, der repræsenterer en kendsgerning, der er kendt af en eller flere netværksknuder på et bestemt tidspunkt.

Stater kan gemme vilkårlige data, for eksempel aktier, obligationer, lån, identifikationsoplysninger.

For eksempel repræsenterer følgende stat en IOU - en aftale om, at Alice skylder Bob et beløb på X:

Corda - open source blockchain til erhvervslivet
Et faktums livscyklus over tid er repræsenteret af en sekvens af tilstande. Når det er nødvendigt at opdatere den nuværende tilstand, opretter vi en ny og markerer den nuværende som historisk.

Corda - open source blockchain til erhvervslivet

Transaktion

Transaktioner er forslag til opdatering af hovedbogen. De udsendes ikke til alle hovedbogsdeltagere og er kun tilgængelige for de netværksdeltagere, der har den juridiske ret til at se og administrere dem.

En transaktion vil blive tilføjet til hovedbogen, hvis den:

  • kontraktligt gyldig
  • underskrevet af alle nødvendige deltagere
  • indeholder ikke dobbeltforbrug

Corda bruger UTXO-modellen (ubrugt transaktionsoutput), hvor hver hovedbogstilstand er uforanderlig.

Når en transaktion oprettes, overføres outputtilstanden for den tidligere transaktion (ved hash og indeks) til input.

Corda - open source blockchain til erhvervslivet
Transaktionens livscyklus:

  • Oprettelse (i øjeblikket er transaktionen kun et forslag til opdatering af hovedbogen)
  • Saml underskrifter (påkrævede parter i transaktionen godkender opdateringsforslaget ved at tilføje en signatur til transaktionen)
  • Forpligt transaktionen til hovedbog

Når en transaktion er tilføjet til finansen, markeres inputtilstandene som historiske og kan ikke bruges i fremtidige transaktioner.

Corda - open source blockchain til erhvervslivet
Ud over input- og outputtilstande kan en transaktion indeholde:

  • Kommandoer (transaktionsparameter, der angiver formålet med transaktionen)
  • Vedhæftede filer (feriekalender, valutaomregner)
  • Tidsvinduer (gyldighedsperiode)
  • Notar (notar, særlige netværksdeltagere, der validerer transaktioner)

Corda - open source blockchain til erhvervslivet

kontrakter

Når vi taler om transaktions gyldighed, mener vi ikke kun tilstedeværelsen af ​​de nødvendige signaturer, men også kontraktlig gyldighed. Hver transaktion er forbundet med en kontrakt, der accepterer den og validerer input- og outputtilstandene. En transaktion anses kun for gyldig, hvis alle dens tilstande er gyldige.

Kontrakter i Corda er skrevet på ethvert JVM-sprog (for eksempel Java, Kotlin).

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

Det er nødvendigt at arve fra en klasse Kontrakt og tilsidesætte metoden verificere. Hvis transaktionen er ugyldig, vil der blive givet en undtagelse.

Transaktionsvalidering skal være deterministisk, dvs. kontrakten skal altid enten acceptere eller afvise transaktionen. I forbindelse hermed kan transaktionens gyldighed ikke afhænge af tid, tilfældige tal, værtsfiler mv.

I Corda udføres kontrakter i en såkaldt sandbox - en let modificeret JVM, der garanterer deterministisk udførelse af kontrakter.

Strømme

For at automatisere kommunikationen mellem netværksknuder blev der tilføjet tråde.

Et flow er en sekvens af trin, der fortæller en node, hvordan den skal udføre en specifik finansopdatering, og på hvilket tidspunkt transaktionen skal signeres og valideres.

Corda - open source blockchain til erhvervslivet

Nogle gange tager det timer, dage, før transaktionen er underskrevet af alle parter og kommer ind i hovedbogen. Hvad sker der, hvis du afbryder forbindelsen til en node, der deltager i en transaktion? Tråde har kontrolpunkter, hvor trådens tilstand skrives til nodens database. Når en node gendannes til netværket, fortsætter den, hvor den slap.

Konsensus

For at komme ind i hovedbogen skal en transaktion opnå 2 konsensus: gyldighed og unikhed.

Beslutningen om gyldigheden af ​​en transaktion træffes kun af de parter, der er direkte involveret i den.

Notar noder tjekker transaktionen for unikhed og forhindrer dobbeltforbrug.

Lad os forestille os, at Bob har $100 og vil overføre $80 til Charlie og $70 til Dan ved at bruge den samme inputtilstand.

Corda - open source blockchain til erhvervslivet

Corda vil ikke tillade dig at udføre sådan et trick. Selvom transaktionen vil bestå gyldighedskontrollen, mislykkes unikhedskontrollen.

Konklusion

Corda-platformen, udviklet af R3 blockchain-konsortiet, er ikke en ren use case for blockchain-teknologi. Corda er et højt specialiseret værktøj til finansielle institutioner.

Kilde: www.habr.com

Tilføj en kommentar